Repository navigation
Commit 9959e4b
committed
feat(pm): report the dead claim nobody can see — H27 (#11248)
A dev agent killed mid-task leaves a TEXTBOOK-correct claim: `pm:dispatched`,
assignee set, a first-line `Claim:` comment, and a branch that exists on the
remote. Every predicate in the patrol passed, so the card read as healthy
in-flight work indefinitely — and worse than merely unreported: the next PM's
round-open mutual-exclusion read treats a dead `Claim:` as a live claim by
another session and stays off the card, so one dead agent blocks the lane.
H20 is the near neighbour and misses it BY CONSTRUCTION, not by oversight:
os-dev.md makes pushing the empty branch the FIRST action of the task, so a
protocol-compliant agent that dies still leaves a ref and lands outside H20's
no-ref-at-all population. The better the dev follows the protocol, the more
invisible its death.
H27 keys on the conjunction the filing card asked for: `pm:dispatched` ∧ a
claim older than the protocol's OWN ~24h stale line ∧ a claimed branch that
EXISTS ∧ that branch has not moved since the claim ∧ no PR delivers the card.
The threshold is quoted from SKILL.md's 死认领回收 rule rather than measured —
the fleet has 2 liveness samples, which is not a distribution.
Costs no request: H27's 24h population is a strict subset of H20's 60-minute
one, and the shared branch probe now reads `/branches/<b>` instead of
`/git/ref/heads/<b>` — the same underlying ref, so H20's three states are
untouched, but the head commit DATE rides in on a payload the sweep had
already paid for.
Report-only and pointedly NOT a reclaim: the protocol's reclaim rule applies to
a branch that does not exist and states 「有带提交活分支的认领永不回收」, so
this row prescribes the three-state recovery inspection and never an assignee
drop. It deliberately under-reports the dev that pushed once and then died.
Self-test 997 -> 1058 cases, both directions pinned per term.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RMTpSRF5CjMmQBFfPtPCwJ1 parent cebef55 commit 9959e4b
1 file changed
Lines changed: 431 additions & 14 deletions
0 commit comments