Repository navigation
Description
Version: measured on develop at 579b4ef4 (Plugin 0.31.0)
Problem
The Plugin's commands and Boxes refer to the Plugin's own ADRs, its README.md and this repository's issues. A Consumer session cannot follow any of them.
- A command runs from the Plugin cache, but the agent resolves a relative link such as
[ADR-0020](docs/adr/0020-specs-branch-on-input.md)from the Consumer's working directory. That finds nothing, or the Consumer's own ADR with the same number. /setupcopies the Box YAMLs into the Consumer's.archon/workflows/. They cite Plugin ADRs by number, such as(ADR-0023 §5), in comments and inside prompt text. In a Consumer whose owndocs/adr/reaches that number, the citation names the Consumer's decision. One measured Consumer has ADRs 0001 to 0010./setupwrites an absolute URL to this repository into the Consumer'sCLAUDE.md.
specs.md:27 forbids $CLAUDE_PLUGIN_ROOT, which is unset inside the Bash tool (#422), so a command cannot reach the Plugin root that way. /setup alone resolves the installed Plugin, through installPath in the plugin registry.
#301 found the command links and was closed as not planned.
Rulings
- 2026-09-24: shipped prose carries its content inline or does not carry it. It carries no link back to this repository, relative or absolute.
- 2026-10-27, in the grilling session:
- A bare citation by number, such as
ADR-0023 §5, is a reference back, in prompt text and in YAML comments alike. /setupreads<installPath>/README.mdfor the README content it depends on (option B).- Only
/setupreads from the installed Plugin. Every other command drops its ADR links and states inline any rule it needs. - Scope is what a Consumer session reads. The table below lists it.
- The Plugin
README.mdkeeps its links into its owndocs/adr/. They resolve inside the installed Plugin. - A sentence in the Plugin's
AGENTS.mdis the whole guard. Nothing checks the rule mechanically. - The ticket that #631 will produce for
commands/specs.mdis blocked by this one. - The Plugin
README.md's bare citations become links into its owndocs/adr/, so they fall under ruling 5. - The line that the Box edits are unproven until a Consumer run reads them is a dispatch note, not a criterion.
- A bare citation by number, such as
Scope
In scope, measured on develop at 579b4ef4:
| What | Where | Count |
|---|---|---|
Relative links to a Plugin ADR, docs/adr/ form |
archon-upgrade.md 10, cleanup.md 12, improve-architecture.md 11, specs.md 10, tickets.md 10, triage.md 12 |
65 |
Relative links to a Plugin ADR, ../docs/adr/ form |
setup.md |
10 |
Relative links to the Plugin README.md |
setup.md |
6 |
| Links to issues in this repository | specs.md 2, setup.md 1 |
3 |
An absolute URL to the Plugin README.md, written by /setup into the Consumer's CLAUDE.md ("What each box does") |
setup.md |
1 |
The ADR-home rule, which names this repository's layout (apps/claude-code/<plugin>/docs/adr/, "monorepo-wide") |
improve-architecture.md |
1 rule |
A path in this repository: "The Box command docs live at docs/boxes/ in this Plugin's own repository" |
setup.md |
1 |
Bare citations of a Plugin ADR, to become links into the Plugin's docs/adr/ |
README.md |
27 |
Citations of a Plugin ADR by number (ADR-NNNN), in comments and in prompt text |
unic-dlc-build.yaml 32, unic-dlc-explore.yaml 21, unic-dlc-pr-review.yaml 21, unic-dlc-qa.yaml 18 |
92 |
Count the links with a pattern that matches both forms, such as grep -oE '\]\((\.\./)?docs/adr/'. A search for ](docs/adr/ alone misses the ten in setup.md. Count citations with grep -oE 'ADR-?0[0-9]{3}', not by matching lines.
In scope, with links into the Plugin kept: the Plugin README.md (its links into its own docs/adr/, 18 ADR-NNNN link labels on 14 lines) and vendor/mattpocock-skills/README.md (one link to ../../README.md). The README holds 45 ADR-NNNN matches: 18 are link labels and stay, and 27 are bare and become links.
Out of scope:
vendor/mattpocock-skills/skills/: upstream text, never hand-edited. Its one citation, "contradicts ADR-0007", is an invented example, not a Plugin ADR.AGENTS.md,CHANGELOG.md,CONTEXT.mdanddocs/: read by this repository's developers, not by a Consumer session.- The
homepageandrepositoryfields ofplugin.jsonandmarketplace.json: read by the installer, not followed by an agent. - Files a Consumer wrote by hand, such as a header comment in its own
.archon/unic-dlc.config.yaml.
Acceptance criteria
Amended 2026-10-27, approved by the maintainer in the grilling session. This replaces the criteria of 2026-09-24.
- No in-scope file links to this repository, names a path in it, or cites a Plugin ADR by number. That covers its ADRs, its
README.md, its other docs and its issues, in Markdown, in YAML comments and in prompt text, and it includes any text/setupwrites into a Consumer file. The one exception: a relative link in the PluginREADME.mdor invendor/mattpocock-skills/README.mdthat resolves inside the installed Plugin stays, label included (for example[ADR-0016](docs/adr/…)), because those files are read from<installPath>, where the link resolves. A bareADR-NNNNcitation in the PluginREADME.mdbecomes such a link. - Where a command or a Box depends on content that exists only in the cited ADR, it states that content inline. A reference that served only a human reader, such as a "Design rationale" line or a parenthetical citation, is removed and not replaced.
-
/setupreads the README content it depends on, namely § Dependencies, § Configuration reference and § The tracker contract, from<installPath>/README.md, using theinstallPathit already resolves and verifies. A path a command resolves against the installed Plugin throughinstallPathis inside the Plugin, not a link to this repository. - In the block
/setupwrites into the Consumer'sCLAUDE.md, the "What each box does" URL is replaced by one line per Box that says what the Box does. The sentence insetup.mdthat describes what the block carries no longer says it carries a link. -
/improve-architecturepicks the ADR home from the Consumer's own tree. It offers thedocs/adr/directories the Consumer already has and confirms the choice with the user. If the Consumer has none, it proposes the rootdocs/adr/, which/specsalready reads. It names no path from this repository's layout. - The steps that tell the agent to read the Consumer's own
docs/adr/keep their meaning: in/specs, and in theunic-dlc-explore.yamlandunic-dlc-build.yamlprompts. Removing citations does not remove those steps. - The Plugin's
AGENTS.mdstates the rule in the first criterion and names all three forms: a link, a path and a citation by number. This sentence is the whole guard. Accepted gap: nothing checks the rule mechanically, so a diff that adds a reference merges green unless a reviewer reads it. - The Plugin's
CHANGELOG.mdcarries the change under## [Unreleased].
Dispatch notes
- Start after #652 and #439 merge, from that
develop. Nativeblocked_byedges to both enforce this. Both editunic-dlc-qa.yamlandunic-dlc-build.yaml, plus the Plugin'sCHANGELOG.mdandplugin.json. One worker per file. - Re-measure every count in the scope table on that
developbefore editing. Both merges add text tounic-dlc-qa.yamlandunic-dlc-build.yaml. - The Box edits are unproven in a Consumer until a Consumer run reads them. A run in this repository does not prove them.
- Prompt-text edits add no node, so no Archify diagram needs re-exporting.
- The ticket that #631 will produce for
commands/specs.mdtakes ablocked_byedge to this ticket when it is created. - Existing Consumers lose the absolute URL on their next
/setuprun, because/setupreplaces itsCLAUDE.mdblock in place.
Related
- #301: found the same command links, closed as not planned
- #422:
$CLAUDE_PLUGIN_ROOTis unset in the Bash tool
🤖 Filed with Claude Code.
Activity
orioltf commentedon Sep 24, 2026
Maintainer ruling, 2026-09-24: shipped prose links to nothing in this repository
The maintainer gave this ruling first-hand to the DLC orchestrator seat.
That rejects the fix proposed above. A URL pinned to a release tag still points outside the Consumer. It also has two defects of its own:
bump-version.mjsrewrites no URLs, so after the next release every pinned link names an older tag. Where an ADR was amended later, the agent reads the old text beside the new rule.It also rejects pinning to
mainand the inline-only-where-a-rule-sits variant. Both keep a link out.Scope, measured on
developat8765f29README.mdsetup.mdspecs.mdREADME.mdthat/setupwrites into the Consumer's own file, in the "What each box does" line of its managed blocksetup.md.archon/commands/The ticket says the problem is in
commands/, and that is correct. The Methods carry no such link. Thedocs/adr/paths inunic-dlc-build.yamlandunic-dlc-explore.yamlpoint at the Consumer's own ADRs on purpose, and they stay.Proposed criteria, pending the maintainer's approval
README.md, its other docs or its issues. That covers the commands and any text/setupwrites into a Consumer file.docs/adr/are unchanged.AGENTS.mdstates the rule, so that the next command written does not add a link back.CHANGELOG.mdcarries the entry under## [Unreleased].The questions this does not decide yet are on this seat's side, with the maintainer.
Posted by
unic-sdlc-orchestrator-3, the DLC seat.orioltf commentedon Sep 24, 2026
Back to grilling: one open decision before dispatch
The maintainer wants a dedicated grilling session on this ticket before it is dispatched. The criteria in the body stay as the starting point. Nothing is dispatched.
The open question: how does
/setupreach the PluginREADME.mdcontent it depends on? Two of its steps depend on README content, and neither link is decorative. The § Configuration reference is called "the single source of truth for every default". The § tracker contract step says "Read it and follow it … this step does not repeat them".setup.mdlinks../README.mdsetup.mdcarries the configuration reference and the tracker contract itselfsetup.md, and the two driftsetup.mdlinks../README.md/setupreads<installPath>/README.md. Step 1 already resolvesinstallPathfrom the plugin registry, and verifiesvendor/and.archon/workflows/thereThe maintainer leans towards B but has not yet read the point in
setup.mdwhere it resolvesinstallPath. If B is chosen, the first criterion gains one sentence: a path that a command resolves against the installed Plugin throughinstallPathis inside, not a link.The grilling should also settle whether B stays limited to
/setup, the only command that resolvesinstallPath. The other commands use their ADR links as rationale, and those are removed.orioltf commentedon Oct 27, 2026
Stale — do not follow. The grilling this opener started is closed. The current opener is #556 (comment).
Opener — How to start this session (written 2026-10-27 by
unic-sdlc-orchestrator-7, at dispatch)What this session produces
Approved acceptance criteria in this ticket's body, then the label
ready-for-agent. Nothing else. The fix runs later under/afk-loop 373.This ticket's parent is #373, not #498. Start: the maintainer types
/wayfinder 373 #556. When the grilling starts, the maintainer types/grill-with-docs. Both carrydisable-model-invocation, so the session cannot invoke them itself.Do not close this ticket. This overrides
/wayfinderstep 4. This stream grills a ticket into its own criteria and implements it under the same number. Do not invoke/implement,/tddor/to-tickets. Keepneeds-specsuntil the maintainer approves, then replace it withready-for-agent.Read in this order
setup.md) or option B (/setupreads<installPath>/README.md). The maintainer leaned towards B but had not read the step yet.apps/claude-code/unic-archon-dlc/commands/setup.mdonorigin/develop, the step that resolvesinstallPathfrom the plugin registry (around line 70). Read it before the maintainer chooses A or B, because that step is the whole case for B.The trap that costs an hour
Grilling against the scope table in the body. It was measured on
8765f29on 2026-09-24, and the commands have moved since. Re-measured on579b4ef4on 2026-10-27: 75 relative ADR links across all seven commands, not 65 across six.setup.mdnow has some, written../docs/adr/…, which the body's](docs/adr/count misses. Before any question, re-measure onorigin/developwith a pattern that matches both forms, and correct the table. A criterion written against the old table leaves the new links in place, and every criterion still reads satisfied.What this ticket does not decide yet
Each of these is a question for the maintainer. None is yours to settle with a plausible default.
/setup's README content. If B: the first criterion gains one sentence saying that a path a command resolves against the installed Plugin throughinstallPathis inside the Plugin, not a link./setup. Only/setupresolvesinstallPathtoday. The other commands' ADR links are rationale and are removed. Decide whether any of them is a rule a command needs inline, which the second criterion covers, or whether all of them go.README.mdand the vendored Method bundle.README.mdlinksdocs/adr/itself, andvendor/mattpocock-skills/README.mdlinks../README. Both ship inside the Plugin. Under B, a link inside the installed Plugin may be acceptable. The vendored bundle may not be hand-edited: upgrading it means diffing against upstream (rootCLAUDE.md, the quality bar for a prose Box). Decide whether either is in scope, and say so in the criteria.AGENTS.md. The repository's quality bar rules out a test module written only to check prose. Decide whether a sentence inAGENTS.mdis the whole guard, and write that down as the accepted gap.Other traps
/afk-loop 498runs tonight on #652 and #439. It does not take this ticket, because this ticket hangs off wayfinder: unic-archon-dlc is prose, and proven at a Consumer #373. Both runs would edit the Plugin'sCHANGELOG.mdandplugin.json, so/afk-loop 373starts after/afk-loop 498stops, never alongside it.commands/specs.mdticket waits on this one. Ask whether that edge should exist before the label goes on.The bar that proves it
Run the four reads from
docs/agents/dispatching-and-learning.md§ Before you post one on the criteria as a set. Then check:docs/adr/or the../docs/adr/form, except what the criteria explicitly allow./setupstill reaches its configuration defaults and its tracker contract steps, from content inline or from the installed Plugin.A false pass is a clean
grep '](docs/adr/'with the../docs/adr/links still there.On landing
unic-sdlc-orchestrator-7with the link. The orchestrator reads the criteria as one set and replies.needs-specswithready-for-agent, keepp0unless the maintainer moves it, and leave it unassigned for/afk-loop 373.Report back
Review and handover
There is no pull request. The maintainer approves the criteria in the session. The orchestrator reads them as one set before the label goes on. Implementation runs under
/afk-loop 373, which this seat records as unproven in the Consumer until a Consumer run reads it.orioltf commentedon Oct 27, 2026
Grilling closed, 2026-10-27: criteria rewritten
The maintainer approved the criteria now in the body. What changed against the body of 2026-09-24:
developat579b4ef4. There are 75 ADR links, not 65, becausesetup.mdnow has ten in the../docs/adr/form, which a](docs/adr/search misses. There are 3 issue links, not 2:setup.mdalso links #647./setupcopies them into the Consumer, and they cite Plugin ADRs by number 92 times, in comments and in prompt text. The old line "This ticket edits no Box file" is gone./setupreads<installPath>/README.md. No other command reads from the installed Plugin; their ADR links are removed, and any rule they need is stated inline.AGENTS.md,CHANGELOG.md,CONTEXT.md,docs/, the manifest metadata fields and the upstream Method text are out, and the body says why.README.mdkeeps its links into its owndocs/adr/, because they resolve inside the installed Plugin.AGENTS.md, naming all three forms. The criterion records the gap: nothing checks the rule mechanically.commands/specs.mdablocked_byedge to this one.Labels stay as they are until the orchestrator has read the criteria as one set.
13 remaining items
fix(unic-archon-dlc): drop issue and planning-doc numbers a Consumer …
fix(unic-archon-dlc): state the gate conditions and check every READM…
docs(unic-archon-dlc): correct three Box comments and the AGENTS.md g…
docs(unic-archon-dlc): match the Step 3 ADR-format sentence to the ho…
docs(unic-archon-dlc): drop repository paths from the bundle README
fix(unic-archon-dlc): describe the Box list and every gate in the CLA…
docs(unic-archon-dlc): replace planning labels and empty asides in co…
docs(unic-archon-dlc): drop the last amend-an-ADR step from /archon-u…
docs(unic-archon-dlc): tighten the last review findings in commands, …