Skip to content

D1057 — The Artifacts section is four tabs: agent kit, instructions, templates, secrets

Decision. The Atlas's Artifacts section opens on four tabs, each its own panel in the URL: Agent kit (panel=artifacts: skills, subagents, hooks, MCP servers, as tiles with a detail beside them), Instructions (panel=instructions: the instructions file shown as its source, in the frame Settings shows its YAML in), Templates (panel=templates: the template tiles) and Secrets. An artifact link opens the tab of its kind. The catalog has no text filter.

Why. A KB has one set of instructions and a handful of templates, but they were two more groups of tiles among the skills: the instructions, the one text every client receives as it is, had to be opened like a skill to be read, and the templates read as something agents run. The kinds differ in what a reader does with them — the kit is browsed and opened, the instructions are read whole, the templates are a reference — so each gets the page that fits. The filter box searched a list that the Kind chips already narrow to a few dozen tiles at most, and it was never used.

Alternatives rejected. - Instructions rendered as Markdown, at reading measure. Tried live: a long instructions file full of tables read badly at the concept page's measure and worse when widened; it is a file the clients receive verbatim, so its source is what the reader needs to see. - Keep one catalog and collapse the instructions and templates groups. Still one tile to open for the one text that matters most, and templates still among the agent's tools. - Rename the rail entry too. "Artifacts" is the word the docs, the MCP tools and D864 use for all of them; the tabs name the parts.

Consequences. artifactPanel(kind) (web lib/viewstate) is where a new kind chooses its tab; a kind nobody routes there lands in the agent kit. The D864 list of kinds still drives what each tab shows, filtered by the tab's kinds. An old panel=artifacts&artifact=template/<name> link is read as the Templates tab with that template open, and one to the instructions as the Instructions tab.

Also in this change: changes_since counts changes by day

Decision. changes_since returns changes_by_day ({"2006-01-02": {work, upkeep?}}, UTC days): one per concept a commit of the window touched, among the concepts the caller can see, the server's auto-repair commits counted apart. The Activity histogram reads it whenever no Map or author filter narrows the page.

Why. The histogram counted concepts, which holds each concept once, at its newest change, and is truncated: over All a KB whose pages were nearly all touched last month drew a year of empty days, though hundreds of commits had happened in them.

Alternatives rejected. A per-day commit count (commits_by_day): a commit writing ten pages would count as one, and it would have to be whole-KB only, like commit_count; counting visible concept changes needs no such rule. Raising the concepts limit: still each concept once, at its last change.

Consequences. The series cannot be filtered by Map or author, so with a filter the histogram falls back to the concepts. A server older than this field sends none, and the page draws what it drew before.