| name | synthesize |
| description | Merge N independent per-slice designs (plus the research they rest on) into ONE coherent phased plan in .rpiv/artifacts/plans/ — reconciling cross-slice overlaps, wiring inter-slice integration, and ordering phases by slice dependencies. Single-pass, no subagents, no self-review. The fan-in barrier of a fanout-and-synthesize flow — one phase per slice, plan-compatible so implement/validate consume it unchanged. For large slice maps it also runs hierarchically — as a per-cluster partial (`--as-subplan` turns designs into a subplan) and as the root merge (`--subplans` turns subplans into a plan) — so no single pass must hold every design at once. Use after a per-slice design fanout. |
| argument-hint | --designs <path>... [--research <path>] [--as-subplan] [--cluster <k>] | --subplans <path>... [--research <path>] |
| allowed-tools | Read, Grep, Glob, Write |
| shell-timeout | 10 |
| disable-model-invocation | true |
| contract | {"produces":{"kind":"produces","meta":{"artifactKind":"plan"},"data":{"type":"object","required":"[Truncated]","properties":"[Truncated]"}},"consumes":{"reads":{"designs":"[Truncated]","subplans":"[Truncated]","research":"[Truncated]"}}} |
Synthesize
You merge several independent per-slice designs into one coherent phased plan. One pass. You do not redesign a slice or write code — you reconcile and sequence what the slice designs already decided. This is the fan-in barrier: each design was produced blind to the others, so your job is to make them fit together. No subagents, no self-review — the workflow's grade panel judges the merged plan.
Input
$ARGUMENTS — flags (the orchestrator wires them from the fan-in):
--designs <path> (repeats) — per-slice design docs from the design fanout.
--subplans <path> (repeats) — partial sub-plans from a cluster fanout (root mode).
--research <path> (optional) — the research the slices rest on, for cross-slice constraints.
--as-subplan (flag) — emit a sub-plan (partial mode) instead of a full plan.
--cluster <k> (optional, partial mode) — the ordinal written into the sub-plan's _cluster-<k>.md filename. The cluster fanout supplies it; for manual partial invocation pick an unused <k> (scan .rpiv/artifacts/subplans/ for existing *_cluster-<k>.md and take the next unused positive integer) so a re-dispatched pass writes a distinct file and never clobbers a sibling sub-plan.
If neither --designs nor --subplans is present, print an error and stop.
Modes
Pick the mode from the flags — the work is the same fan-in reconciliation at three scales:
| Mode | Selected by | Reads | Writes to | Output kind |
|---|
| Flat (default) | --designs only | every design | .rpiv/artifacts/plans/ | full plan |
| Partial (per-cluster) | --designs … --as-subplan | one cluster's designs | .rpiv/artifacts/subplans/ | sub-plan |
| Root (merge) | |