Uh oh!
There was an error while loading. Please reload this page.
docs(pm): adopt the Restart-touch: hold channel and converge the pre-dispatch must-check to the H17 anchor index - #10066
Merged
Conversation
…st-check to the H17 anchor index Fixes#10043 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AeA3nU1B5Q2pgxqxgUrexd
os-warren
marked this pull request as ready for review
August 20, 2026 00:19
Uh oh!
There was an error while loading. Please reload this page.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for freeto join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes#10043
Governed surface (
.claude/skills/pm-dispatch/**), text-only adoption of the two A rulings from the on-hold trigger-index card's review. The extractor half already ships in the patrol PR (check-half-states.mjs, in the merge queue); this card is the protocol half, so the two land in either order with no gap: the mechanism deliberately preceded the convention.What changed (2 files, 3 lines edited, net 0 lines)
.claude/skills/pm-dispatch/SKILL.md— state modelpm:on-holdrow: the hold's machine-readable line family gains the canonical channelRestart-touch:(one repo-relative path per line, case-sensitive, line-anchored, same single-channel body discipline asBlocked-by:/Restart-when:; backtick/bullet tolerated, value must be a tracked file — matching the shipped extractor exactly). States what it feeds: the patrol's H17 on-hold trigger-file index. States that existing holds are NOT migrated and produce NO finding — prose-anchor extraction covers them (so nobody "cleans up" the legacy holds; manufacturing warnings for them is the disease the originating card measured).SKILL.md— 标签纪律, the pre-dispatch must-check clause: rewritten to ONE obligation — write side is the state model'sRestart-touch:line; at dispatch/fold-check time, read the half-state patrol anchor's H17 on-hold trigger-file index (anchor named structurally:half-state-patrol.yml'sANCHOR_ISSUEpinned issue — no bare issue numbers, per the id-lint rule) and intersect it with the dispatch's file surface; a hit is handled per the hold comment's rider/restart clause. The old text told seat posts to carry a 「派发前必查」 section with per-seat trigger-file lists — a duty the seat-post four-section fixed template never actually carried; the index replaces it. The anchor-first patrol duty already inlanes/*.mdis not restated — pointed at, not duplicated.references/lanes/spec.md: its pointer said the must-check follows the seat post's current text; now points at SKILL.md 标签纪律 (the anchor-index intersection). One line, in place.Note:
references/seat-post-protocol.mdneeded no edit — the card guessed the section might live there; it does not (grep of the whole references tree: the duty lived in the SKILL.md clause plus the spec-lane pointer, both rewritten here).Line budgets (ratchet)
.claude/skills/pm-dispatch/SKILL.mdreferences/lanes/spec.mdNet zero — both edited clauses were already single physical lines (a table row and an unwrapped bullet tail); no payment owed, no re-wrap performed.
Gates (all at
f6af0de41, exit codes captured before any pipe)Derivation:
node scripts/pm/dispatch-gates.mjs(no args, real diff vs merge basef4c2eef46) — 7 families matched; all run locally, all green:check:pm-governed-mergesself-test green (81 assertions). Exit codes: all0, captured via redirect-then-$?, never through a pipe.Reverse verification (both legs on the committed state; directions predicted in writing first)
✗ check-skill-line-ratchet: .claude/skills/pm-dispatch/SKILL.md is 683 lines; the ratchet ceiling is 682. …Restored viagit checkout BRANCH -- PATH(BRANCH = this PR's branch, PATH = the file); sha256 identical before/after (893d5169…),git status --porcelainclean.#-number into the new clause turns it red naming SKILL.md, proving the gate reads the exact added text ⇒ exit 1,✗ check-skill-id-lint: .claude/skills/pm-dispatch/SKILL.md: 1 issue-ID citation(s) — …Restored byte-identical (same sha256), same pattern.dist/in the resolution path, so no rebuild step applies to these legs.Tests/docs-only for publishing purposes:
.claude/-only diff, publishes nothing —skip-changesetapplied (union write + read-back).Generated by Claude Code