Repository navigation
Drop the cross-account review rule: the queue guard stops refusing a same-account review of record, and contract-review.md stops requiring Reviewed-by-account (maintainer 2026-10-24) #25568
Description
Filing gate ③: a maintainer-direct task, the maintainer's words quoted verbatim. Filed by the domain:skills seat 2 (seat post #19287) on the maintainer's word in the project thread 待决策汇总, which reverses the rule #25415 asked for. Grade suggested p1 · S (it blocks every project-thread Tier S landing in all three lanes); triage may regrade.
The maintainer's words (2026-10-24, thread 待决策汇总, verbatim)
守卫在合并队列里只认「另一账户复审」,这个没必要,去掉这条规则 (01:16:45Z)
立skills卡 (01:16:51Z)
Business rationale
- Who benefits: every lane seat that lands a Tier S PR from a project thread (HotCRM, Devx, Skills), and the maintainer, who otherwise hand-merges each one.
- Scenario: since feat(pm): the queue guard refuses a project-thread Tier S record reviewed from the PR's own account #25436 merged (2026-10-24 00:25Z) the
merge_groupleg of Governed Surface Guard refuses a project-thread PR whose review of record carriesReviewed-by-account:equal to the PR body'sclaude-projects-attributionlogin. The maintainer runs one account per project, so every such record is same-account. First casualty: PR docs(pm-dispatch): every card carries a business rationale the 分诊席 judges, every card is triaged (pre-applied labels are a suggestion), and a seat verifies a card's premise before dispatch #25552, dequeued 00:44Z (run 40046346946, job 120728837597: 「the review of record on this head (comment 6377468190) was written from the SAME account that built the pull request」), now back in draft. - Cost of not doing it: no project-thread Tier S PR lands through the queue; each needs the maintainer's bypass merge.
Reader (who acts)
A card thread on the domain:skills lane (the surface below includes .claude/**, so the fable model). Branch read at spawn and written on the claim.
Wanted
The seat's reading of 「去掉这条规则」: the cross-account requirement goes as one rule, enforcement and text together. Keeping the text while the guard stops enforcing it would leave seats a duty the maintainer called unnecessary.
scripts/pm/check-governed-queue-guard.mjs: remove the feat(pm): the queue guard refuses a project-thread Tier S record reviewed from the PR's own account #25436 account leg (accountIndependence, thenot-independentrecord state,independenceRefusalLines, theaccounts comparedclear line, theattributionLoginrecogniser wiring, the header paragraph, and the#25415battery with its floor row 28 → 27). A Tier S record on the current head stands on tier alone, as it did before feat(pm): the queue guard refuses a project-thread Tier S record reviewed from the PR's own account #25436.scripts/pm/record-recognisers.mjs: removereadReviewedByAccount,readAttributionLogin,REVIEWED_BY_ACCOUNT_LINE, the locator'saccountfield and the#25415battery (floor 13 → 12), unless another caller onmainreads them (git grepfirst; keep and say so if one does)..claude/skills/pm-dispatch/references/contract-review.md: drop the account requirement from L36 (Reviewed-by:须属 PR 作者外的账户), L37 (Reviewed-by-account:行), L38 (「另一账户」 on the prose-surface record; whether theTIER_DEFAULTrecord itself stays is the implementer's to read against its source and say), L41 (① 另加 … 队列守卫同判) and L42–L43 (the 过渡 substitute, moot once ① owes no second account). Session independence (Implemented-by:≠Reviewed-by:, L35) is not this rule and stays.git grep -n 'Reviewed-by-account\|另一账户' -- .claude scriptsafter the edit names every other mention; each is removed or justified in the PR body.
Not in scope: Tier H landing (authorized approval) and the human-merge size line, both unchanged.
Acceptance
node scripts/pm/check-governed-queue-guard.mjs --self-testandnode scripts/pm/record-recognisers.mjs --self-testgreen.pnpm check:pm-skill-ratchet,pnpm check:pm-skill-id-lint,pnpm check:skill-frame-sync,pnpm check:skill-frame-freshnessgreen.node scripts/pm/check-governed-queue-guard.mjs --explain(or the self-test's tier harness) on a project-thread PR with a same-account Tier S record on its head reads CLEAR.- Landing note: the guard's
merge_groupjob checks out the merge-group commit, so this PR's own queue run is judged by the code it ships. After it lands, PR docs(pm-dispatch): every card carries a business rationale the 分诊席 judges, every card is triaged (pre-applied labels are a suggestion), and a seat verifies a card's premise before dispatch #25552 is re-armed by the skills seat.
Dedupe
MCP search_issues, objectstack, "queue guard Reviewed-by-account" → 12 hits, all closed; top: #25415 (the card this reverses), #18384, #15187, #12750, #18083, #18470 (other queue-guard legs). None removes the account leg. New.
Dedupe words: queue guard Reviewed-by-account remove.
Generated by Claude Code
Activity
objectstack-fleet commentedon Oct 24, 2026
Claim: PM loop round 1 (card thread) · 2026-10-24T01:20Z · p1,
tooling,domain:skills. Removes the cross-account review rule on the maintainer's 2026-10-24 01:16:45Z word quoted on the card (「守卫在合并队列里只认「另一账户复审」,这个没必要,去掉这条规则」, 「立skills卡」): the queue guard's account leg and its recognisers (#25436) roll back, andcontract-review.mdstops requiringReviewed-by-account:and a second account.Session:
session_018UunQYGRd5yu6puARCJBk9(card thread ofdomain:skillsseat 2, seat sessionsession_01REMuzhz6MWRjg8uohedMnM)Account:
os-elon-musk(the seat's linked user; always the card's assignee)Branch:
claude/project-thread-1qb5el(the card thread's designated push branch, platform-assigned at thread creation and read by the seat from the thread's session record per ruling 1A of #25379; the thread checks that this newest claim names its branch before it starts)Worktree: the card thread's own checkout
Domain:
domain:skillsSeat:
domain:skills#2(seat post #19287)File surface:
scripts/pm/check-governed-queue-guard.mjsandscripts/pm/record-recognisers.mjs(the #25436 hunks only:git show 041a120b61is the map; a clean revert of those hunks is the expected shape, adjusted where later commits touched the same lines);.claude/skills/pm-dispatch/references/contract-review.mdL36–L38 and L41–L43; any other.claude/**orscripts/pm/**line thatgit grep -n 'Reviewed-by-account\|另一账户\|25415'names, each removed or justified in the PR body. (stop on breach; explain in the report)⛔ Not in scope: any Tier H file (
AGENTS.md,CLAUDE.md,docs/**,skills/**,.github/workflows/**, CODEOWNERS); the Tier H landing leg (authorized approval) and the human-merge size line, unchanged; session independence (Implemented-by:≠Reviewed-by:,contract-review.mdL35) stays. ⛔ No rule text names a login.Writes: PR only through the relay's
pr_create(node scripts/pm/fleet-write/dispatch.mjs); comments, labels and body edits only throughpost-stamped.mjs,label-write.mjsand the relay; ⛔ every GitHub MCP write tool (create_pull_request,update_pull_request,issue_write,add_issue_comment, …). In this project the repo'ssettings.jsondeny does not load, so this line is the guard.Container & model:
Sin a card thread becausep1(it blocks every project-thread Tier S landing; PR #25552 is parked behind it),mode:thread,model: CONTRACT_REVIEW_TIER(.claude/skills/pm-dispatch/**is MANDATORY),effort: xhigh(p1).check-governed-merges.mjs --teston the three files reads Tier S (only.claude/**hits the register): aCONTRACT_REVIEW_TIERPASS record on the PR's head plus all-green checks; the seat lands it under the maintainer's standing Tier S word of 2026-10-23 14:14Z in the seat thread. The guard'smerge_groupjob checks out the merge-group commit, so this PR's queue run is judged by the guard it ships; if it is refused anyway, the PR returns to draft and the seat asks the maintainer for an authorized approval.Clause-②: no
Metadata-protocol: none
Responsibility: n/a — not a defect card (a maintainer word reversing #25415)
Thread-read: none
Serial constraints cleared: start from
main9c43e19f65. PR #25552 (card #25507, draft, parked behind this card) edits otherpm-dispatchfiles, notcontract-review.md; card #25490 (queued) does not touch these files. Mergemainbefore asking for review.Generated by Claude Code