Skip to content

Commit 9a3a441

Browse files
committed
docs(agents): a dispatched executor posts no second Claim: — the dispatch's claim is its identity
- the ownership paragraph's executor clause (AGENTS.md and the CLAUDE.md excerpt): the owning session performs both acts; a PM dispatch sets the assignee (step 1) and posts the Claim: naming the dev's branch (step 2), both on the dev's behalf; the executor inherits both records, verifies the newest Claim: names its branch, posts no second claim (its own record is the report comment), never writes the assignee, never yields - line-neutral in both files (1058 / 41); every other rule unchanged Co-authored-by: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019RfFHiRCSs3JXLK4cwcfox
1 parent 13fc873 commit 9a3a441

2 files changed

Lines changed: 17 additions & 17 deletions

File tree

AGENTS.md

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -393,19 +393,19 @@ tools that answer their own question.
393393
**Claim the issue BEFORE you write any code.** Every agent here shares one GitHub identity, so
394394
the assignee field is only a presence bit; the identity record is the `Claim:` comment — first
395395
line beginning `Claim:`, then the session ID and the branch (`claude/issue-<n>-<slug>`). Ownership
396-
is written by role. The session that OWNS a card writes both: a seat picking a card for itself
397-
takes only an unassigned card, assigns itself and posts the claim before any other action; a PM
398-
dispatch sets the assignee and posts the claim on the dev's behalf. A dispatched executor
399-
inherits that assignee — the dispatch's step 1, already done — and still performs the second act
400-
itself: it checks that the newest `Claim:` names its branch (on a mismatch it stops and reports),
401-
then posts its own `Claim:` with its session ID and branch; it ⛔ never writes the assignee and
402-
⛔ never yields a card it was dispatched to. Before writing code, re-read the comments — the
403-
comments decide, not the field: a `Claim:` from another session or branch (other than the
404-
dispatch that sent you) means taken whatever the field says — pick another or ask, ⛔ never
405-
reassign; a bare assignee with no `Claim:` under it is a dispatch's step 1, not a foreign claim
406-
— not taken for the executor it was dispatched to, and not free for a seat picking for itself.
407-
Release is an explicit act: whoever moves a card out of ownership clears the assignee and posts
408-
a `Release:` line. Findings are filed unassigned; assign at the moment you start. The
396+
is written by role. The session that OWNS a card performs both acts: a seat picking a card for
397+
itself takes only an unassigned card, assigns itself and posts the claim before any other action;
398+
a PM dispatch sets the assignee (step 1) and posts the `Claim:` naming the dev's branch (step 2),
399+
both on the dev's behalf. A dispatched executor inherits both records: it verifies that the
400+
newest `Claim:` names its branch (on a mismatch it stops and reports), posts no second claim —
401+
the dispatch's `Claim:` is its identity and its own record is the report comment — and it ⛔ never
402+
writes the assignee and ⛔ never yields a card it was dispatched to. Before writing code, re-read
403+
the comments — the comments decide, not the field: a `Claim:` from another session or branch
404+
(other than the dispatch that sent you) means taken whatever the field says — pick another or
405+
ask, ⛔ never reassign; a bare assignee with no `Claim:` under it is a dispatch's step 1, not a
406+
foreign claim — not taken for the executor it was dispatched to, and not free for a seat picking
407+
for itself. Release is an explicit act: whoever moves a card out of ownership clears the assignee
408+
and posts a `Release:` line. Findings are filed unassigned; assign at the moment you start. The
409409
maintainer's own work under the shared account carries no claim comment and is indistinguishable
410410
from a dispatch — an accepted blind spot; per-seat identities are not introduced.
411411

CLAUDE.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@ inlined below as one sentence, its enforcing hook, and a pointer to the AGENTS.m
77
## ⛔ Claim the issue before you write any code
88

99
Every agent shares one GitHub identity: the assignee field is a presence bit, the `Claim:`
10-
comment (session ID + branch) is the identity. The session that owns a card writes both — a
11-
seat picking for itself takes only an unassigned card, assigns itself and posts the claim
12-
before any other action; a PM dispatch sets the assignee (step 1, done) and claims for its dev,
13-
who still posts its own `Claim:` after checking the newest one names its branch, and ⛔ never
10+
comment (session ID + branch) is the identity. The session that owns a card performs both acts
11+
— a seat picking for itself takes only an unassigned card, assigns itself and posts the claim
12+
before any other action; a PM dispatch sets the assignee and posts the `Claim:` for its dev, who
13+
inherits both, checks the newest `Claim:` names its branch, posts no second claim, and ⛔ never
1414
writes the assignee or yields the card. The comments decide, not the field: a `Claim:` from
1515
another session or branch means taken — ⛔ never reassign; a bare assignee with no `Claim:` is
1616
a dispatch's first step, not a foreign claim. No hook enforces this one. Full rule: AGENTS.md →

0 commit comments

Comments
 (0)