Files
roboco/docs/rag/lifecycle/status-transitions.md
T
Renn F d87e2d9b4e fix(lifecycle): stop PMs re-claiming tasks out of the closure queue — kills the i_will_plan review loop
A cell/main PM's i_will_plan could legally re-claim its own task from
awaiting_pm_review (a CLAIM_RULES edge added for post-respawn recovery),
resetting the task to in_progress and re-running submit_up -> pr_pass ->
awaiting_pm_review forever: one Sentinel conventions child looped eleven
full laps in four hours (14 reviews on one PR, 37 agent spawns) while
its root's closure check fired eighteen times and the Main PM could
never close anything.

The claim edge is gone from every table that carried it — CLAIM_RULES,
the claim ActionSpec's source statuses, the StatusTransition row, the
service-layer _ROLE_CLAIM_STATUSES twin, and the legacy enforcement
shim's operational-edge/role-gate entries (left divergent, it would be
the same silent two-table drift that produced this bug). The respawn
case the edge existed for is now served properly: _handle_pm_reentry
gained a third contract — a PM calling i_will_plan on its own
awaiting_pm_review task gets a steering envelope (no claim, no state
change) pointing at complete/request_changes, and give_me_work's next
hint for that status says the same instead of steering back into
i_will_plan. The no-transition review-claim path and the pm-review
dispatch prompt were already correct and are untouched, so closure
still converges through them.

A new bidirectional test asserts CLAIM_RULES and _ROLE_CLAIM_STATUSES
stay identical per PM role (the old comment claimed a sync test existed;
it checked one direction only). Lifecycle artifacts regenerated; the
parity suite's three unshaped session mocks fixed, zero AsyncMock
warnings remain.
2026-07-30 23:37:27 +02:00

2.5 KiB

Status Transitions

Source Target Action Roles
awaiting_ceo_approval cancelled cancel ceo
awaiting_ceo_approval completed ceo_approve ceo
awaiting_ceo_approval needs_revision ceo_reject ceo
awaiting_ceo_approval pending ceo_reject_to_pool ceo
awaiting_documentation awaiting_pm_review docs_complete documenter
awaiting_documentation cancelled cancel cell_pm, ceo, main_pm
awaiting_documentation claimed claim documenter
awaiting_pm_review awaiting_ceo_approval escalate_to_ceo head_marketing, main_pm, product_owner
awaiting_pm_review cancelled cancel cell_pm, ceo, main_pm
awaiting_pm_review completed complete cell_pm, main_pm
awaiting_pm_review needs_revision request_changes cell_pm, main_pm
awaiting_pr_review awaiting_pm_review pr_pass pr_reviewer
awaiting_pr_review cancelled cancel cell_pm, ceo, main_pm
awaiting_pr_review claimed claim pr_reviewer
awaiting_pr_review needs_revision pr_fail pr_reviewer
awaiting_qa awaiting_documentation qa_pass qa
awaiting_qa cancelled cancel cell_pm, ceo, main_pm
awaiting_qa claimed claim qa
awaiting_qa needs_revision qa_fail qa
backlog cancelled cancel cell_pm, ceo, main_pm
backlog pending activate any
blocked awaiting_ceo_approval escalate_to_ceo head_marketing, main_pm, product_owner
blocked cancelled cancel cell_pm, ceo, main_pm
blocked in_progress unblock any
blocked pending unblock any
claimed cancelled cancel cell_pm, ceo, main_pm
claimed in_progress start any
in_progress awaiting_pm_review submit_pm_review any
in_progress awaiting_pr_review submit_for_review any
in_progress blocked block any
in_progress cancelled cancel cell_pm, ceo, main_pm
in_progress completed pr_review_done pr_reviewer
in_progress paused pause any
in_progress verifying submit_verification any
needs_revision cancelled cancel cell_pm, ceo, main_pm
needs_revision claimed claim any
paused cancelled cancel cell_pm, ceo, main_pm
paused in_progress resume any
pending cancelled cancel cell_pm, ceo, main_pm
pending claimed claim any
verifying awaiting_qa submit_qa any
verifying cancelled cancel cell_pm, ceo, main_pm