Repository navigation
Commit 12ef21a
docs(agents): a dispatched dev's pr_create carries the claim Account as PR assignee (#31307)
<!-- claude-projects-attribution: {"github_login":"huangyiirene"} -->
_Requested by **Irene** · [project
thread](https://claude.ai/code/project/chan_01TJXtQ1tVD26ecLDZxFS67x?thread=cmsg_01TJXtQ1tVD26ecLDZxFS67xVQzeHAefCAj1LT1qxPYafJ)_
Fixes #31190
Clause-②: no
Metadata-protocol: none
`dispatch-gates --tier` reads no path-derived model mandate for this
diff. Any mandate above the thread's would be waived by the maintainer's
standing order in this project (2026-11-03). This card ran on the
project's default model, and the dispatching seat (domain:skills#3) runs
the contract review.
## 维护者速读
- 改了什么:`AGENTS.md` L403 的括注改成「PR 的 assignee 是认领的 `Account:`,由
`pr_create` 带上;交棒归席位」,保留「⛔ 永不写卡的
assignee」半句;`scripts/pm/fleet-write/ops.mjs` 头注释与 `pr_create`
描述符上的内联注释同步改正,只改注释,不动代码。
- 为什么改:裁决 A(#29828,记录 6674390671,经 PR #30796 落地)与
`.claude/agents/os-dev.md` 第 2 条规定 dev 的 `pr_create` 给 PR
指派认领账号;`AGENTS.md` 仍写「`pr_create` 不带 assignee」,而它声称冲突时优先,已有派发的 dev
因此停工或开出无 assignee 的 PR(#31190)。
- 风险与回滚:纯文字;`AGENTS.md` 保持 1050 / 1050 行(无上限上调),只在原两行内重排,两行均在 120
字节内;`ops.mjs` 头注释多一行;不发版(`skip-changeset`);回滚即 revert。
- 先看:`AGENTS.md` L403-L404;然后 `scripts/pm/fleet-write/ops.mjs` L125-L128
与 L2126。
- 两分钟验证:`node scripts/pm/check-skill-line-ratchet.mjs`(AGENTS.md 1050
行,余量 0,无超宽行);对照 `.claude/agents/os-dev.md` L38 与 L63 读新句;`node
scripts/pm/fleet-write/execute.mjs --self-test` 全绿。
- 需要你做的:`check-governed-merges` 判为 Tier H(`AGENTS.md`),需 `os-zhuang` 或
`hotlong` 批准;请在席位契约复核 ACCEPT 后再批。
## What changed (ruling A on #29828, record 6674390671, landed by PR
#30796)
The ruling's home is `.claude/agents/os-dev.md` rule 2: "PR 派认领
`Account:`(`pr_create` 带),交棒归席位" (L38) and the write budget
"`pr_create`(draft,含 labels 与 assignees)" (L63).
`.claude/skills/pm-dispatch/references/execution-duties.md` L69 and
pm-dispatch `SKILL.md` agree. None of those files is touched.
### `AGENTS.md` L403-L404 (Multi-agent, the dispatched executor)
```diff
-writes the card's assignee (nor the PR's: `pr_create` carries none; the seat sets it at hand-over,
+writes the card's assignee (the PR's is the claim's `Account:`, carried by `pr_create`; hand-over is the seat's,
`.claude/agents/os-dev.md` rule 2) and ⛔ never yields a card it was dispatched to. Before writing code, re-read
```
The "⛔ never writes the card's assignee" half is kept. Line count
unchanged (1050 / 1050). L403 is 112 bytes and L404 is 113 bytes, both
under the ratchet's 120-byte line budget.
### `scripts/pm/fleet-write/ops.mjs` header, § The governed-review
follow-up (L125-L128)
```diff
- * nothing reads the pull's files there, and a dev's `pr_create` carries no
- * `assignees` at all — the seat's own account is never assigned to or
- * requested on a pull. The one follow-up left is `pr_ready`. The platform
+ * nothing reads the pull's files there, and a dev's `pr_create` carries the
+ * claim's `Account:` as its `assignees` (ruling A on #29828, os-dev.md rule 2;
+ * hand-over is the seat's) — the seat's own account is never requested on a
+ * pull as a reviewer. The one follow-up left is `pr_ready`. The platform
```
Kept as still true: the draft open summons nobody (no file read, no
review request, no governed-review follow-up), and the seat never
REQUESTS its own account as a reviewer (pm-dispatch `SKILL.md` L198, "⛔
永不请席位自身账号"). Only the assignee half is corrected.
### `scripts/pm/fleet-write/ops.mjs` inline comment on the `pr_create`
descriptor (L2126)
The seat widened the claim to this site (claim 6714934662).
```diff
// sees the pull at the seat's hand-off — `pr_request_reviewers` after ACCEPT + a same-head PASS — and a dev's
- // create carries no `assignees`; the leg stays for the author-is-approver fallback, never for a seat's account.
+ // create carries the claim's `Account:` as `assignees` (ruling A on #29828); never a reviewer request on the seat.
```
No code changes. The descriptor already takes `assignees` as optional
and sends the leg to the number the create answered.
## Other sites found
Grep over `AGENTS.md`, `scripts/pm/**` and `.claude/**` for a sentence
saying a dev's `pr_create` carries no assignee, or that a PR is never
assigned the claim's account:
1. `scripts/pm/fleet-write/ops.mjs` L2124-L2125 (now L2126): the same
stale claim. Fixed in this PR on the seat's widening.
2. `scripts/pm/fleet-write/execute.mjs` L1647 and L2012 ("no assignee"):
these pin that the governed-review follow-up adds no assignee on a draft
create when the caller spelled none. Still true. Checked and consistent,
no action.
3. `scripts/pm/check-half-states.mjs` L15733 and L15763: already state
the ruling (the dev's `pr_create` carries the claim's `Account:`, record
6674390671). Checked and consistent.
4. `.claude/agents/os-dev.md` L38 and L63,
`.claude/skills/pm-dispatch/references/execution-duties.md` L69,
pm-dispatch `SKILL.md`: agree with the ruling. Checked and consistent,
untouched.
5. `scripts/pm/fleet-write/validate.mjs` L1247 pins that a `pr_create`
without assignees or labels is one request. It describes the relay's
behaviour, not who passes assignees. Consistent.
## Gates
On head `b069bd29` (base `7c523aa1`): all 40 `node
scripts/pm/dispatch-gates.mjs --commands --repo
objectstack-ai/objectstack` commands exit 0. Also: `node
scripts/pm/check-skill-line-ratchet.mjs` (exit 0, AGENTS.md 1050 /
1050), `node scripts/pm/fleet-write/dispatch.mjs --self-test` (exit 0,
331 cases), `validate.mjs --self-test` (exit 0, 340 cases), `execute.mjs
--self-test` (exit 0, 284 cases), `node
scripts/check-commit-card-trailers.mjs --range origin/main..HEAD` (exit
0). Changed lines: 11 (+6 / -5), 2 files.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
https://claude.ai/code/session_01J8VVAm38fJUP5TCBNAD8RY
Co-authored-by: Claude <noreply@anthropic.com>1 parent 5277855 commit 12ef21a
2 files changed
Lines changed: 6 additions & 5 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
400 | 400 | | |
401 | 401 | | |
402 | 402 | | |
403 | | - | |
| 403 | + | |
404 | 404 | | |
405 | 405 | | |
406 | 406 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
122 | 122 | | |
123 | 123 | | |
124 | 124 | | |
125 | | - | |
126 | | - | |
127 | | - | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
128 | 129 | | |
129 | 130 | | |
130 | 131 | | |
| |||
2122 | 2123 | | |
2123 | 2124 | | |
2124 | 2125 | | |
2125 | | - | |
| 2126 | + | |
2126 | 2127 | | |
2127 | 2128 | | |
2128 | 2129 | | |
| |||
0 commit comments