Uh oh!
There was an error while loading. Please reload this page.
feat(pm): clause-2 enqueue gate and needs:contract-review re-review chain - #9197
Merged
Conversation
SKILL.md (queue-gate + review-chain rules 1-5, ceiling 682 held at 681 via same-file rewrap funding), dispatch-gates.mjs (CONTRACT_REVIEW_TIER single source, SUSPECT_TIER_GLOBS, --tier clause-2 suspicion hint + three-way self-test), check-dispatch-gates.mjs (stale hint-measurement note refreshed), ensure-pm-labels.sh (needs:contract-review label seed, main repo only). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017TNzEetykdh7ceZGwuAPLq
This was referenced Aug 17, 2026
os-zhuang
marked this pull request as ready for review
August 17, 2026 01:29
Uh oh!
There was an error while loading. Please reload this page.
This was referenced Aug 17, 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 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#9185
ADR-class (skills update — human merge only): this PR stays a draft awaiting the maintainer; never ready/enqueue/auto-merge.
What landed
.claude/skills/pm-dispatch/SKILL.md— rule package items 1–5, as two new bullets at the head of the 入队与落地 principle list plus a zero-line-cost pointer inside the 模型分档 clause-② sentence:packages/spec/src/**, error-code ledger,*.zod.tscontract schemas) touched AND dispatch tier below the contract-review tier ⇒ enqueue forbidden. Dispatching seat's duty ends at: one-line finding on the card, applyneeds:contract-review, stop — no self-review clearance.needs:contract-reviewnames what is reviewed (no model name anywhere in label or prose); the tier lives only in theCONTRACT_REVIEW_TIERconstant.scripts/pm/dispatch-gates.mjs— rule package item 6:CONTRACT_REVIEW_TIER = 'claude-fable-5'(single source),SUSPECT_TIER_GLOBS(packages/spec/src/**), and a--tiersuspicion line on a hit — explicitly a hint, not a verdict. Self-test extended three ways (hit / no hit / wording), 219 → 234 cases; every pre-existing case still green.Line budget (ratchet ceilings, 0 headroom before)
references/dispatch-runbook.md: left untouched (optional per the card). It sits at 223/223 with 0 headroom; a new section would cost 3–4 lines against a full ceiling, and the SKILL.md gate bullet already carries the complete operating sequence, so a runbook duplicate would add a sync burden for no reader.Beyond the two named files (each necessary for the rule package, none a semantic change elsewhere)
scripts/pm/check-dispatch-gates.mjs: refreshed one header measurement note that this change made stale ("the spec filter path no longer matches at all" → it now matches via the declared suspect glob, pinned as deliberate in the tool's self-test). Comment-only.scripts/pm/ensure-pm-labels.sh: seeded theneeds:contract-reviewlabel (main repo only — the contract surface lives here). The SKILL.md state machine requires the label object to exist before a seat can apply it, and this script is the repo's one label-vocabulary mechanism. The live label object is not yet created; the firstbash scripts/pm/ensure-pm-labels.shrun creates it.Verification (all at final commit
ad089549c)pnpm check:pm-skill-ratchet— PASS (SKILL.md 681/682; all seven covered files under ceiling)pnpm check:pm-skill-id-lint— PASS (9 files clean)node scripts/pm/dispatch-gates.mjs --self-test— PASS, 234 cases (219 on base; +15: the three-way suspicion coverage, the liveness guards for the suspect table and constant, and the fixture-masking pin split into declared-glob vs fixture-only halves)node scripts/pm/check-dispatch-gates.mjs— PASSpnpm check:skill-frame-sync— PASS (4 copies isomorphic; the three-axis section was not touched)pnpm check:doc-authoring— PASS (376 files clean)pnpm --filter @objectstack/lint run check:doc-formula-expressions— PASS (after building the lint dependency closure)node scripts/check-nul-bytes.mjs— PASS (6023 files, no raw control bytes)bash -n scripts/pm/ensure-pm-labels.sh— PASSGate list re-derived from the actual changed paths (running
node scripts/pm/dispatch-gates.mjsover the four changed paths): matched families are exactly the eight above (check:doc-authoringandcheck:doc-formula-expressionswere the derivation's additions beyond the dispatch prompt's named list; both run green).Tier derivation (quoted verbatim from
node scripts/pm/dispatch-gates.mjs --tierover the four changed paths, atad089549c)New suspicion output, demonstrated on the incident-shaped path (
--tier packages/spec/src/api/error-code-ledger.zod.ts):No conflict with the in-flight PR touching
references/landing-operations.mdandreferences/platform-readings.md— neither file is touched here.This PR releases nothing (
.claude/+scripts/pm/internal tooling only) —skip-changesetapplies.Generated by Claude Code