Repository navigation
Description
Question
Move the DLC's tracker contract out of .archon/unic-dlc.config.yaml and into the two repo docs the
Methods already read. This is the plugin half of
#387; its resolution comment holds the whole
decision and this ticket executes it.
The shape of the change is deletion. Four Box prompts learn one new sentence — name a role and a file,
never a host word — and the config loses everything that existed to translate a role into a host
string.
Acceptance criteria
- The four
unic-dlc-*.yamlBoxes readdocs/agents/issue-tracker.mdand
docs/agents/triage-labels.md, and no node readstracker,classification.labels,
project.pr_strategyorrepo_ref. - No
bootstrapnode derives a repository from a remote URL, and theambiguous-repostatus is
gone from all four output schemas. -
unic-dlc-pr-review.yamldescribes a pull-request discussion in terms both hosts satisfy — it
no longer promises a PR-level comment. -
commands/tickets.mdstates that the tracker id of each published ticket is written into
issues.json. Nothing downstream can reference a tracker item without it — on GitHub the PR
does not close its issue either, so this is a host-agnostic gap, not an ADO one. Rewrite commands/tickets.md from scratch against the to-tickets Method #382 rewrites
this file later and must preserve the rule. -
unic-dlc-build.yamlopen-prstates that it links each work item in the baton through the
registered skill's own link capability, naming no text token. -
docs/adr/0024-triage-intake-on-ramp.mdstates which of its rules are dead: the compose rule
that forbids reading Matt's setup artefacts, and the claim that the tier carries the axis. -
CONTEXT.mdno longer defines Repository derivation, and its glossary names whatever term
replaces it. -
commands/cleanup.mdnames no provider and no subcommand where it tells a reader to compose
the registered skill. Today line 193 forbids a hardcoded CLI and then givesgh pr closeand
az repos pr update --status abandonedas its example. - The Consumer is left consistent.
~/Sites/<customer>/DXP-DesignSystem/.archon/unic-dlc.config.yaml
carries the deleted keys plus transitional comments naming this ticket; both are wrong the
moment this lands. That is a second commit, in the Consumer repository, on its own branch.
Added 2026-08-19, while implementing. Moving the axis into the contract makes a defect reachable
that the config shape could not express. Before this ticket every state role resolved to a
single-value field, so nothing could accumulate. triage-labels.md puts two of them on a many-value
axis, and the Harness only ever adds — so /tickets writes a role that nothing retracts. That is a
defect this ticket introduces, not an adjacent improvement, so it is fixed here.
-
docs/agents/triage-labels.mdcarries aHoldscolumn,oneormany, on every row. The
Harness rule below reads that column and never an axis name:TagandLabelare host words,
and a rule phrased on one breaks on the next host. - A
state,typeorpriorityrole is single-valued. Only one role of a tier is true of an
item at a time. Before the Harness writes such a role, it reads the other rows of that tier and
retracts every one whose axis holds many values; an axis that holds one value retracts the old
value itself. Stated in every Box and command that writes a role. The neighbouring rule — a row
with no axis writes nothing — is stated in the same places; today only/triagesays it. -
unic-dlc-qa.yaml'smergenode writes theresolvedrole on each linked item, so the rule
above has a firing path. Without it the rule never executes and reads as coverage it does not
buy. A tracker that cannot set the role says so and merges anyway. - The plugin's
AGENTS.mdstates the transition table — every point in the lifecycle where the
Harness writes a role, and which role. The two holes above were invisible because nothing stated
the whole, and the table is what makes the rule above checkable. One row records that/build
writes no role on purpose: the pull-request link itsopen-prcreates already carries "an agent
started this", natively, on every host, so noin-progressrole is needed. - The plugin says out loud that an extra row in
triage-labels.mdchanges no Box. A Box names its
roles literally, so a team-added role is inert — the roles are the protocol the Boxes share, and
the door for a team that wants different behaviour is a Method fork, not a row.
Activity
orioltf commentedon Aug 18, 2026
Measured on Azure DevOps, 2026-08-18 — two of this ticket's premises are weaker than recorded
unic-dlc-pr-reviewran against the live Consumer pull request (DXP-DesignSystem!5769, run59373a2ae11ce7d2f993f28b3bd9e86b). It was cancelled afterprepon purpose — the Azure DevOpssignal is all in that node, and
reviewwas fanning out over a 6 959-line diff.Finding 1 did not fire.
prepreceivedrepo_refas the single opaque stringhttps://<org>@dev.azure.com/<org>/dxp/_git/DXP-DesignSystem, with nothing telling it how todecompose it. It composed the registered MCP server unaided and printed no
BLOCKED. The tool log:Finding 7 did not fire either. The two-level thread shape did not defeat the marker scan:
iteration: 1,prior_findings: [], andSystem.CommentCountread correctly as 0.prepalso resolved intent from four sources, produced a correct ten-criterion brief, and recordedtwo genuine contradictions between the work item and the diff.
What this changes. Nothing about the decision — the tracker contract still belongs in two repo
docs, and a Box still must name no host word. What it changes is the premise: the addressing gap
is a latent risk, not an established break. Do not write this ticket up as fixing something that a
real run disproved. State it as removing a derivation nobody needs, which is the argument #387
actually made.
One fact worth keeping, because it was unknown before. The MCP server registered in the
Consumer's
.mcp.jsondoes load inside an Archon worktree, at a path(
~/.archon/workspaces/_git/DXP-DesignSystem/worktrees/…) that no human ever approved. Every Boxprompt that says "compose the system-skill the team registered under
tracker.access" depends onthat, and until now nothing had tested it. It belongs in the plugin's own docs.
One more criterion for this ticket
commands/cleanup.md:193states the rule and then breaks it in its own example:Two provider names and a subcommand, inside the sentence that forbids them. Added to the acceptance
criteria below.
orioltf commentedon Aug 18, 2026
How to start this session
Produces: the four Boxes reading the two repo docs, and a config with almost nothing left in it.
This is an editing session, not a deciding one — #387
is closed and its resolution comment holds the whole decision.
/wayfinder 373 #389here to claim it. Invoke/writing-for-agents— every file thisticket touches is a prompt or an
AGENTS.md, which is exactly that skill's subject. Do notinvoke
/grilling: nothing here is undecided.on this ticket, then the four
.archon/workflows/unic-dlc-*.yamlfiles.~/Sites/<customer>/DXP-DesignSystem/docs/agents/issue-tracker.mdandtriage-labels.md, merged as4a9e227. That is the shape a Box must be able to consume. Threeunic-dlc-pr-reviewruns readthose files and reasoned from them by line number, so the shape is proven, not proposed.
Traps
the one opaque
repo_refstring with no help and printed noBLOCKED; the two-level thread scanworked too. The addressing gap is a latent risk, not an observed failure. This ticket removes a
derivation nobody needs — that is the argument Decide the DLC's tracker contract on Azure DevOps #387 actually made.
trackerblock,classification.labels,project.pr_strategy,repo_refand theambiguous-repoguard all go, andMANDATORY_PATHSbecomes
project.branchingalone. Resist replacing any of them with a smaller key.behind transitional comments that name this ticket. Leaving them is how the two repositories start
disagreeing again. Second commit, second branch, its own PR.
lib/andtest/. If it has landed,config-schema.mjsand itsMANDATORY_PATHSno longer exist and the config shape is prose — which changes what "delete thekey" means. If it has not, this ticket edits a module Delete lib/ and test/ — take the plugin to zero code #381 then deletes.
style(unic-archon-dlc): reflow three Markdown files Prettier owns
fix(unic-archon-dlc): act on the Copilot findings that survived verif…
orioltf commentedon Aug 19, 2026
Merged: PR #393 (
624de9e) in this repository, and !5775 inDXP-DesignSystemfor the Consumer half. Twounic-dlc-pr-reviewiterations ran against !5775 and proved the parts nothing here could test —bootstrapready with notrackerblock, § Access composing the MCP with notracker.access, § Addressing finding the PR with norepo_ref, andreconcilematching three findings by hash across iterations. Follow-ups filed: #394, #395, #396.docs(unic-archon-dlc): use the plugin's own ADR amendment convention,…
fix(unic-archon-dlc): the review findings both axes raised on the rew…
fix(unic-archon-dlc): a re-review with a self-consistency axis found …