Repository navigation
docs(pm-dispatch): a dispatched PR carries its card's assignee — set at pr_create, moved on takeover - #20066
Merged
objectstack-fleet[bot] merged 1 commit intoSep 25, 2026
Conversation
…at pr_create, moved on takeover execution-duties.md (认领): the card assignee stays the PM's; the PR assignee equals the card's, the dev sets it in the same round as pr_create through label-write, a seat's own PR is assigned to the seat, the takeover's step two moves it in the same stroke, and the reader is `is:pr is:open assignee:LOGIN`. Paid in place: two clauses already stated elsewhere (the atomic pair's step one, SKILL.md's never-touch-another's-assignee row) and the push-every-step line that os-dev.md already carries as the dev's own rule. os-dev.md: rule 2 narrows "never write the assignee" to the CARD's, and the write budget's label-write slot names the PR-assignee write. Claude-Session: https://claude.ai/code/session_01LNRg6FUMXYWgkAbDsfZpC8 Co-authored-by: Claude <noreply@anthropic.com>
This was referenced Sep 25, 2026
objectstack-fleet
Bot
deleted the
claude/issue-20063-pr-assignee-mirrors-card
branch
September 25, 2026 02:22
This was referenced Sep 25, 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.
Fixes #20063
Clause-②: no
What this lands
Rule text only (the ruling: 「同意」 on the seat's recommendation quoted in the card) — no gate, no patrol row, no new tool.
.claude/skills/pm-dispatch/references/execution-duties.md, section 认领: the card assignee stays the PM's and the dev never writes it; the PR assignee equals the card's; the dev sets it in the same round aspr_createwithlabel-write.mjs --issue PR_NUMBER --assign LOGIN; a seat's own PR is assigned to the seat; the takeover's step ② moves it in the same stroke; the reader is the filteris:pr is:open assignee:LOGIN..claude/agents/os-dev.md, rule 2: "never write the assignee" narrowed to the card's assignee, with the PR spelling beside it; the write-budget line names the PR-assignee write as part of thelabel-writeslot it already had. The objectui clause (path labels belong tolabeler.yml) is unchanged.The measured spelling comes from the card's pilot: objectstack-ai/objectui PRs 10410, 10412 and 10413 carry the cards' assignee, set through the relay's
assignop on a PR number.Line budget (
pnpm check:pm-skill-ratchet, both files at headroom 0)execution-duties.mdos-dev.mdEvery changed line is at most 120 bytes (the same gate's width rule). The takeover line (step ②, 118 bytes) had no room for the increment, so the takeover half of the rule is stated on the rewritten assignee line as 「接管 ② 同笔换」.
The line 「释放是显式动作 …」 was a first candidate for payment (state-machine.md repeats it) and was deliberately kept:
scripts/pm/check-half-states.mjsquotes that exact line as the protocol's own words (RELEASE_ACT_RULE), so removing its source would make that quotation unanswerable.Sweep:
git grep -n assignee -- .claude AGENTS.md(at 6364f11).claude/agents/os-dev.md:34, :36 (rule 2), :54 (write budget)execution-duties.md:56 (assignee owner)execution-duties.md:17, :55, :57, :58, :61, :78, :129SKILL.md:29, :91, :92, :103, :104, :105, :143SKILL.md:294 (check-half-states.mjsrow)dispatch-runbook.md:50dispatch-runbook.md:155filing-gate.md:33,lanes/director.md:42,lanes/hotcrm.md:50lanes/ui.md:23label-write.mjs --repo, which is exactly the PR-assignee routeplatform-readings.md:135, :178, :179, :230, :240, :241, :246, :250rest-channel.md:30, :45POST …/issues/{n}/assigneesis the same endpoint on a PR number)seat-lifecycle.md:27,seat-post-protocol.md:11state-machine.md:41triage-duties.md:71, :72, :83, :84label-write.mjsas the only assignee writer, which the new rule usesAGENTS.md:398–:414Gates (all at head 6364f11)
node scripts/pm/dispatch-gates.mjs --repo objectstack-ai/objectstack --ran→✓ dispatch-gates --ran: 20 derived famil(ies) accounted for — 20 run, 0 NOT-MEASURED (a DERIVED zero — all 20 recorded an exit code and none of them is 3).All twenty exit 0, among them
check:pm-skill-ratchet(✓ check-skill-line-ratchet: declared cross-file moves: 2, total ceilings down 477 lines.),check:pm-skill-id-lint(✓ check-skill-id-lint: 34 file(s) clean),check:skill-frame-sync,check:doc-authoring,check:agent-model-declared,check:pm-governed-merges,check:nul-bytes,check:commit-card-trailers.check:doc-formula-expressionsfirst exited 3 (a prerequisite not met:@objectstack/formulaand@objectstack/lintwere not built, so nothing was measured); it exited 0 after that build. Also run beyond the derivation:check:pm-settings-deny-rosterandcheck:pm-governed-prose, both 0.node scripts/pm/check-governed-merges.mjs --teston the two paths:GOVERNED — Tier S(both under.claude/**). This PR lands after an in-seat contract review atCONTRACT_REVIEW_TIER, then goes through the queue. Nothing here is published (.claude/**), so it takesskip-changeset.Acceptance notes
维护者速读(草稿)
is:pr is:open assignee:LOGIN)就能看到每个人名下在飞的 PR。维护者已裁决「同意」。Generated by Claude Code