Repository navigation
Description
Why
Run 4 (#502) runs the Boxes the Consumer has installed. On 2026-10-22 the Consumer's develop at 7f8fedd5 carries the Boxes and Methods of the 0.29.0 release, under a 0.28.0 header. unic-archon-dlc 0.31.0 is on this repository's develop, and two of its changes are breaking:
- 0.30.0 (#520) moves the managed blocks to
unic-dlc:begin/unic-dlc:end./setupmigrates them in place. - 0.31.0 (#505) takes a run's base branch from Archon's
$BASE_BRANCH.
A review of the install on 2026-10-22 also found leftovers that /setup does not clean up. This ticket refreshes the install and removes them in one Consumer pull request, because /setup rewrites the same files. The same pull request records five facts run 3 measured, because they go into the Consumer doc that criterion 7 edits (amended 2026-10-22).
Five other install differences are tracked on the Consumer's board. The tracker label mapping is out of scope here: the Consumer's tracker is being unified or redefined, and a mapping fixed now would likely change.
Blocked by
- #556, so the install carries its ADR-link fix. It ships as 0.36.1. (Amended 2026-10-28: the release to
mainis no longer a blocker. The marketplace has no ref pinned, so it reads this repository's default branch, which isdevelop, notmain.mainstays at 0.29.0 on purpose.)
Acceptance criteria
All paths are in the Consumer repository. The work lands through one Consumer pull request to develop, on a branch that follows the Consumer's convention, feature/<work item>_<slug>, with work item 43344. The pull request links Story 43344 and Task 43100, which covers criterion 9.
-
The Consumer's installed plugin is 0.36.1 or later, the newest version on this repository's
developat install time, at project scope (claude plugin update --scope project). The Consumer's marketplace entry pins"ref": "develop"in its GitHub source, so the install no longer depends on this repository's default branch. The pull request names the installed version and thegitCommitShathatinstalled_plugins.jsonrecorded for it. (Amended 2026-10-28.) -
/unic-archon-dlc:setupwas run after the update, from the installed version's cache directory, and the pull request commits what it wrote. Every Box and Method header names the installed version, and the managed blocks use theunic-dlc:begin/unic-dlc:endmarkers. (Amended 2026-10-28.) -
.archon/unic-dlc.config.yamlholds nomethodskey. Neither the plugin's README configuration reference nor/setupreads one. -
.prettierignorenames.archon/methods/and.archon/workflows/once each, inside the managed block. The hand-written copies above the block, with their comments, are gone. Any other entry stays. -
The Consumer's
CLAUDE.mdhas one## unic-archon-dlcheading, the managed block's. The hand-written section is renamed and keeps its rules inCLAUDE.md. Only reference detail moves todocs/agents/unic-archon-dlc.md, and a pointer stays in its place. (Amended 2026-10-28.) -
Every § pointer from
CLAUDE.mdintodocs/agents/unic-archon-dlc.mdnames a heading that exists there. -
The install record in
docs/agents/unic-archon-dlc.mdkeeps the installed version and drops the commit and file hashes. The Box headers already name the version, and the hashes go stale on the next/setuprun. -
The pull request reports the base branch line that
/setupprinted, and it isdevelop. If it is not, the pull request setsworktree.baseBranch: developin.archon/config.yaml, nested underworktree:, reruns/setup, and reports both lines. (Amended 2026-10-28.) -
docs/agents/unic-archon-dlc.mdstates the facts below, five that run 3 measured and one added since, that an agent cannot infer, one entry each with the measurement that proved it and the Archon version it was measured on, which is the version criterion 12 installs. A fact that no longer holds on that version is dropped or rewritten, and the pull request says which:- Two Box nodes declare
runtime: bun, and the machine must provide it. Run 3's first dispatch died onENOENTwithout it. - Before the first dispatch on a new machine, check Archon's codebase row (kind,
default_cwd,default_branch). A folder project on a parent directory removes worktree isolation, andarchon doctorpasses it. archon complete --forcedeletes the branch onoriginwithout saying so. Pinrefs/rescue/*first, or clean up with git.- The Archon database keeps tool inputs, not their output. The runner's output lives in
~/.claude/projects/<worktree-path>/*.jsonl, a live directory that a worktree with the same name reuses. - The Box commits and posts under the machine's git and tracker identity. Only the message shape, the branch name and the HTML markers tell its work apart.
- Added 2026-10-28, not measured yet: from Archon 0.12.0 a run that completes removes its own clean worktree when every commit is on a remote, and keeps the branch. Criterion 13's node run measures where that run's artefacts live and whether they and the worktree survive completion. Rewrite the doc's procedure for recovering a killed run if the answer changes it.
The underlying defects have their own tickets in this repository. This criterion records the facts for the Consumer's sessions; it fixes none of them. A reading of Archon's release notes on 2026-10-28 suggests that 9.3 and 9.4 no longer hold on 0.13.0 and that 9.2 changed. Measure them; do not copy this note. (Amended 2026-10-28.)
- Two Box nodes declare
-
sdlc_needs.formatin.archon/unic-dlc.config.yamlnames a command that exits non-zero on unformatted files and writes nothing, as the comment above the key already asks. Today it namespnpm format, which rewrites the tree and exits 0. The pull request shows the command run twice: on a tree with one file deliberately unformatted, where it exits non-zero and leaves the file unchanged, and on a clean tree, where it exits 0. (Added 2026-10-26, amended 2026-10-28.) -
The Consumer doc's section on the Archon version no longer tells sessions to hold Archon at 0.7.0. It names the version criterion 12 installs. It states that from Archon 0.9 a Box node reaches no MCP server until the Boxes declare
mcp:, and that from 0.12 it loads no plugin, and so none of a plugin's skills, until the Boxes declareplugins:(#425). It records criterion 13's result. It states that every Box load warns that workflow-levelinteractive:has no effect, and that the warning is expected. The doc's other0.7.0statements agree with it. (Added 2026-10-26, amended 2026-10-28.) -
Archon on the machine is 0.13.0 or later (
archon --version), upgraded before/setupruns.archon provider add claudehas run after the upgrade, a default provider resolves, andarchon doctorpasses. The pull request names the version. (Added 2026-10-28.) -
The tracker contract's § Access names an MCP server or a skill. The pull request states which one, and whether a Box node on the criterion 12 version reaches it, measured by running one node, not inferred. The same run measures criterion 9.6. The result is also posted on #425, whose fix it feeds. (Added 2026-10-28.)
Out of scope
- The tracker label mapping in
docs/agents/triage-labels.md. - The install differences tracked on the Consumer's board.
- Creating
integration/dlcand dispatching run 4: #502. - The Box changes #425 needs: declaring
mcp:orplugins:, and removinginteractive:. This ticket measures; Archon 0.9.0 stops workflow nodes inheriting MCP servers — every Box loses its tracker/docs/design access on upgrade #425 fixes.
Activity
orioltf commentedon Oct 28, 2026
Opener for #657, written at dispatch on 2026-10-28 by
unic-sdlc-orchestrator-9. Edited in place the same day, before dispatch, twice: the start condition no longer waits for a release tomain, and the opener follows the criteria the grilling amended (comments 6477313356 and 6477376311, which adds criterion 9.6).What it produces
One Consumer pull request to
developthat refreshes the installedunic-archon-dlcand meets all thirteen criteria in this ticket's body. This is implementation, not a grilling. Do not start it with/wayfinder: that skill's "work through the map" mode resolves a ticket by closing it, and this ticket stays open until the Consumer pull request merges. No skill is needed./unic-archon-dlc:setupis the one command the criteria require.Where the session runs. The plugin is installed at project scope, so
/unic-archon-dlc:setupexists only in a session rooted in the Consumer repository. A session rooted in this repository cannot do the work either: its NDA hook refuses every command whose path names the Consumer's folder. Work in a Consumer worktree outside the clone, on a branch made from a freshly fetchedorigin/develop. The branch follows the body's convention with work item 43344. Link the pull request to Story 43344 and Task 43100.Order. The criteria land in three steps. This replaces every earlier split.
archonis a Homebrew link, so copy the file it points at (realpath "$(which archon)") to a path outside Homebrew, and record itsarchon --version.sqlite3 ~/.archon/archon.db ".backup '<path>'", not withcp. The database runs in WAL mode, with-waland-shmfiles beside it, so a plain copy can miss writes.blocked_byit): criteria 1 to 8. unic-archon-dlc: ADR links in commands/*.md resolve against the Consumer's repository #556 ships as 0.36.1. No release tomainis needed, andmainstays at 0.29.0 on purpose. Before installing, confirm whatdevelopcarries:Read order
CHANGELOG.md, every### Breakingsection from 0.29.0 up to the version you install. The Consumer runs 0.28.0 today, so 0.29.0 is the first one it has not read, read from the installed plugin cache after the update. Every version from 0.30.0 to 0.36.0 has a Breaking section./setupmigrates the managed blocks, but a Breaking entry can still ask the Consumer for a step/setupdoes not take. List each Breaking entry in the pull request and say whether/setuphandled it, you handled it, or it does not apply.docs/agents/unic-archon-dlc.md, all of it. Criteria 7, 9, 11 and 13 edit it. A version refresh re-reads the whole document, not only the version rows: four claims in it were true when written and false later, and a row-only edit is how they survived.CLAUDE.md, both## unic-archon-dlcsections. Measured on the localorigin/developref on 2026-10-28, they are at lines 80 and 496. The orchestrator could not fetch, so the ref may be stale.The one trap: running the old
/setupA Claude Code session loads its plugins when it starts. If you run
claude plugin update --scope projectinside a running session and then call/unic-archon-dlc:setupin the same session, you may run the old command against the new cache, or the old command against the old cache. The run looks normal and writes 0.29.0 Boxes and the oldunic-archon-dlc:beginmarkers again.This machine makes it worse. It also has the plugin installed at user scope (0.36.0 on 2026-10-28), beside the project-scope 0.28.0 the Consumer uses. Which one a Consumer session loads is not measured. Update the plugin from a shell before you start the session, or restart the session after the update. Then confirm that the command you are about to run comes from the installed version's cache directory, as criterion 2 requires. After
/setup, the bar below catches a stale run. If you only notice it at review time, you will have spent an hour.Decisions this ticket does not make
The grilling settled the version, the pin, the rename and the base branch. One small point remains, and the orchestrator settled it on 2026-10-28. Report back if it is wrong for what you find.
/setup's report./setupprints amethods:line in its final report. That line is output built from the Methods it installed, not a read of amethodsconfig key, so it does not contradict criterion 3. The Consumer config is a tenant-owned file that/setupreports on and never rewrites, so removingmethods: {}is a hand edit.Other traps
projectPath. Aclaude plugin update --scope projectrun from the worktree may therefore find no install to update, or create a second one. Not measured. Run the update from the registered clone, then check the version that the record and/setupreport.developdeclaresplugins:ormcp:. Read Archon's own documentation for what a node does when a plugin it did not name is installed at user scope, as this machine's are. Criterion 13 runs one node: do it early, because a node that fails before its first turn changes the plan for run 4. The same run measures criterion 9.6. State in the result whether a plugin the node did not name loaded, and whether the node then failed before its first turn. Post that line on Refresh the Consumer's DLC install before run 4 #657 as well as Archon 0.9.0 stops workflow nodes inheriting MCP servers — every Box loses its tracker/docs/design access on upgrade #425, because wayfinder: e2e specs from acceptance criteria, at a second Consumer #538's Box edits rely on it. Every Box load also warns that workflow-levelinteractive:has no effect. That warning is expected (criterion 11).git fetchfailed withcould not read Password ... Device not configured. If yours does too, ask the maintainer. Never work from a staleorigin/develop.pre-pushrefusesdevelopandmainfrom any worktree. A branch made withgit worktree add -b <branch> <path> origin/developtracksdevelop. Add--no-track, then push with-u origin <branch>..prettierignorecarriesunic-archon-dlc:begin/unic-archon-dlc:end(measured on the local ref)./setupreportsmigrated from unic-archon-dlc markersfor a block it moved. Criterion 4 also removes the hand-written copies above the block, which/setupdoes not touch.develop. Two nodes inunic-dlc-build.yamldeclareruntime: bun(measured 2026-10-28). Measure the other four on the upgraded Archon. The body's note that 9.2, 9.3 and 9.4 changed comes from release notes, not from a run.The bar that proves it
.archon/workflows/and every Method header names the installed version, andgrep -r 'unic-archon-dlc:begin'over the Consumer tree finds nothing.archon base:line/setupprinted (criterion 8), the version line from thegh apicheck above, thegitCommitShafrominstalled_plugins.json(criterion 1), andarchon --versionwith a passingarchon doctor(criterion 12).pnpm typecheckand the six checks underchecks/pass in the Consumer worktree after the final commit, judged by exit code.A false pass looks like this: every file is edited and every criterion reads satisfied, but the Box headers still say 0.29.0 or 0.28.0, because
/setupran from the old cache. Another: criterion 13 answered from the Box YAML or the release notes instead of a node that ran. Another: criterion 10's command exits non-zero on a clean tree too, or never exits non-zero at all.Review and handover
develop, linked to 43344 and 43100.archon workflow run unic-dlc-pr-review "<slug>" --from <your branch>. Invoke Archon from the Consumer's registered clone, never from your worktree. Archon pins one source path per repository and refuses a second with exit 0. Approve thereview-gatefrom the terminal and never reject: the gate has noon_reject, so a reject destroys every finding with no record. Record which version header the reviewing Box carried, because this pull request changes the Boxes the review runs. That is evidence for the release.fixedfrom iteration 2 or later is not evidence: read it against the diff. Re-run the bar after the final fix.orioltf commentedon Oct 28, 2026
Amended 2026-10-28, approved by the maintainer
main. It names #556, now a nativeblocked_byedge. The install should carry unic-archon-dlc: ADR links in commands/*.md resolve against the Consumer's repository #556's ADR-link fix.main". It now says "the newest version ondevelop, one that carries unic-archon-dlc: ADR links in commands/*.md resolve against the Consumer's repository #556".Why: the premise was wrong. The Consumer's marketplace entry pins no ref, so Claude Code reads this repository's default branch, which is
develop.mainstays at 0.29.0 on purpose, as the version other teams are told to install. Measured withgh repo view --json defaultBranchRefand on the local marketplace checkout, which sits ondevelopatf83bbf6.The opener above was edited in place to match. It had not been dispatched.
—
unic-sdlc-orchestrator-9orioltf commentedon Oct 28, 2026
Dispatched before #556 merged, 2026-10-28
The maintainer asked to start now. #556 is open, and its PR #673 is in review under
/afk-loop 373. So the work splits in two:docs/agents/unic-archon-dlc.mdand.archon/unic-dlc.config.yaml./setuptreats both as tenant-owned files: it reports on them and never rewrites them. So nothing done now is overwritten later. Commit them to the feature branch./setup, and the edits that depend on what/setupwrites. Re-read the opener's start condition at that point. Do not install a version without unic-archon-dlc: ADR links in commands/*.md resolve against the Consumer's repository #556.If criterion 9 or 11 needs the installed Boxes to settle a fact, measure it on
develop's Boxes, not the Consumer's old copy, and say so in the entry.—
unic-sdlc-orchestrator-9orioltf commentedon Oct 28, 2026
Criteria amended 2026-10-28, approved by the maintainer in a grilling session
The body above is edited in place. What changed and why:
/setup, witharchon provider add claude, a default provider and a passingarchon doctor, which 0.12.0 made required. Criteria 9 and 11 measure on that version. A reading of the Archon release notes from 0.11.0 to 0.13.0 found no change that stops the four Boxes ondevelopfrom loading. It ran no Archon binary.developmerge is included. The marketplace entry now pins"ref": "develop". Without a ref, a change to this repository's default branch would move the Consumer tomainin silence. The install recordsgitCommitShaininstalled_plugins.json, measured on this machine.develop. Criterion 10 must be seen failing once.What can start now
This replaces the split in the comment above.
— grilling session for this ticket
orioltf commentedon Oct 28, 2026
Amended again 2026-10-28, approved by the maintainer: criterion 9.6 added. From Archon 0.12.0 a completed run removes its own clean worktree when every commit is on a remote, so a run's artefacts may be gone before anyone harvests them. Criterion 13's node run also measures where the artefacts live and whether they survive completion. The Consumer doc's recovery procedure is rewritten if the answer changes it.
orioltf commentedon Oct 28, 2026
Measured on Archon 0.13.0 (git commit 0d39c1f2), 2026-10-28, for #657 criteria 13 and 9.6.
One node with no
plugins:,mcp:orskills:declarationI ran a one-node workflow from
~/.archon/workflows/against the Consumer's registered clone. The node used the default worktree isolation andclaude/opus. Its prompt asked it to list its own tools, skills and slash commands, and to read one work item through the tracker's MCP server if it could.misconfigured.mcp__tool, so it could not reach the tracker's MCP server that the Consumer's.mcp.jsonregisters at project scope. A ToolSearch for the server's tools found none.Skilltool was present, but nothing was listed under it. The user scope on this machine has 36 Claude Code plugins installed,unic-archon-dlcamong them, and none of them loaded.So a Box node on 0.13.0 that declares neither
mcp:norplugins:reaches neither the tracker's MCP server nor any plugin skill. It does not fail when plugins are installed at user scope. It loads none of them. This corrects the note in this repository that says such a node fails before its first turn.The node's own report:
Worktree cleanup on completion (9.6)
origindevelopbashrun that wrote one untracked fileFor the second run Archon printed:
⚠️ Kept worktree <path>: it has uncommitted changes. It stays listed by archon isolation list.The node's artefact sat in
$ARTIFACTS_DIR, at~/.archon/workspaces/<owner>/<repo>/artifacts/runs/<run id>/. That folder is outside the worktree, and the artefact was still there after the worktree was removed. The run transcript is in~/.archon/workspaces/<owner>/<repo>/logs/<run id>.jsonl.orioltf commentedon Oct 28, 2026
Ready for review: the Consumer pull request for #657 is open, reviewed once, and its findings are answered. The pull request is private, so this comment names it only by its number, !5972.
unic-archon-dlc0.36.1 at project scope,gitCommitSha2c55bc60, and Archon 0.13.0.archon doctorpasses.unic-dlc-pr-reviewfrom the registered clone. Archon discovers workflows there, so the reviewing Box carried the 0.28.0 header fromdevelop, not the 0.36.1 Box under review. It declares nomcp:, so it posted through the tracker's CLI, the fallback the tracker contract names. Its gate was skipped, becausegates.pr-reviewis nothitl.check-typesexits 0 andpnpm testpasses 6 files and 69 tests.A Consumer maintainer merges. This session does not.
orioltf commentedon Oct 28, 2026
Correction to my 2026-10-28 measurement comment (#425 comment 6478282144, #657 comment 6478282779). A fact-check against the Archon 0.13.0 docs found two errors in it. The measurement itself stands.
installed_plugins.json. 30 of them are at user scope. The result is the same: the node loaded none of them.plugins:declaration loads none of the installed plugins, except the ones built into Claude Code (@builtin). Archon docs,reference/workflow-language, § Plugins: "Your own settings, hooks, permissions andCLAUDE.mdstill load, and so do the plugins built into Claude Code (@builtin)."What this changes for #425. Declaring
plugins:is not enough for a Box to reach a plugin's skills. The same section says: "A named plugin brings its agents, hooks, LSP servers and commands. Its skills reach the node only whenskills:names them, and its MCP servers only throughmcp:." A Box node that needs aunic-archon-dlcskill therefore declares the plugin inplugins:and each skill inskills:. A node that needs the tracker's MCP server declares that server inmcp:.One more measurement from the same day. With no
mcp:declaration, aunic-dlc-pr-reviewrun of the 0.28.0 Box on Archon 0.13.0 still read its pull request and posted its review. It used the tracker's CLI, which is the fallback that the Consumer's tracker contract names.orioltf commentedon Oct 28, 2026
Merged and verified, 2026-10-28. The Consumer pull request !5972 is merged into the Consumer's
developas merge commit56a002b. Its first parent is the olddeveloptip7f8fedd, its second parent is the pull request head6608fe8, and its tree is identical to that head. The Consumer's registered clone is ondevelopat56a002b, so Archon now discovers the 0.36.1 Boxes there.Still open, and not part of this ticket:
mcp:,plugins:andskills:(#425). Until then, Box nodes fall back to the tracker's CLI.Closing as completed.
—
unic-sdlc-orchestrator-9