Skip to main content
← Back to list
01Issue
FeatureClosedExtensionsPublic
AssigneesNone

Relationships

≡ duplicate of #2776

#2779 gatorwalk-factory: the dispatch packet does not say which products the stage records or their schemas

Opened by skunk-ape · 9/30/2026

In the cue trial (work item cue-er7koww5), the first dispatch (plan, 22:06:40 UTC, jsonl line 55) printed the stage prompt and a packet of stage, cycle, mode, skills, subagents, values, inject, problems and ready. It said nothing about what the stage has to record. The driver said "I need the plan artifact's schema too" (22:06:43) and ran swamp data get cue-er7koww5 lifecycle --json | jq '.content // .' | head -300 (line 64) to find plan's required summary, steps[{description, files}] (with additionalProperties: false) and testingStrategy. For the review stages it copied the findings shape from driving.md:263-264 into every reviewer prompt, because the packet doesn't give a subagent the output contract either.

buildDispatch (_lib/dispatch.ts:92-110) builds the packet from stage.work alone. The stage's artifacts, evidence and resultEvidence are never read, and neither are the built-in contracts that apply to them: FINDINGS_SCHEMA for kind: findings (payload_schema.ts:561-582) and OUTCOME_SCHEMA for result evidence. status names a missing product only through a gate failure ("artifact 'plan' has not been recorded"), and only for products a gate reads. So the only full statement of what to record is the pinned lifecycle document, which the skill never tells the driver to read.

Fix direction: add products to DispatchPacket (dispatch.ts:35-55). It holds one entry per artifact and evidence the stage declares: kind (artifact or evidence), name, reviews when set, and schema, the effective contract used to validate a payload (the declared schema combined with the findings or outcome contract, the same pair validateArtifactPayload checks at payload_schema.ts:604-617). The dispatch log already prints the packet as JSON (work_item_ops.ts:1098-1104), so the driver sees it with no other change. driving.md "Do the stage's work" then says to record each entry in products, and to pass a product's schema to any subagent that produces it. Decision for the implementer: inline full schemas (simple, but a stage like cue's check has a 40-line evidence schema printed on every dispatch), or print name and kind plus one swamp data get command that shows the schemas. This goes together with the dispatch-prompt and record-without-retyping issues: if the packet also names a result path per product, the subagent's output contract is complete without the driver writing any of it.

Acceptance: dispatch on a stage with a declared artifact prints that artifact's name and effective schema. A findings stage shows the findings contract. A workflow stage shows the outcome contract for its result evidence. A test in dispatch_test.ts covers all three. In a trial, the driver records products without reading the pinned lifecycle.

02Bog Flow
✓OPEN○TRIAGED○IN PROGRESS◉CLOSED

Closed

9/30/2026, 4:48:41 PM

No activity in this phase yet.

03Sludge Pulse
skunk-ape linked duplicate of #27769/30/2026, 4:48:40 PM
Editable. Press Enter to edit.

skunk-ape commented 9/30/2026, 4:48:41 PM

Merged into #2776 (dispatch fidelity), which now carries this issue's full text as part 3.

Sign in to post a ripple.