Found while implementing #8292 (PRs #8384 / #8385). Outside both of that card's declared file surfaces (content/docs/permissions/authorization.mdx and docs/adr/0086-*), and a different defect class from it, so deliberately not fixed there. Filed unassigned, no domain:* label — routing and grading are the triage seat's call.
The measurement
docs/adr/0066-unified-authorization-model.md:45 ends its "Landed (2026-07)" paragraph on capability declaration with:
> Aligns with ADR-0094 D5 (retire implicit managed_by-guessing).
ADR-0094 D5 is "Env-scope overlays of package-owned sets are FIRST-CLASS customizations". It is about permission-set overlays. It does not discuss capabilities, placeholder derivation, or back-doors at all:
$ grep -ni "capabilit" docs/adr/0094-sys-permission-set-pure-projection.md
(no hit anywhere in D5's body, lines 197-236)
$ grep -ni "back-door|backdoor|guess" docs/adr/0094-sys-permission-set-pure-projection.md
(no hits in the file)
The claim being attributed is real and correct — retiring the implicit back-door where a capability existed only as an untitled placeholder derived from a permission set's systemPermissions[], implemented in bootstrap-declared-capabilities.ts. It is ADR-0066 D1's own direction. Only the cross-reference is wrong.
Why it is worth fixing now rather than later
The cite has become actively misleading since 2026-08-09: ADR-0094 D5 is RETIRED (D5-R, #6858 / PR #6962). A reader following "Aligns with ADR-0094 D5" from a paragraph describing live, shipped behavior lands on a section whose heading says RETIRED 2026-08-09, and has no way to tell that the retirement does not touch the claim they came in for. That is the same reader-harm class as #8292, arriving by a different route.
Second site — it propagated
content/docs/permissions/authorization.mdx:190 (published, customer-facing) carries the inherited version:
> This is the ADR-0094 D5 direction: retire the implicit managed_by-guessing back-doors in favour of explicit, attributable declarations.
This is why the fix spans two files and did not fit inside #8292: #8292's PR 1 owns authorization.mdx but not 0066-*, and fixing only the docs copy would leave the ADR still asserting the wrong alignment for the next reader to re-propagate.
Suggested shape (triage's call)
Re-point both to ADR-0066 D1 — the decision that actually holds the DEFINE/GRANT/REQUIRE separation and the explicit-declaration direction. If some part of the alignment really was meant to reference ADR-0094, name the surviving decision (D1 — the metadata layer as the only authoritative store) rather than D5. Both sites are one sentence each. docs/adr/** is in the diff ⇒ maintainer-merged PR; if the docs half is wanted on the normal path it needs the #8290/#8291 two-PR split again.
Dedup
Searched open issues by keyword (ADR citation / cross-reference accuracy / retired section / defineCapability) and by path. Nothing covers this pair. Closest is #7963 (ADR-0002 citing an ADR-0001 that never existed) — same family of defect, different documents and different cause; not a duplicate. #8292 is the card this was found under and does not cover it.
Refs: #8292 / PRs #8384, #8385 · #6858 / PR #6962 (D5-R) · #7963 (related, not duplicate) · ADR-0066, ADR-0094
Generated by Claude Code
Found while implementing #8292 (PRs #8384 / #8385). Outside both of that card's declared file surfaces (
content/docs/permissions/authorization.mdxanddocs/adr/0086-*), and a different defect class from it, so deliberately not fixed there. Filed unassigned, nodomain:*label — routing and grading are the triage seat's call.The measurement
docs/adr/0066-unified-authorization-model.md:45ends its "Landed (2026-07)" paragraph on capability declaration with:> Aligns with ADR-0094 D5 (retire implicit
managed_by-guessing).ADR-0094 D5 is "Env-scope overlays of package-owned sets are FIRST-CLASS customizations". It is about permission-set overlays. It does not discuss capabilities, placeholder derivation, or back-doors at all:
The claim being attributed is real and correct — retiring the implicit back-door where a capability existed only as an untitled placeholder derived from a permission set's
systemPermissions[], implemented inbootstrap-declared-capabilities.ts. It is ADR-0066 D1's own direction. Only the cross-reference is wrong.Why it is worth fixing now rather than later
The cite has become actively misleading since 2026-08-09: ADR-0094 D5 is RETIRED (D5-R, #6858 / PR #6962). A reader following "Aligns with ADR-0094 D5" from a paragraph describing live, shipped behavior lands on a section whose heading says
RETIRED 2026-08-09, and has no way to tell that the retirement does not touch the claim they came in for. That is the same reader-harm class as #8292, arriving by a different route.Second site — it propagated
content/docs/permissions/authorization.mdx:190(published, customer-facing) carries the inherited version:> This is the ADR-0094 D5 direction: retire the implicit
managed_by-guessing back-doors in favour of explicit, attributable declarations.This is why the fix spans two files and did not fit inside #8292: #8292's PR 1 owns
authorization.mdxbut not0066-*, and fixing only the docs copy would leave the ADR still asserting the wrong alignment for the next reader to re-propagate.Suggested shape (triage's call)
Re-point both to ADR-0066 D1 — the decision that actually holds the DEFINE/GRANT/REQUIRE separation and the explicit-declaration direction. If some part of the alignment really was meant to reference ADR-0094, name the surviving decision (D1 — the metadata layer as the only authoritative store) rather than D5. Both sites are one sentence each.
docs/adr/**is in the diff ⇒ maintainer-merged PR; if the docs half is wanted on the normal path it needs the #8290/#8291 two-PR split again.Dedup
Searched open issues by keyword (ADR citation / cross-reference accuracy / retired section / defineCapability) and by path. Nothing covers this pair. Closest is #7963 (ADR-0002 citing an ADR-0001 that never existed) — same family of defect, different documents and different cause; not a duplicate. #8292 is the card this was found under and does not cover it.
Refs: #8292 / PRs #8384, #8385 · #6858 / PR #6962 (D5-R) · #7963 (related, not duplicate) · ADR-0066, ADR-0094
Generated by Claude Code