Multi-agent orchestration
Overview
Decompose -> waves -> reduce -> gate.
Provider-specific adapter definitions and installer mechanics are owned by
their adapter and installer surfaces; discover their current capabilities at
runtime.
Rules
- Use parallel fan-out only after the decomposition/value gate passes.
- Preflight dependencies/shared errors.
- No concurrent shared-state writes. Partition authorised writers into
repository
.worktrees/<task-agent>; otherwise use a serial applier.
- Parallel lanes stop ready-to-merge. The chair merges serially, refreshes the
next branch from current main, then reruns checks and reviews after commit/tree
changes.
- Keep topology exact. One chair; leaders settle recursive obligations.
Handoff is a generation-bound operator action.
- Answer-bearing external work uses a cooperative Fabric request/reply where
available; Herdr only observes or sends fire-and-forget steering. A normal
Fabric inbox read claims delivery; acknowledge after durable processing to
prevent redelivery. Claim/ack and a correlated reply evidence delivery, not
provider liveness or completion. Without a round trip, record
FABRIC-ROUNDTRIP-UNAVAILABLE and collect a named artifact.
- Record worker cwd; never assume repository.
- Workers write full output to files; return a digest/path.
- A worker's report is a claim, not evidence. Confirm claimed commits in
git log, claimed counts against its own transcript, and re-run any failure
it calls environmental. Lanes routinely report a clean result their own
output contradicts.
- Liveness: size proves nothing. Compare CPU and session-log mtime; see
worker-liveness.md. No growth keeps a live worker in the waiting path, but
growth is not proof either: a wrapper can sit blocked long after its child
exited. A detached task is not dead, and a live wrapper is not working.
Observed PID exit is what fences terminal reporting, inspection and reuse.
- Cross-family follows the HARNESS risk ladder. Targeted lenses plus other
primary; family separation is required only for the assurance claim being
made, not for ordinary execution. Record terminal skips.
- Configured workspace execution has broad provider choice. An authorised
chair may dispatch ordinary workspace work to any configured provider family;
execution freedom is bounded by credential/auth-store exclusions, unrelated
path containment, explicit denials, write/resource limits and external-action
gates.
- Objective checks outrank opinions. You own the final call.
- Discover current model/tool options at runtime.
When This Pays
Before parallel dispatch, require independent information or artefacts; stable
interfaces and dependencies; non-overlapping writes; independently checkable
return contracts; and expected information gain greater than coordination,
shared-state and tool-density cost.
If the gate fails, keep serial ownership with the chair or one specialist;
shared-error or tightly coupled work stays serial. Choose the smallest
passing topology.
Adaptive Loop
- Preflight authority/isolation/disclosure/receipts.
- Use native same-session subagents first. Ordinary configured-provider
CLI dispatch may use same-family routes. The current
cf_dispatch.sh
distinct-family requirement belongs to its assurance path; ordinary
dispatch is owned by scripts/dispatch_run.py and may use same-family
routes.
- Dispatch parallel read/partitioned-write and serial shared-state waves;
adapt leaders on evidence and keep one chair/stage owner.
- Reduce to a claim/conflict map; verify the live tree before repair.
- Add only informative waves: narrow, repair, verify, cross-family broad
review, or Document update wave.
- Final gate: no untriaged P0/P1, missing anchors, unresolved doc drift,
unrecorded family status or user gate. Record
CROSS-FAMILY-NOT-RUN when
unavailable.
Worker Contract
Every worker gets identity, objective, authority, paths, output, checks, stop
and budget. Where an adapter exposes them, record task class and route (tier,
model, effort, receipt); an ordinary alias-only route records its alias and
capability limit. Validate payloads, never infer permission. See
orchestration-contract.md.
Autonomous-implementation mode
Pulls accepted/ready issues through implement unattended; merge stays
user-controlled, deferring to the nearest repository merge policy. Lower
authority than autopilot's run-until-STOP loop. See
autonomous-implementation.md.
References
Load relevant references only:
trigger-boundary.md, routing-and-tiers.md, codex-subagents.md,
orchestration-contract.md, dynamic-workflows.md, paired-primary.md,
herdr-panes.md, layering-and-context.md, retrieval-and-tool-routing.md,
verification.md, cli-headless.md,
memory-scratchpad.md, evaluation-and-observability.md, domain-adaptation.md,
worker-liveness.md, and autonomous-implementation.md. scripts/ and
evals/ hold helpers/guards;
cf_dispatch.sh is the direct provider-execution adapter. When Fabric
coordination is unavailable, record its result as a named degraded artifact;
it is not itself a Fabric round trip.
Portable artifact
Use the skill-owned coordination summary schema.
1---2name: orchestrate3description: Use when bounded fan-out, multi-agent research, cross-family review, parallel audits, Herdr control, or autonomous ready-issue implementation helps. Not for tiny work, coupled debugging, or run-until-STOP jobs; use diagnose or autopilot.4---56# Multi-agent orchestration78## Overview910Decompose -> waves -> reduce -> gate.1112Provider-specific adapter definitions and installer mechanics are owned by13their adapter and installer surfaces; discover their current capabilities at14runtime.1516## Rules1718- **Use parallel fan-out only after the decomposition/value gate passes.**19- Preflight dependencies/shared errors.20- **No concurrent shared-state writes.** Partition authorised writers into21 repository `.worktrees/<task-agent>`; otherwise use a serial applier.22- Parallel lanes stop ready-to-merge. The chair merges serially, refreshes the23 next branch from current main, then reruns checks and reviews after commit/tree24 changes.25- **Keep topology exact.** One chair; leaders settle recursive obligations.26 Handoff is a generation-bound operator action.27- **Answer-bearing external work uses a cooperative Fabric request/reply where28 available; Herdr only observes or sends fire-and-forget steering.** A normal29 Fabric inbox read claims delivery; acknowledge after durable processing to30 prevent redelivery. Claim/ack and a correlated reply evidence delivery, not31 provider liveness or completion. Without a round trip, record32 `FABRIC-ROUNDTRIP-UNAVAILABLE` and collect a named artifact.33- Record worker cwd; never assume repository.34- **Workers write full output to files**; return a digest/path.35- **A worker's report is a claim, not evidence.** Confirm claimed commits in36 `git log`, claimed counts against its own transcript, and re-run any failure37 it calls environmental. Lanes routinely report a clean result their own38 output contradicts.39- **Liveness: size proves nothing.** Compare CPU and session-log mtime; see40 `worker-liveness.md`. No growth keeps a live worker in the waiting path, but41 growth is not proof either: a wrapper can sit blocked long after its child42 exited. A detached task is not dead, and a live wrapper is not working.43 Observed PID exit is what fences terminal reporting, inspection and reuse.44- **Cross-family follows the HARNESS risk ladder.** Targeted lenses plus other45 primary; family separation is required only for the assurance claim being46 made, not for ordinary execution. Record terminal skips.47- **Configured workspace execution has broad provider choice.** An authorised48 chair may dispatch ordinary workspace work to any configured provider family;49 execution freedom is bounded by credential/auth-store exclusions, unrelated50 path containment, explicit denials, write/resource limits and external-action51 gates.52- **Objective checks outrank opinions. You own the final call.**53- Discover current model/tool options at runtime.5455## When This Pays5657Before parallel dispatch, require independent information or artefacts; stable58interfaces and dependencies; non-overlapping writes; independently checkable59return contracts; and expected information gain **greater than** coordination,60shared-state and tool-density cost.6162If the gate fails, keep serial ownership with the chair or one specialist;63shared-error or tightly coupled work stays serial. Choose the smallest64passing topology.6566## Adaptive Loop67681. Preflight authority/isolation/disclosure/receipts.692. **Use native same-session subagents first.** Ordinary configured-provider70 CLI dispatch may use same-family routes. The current `cf_dispatch.sh`71 distinct-family requirement belongs to its assurance path; ordinary72 dispatch is owned by `scripts/dispatch_run.py` and may use same-family73 routes.743. Dispatch parallel read/partitioned-write and serial shared-state waves;75 adapt leaders on evidence and keep one chair/stage owner.764. Reduce to a claim/conflict map; verify the live tree before repair.775. Add only informative waves: narrow, repair, verify, **cross-family broad78 review**, or **Document update wave**.796. **Final gate:** no untriaged P0/P1, missing anchors, unresolved doc drift,80 unrecorded family status or user gate. Record `CROSS-FAMILY-NOT-RUN` when81 unavailable.8283## Worker Contract8485Every worker gets identity, objective, authority, paths, output, checks, stop86and budget. Where an adapter exposes them, record task class and route (`tier`,87`model`, `effort`, receipt); an ordinary alias-only route records its alias and88capability limit. Validate payloads, never infer permission. See89[orchestration-contract.md](references/orchestration-contract.md).9091## Autonomous-implementation mode9293Pulls **accepted/ready** issues through `implement` unattended; merge stays94user-controlled, deferring to the nearest repository merge policy. Lower95authority than autopilot's run-until-STOP loop. See96[autonomous-implementation.md](references/autonomous-implementation.md).9798## References99100Load relevant [references](references/) only:101`trigger-boundary.md`, `routing-and-tiers.md`, `codex-subagents.md`,102`orchestration-contract.md`, `dynamic-workflows.md`, `paired-primary.md`,103`herdr-panes.md`, `layering-and-context.md`, `retrieval-and-tool-routing.md`,104`verification.md`, `cli-headless.md`,105`memory-scratchpad.md`, `evaluation-and-observability.md`, `domain-adaptation.md`,106`worker-liveness.md`, and `autonomous-implementation.md`. `scripts/` and107`evals/` hold helpers/guards;108`cf_dispatch.sh` is the direct provider-execution adapter. When Fabric109coordination is unavailable, record its result as a named degraded artifact;110it is not itself a Fabric round trip.111112## Portable artifact113114Use the skill-owned [coordination summary schema](portable-workflow.v1.json).