Skip to content

date: 2026-06-11 tags: [orchestration, fan-out, agents, ideate, merge] status: active graduated_to:

Merge fan-out output mechanically; keep judgement a separate, blind step

Pattern — when you fan out work to N workers/helpers and bring their outputs back, split the reduce into two stages that must not blur:

  1. Merge — mechanical, hands-off. Flatten/concatenate into one pool, strip attribution (so downstream stays blind), dedupe only verbatim repeats. Prefer plain code over a model call. The merging agent authors and edits nothing.
  2. Judgement — separate and blind. Ranking, scoring, selecting, semantic dedup happen after, in a distinct pass run blind (a chooser against a rubric, a blind-reviewer against the standards).

Why — a model told to "merge these" silently drops, conflates, re-words and pre-ranks, biasing the pool before judgement even runs. Mechanical merge is cheaper, faster, reproducible, and preserves the full option space so the later judgement is honest. (Surfaced both ways this session: ideate already did this right — "Merge flat, mechanically" — and the orchestration research independently converged on "reduce in plain code, not a model call.")

Tell — if your merge step is making a quality call (deciding what's better, not just what's duplicate), you've crossed the line — move that call into the judgement step.

Where it livesdocs/agents/deterministic-merge.md is the one home; ideate and docs/agents/orchestration.md point at it.