You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
pm(dispatch-gates): clause-② prose in dispatch-gates.mjs (docblocks + every --tier printout) and core-rules.md:124 still describes a BUILD-tier mandate once the 强制条款② narrowing lands #16914
Filed by the os-dev executor of #16905 (branch claude/issue-16905-clause2-build-tier, session_01TezFG8ZMrNH6n5VTNpPpdH), unassigned, as an out-of-scope finding. Re-scoped in the #16905 patch round: the director seat widened PR #16915's file surface to references/contract-review.md, references/core-rules.md and references/lanes/cli.md, so every references/** site this card originally listed (including core-rules.md:124) is now rewritten in that PR. What remains here is scripts/pm/dispatch-gates.mjs prose only — scripts/pm/** stays fenced out of that PR (its H4: report the site, do not edit the script).
强制条款② in .claude/skills/pm-dispatch/SKILL.md 〈派发〉 goes from "clause-② cards are BUILT and reviewed at CONTRACT_REVIEW_TIER" to "built at the default judgment tier, reviewed at CONTRACT_REVIEW_TIER", and the references/** copies of the mandate are rewritten in the same PR. If the maintainer rejects that PR this card is moot and should be closed as not planned.
Prose in scripts/pm/dispatch-gates.mjs that still describes clause ② as a BUILD-tier mandate (verified on origin/main at 0939ba008)
deriveTier derives a path mandate for the clause-① globs only; no code path encodes clause ② (grep clause in the script: all hits are prose or printed strings). So this is drift in what the instrument SAYS, not in what it decides — hence finding, no severity asserted. The fix is a prose edit in one script, verified by the script's own test suite (scripts/pm/*.test.* naming dispatch-gates).
Filed by the
os-devexecutor of #16905 (branchclaude/issue-16905-clause2-build-tier,session_01TezFG8ZMrNH6n5VTNpPpdH), unassigned, as an out-of-scope finding. Re-scoped in the #16905 patch round: the director seat widened PR #16915's file surface toreferences/contract-review.md,references/core-rules.mdandreferences/lanes/cli.md, so everyreferences/**site this card originally listed (includingcore-rules.md:124) is now rewritten in that PR. What remains here isscripts/pm/dispatch-gates.mjsprose only —scripts/pm/**stays fenced out of that PR (its H4: report the site, do not edit the script).Blocked-by: #16905
What #16905's PR changes
强制条款② in
.claude/skills/pm-dispatch/SKILL.md〈派发〉 goes from "clause-② cards are BUILT and reviewed atCONTRACT_REVIEW_TIER" to "built at the default judgment tier, reviewed atCONTRACT_REVIEW_TIER", and thereferences/**copies of the mandate are rewritten in the same PR. If the maintainer rejects that PR this card is moot and should be closed as not planned.Prose in
scripts/pm/dispatch-gates.mjsthat still describes clause ② as a BUILD-tier mandate (verified onorigin/mainat0939ba008)CONTRACT_REVIEW_TIERdocblock (around line 10160): "clause ②'s CONTRACT-REVIEW tier: the tier a card that changes contract accept/reject behaviour or widens the public surface must be dispatched at, and the tier theneeds:contract-reviewre-review sub-round must itself be running at". After skills(pm-dispatch): 强制条款② mandates CONTRACT_REVIEW_TIER for IMPLEMENTATION of clause-② cards — drop it to TIER_DEFAULT and let the existing contract review be the gate (maintainer-authorised trial already running) #16905 only the second half holds.MANDATORY_TIER_GLOBSdocblock (around line 10219): "clause ②, NOT encoded and deliberately not: a card that changes contract accept/reject behaviour or widens the public surface is alsoCONTRACT_REVIEW_TIER". The "not encoded" half is exactly right and is what skills(pm-dispatch): 强制条款② mandates CONTRACT_REVIEW_TIER for IMPLEMENTATION of clause-② cards — drop it to TIER_DEFAULT and let the existing contract review be the gate (maintainer-authorised trial already running) #16905's H4 relied on; the "is alsoCONTRACT_REVIEW_TIER" half becomes a review-tier statement, not a build-tier one.tierLines(around lines 10393-10404) — printed on EVERY--tierrun: "Clause ② is NOT reachable from paths: a card that changes contract accept/reject behaviour or widens the public surface is fable-mandatory too, judged from the card CONTENT", and the SUSPECT tail "(a card changing contract accept/reject behaviour or widening the public surface isCONTRACT_REVIEW_TIER)". A PM reading the instrument's output after skills(pm-dispatch): 强制条款② mandates CONTRACT_REVIEW_TIER for IMPLEMENTATION of clause-② cards — drop it to TIER_DEFAULT and let the existing contract review be the gate (maintainer-authorised trial already running) #16905 lands is told to dispatch clause-② cards at the ceiling, contradicting the skill. The trailing "whichever tier is dispatched, the PR's actual diff passes the clause-② enqueue gate before the card may enqueue" is already the post-skills(pm-dispatch): 强制条款② mandates CONTRACT_REVIEW_TIER for IMPLEMENTATION of clause-② cards — drop it to TIER_DEFAULT and let the existing contract review be the gate (maintainer-authorised trial already running) #16905 shape and needs no change.Not a behaviour change
deriveTierderives a path mandate for the clause-① globs only; no code path encodes clause ② (grepclausein the script: all hits are prose or printed strings). So this is drift in what the instrument SAYS, not in what it decides — hencefinding, no severity asserted. The fix is a prose edit in one script, verified by the script's own test suite (scripts/pm/*.test.*namingdispatch-gates).Generated by Claude Code