Blocked-by: #9255
Commissioned by maintainer ruling on #9255 (2026-08-18, live PM chat with the triage seat, session session_01EUZUjvnLsqwHVkXkTv8TKQ; remedies 1+3 approved, split into two cards). This card is remedy 3.
Scope
Extend scripts/check-adr-anchors.mjs one layer down: for every ADR-NNNN Dk citation appearing in anchor invariants and anchored-file comments, verify Dk resolves to an actual decision heading of the cited ADR document. Today the gate checks only the number layer (file exists, number unambiguous per #5992, tombstones unanchorable per #7329), so a decision letter pointing at the wrong decision — the #8386 / #9255 failure family — is green.
Sequencing (why blocked)
Must land after#9255's retarget sweep, otherwise the new check goes red on the ~20 known-bad ADR-0057 D10 citations it exists to catch. On first run after that, any additional bad letters it reds out are their own findings, not reasons to weaken the check.
Refs
#9255 (remedy 1: the retarget this waits on) · #8386 (same family: D-content mismatch) · #5992 (number-layer collisions) · #7329 (tombstone anchoring).
Blocked-by: #9255
Commissioned by maintainer ruling on #9255 (2026-08-18, live PM chat with the triage seat, session
session_01EUZUjvnLsqwHVkXkTv8TKQ; remedies 1+3 approved, split into two cards). This card is remedy 3.Scope
Extend
scripts/check-adr-anchors.mjsone layer down: for everyADR-NNNN Dkcitation appearing in anchor invariants and anchored-file comments, verifyDkresolves to an actual decision heading of the cited ADR document. Today the gate checks only the number layer (file exists, number unambiguous per #5992, tombstones unanchorable per #7329), so a decision letter pointing at the wrong decision — the #8386 / #9255 failure family — is green.Sequencing (why blocked)
Must land after#9255's retarget sweep, otherwise the new check goes red on the ~20 known-bad
ADR-0057 D10citations it exists to catch. On first run after that, any additional bad letters it reds out are their own findings, not reasons to weaken the check.Refs
#9255 (remedy 1: the retarget this waits on) · #8386 (same family: D-content mismatch) · #5992 (number-layer collisions) · #7329 (tombstone anchoring).