Skip to content

AGENTS.md Prime Directive #14 names only docs/adr/**, but the gate it describes now also holds .claude/skills/** #9403

Description

@os-zhuang

Filed out-of-scope while implementing #9395 (the ADR maintainer approval gate now refuses an unapproved or armed .claude/skills/** PR, per the #9319 decision-2 ruling).

The gap

Prime Directive #14's own text (AGENTS.md, "⛔ An ADR is confirmed and merged by the maintainer, by hand") scopes itself entirely to one prefix:

on any PR whose diff touches docs/adr/**, ⛔ never merge it, ⛔ never add it to the merge queue, ⛔ never call enable_pr_auto_merge.

.claude/skills/** appears nowhere in the directive. The human-merge reservation for skill PRs lives in the pm-dispatch skill's ACCEPT fork and in the maintainer ruling recorded on #7548 (2026-08-11, "skills updates are ADR-class — human review/merge required"), and #9319 refers to the reservation as Prime Directive #14 — but a seat that reads AGENTS.md alone is told only about ADRs.

After #9395 the gate refuses skill PRs citing "Prime Directive #14" in its failure text. That citation should be checkable against a directive that names the surface.

Suggested fix (maintainer's call — this is governance prose, not code)

One sentence inside #14 naming .claude/skills/** alongside docs/adr/**, noting that both are now machine-enforced by the same required check, and stating where the published skills/ catalog stands (see the sibling finding filed alongside this one).

Not fixed in #9395's PR: that card's surface is scripts/check-adr-merge-approval.mjs + .github/workflows/adr-merge-approval.yml, and rewording a Prime Directive is the maintainer's, not a rider on a gate PR.

Refs: #9395 (the gate change) · #9319 (the ruling) · #7548 (the 2026-08-11 skills-are-ADR-class ruling) · #9238 (the bypass instance).

Metadata

Metadata

Assignees

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions