You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Filed unassigned by the dev seat implementing #9403 (PR linked below). Observation-class: recording a measured gap, not proposing to widen that PR.
What was measured
#9403's whole reason for existing is that AGENTS.md Prime Directive #14 enumerated one governed prefix (docs/adr/**) while the gate it describes had grown to three (.claude/skills/** since #9395, skills/** since #9511). The fix collapses four prose sites down to one enumeration and points at the register. But that one remaining enumeration is still hand-maintained prose, and no gate reads it.
Measured on the post-fix branch (claude/issue-9403-pd14-names-governed-surfaces, HEAD ebd2eb268) by dropping skills/** back out of the directive — i.e. reproducing exactly the defect #9403 exists to fix — and running the file's whole derived gate union:
Green across the board on a Prime Directive that under-claims the enforcement it describes.
Positive control (so this is "the assertion is missing", not "the file is unscanned"): appending See #9403 for context. to the same file turns check:pm-skill-id-lint red, naming AGENTS.md:943. The gates do read the file. None of them reads the prefix list.
Why it matters
This is the #9491 shape, one axis over. #9491 pinned required check-run names across instruction surfaces after a rename left AGENTS.md and the review checklist stale with nothing red. The governed path prefixes are the same kind of literal: operative agent-protocol text, duplicated out of a machine registry, with no tie back. The set has grown twice in two days (2026-08-17, 2026-08-18), and each growth required a human to notice the prose.
And the failure direction is the bad one. A directive that under-claims coverage is an omission; a directive that claims coverage the gate does not have manufactures a false sense of enforcement, and readers stop judging for themselves. Both are reachable from an unpinned enumeration.
A second stale copy of the same fact, in a different file, was found in the same sweep: scripts/check-required-contexts.mjs's registry row for the ADR maintainer approval context still describes what it carries as "the rule that a docs/adr/** diff may not merge without an APPROVED review" — one of three prefixes. Also unread by anything.
Note the interaction: #9495 proposes retiring the per-PR gate for a post-merge audit. If that lands, the register moves and any pin written against today's shape moves with it.
Refs: #9403 (the card that surfaced this) · #9491 (the same shape for check-run names) · #9511 / #9404 (the third surface) · #9395 / #9319 (the second) · #9495 (may move the register)
Filed unassigned by the dev seat implementing #9403 (PR linked below). Observation-class: recording a measured gap, not proposing to widen that PR.
What was measured
#9403's whole reason for existing is that
AGENTS.mdPrime Directive #14 enumerated one governed prefix (docs/adr/**) while the gate it describes had grown to three (.claude/skills/**since #9395,skills/**since #9511). The fix collapses four prose sites down to one enumeration and points at the register. But that one remaining enumeration is still hand-maintained prose, and no gate reads it.Measured on the post-fix branch (
claude/issue-9403-pd14-names-governed-surfaces, HEADebd2eb268) by droppingskills/**back out of the directive — i.e. reproducing exactly the defect #9403 exists to fix — and running the file's whole derived gate union:Green across the board on a Prime Directive that under-claims the enforcement it describes.
Positive control (so this is "the assertion is missing", not "the file is unscanned"): appending
See #9403 for context.to the same file turnscheck:pm-skill-id-lintred, namingAGENTS.md:943. The gates do read the file. None of them reads the prefix list.Why it matters
This is the #9491 shape, one axis over. #9491 pinned required check-run names across instruction surfaces after a rename left
AGENTS.mdand the review checklist stale with nothing red. The governed path prefixes are the same kind of literal: operative agent-protocol text, duplicated out of a machine registry, with no tie back. The set has grown twice in two days (2026-08-17, 2026-08-18), and each growth required a human to notice the prose.And the failure direction is the bad one. A directive that under-claims coverage is an omission; a directive that claims coverage the gate does not have manufactures a false sense of enforcement, and readers stop judging for themselves. Both are reachable from an unpinned enumeration.
A second stale copy of the same fact, in a different file, was found in the same sweep:
scripts/check-required-contexts.mjs's registry row for theADR maintainer approvalcontext still describes what it carries as "the rule that a docs/adr/** diff may not merge without an APPROVED review" — one of three prefixes. Also unread by anything.Directions (not ruled — this is a finding)
GOVERNED_SURFACESis already exported fromscripts/check-adr-merge-approval.mjs(governedGlobs()prints it). A check could require every scanned instruction surface that enumerates governed prefixes to name all of them. Cost: needs a marker or a scan-set entry, because "recognises a path-prefix-shaped literal in bilingual prose" has the same intractability finding: required check-run names are pinned in the workflows but unpinned in every agent instruction file that names them, so a rename leaves the instructions stale with nothing red #9491 hit and cut.AGENTS.mdalone whether the PR in front of it is governed, which is the readability AGENTS.md Prime Directive #14 names onlydocs/adr/**, but the gate it describes now also holds.claude/skills/**#9403 was filed to restore.docs/adr/**, but the gate it describes now also holds.claude/skills/**#9403 until feat(governance): govern the published skills/ catalog under the ADR maintainer approval gate #9511 merged). Honest, but it is the state that produced AGENTS.md Prime Directive #14 names onlydocs/adr/**, but the gate it describes now also holds.claude/skills/**#9403 and finding: required check-run names are pinned in the workflows but unpinned in every agent instruction file that names them, so a rename leaves the instructions stale with nothing red #9491.Note the interaction: #9495 proposes retiring the per-PR gate for a post-merge audit. If that lands, the register moves and any pin written against today's shape moves with it.
Refs: #9403 (the card that surfaced this) · #9491 (the same shape for check-run names) · #9511 / #9404 (the third surface) · #9395 / #9319 (the second) · #9495 (may move the register)
Generated by Claude Code