Skip to content

docs(pm-dispatch): hang the keys beside the contract-review gate (discoverability only) - #11342

Merged
hotlong merged 1 commit into
mainfrom
claude/issue-11335-key-beside-the-gate
Aug 23, 2026
Merged

docs(pm-dispatch): hang the keys beside the contract-review gate (discoverability only)#11342
hotlong merged 1 commit into
mainfrom
claude/issue-11335-key-beside-the-gate

Conversation

@claude

@claudeclaudeBot commented Aug 23, 2026

Copy link
Copy Markdown
Contributor

Fixes#11335

What this is

Discoverability text only — hanging the keys beside the needs:contract-review gate. The card's operative scope is the grading comment: the review-chain mechanism, the seat-session fuse, the value and semantics of CONTRACT_REVIEW_TIER, and who may clear the label are all explicitly untouched (the mechanism was confirmed correct by the card's own four independent reproductions).

The four edits

  1. scripts/pm/dispatch-gates.mjs — one JSDoc line beside CONTRACT_REVIEW_TIER pointing at the SKILL.md rulebook (the 「入队与落地」 clause-② gate + the needs:contract-review review-chain bullets). The seat greps the constant; the constant now says where its rulebook lives. No behavior change; the script's self-test stays green (✓ dispatch-gates self-test: 557 cases pass.).
  2. SKILL.md, the 「保险丝只对座位自会话有效」 passage — the subagent clause now reads 「subagent 的实际服役档位现无法对 CONTRACT_REVIEW_TIER 自证」, so a grep for the constant lands on the operative sentence. In-sentence, line-neutral.
  3. Same passage — one loud anti-pattern sentence appended in-line: 「⛔ 反模式:派更高档位子 agent 去执行契约复审 —— 看似满足档位,实为构造上不可测量(多次实测:子代理读回父会话档位并拒绝出裁决)。」 In-sentence, line-neutral.
  4. SKILL.md 「平台读数纪律」 — one situation-index line: 「GitHub 限流 ⇒ 先 GET /rate_limit(零配额)取精确 reset 与余量,⛔ 不盲等;公开仓降级 WebFetch 读法与限流细则见 platform-readings。」 Detail stays in references; both remedies verified present in references/platform-readings.md.

Ratchet payment (SKILL.md at 682/682, headroom 0)

