# Multi-agent routing card

Version: 1.2
Updated: 2026-07-17

Purpose: parallelise independent work without creating file, decision, or release collisions.

Output: bounded lane assignments and one serial integration plan.

## Use when

Two or more agents can produce independent artifacts from the same stable inputs.

## Quick start

1. Apply the split test. If lanes share an unresolved decision, keep the work serial.
2. Give every write surface one owner and every lane an acceptance check.
3. Freeze lane outputs, then integrate and release from one named owner.

## 1. Split test

Answer all five questions:

- Can each lane finish correctly without predicting another lane’s implementation? Yes / No
- Can every file and generated artifact have exactly one write owner? Yes / No
- Are the base revision, facts, and acceptance criteria stable? Yes / No
- Can lane outputs be reviewed independently before integration? Yes / No
- Is there one integration and release owner? Yes / No

Parallelise only when every answer is **Yes**. Otherwise resolve the dependency or run the work serially.

## 2. Assignment map

| Lane | Bounded outcome | Owner | Reviewer | Owned files or artifact | Base revision | Status |
|---|---|---|---|---|---|---|
|  |  |  |  |  |  | Planned / Active / Frozen / Accepted |

## 3. Copy-ready lane assignment

```text
Outcome: Produce [one observable artifact].

Own: [exact files, data, or report].
Read only: [context the lane may inspect but not modify].
Do not: [excluded files, decisions, refactors, deploys, sends, or merges].
Base: [revision, timestamp, dataset, or requirements snapshot].
Accept when: [focused checks and observable result].
Return: [diff or artifact, evidence, open risks, and safest next action].
Stop if: ownership changes, a shared decision is unresolved, source truth conflicts, or new authority is required.
```

An assignment should describe the artifact, not a job title such as “handle the frontend.”

## 4. Shared-surface policy

| Shared surface | Policy | Owner | Change point |
|---|---|---|---|
| Manifest or index | Integrator-owned |  | After lanes freeze |
| Generated output | Generate once from combined source |  | During integration |
| Shared style or utility | Read-only or separately assigned |  | Before lanes begin |
| Cache or asset version | Reserve until combined diff is known |  | During integration |
| Release state | Integrator-only |  | After combined gate |

Worktrees isolate files. They do not resolve two lanes encoding conflicting assumptions in different files.

## 5. Collision check

- [ ] Active worktrees, branches, processes, and dirty files are known.
- [ ] Every file and generated artifact has one write owner.
- [ ] Lanes use the same base facts and revision.
- [ ] Different files do not encode conflicting decisions.
- [ ] No lane independently runs a shared generator.
- [ ] No lane merges, publishes, sends, or advances release state.

## 6. Evidence contract

| Lane | Claim to prove | Focused check | Negative path | Reviewer reproduction |
|---|---|---|---|---|
|  |  |  |  |  |

## 7. Serial integration plan

1. Freeze each lane at a named revision or immutable artifact.
2. Compare its output with the lane assignment.
3. Accept or reject it before combining anything.
4. Integrate the least coupled accepted lane first.
5. Resolve conflicts by intended outcome, not by keeping both versions.
6. Update shared and generated surfaces once from combined truth.
7. Run the full combined gate and inspect the rendered result.
8. Publish only from the named integration owner.

- Integration owner:
- Merge or application order:
- Regeneration step:
- Combined blast-radius check:
- Rollback point:
- Final release authority:

## Worked example

**Goal:** improve six downloadable files and independently test their public delivery.

| Lane | Bounded outcome | Owned surface | Must not do | Acceptance |
|---|---|---|---|---|
| Content | six useful standalone documents | six source Markdown files | edit build or deploy | titles, examples, and guidance complete |
| Verification | reproducible audit plan | report only | edit source or declare release | tests every download and method link |
| Integrator | combine, build, preview, release | manifest, generator, release state | rewrite accepted content silently | full gate and public audit pass |

This split works because the verifier can design and run evidence independently, while only the integrator owns shared metadata and release state.

## Stop if

Stop a lane when it needs a shared file, crosses ownership, discovers a conflicting assumption, loses a stable base, or requires a public or irreversible action outside its authority.
