docs(pm-dispatch): move clause-2 contract review in-seat — dispatching seat reviews and releases; external chain becomes optional audit - #13812
Merged
os-zhuang merged 1 commit intoAug 31, 2026
Conversation
…-08-31 ruling The dispatching seat now completes the contract review itself after delivery (judgment checklist; context-isolated adversarial fable review subagent on a true fork or a dev flag), strips the needs:contract-review dual carrier on PASS and releases (ready + auto-merge); FAIL is a patch round. The draft + label short dock at PR creation stays. The external review chain (triage timed wheel / director summons) is demoted to an optional post-hoc audit — respected, but no longer a release precondition. The maintainer decision box is untouched: true design forks still escalate. contract-review.md ceiling 51 -> 57 (in-place payment exhausted; map comment carries the measurement). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PBjwYLS6BciTQW3c9xQiD2
This was referenced Aug 31, 2026
os-warren
marked this pull request as ready for review
August 31, 2026 14:01
github-merge-queue
Bot
removed this pull request from the merge queue due to failed status checks
Aug 31, 2026
github-merge-queue
Bot
removed this pull request from the merge queue due to failed status checks
Aug 31, 2026
os-zhuang
approved these changes
Aug 31, 2026
os-zhuang
approved these changes
Aug 31, 2026
os-zhuang
deleted the
claude/issue-13795-pm-dispatch-inseat-contract-review
branch
August 31, 2026 16:23
This was referenced Aug 31, 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 #13795
What this does
Reworks the clause-② review process in the pm-dispatch skill from "dock the PR and wait for the external review chain" to an in-seat fable contract review by the dispatching seat, per the maintainer's 2026-08-31 ruling (three verbatim sentences on the card; the operative one, quoted untranslated in
references/contract-review.md):The six substantive points of the card, and where each landed
references/contract-review.mdnew bullets 契约判断清单 (derived judgments item by item · semver grading vs the changeset · boundary-flag disposition, recorded on the card/PR, never prose self-attestation) and 独立性件 —— 隔离复核子代理 (on a true fork in contract judgment, or a dev flag awaiting adjudication, the dispatching seat spawns a context-isolated fable review subagent: fed only the card, standing rulings and the PR itself, never the dispatch brief or the seat's own conclusions; adversarial brief — look for reasons to reject; verdict adopted verbatim after transcript tier verification).contract-review.md放行 = 清标即落地 bullet: PASS stripsneeds:contract-review(both carriers) in the same stroke, cites the 2026-08-31 ruling as provenance, then ready + auto-merge/enqueue; FAIL is a patch round. The draft + label short dock at PR creation stays (it guards against enqueue before the review completes); what is removed is the open-ended "waiting for an external seat" state.contract-review.md(外部评审链降为可选),lanes/director.md职责一, and the SKILL.md director paragraph's four-duty listing.contract-review.md: a card stuck on a decision goes to the decision inbox only, never self-adjudicated; true design forks still escalate.Contradicting clauses rewritten (before → after)
needs:contract-review复审链、…needs:contract-review事后审计(可选,放行归派发席席内复核 —— 见条款②闸门)、… (2026-08-27 verbatim quotes kept unchanged)Deliberately untouched (checked, judged consistent):
state-machine.mddual-carrier row (mechanics of hang/clear, process-neutral);seat-post-protocol.mdlinger scope line; SKILL.md 分诊席直连自排 duties line (代裁 stays; at-tier duties still run via transcript-verified fable subagents);check-half-states.mjsH31/H35 (their 自查放行 refers to the sweeper script never writing gate labels — unchanged semantics);ensure-pm-labels.sh/dispatch-gates.mjslabel and tier constants.Two verbatim quotes compressed to date-only references in
lanes/director.md(both grounded mechanisms now two supersessions dead, retained as dated ledger entries): 2026-08-23 「要不还是你挂个定时处理审核吧」 and 2026-08-27 「同意,继续」. Flagging for the reviewing maintainer; easy to restore if wanted.Line ratchet
contract-review.mdceiling raised 51 → 57 (landed count, headroom 0). Paid in place first: the wheel-ownership bullet, the request-review clause and the standalone qualification bullet were deleted or folded; the residual +6 could not be paid without deleting ruled clauses (refused on the state-machine precedent). Ruling authorizing the growth: maintainer 2026-08-31, quoted at the top of this PR. The map comment carries the same measurement.Verification
Full gate union re-run on the final commit, head
9f16a386:pnpm check:pm-skill-ratchet— ✓ (self-test 111 cases; every ceiling green, contract-review.md 57/57, SKILL.md 962/1005; 120-byte line budget clean)pnpm check:pm-skill-id-lint— ✓ 23 file(s) cleanpnpm check:pm-governed-prose,pnpm check:skill-frame-sync(4 copies isomorphic),pnpm check:nul-bytes,pnpm check:doc-authoring,pnpm check:pm-governed-merges(230 assertions),pnpm check:watch-hint-literal,pnpm check:entry-guard,pnpm check:parse-guard,pnpm check:bash32-floor,pnpm check:cli-command-ids,pnpm check:agent-test-spelling,pnpm check:cross-package-test-inputs,pnpm check:pnpm-filter-targets— all ✓node scripts/pm/check-skill-line-ratchet.mjs --self-test✓ 111 cases;pnpm check:pm-dispatch-gates✓ 1048 cases;node scripts/pm/bare-root-worklist.mjs --self-test✓ (none stale/missing/contradicted);node scripts/check-ci-filter-parity.mjs✓;node scripts/check-shard-attestation.mjs✓;pnpm --filter @objectstack/lint run check:doc-formula-expressions✓ after building @objectstack/formula and @objectstack/lintcheck-governed-queue-guard.mjs(reads the workflow event payload) andcheck-test-completeness.mjs(grades a saved turbo test log; this diff runs no tests)This PR touches
.claude/**andscripts/pm/**only — internal agent tooling, no published package:skip-changesetapplies. Governed surface (.claude/**): stays draft for human review per the governed-merge rules.Generated by Claude Code
Generated by Claude Code