Ratchet verdict quoted from the mechanical-guard index: 「本文件行数只降不升(pnpm check:pm-skill-ratchet);抬上限需维护者裁决引用在 PR 正文;⛔ re-wrap(折行合并)不得用作筹行 —— 棘轮治理的是内容体量,行数只是机读代理,新增以删减付账;密度优化仅随净减内容的 PR 顺带(维护者 2026-08-17 授权席裁)」.

  • Added: 1 line (edit 4). Edits 2–3 are in-sentence and line-neutral as scoped.
  • Paid by: deleting the Guardrails clause 「每个 dev agent 都在每仓专属的自有 worktree 里干活(hook 强制;os-dev 定义重申);」 and merging its bullet from 3 physical lines to 2. Least load-bearing by the grading's own preference criterion: the clause self-declared its redundancy — it is mechanically enforced (guard-main-checkout hooks), restated in the os-dev agent definition, and still carried inside this file by the mechanical-guard index row (guard-main-checkout / guard-shared-stash hooks | worktree-first 与 stash 禁令的机械面). The line saving is realized at the deletion point, not by re-wrapping untouched text; the bullet's remaining content (batch cap, file-face disjointness, seat rules) is unchanged.
  • Mechanical provenance check (standard the lane held PR Re-verify a cleared stop condition: the reviewer line and the brief-construction note #11334 to): date inventory (grep -o of 20xx-xx-xx, uniq-counted) and bracketed-quote inventory (grep -o '「[^」]*」', sorted) taken before and after — both byte-identical (19 distinct dates; 63 quotes). No dated ruling or verbatim quote deleted; the new lines add no dates and no bracketed quotes.
  • Result: ✓ check-skill-line-ratchet: .claude/skills/pm-dispatch/SKILL.md is 682 lines (ceiling 682; headroom 0).

Verification (union re-run at final commit 00f5c09b)

All gates named by node scripts/pm/dispatch-gates.mjs --repo objectstack-ai/objectstack (no paths — change set derived by the script from merge-base) ran green at 00f5c09b, exit codes captured directly (no pipe between command and $?):

check:pm-dispatch-gates · check:pm-governed-prose · check:pm-skill-id-lint · check:pm-skill-ratchet · check:skill-frame-sync · check:pm-governed-merges · check:doc-authoring · check:entry-guard · check:parse-guard · check:cross-package-test-inputs · check:pnpm-filter-targets · check-ci-filter-parity · check-cross-package-test-inputs (ci.yml) · @objectstack/lint check:doc-formula-expressions — all EXIT=0. Plus check:nul-bytes (any-edit rule): check-nul-bytes: OK. Key verdict lines:

  • ✓ check-skill-id-lint: 19 file(s) clean (pattern /#[0-9]{3,}/g). (no issue numbers in operative text)
  • binding sentence present in all 4; 4 count mention(s) agree; 42 markdown files scanned for undeclared copies. (frame copies did not move)
  • ✓ dispatch-gates self-test: 557 cases pass.

Governed surface

This is a mixed governed diff (.claude/skills/pm-dispatch/SKILL.md): this PR opens draft and stays draft — human (maintainer) merge only; no auto-merge, no queue entry.skip-changeset applies (no published package is touched); label applied via the additive endpoint and read back.

Generated by Claude Code


Generated by Claude Code

…nstant points at its rulebook, operative clauses grep-able by the constant, rate-limit situation index
Discoverability text only; the review-chain mechanism, the subagent fuse, and
CONTRACT_REVIEW_TIER's value and semantics are untouched.
- dispatch-gates.mjs: one JSDoc line beside CONTRACT_REVIEW_TIER pointing at
the SKILL.md review-chain clauses (the seat greps the constant; the constant
now says where its rulebook lives).
- SKILL.md, the seat-session-only fuse passage: the subagent-cannot-self-verify
clause now names the constant, so a grep for CONTRACT_REVIEW_TIER lands on
the operative sentence; same passage gains a one-sentence loud anti-pattern
ban (dispatching a higher-tier subagent to PERFORM the contract review is
unmeasurable by construction) — both in-sentence, line-neutral.
- SKILL.md 平台读数纪律: one situation-index line — rate-limited ⇒ read
GET /rate_limit (zero quota) for the exact reset, never blind-wait; degraded
WebFetch read and details stay in platform-readings.
- Ratchet payment: the guardrail clause restating worktree-first for dev agents
is deleted — it self-declared its redundancy (hook-enforced; restated in the
os-dev definition; carried by the in-file mechanical-guard index row). 682/682
held; date + bracketed-quote inventories byte-identical before/after.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RMTpSRF5CjMmQBFfPtPCwJ
@claudeclaudeBot added the skip-changeset PR has no user-facing published change; bypasses the changeset gate label Aug 23, 2026
@github-actionsgithub-actionsBot added the documentation Improvements or additions to documentation label Aug 23, 2026
@claude
claudeBot requested a review from os-zhuangAugust 23, 2026 12:52
@hotlong
hotlong marked this pull request as ready for review August 23, 2026 13:32
@hotlong
hotlong added this pull request to the merge queueAug 23, 2026
Merged via the queue into main with commit 231d766Aug 23, 2026
32 checks passed
@hotlong
hotlong deleted the claude/issue-11335-key-beside-the-gate branch August 23, 2026 13:49
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentationImprovements or additions to documentationsize/xsskip-changesetPR has no user-facing published change; bypasses the changeset gate

Projects

None yet

2 participants

@hotlong@claude