Uh oh!
There was an error while loading. Please reload this page.
docs(agents): Prime Directive #14 governs three surfaces, and names the register that holds them - #9527
Conversation
…he register
PD#14 scoped itself to `docs/adr/**` while the required check it describes
(`ADR maintainer approval`) has held `.claude/skills/**` since 2026-08-17 and
`skills/**` since 2026-08-18. Two more sites in the same file enumerated the
same one prefix: the §7 arming exclusion and the Post-Task Checklist exception.
- PD#14 becomes a class rule ("a governed surface"), carries both maintainer
rulings verbatim with dates, names the three prefixes ONCE, and points at
`GOVERNED_SURFACES` in scripts/check-adr-merge-approval.mjs as the register —
with the runnable one-liner that prints today's set.
- §7 and the Post-Task Checklist stop enumerating and defer to #14, so the
next surface addition edits one place, not four.
- Corrects the same paragraph's stale description of the enforcement: the gate
reads state, not actors (maintainer ruling 2026-08-12), and CODEOWNERS routes
only `docs/adr/`.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XqDQYVU5smx29ts9pAErjaA seat working on a skill lands in the Skills section, not in the Prime Directives. It described both roots and said nothing about their merge posture. One class pointer, no second enumeration. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XqDQYVU5smx29ts9pAErja
…te regime The per-PR `ADR maintainer approval` check retired on main (2026-08-18 ruling: a human merge IS the review record), `scripts/check-adr-merge-approval.mjs` is deleted, and the register moved to `scripts/pm/check-governed-merges.mjs` — and widened to five surfaces, `AGENTS.md` and `CLAUDE.md` among them. Kept from this branch: the class-rule reframing, the four-copies-to-one consolidation, the §7 / Post-Task Checklist / Skills-section edits. Rewritten: the surface list now quotes the maintainer's own 2026-08-18 definition verbatim, the one-liner resolves against the new register, and the enforcement paragraph states the real regime — discipline is the only pre-merge barrier, detection is the report-only post-merge audit, and CODEOWNERS routes `docs/adr/` alone of the five. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XqDQYVU5smx29ts9pAErja
Rebased onto One state change on this PR I did not make, recorded here rather than quietly fixed. From the timeline: The queue ejected it because the branch had gone dirty against I have converted it back to draft. Nothing was armed ( Generated by Claude Code Generated by Claude Code |
Uh oh!
There was an error while loading. Please reload this page.
Fixes#9403
Prime Directive #14 scoped itself to
docs/adr/**while the governed set had grown past it. Rebased ontomainafter the per-PR approval check retired at86ea8df7d; the card's work was untouched by that landing and is still missing frommain.The card named one stale site. There were four.
docs/adr/**, twicedocs/adr/**"docs/adr/**"Updating only #14 would have left two sites telling a seat it may arm a skill PR.
The shape: one enumeration, and it is now a quotation rather than a copy
GOVERNED_SURFACESinscripts/pm/check-governed-merges.mjs— and gives a one-liner that prints today's set.Four hand-maintained copies to one. Deleting the last one was considered and rejected: a seat must be able to decide from
AGENTS.mdalone whether the PR in front of it is governed.What the rebase changed, beyond conflict resolution
86ea8df7dretired the per-PR check, deletedscripts/check-adr-merge-approval.mjs, moved the register, and widened the surface. Three assertions in the earlier draft of this PR were false againstmainand are rewritten:scripts/pm/check-governed-merges.mjsand was run, not transcribed:ADR maintainer approvalno longer exists. The enforcement half now states the real regime: a human merge IS the review record, discipline is the only pre-merge barrier, and detection is the report-only post-merge audit whose list every entry should match a merge the maintainer made in person. The directive says out loud that the retirement is not a relaxation.AGENTS.mdandCLAUDE.mdare on it, so this PR is itself a governed-surface PR. §7 now says so explicitly, because that is where a seat decides whether to arm.The
.claude/widening was intended, not silent. The maintainer's approval quotes the unified list verbatim, including the parenthetical: 含 agents/hooks/settings,不只 skills. Confirmed in the audit script's header and reproduced in the directive as the ruling's own words.CODEOWNERS re-read rather than recalled. It is now three rows:
/docs/adr/,/.github/CODEOWNERS,/scripts/pm/check-governed-merges.mjs. Of the five governed surfaces exactly one is routed, so on the other four nothing requests the maintainer's review automatically. Stated as fact; no fix proposed here — #9513 stays open and undecided.Verification
Gate union re-derived from the actual changed path and run after the final commit, at
428306907, clean tree, one file changed:check:pm-skill-id-lintre-run after the rewrite as asked: green. The directive quotes three rulings and cites no issue number.Reverse verification, both directions, from the committed state:
check:pm-skill-id-lintred naming the line. Restored byte-identical.CLAUDE.mdback out of the directive's quoted list left the union green. Nothing ties the prose toGOVERNED_SURFACES; the register moving files did not change that. Filed as finding: nothing ties AGENTS.md's governed-surface enumeration to GOVERNED_SURFACES — #9491's pin covers check-run names, not path prefixes #9525.No changeset:
AGENTS.mdpublishes nothing. Labelledskip-changeset;Check Changesetreports skipped.Findings filed alongside, unassigned, not touched here
GOVERNED_SURFACES; the 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 pin covers check-run names, not path prefixes.Generated by Claude Code
Generated by Claude Code