Found while classifying the ADR-0057 D10 citations for #11501 (PR #11780). Out of that card's scope — it is a different ADR-0057 and a different decision — so recording it rather than fixing it there.
What
Three citations in the published skill package spell ADR-0057 bare:
skills/objectstack-data/SKILL.md:84 — lifecycle key: "Data retention/rotation/archival contract (ADR-0057)"skills/objectstack-data/SKILL.md:973 — same key, the reference tableskills/objectstack-data/rules/lifecycle.md:4 — "reclaimed (ADR-0057)"
All three mean 0057-system-data-lifecycle-and-retention.md. But 0057 is one of the three numbers claimed by two unrelated records (#5992, frozen on check-adr-anchors's shrink-only KNOWN_NUMBER_COLLISIONS), the other being 0057-erp-authorization-core-business-units-and-scope-depth.md — ERP authorization. A reader who greps ADR-0057 lands on two documents with nothing to choose between them, and here the two are as far apart as the pair gets: retention/reclamation vs. authorization.
Why this is not just the known #5992 "B" work
check-adr-anchors.mjs's header already records that slug-qualified references for the three existing pairs are separate work, "amortised as those files are touched" — so the in-repo half is known and deliberately deferred, and this is not a request to reopen it.
The distinct part is the surface: skills/** is the published catalog, and it lands in codebases this repo cannot see. In-repo, a bare ADR-0057 costs a reader one extra grep and they find both records. In a customer's checkout there is no docs/adr/ at all, so the citation resolves to nothing for its actual audience — and the audience is an authoring agent, which is the reader least able to recover from a dangling reference.
Worth noting the neighbouring citation is fine and shows the intended shape: SKILL.md:651 cites ADR-0057 D1 for readScope/writeScope, and the ERP record's D1 is "Scope-depth on object grants". That one is unambiguous because the lifecycle record carries no D-numbered headings at all (it uses §3.1–§3.6). Only the bare-number citations are exposed.
Suggested disposition
Not obviously worth a PR on its own. Candidates, cheapest first:
- Do nothing — accept that a published bare ADR citation is decorative for the external reader. Defensible; it is what ships today.
- Slug-qualify in place —
ADR-0057 (system data lifecycle), three sites, zero net lines. Resolves the ambiguity for a reader who has the repo and reads as a plain noun phrase for one who does not. - Drop the citation from the published copy and keep the rationale in-repo, if the position is that published skills should not cite internal decision records at all.
⚠️ Whichever route: skills/** is a governed surface (Prime Directive #14), so any fix stays draft for a human merge, and per the maintainer's 2026-08-21 ruling on published-skill size it must not grow the package — route 2 is line-neutral, route 3 shrinks it.
Dedup: searched open issues for the ADR-number collision and for ADR-0057 — nearest neighbours are #9072 (the ADR-0081 / cloud ADR-0081 ambiguity, a different pair) and #11763 (unchecked registry numbers, unrelated). Nothing covers this.
Generated by Claude Code
Found while classifying the
ADR-0057 D10citations for #11501 (PR #11780). Out of that card's scope — it is a different ADR-0057 and a different decision — so recording it rather than fixing it there.What
Three citations in the published skill package spell
ADR-0057bare:skills/objectstack-data/SKILL.md:84—lifecyclekey: "Data retention/rotation/archival contract (ADR-0057)"skills/objectstack-data/SKILL.md:973— same key, the reference tableskills/objectstack-data/rules/lifecycle.md:4— "reclaimed (ADR-0057)"All three mean
0057-system-data-lifecycle-and-retention.md. But0057is one of the three numbers claimed by two unrelated records (#5992, frozen oncheck-adr-anchors's shrink-onlyKNOWN_NUMBER_COLLISIONS), the other being0057-erp-authorization-core-business-units-and-scope-depth.md— ERP authorization. A reader who grepsADR-0057lands on two documents with nothing to choose between them, and here the two are as far apart as the pair gets: retention/reclamation vs. authorization.Why this is not just the known #5992 "B" work
check-adr-anchors.mjs's header already records that slug-qualified references for the three existing pairs are separate work, "amortised as those files are touched" — so the in-repo half is known and deliberately deferred, and this is not a request to reopen it.The distinct part is the surface:
skills/**is the published catalog, and it lands in codebases this repo cannot see. In-repo, a bareADR-0057costs a reader one extra grep and they find both records. In a customer's checkout there is nodocs/adr/at all, so the citation resolves to nothing for its actual audience — and the audience is an authoring agent, which is the reader least able to recover from a dangling reference.Worth noting the neighbouring citation is fine and shows the intended shape:
SKILL.md:651citesADR-0057 D1forreadScope/writeScope, and the ERP record's D1 is "Scope-depth on object grants". That one is unambiguous because the lifecycle record carries noD-numbered headings at all (it uses§3.1–§3.6). Only the bare-number citations are exposed.Suggested disposition
Not obviously worth a PR on its own. Candidates, cheapest first:
ADR-0057 (system data lifecycle), three sites, zero net lines. Resolves the ambiguity for a reader who has the repo and reads as a plain noun phrase for one who does not.skills/**is a governed surface (Prime Directive #14), so any fix stays draft for a human merge, and per the maintainer's 2026-08-21 ruling on published-skill size it must not grow the package — route 2 is line-neutral, route 3 shrinks it.Dedup: searched open issues for the ADR-number collision and for
ADR-0057— nearest neighbours are #9072 (theADR-0081/cloud ADR-0081ambiguity, a different pair) and #11763 (unchecked registry numbers, unrelated). Nothing covers this.Generated by Claude Code