| name | workflow-parallel-fanout-omits-sequential-phases |
| description | A sequential, stateful multi-agent process (adversarial DEBATE rounds, iterative
reflect-then-rebut, staged consensus where step N reads step N-1's peers) silently
VANISHES when the task is run under "ultracode" or authored as a Workflow — the run
collapses to a parallel find→verify→judge with no reviewer-to-reviewer cross-talk.
Use when: (1) you ran "review / red-team / debate X in ultracode mode" and the
workflow shows only ~3 stages (review → verify → judge), no debate/reflection/blind-
final; (2) you invoked a multi-phase SKILL (e.g. roundtable:agent-review-panel) but
the execution was a parallel fan-out with no agents reading each other; (3) a skill
whose spec MANDATES sequential phases produced a result with those phases absent and
it is NOT context-compression (that's the sister skill multi-agent-skill-silent-phase-
compression). Counter-intuitive root cause: the Workflow/ultracode engine is a PARALLEL
fan-out engine (parallel()/pipeline(), agents never see each other) with no primitive
for sequential cross-talk — so "run it as a workflow" structurally omits debate, and
invoking a skill under ultracode-bias ≠ running the skill's protocol.
|
| author | Claude Code |
| version | 1.0.0 |
| date | "2026-06-06T00:00:00.000Z" |
| disable-model-invocation | true |
Running a sequential multi-agent process as a Workflow silently drops its sequential phases
Problem
A multi-agent process that depends on sequential, stateful cross-talk — adversarial
debate rounds, reflect-then-rebut, blind-final-after-debate, any "step N reads step N−1's
peer outputs and responds" — silently disappears when the task is executed under
ultracode or hand-authored as a Workflow. The result looks like a clean 3-stage
review → verify → judge with no reviewer-to-reviewer argument, and reads as complete.
The judge ends up doing alone the reconciliation the debate was supposed to surface.
Context / Trigger Conditions
- You said "review / red-team / stress-test X in ultracode" and the
/workflows
view shows ~3 stages at most: independent review → verify → judge. No debate /
reflection / blind-final.
- You invoked a multi-phase skill (e.g.
roundtable:agent-review-panel, which
mandates Phase 5 Debate / 6 Summarize / 7 Blind-Final) but the actual execution was
a parallel fan-out — N independent agents, then a judge — with zero agents reading each
other's output.
- A skill spec lists mandatory sequential phases, yet the run has them absent — and
it's not the context-compression failure (full skill ran, mid-phases squeezed out under
token pressure → that's the sister skill, see below).
Root cause
The Workflow tool / ultracode is a parallel fan-out engine: parallel() and
pipeline() run agents that never see each other. There is no primitive for
sequential cross-talk (agents reading peers' outputs and responding across rounds). The
tool's own canonical review recipe is literally "find → adversarially verify → judge" —
debate is not in its vocabulary. Three consequences, by frequency (from a week-long audit
of roundtable:agent-review-panel usage across dozens of runs, where nearly every run
had no debate):
- Ultracode biases toward authoring a Workflow instead of invoking the sequential
skill. The workflow it writes is find→verify→judge; debate was never in it.
- Debate-less sister skills get auto-selected for small / autonomous-multi-PR work
(e.g. a "streamlined parallel panel, no debate, no judge" skill) — debate-free by
design.
- "Invoking a skill" ≠ "running its protocol" in an ultracode/workflow-biased
session: the skill name appears in the transcript, but execution collapses to a
parallel shape. (Audit: the skill was invoked on the order of a dozen times, ran its
full protocol only a couple of times, and actually debated just once.)
This is structurally distinct from silent phase compression: there, the full skill
runs and mid-pipeline phases get dropped under orchestrator context-budget pressure; HERE
the protocol never ran — a parallel, debate-less mode ran in its place.
Solution
To get the sequential phases back:
- Invoke the skill WITHOUT ultracode/workflow framing.
/roundtable:agent-review-panel
in a non-ultracode turn, or "run the FULL panel with adversarial debate rounds — do
not streamline, do not run it as a workflow." The sequential phases live in the
skill's own Agent-tool orchestration, not the Workflow engine.
- If you DO want cross-talk inside a Workflow, author it explicitly. It's the default
absence of cross-talk, not an impossibility: make round 2 a
pipeline()/parallel()
stage whose prompts are fed round 1's peer outputs so each agent rebuts what the
others said, then judge. (Proven: one audited run used phases [Review, Debate, Audit+Verify, Judge] and debated correctly.)
- Make absence loud. Stamp a
[NO-DEBATE] / [NO-CROSS-TALK] banner on the output
when the sequential phase produced no state — so a flattened run announces itself
instead of looking complete.
The discriminator — when does this even matter? Fan-out with no cross-talk is correct
when the sub-tasks are independent (classify N transcripts, review N unrelated files,
search N angles) — there's nothing to debate. Sequential debate earns its cost only when
agents would genuinely change each other's verdicts: security-vs-performance tradeoffs,
"is this P0 actually real", merge/ship go-no-go. Drop cross-talk freely for independent
work; protect it for adversarial-tradeoff work. (Ironically, an audit of this very
problem correctly ran as a no-debate fan-out — independent transcripts.)
Verification
- After forcing the skill path: the transcript shows agents reading each other's findings
and revising (Phase 5/6/7 state files, e.g.
state/reviewer_*_phase_5_round1.md), not
just N independent reviews → judge.
- The output names a debate/rebuttal step with actual position changes, not a single
judge integration.
Notes
- Sister skill — different root cause, same symptom:
multi-agent-skill-silent-phase-compression
covers the case where the FULL skill did run but mid-pipeline phases were silently
compressed under orchestrator context-budget pressure. If the skill genuinely ran its
protocol and phases still vanished → that skill. If a parallel/streamlined/workflow mode
ran instead of the protocol → this skill.
- The audit that surfaced this: a multi-agent Workflow over about a week of real usage;
finding written up (anonymized) in the review-panel tool's own
docs/analysis/. The
repo-side fix (loud [NO-DEBATE] banner) is tracked as an issue there.
- General principle beyond review panels: any skill/process whose value is sequential
state (iterative refinement, negotiation, multi-round consensus) is at risk of being
flattened when "run as a workflow." Audit the executed shape, not the invoked name.