Skip to content

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

Description

@claude

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).

Blocked-by: #16905

What #16905's PR changes

强制条款② 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)

  1. The CONTRACT_REVIEW_TIER docblock (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 the needs:contract-review re-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.
  2. The MANDATORY_TIER_GLOBS docblock (around line 10219): "clause ②, NOT encoded and deliberately not: a card that changes contract accept/reject behaviour or widens the public surface is also CONTRACT_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 also CONTRACT_REVIEW_TIER" half becomes a review-tier statement, not a build-tier one.
  3. tierLines (around lines 10393-10404) — printed on EVERY --tier run: "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 is CONTRACT_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

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).


Generated by Claude Code

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions