skills(pm-dispatch): notification handover — review-request and assign os-zhuang, retire the decision digest - #9982
Merged
Conversation
…os-zhuang, retire decision digest Per maintainer rulings 2026-08-19: waiting-on-maintainer states must be GitHub-native pushable state. Governed-PR ACCEPT fork gains a step (request review from os-zhuang on the draft PR); needs-user-decision flip assigns os-zhuang and transcription unassigns (inbox = Assigned queue); the per-round decision digest / batch-adjudication standing text is retired. 678/682 lines, paid by the retired digest text. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AeA3nU1B5Q2pgxqxgUrexd
os-zhuang
approved these changes
Aug 19, 2026
os-zhuang
marked this pull request as ready for review
August 19, 2026 11:53
os-zhuang
enabled auto-merge
August 19, 2026 11:53
This was referenced Aug 19, 2026
This was referenced Aug 19, 2026
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 free
to 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 #9976
Implements the 2026-08-19 maintainer rulings: every waiting-on-maintainer state must be a GitHub-native, push-notifying state, not a line of prose in a seat post or a generated view. Governed surface (
.claude/skills/pm-dispatch/SKILL.md) — this PR stays draft and is human-merge-only; this PR is also the mechanism's own bootstrap (review requested from os-zhuang on this draft).The three edits
os-zhuangon the draft PR. Grounded in the measured fact (2026-08-19): a draft PR accepts a review request and it pushes to the maintainer's phone — maintainer confirmed 「推送到了」. The awaiting-a-human-merge list thereby lives in GitHub's Review-requested queue and self-clears on merge.needs-user-decisionflow — the stroke that flips the label also assignsos-zhuang; the ruling-transcription / auto-adjudication stroke that exits the state unassigns in the same stroke (recorded in the state-model row, the escalation flow step 2, and the atomic four-piece ruling-record step 3). The decision inbox = the maintainer's Assigned queue. The row states the assignment is inbox routing, not a claim — it does not enter stale-claim reclaim.os-decision-facets), its validation duty, and the transcription duty (survives as escalation-flow step 3, the atomic four-piece record). The superseding ruling is recorded with date and verbatim quote at the facets-block provenance line. Closing the digest issue itself is left to the PM at landing accounting, deliberately not referenced from operational text (id-lint).Line budget (682-ceiling shrink-only ratchet, headroom was 0)
Gates (all run at HEAD
6649fc405, exit codes captured before any pipe)check:pm-skill-ratchet— "✓ check-skill-line-ratchet: .claude/skills/pm-dispatch/SKILL.md is 678 lines (ceiling 682; headroom 4)."check:pm-governed-prose— "✓ check-governed-prose: 2 instruction surface(s) name all 5 registered governed surfaces (docs/adr/** · .claude/** · skills/** · AGENTS.md · CLAUDE.md) and claim no others." (self-test 24 cases pass; the edit sits inside the pinned region and preserves every register code span)check:pm-skill-id-lint— "✓ check-skill-id-lint: 15 file(s) clean (pattern matches 3+ digit issue ids)."check:skill-frame-sync— "✓ check-skill-frame-sync: 4 copies of the decision frame are structurally isomorphic across 3 files"check:skill-compatibility— "✓ check-skill-compatibility-version: 11 SKILL.md file(s) reconciled against 77 workspace packages"check:doc-authoring— "✓ doc authoring guard: 377 files clean — no bare metadata literals."check:pm-governed-merges --self-test— "✓ check-governed-merges --self-test: 77 assertions"check:doc-formula-expressions— "✓ check:doc-formula-expressions: 22 record-scoped formula example(s) across 402 files / 1413 TS blocks judged clean"node scripts/pm/dispatch-gates.mjs(no args, real diff vs merge base8fa4e2a76): all 7 named families run, all green. Tier line: "Model tier — MANDATORY: claude-fable-5" (clause ①, this card ran on it).Reverse verification (direction predicted in writing before running)
Predicted: appending 5 filler lines (683 lines) turns the ratchet RED naming the file and ceiling. Observed: "✗ check-skill-line-ratchet: .claude/skills/pm-dispatch/SKILL.md is 683 lines; the ratchet ceiling is 682." (exit 1). Restored from the committed state via
git checkoutof the branch path; re-run green at 678 (exit 0), worktree clean.No changeset: instruction-file-only PR, nothing published ships (
skip-changeset).Generated by Claude Code