Repository navigation
feat(pm): the queue guard refuses a project-thread Tier S record reviewed from the PR's own account - #25436
Merged
Conversation
…ewed from the PR's own account (#25415) When a pull request body carries the `claude-projects-attribution` line, the review of record must carry `Reviewed-by-account:` naming a different login; same, missing or unreadable is refused, and the clear and the refusal print both logins compared. Bodies without the line keep today's reading. Fixes #25415 Co-authored-by: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0186iLxsmzoYpA9qHMo7Stku
This was referenced Oct 23, 2026
os-zhuang
approved these changes
Oct 24, 2026
This was referenced Oct 24, 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.
Requested by Elon · project thread
Fixes #25415
What changes
scripts/pm/record-recognisers.mjs: two new readers.readReviewedByAccountreads aReviewed-by-account:key line (in the file's one key-line convention), and it accepts exactly one GitHub login. A leading@is allowed; a bot login, prose, or two logins readunreadable.readAttributionLoginreads theclaude-projects-attributiongithub_loginfrom any line of a PR body. A marker with no readable login readsunreadable, neverabsent.locateReviewOfRecordnow also returnsaccount, read off the same comment it chose.scripts/pm/check-governed-queue-guard.mjs: the Tier S record leg reads the attribution from the PR body it already fetches (no new API call). A new pure function,accountIndependence, does the comparison. When the body carries the attribution line, a record that otherwise stands becomesnot-independent(refused, exit 3) if the reviewer account equals the attribution login (case-insensitive), or if the account line is missing or unreadable, or if the attribution itself is unreadable. The refusal names both logins and the rule. The clear prints both logins it compared. A body without the line (Routine seats, humans) isnot-owed, so today's reading is unchanged. The approval limb is untouched, so the leg stays monotone.Key name
This PR uses
Reviewed-by-account:, as the card says. The paired skills card #25414 (draft PR #25422) writes the rule in prose ("记录独立性段并书两账户") and settles no key of its own. If it settles a different key, onlykeyLineRegex('Reviewed-by-account')and the refusal text change.Deviations from the card (premise drift)
--pairno longer exists. Ruling record 5770886272 (Retire the in-seat clause-② contract review — the rule, its gate label, and the 9k-line checker's gate role #19061, letter B) retired the--pairlanding pre-check. Its job of printing the two logins is now done by the guard's own clear and refusal lines.--explainflag. In its place, here is an offline replay of feat(spec): ExecutionStatus gains missed, a scheduled due time that passed while no kernel was ticking #25363 at heada6b929fa3. The attribution readsos-bill. Record 6357150459 names the other account only in prose, so the reading isaccount-missingand the record would be refused. WithReviewed-by-account: os-elon-muskadded, the reading isholds. (feat(spec): ExecutionStatus gains missed, a scheduled due time that passed while no kernel was ticking #25363 touched no governed path, so the guard never consulted its record in real life.)--templatedoes not print the new line yet. Its output is pinned byte-for-byte across several batteries. The refusal text tells the seat exactly what to add.Gates
dispatch-gates --commands --repo objectstack-ai/objectstackderived 35 families. All 35 ran with exit 0, and--ranreports35 run, 0 NOT-MEASURED.check-governed-merges --teston the two paths: NOT governed, so this is an ordinary queue landing. The workflow that runs the guard is unchanged.Generated by Claude Code