Skip to content

docs(agents): say the pre-push hook now refuses a model identifier in the trailer pair - #17771

Merged
os-zhuang merged 1 commit into
mainfrom
claude/issue-17280-agents-pointer
Sep 12, 2026
Merged

docs(agents): say the pre-push hook now refuses a model identifier in the trailer pair#17771
os-zhuang merged 1 commit into
mainfrom
claude/issue-17280-agents-pointer

Conversation

@claude

@claude claude Bot commented Sep 12, 2026

Copy link
Copy Markdown
Contributor

Fixes #17280

One clause on the existing 「Commit message」 sentence in AGENTS.md: the pre-push hook now refuses a model identifier in the trailer pair. The rule already declared the pair model-free; until PR #17770 nothing read it, and a reader of the rule could not tell whether anything ever would.

The enforcement itself is PR #17770 (scripts/check-commit-card-trailers.mjs, Part of #17280). This PR is the governed half and closes the card, because a rule and its instrument are one statement to a reader. ⛔ Draft, human-merged: node scripts/pm/check-governed-merges.mjs --test AGENTS.md exits 3 (GOVERNED). No seat flips it ready, enqueues it, or arms auto-merge.

The edit

Before, the sentence declared the pair and stopped. After, it declares the pair, names the instrument, and continues unchanged: …and the pre-push hook refuses a model identifier in that pair; no model identifier lands in a PR title or body, a comment, a changeset, a doc or a code comment. The reporting exemption, the model-free pair and 「landed history is not rewritten」 are untouched, and nothing else in the file moves.

Where the hook enforces mechanically, the rule is stated once here and the script's own header is the authority on detail — which is the convention this file already states for itself, so the clause deliberately says what is refused and not how.

Budget

Paid by density, not by a new line. The file is at 1075/1075 under the line ratchet with zero headroom, so the clause is absorbed by re-wrapping the same five lines: two lines changed, ⛔ no line added, ⛔ no rule deleted, ⛔ ceiling untouched.

✓ check-skill-line-ratchet: AGENTS.md is 1075 lines (ceiling 1075; headroom 0).
✓ check-skill-line-ratchet: AGENTS.md: widest table row is 768 bytes (pin 768; headroom 0).

Every line in the rewrapped block is within the 120-byte budget, and the inline code spans are kept whole on one line each rather than split across the wrap.

Verification

Gates derived with node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstack (the script took the change set itself, three-dot): 14 commands, all run, all exit 0 — including check:pm-skill-ratchet, check:pm-governed-prose, check:pm-governed-merges, check:pm-skill-id-lint and check:nul-bytes. Exit codes were captured before any pipe.

skip-changeset: a repo-root instruction file that no package's files[] ships — nothing published moves.

维护者速读(草稿)

改了什么AGENTS.md 里「Commit message」那句加一条从句:commit 的 trailer pair 里带模型名,现在由 pre-push 钩子当场拒绝。规则文字本身没变,只是把执行者写进了同一句话。

为什么改 — 这条规则此前是「声明了但没有任何东西执行」:一个班次里 5 条分支上的 18 个 commit 带着模型名过了绿 CI,另一个席位量到最近 200 个已落地 commit 正文里有 73 个带模型名。按 ADR-0049 的 enforce-or-remove,裁决是 ENFORCE,机制在 PR #17770;本 PR 是规则侧的那一半,让读规则的人同时知道它会被拒。

风险与代价(含回滚) — 风险很小:这是一句话的重排,不新增规则、不改变任何既有判词。代价是 AGENTS.md 已在行数棘轮上限,本次以密度支付(重排同一段五行),没有占用未来预算。回滚 = revert 本 PR;规则回到「声明而不执行」的状态,机制 PR 可独立存续或一并 revert,两者没有代码依赖。

席位意见

你要做的 — 这是受管面,需要你手工合并(⛔ 不进合并队列、不挂 auto-merge)。合并前值得确认一件事:你是否同意「AGENTS.md 拥有这个格子」这一裁决 —— 即 harness 的署名模板写的是带模型名的 co-author 行,而本仓规则要求 model-free,冲突以本仓规则为准。已按此裁决执行;若你的判断相反,机制 PR #17770 需要一并撤回。


Generated by Claude Code

…r pair

The rule declared the pair model-free and nothing read it. The clause names
the instrument so a reader learns the rule and its enforcement in one place;
the script's header stays the authority on what it judges.

Paid by density on the existing sentence — no line added, ceiling untouched.

Claude-Session: https://claude.ai/code/session_01MCLBsUgfykL74aU716rzVK
Co-authored-by: Claude <noreply@anthropic.com>
@claude

claude Bot commented Sep 12, 2026

Copy link
Copy Markdown
Contributor Author

维护者速读(终稿)

改了什么AGENTS.md 「Commit message」那句加一个分句:「and the pre-push hook refuses a model identifier in that pair」。规则本身(trailer pair 一律 model-free)早就在;缺的是「现在有钩子会拦」这一句。两行改动(107 / 111 字节),文件仍 1075/1075,不加行、不删规则、不动上限。

为什么改#17280 实测 5 条开分支 18 个 commit、main 最近 200 个 squash 提交里 73 个带模型名 trailer,全绿过 CI。按 ADR-0049 enforce-or-remove,代码半边 PR #17770 让 pre-push 钩子(今早 PR #17745 落地的那把)多拒一类:co-author 值不是裸的 Claude <noreply@anthropic.com>、或带 claude-<model> id、或 session trailer 不是 session URL。范围只在 trailer 值:正文提到模型名不拦,人类 co-author 不判,无 trailer 的合并提交放行。既有 18 + 73 条按「已落地历史不改写」原地不动。哪个权威说了算:AGENTS.md;harness 的署名块只是报告格式。

风险与代价(含回滚) — 受管面一句话;代码半边本席按契约档复核,自检 56 → 81 例、真钩子推送实测拒了一次、消融证明去掉扫描就放行。回滚 = revert 各自 PR。

席位意见 — 席内按契约复审档复核通过,建议合并;PR #17770 由本席走队列,先后无所谓。

你要做的 — 受管面:请人工合并 PR #17771(本席不翻 ready、不入队、不挂 auto-merge)。


Generated by Claude Code

@os-zhuang
os-zhuang marked this pull request as ready for review September 12, 2026 06:03
@os-zhuang
os-zhuang enabled auto-merge September 12, 2026 06:03
@os-zhuang
os-zhuang added this pull request to the merge queue Sep 12, 2026
Merged via the queue into main with commit 6682c5d Sep 12, 2026
35 checks passed
@os-zhuang
os-zhuang deleted the claude/issue-17280-agents-pointer branch September 12, 2026 06:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation needs-user-decision size/xs skip-changeset PR has no user-facing published change; bypasses the changeset gate

Projects

None yet

2 participants