os-sdlc: pipeline agents share one scratchpad payload file name; concurrent agents overwrite each other's subagent-stop payload #725

Closed
opened 2026-09-25 16:15:43 +00:00 by jared · 1 comment
Owner

Problem

Pipeline agents write their subagent-stop JSON payload to a shared scratchpad file with a fixed name before piping it.
A second agent writing at the same time overwrote the first's payload, so dispatch 444's stop was submitted with dispatch 441's programmer content, and the Runner kept returning await_completion for implementation 43 until the agent was resumed and re-submitted with a uniquely named file.
A test-reviewer later reported dispatch ID 465 while its brief was 467.
VERDICT: CREATE (user-directed: workflow defects surfaced during /os-sdlc:implement are the only acceptable terminal reason and must be captured)

Observed

os-sdlc-runner next returned {"type":"await_completion"} after the test-writer had exited.
On resume the agent said "raced with a concurrent agent's write to the same shared scratchpad file".

Reproduce

n/a: timing-dependent; two pipeline agents alive at once.

Origin

Trigger: /os-sdlc:implement 717, implementation 43, session 89876543-c418-46b0-b994-dd6dc6887802
Improvised this session: hand-finished after the loop (same as #718 impl 38)
Chain: wrong-dispatch stop ← fixed shared payload file name ← charter instruction
Root candidate: this ticket
Where: the agent charters under plugins/os-sdlc/agents/*.md and the subagent-stop instructions they share; fix is to name the payload file by dispatch ID in the charter, or to have the SubagentStart hook hand each dispatch its own payload path.
Session: 89876543-c418-46b0-b994-dd6dc6887802
Transcript: /home/jared/.claude/projects/-home-jared-dev-cc-os/89876543-c418-46b0-b994-dd6dc6887802.jsonl

## Problem Pipeline agents write their subagent-stop JSON payload to a shared scratchpad file with a fixed name before piping it. A second agent writing at the same time overwrote the first's payload, so dispatch 444's stop was submitted with dispatch 441's programmer content, and the Runner kept returning await_completion for implementation 43 until the agent was resumed and re-submitted with a uniquely named file. A test-reviewer later reported dispatch ID 465 while its brief was 467. VERDICT: CREATE (user-directed: workflow defects surfaced during /os-sdlc:implement are the only acceptable terminal reason and must be captured) ## Observed os-sdlc-runner next returned {"type":"await_completion"} after the test-writer had exited. On resume the agent said "raced with a concurrent agent's write to the same shared scratchpad file". ## Reproduce n/a: timing-dependent; two pipeline agents alive at once. ## Origin Trigger: /os-sdlc:implement 717, implementation 43, session 89876543-c418-46b0-b994-dd6dc6887802 Improvised this session: hand-finished after the loop (same as #718 impl 38) Chain: wrong-dispatch stop ← fixed shared payload file name ← charter instruction Root candidate: this ticket Where: the agent charters under plugins/os-sdlc/agents/*.md and the subagent-stop instructions they share; fix is to name the payload file by dispatch ID in the charter, or to have the SubagentStart hook hand each dispatch its own payload path. Session: 89876543-c418-46b0-b994-dd6dc6887802 Transcript: /home/jared/.claude/projects/-home-jared-dev-cc-os/89876543-c418-46b0-b994-dd6dc6887802.jsonl
Author
Owner

Resolution

Done: charters no longer write a payload file; every settling role pipes a heredoc straight into os-sdlc-subagent-stop with dispatch_id

Evidence: commit 964642c5 (#706)

Follow-ups: none

## Resolution **Done:** charters no longer write a payload file; every settling role pipes a heredoc straight into os-sdlc-subagent-stop with dispatch_id **Evidence:** commit 964642c5 (#706) **Follow-ups:** none
jared closed this issue 2026-09-28 16:39:42 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
jared/cc-os#725
No description provided.