The work loop
An agent that reports “tests pass” is making a claim. Brigade’s job is to turn the claim into a record and the record into context for whatever runs next. Every piece of work routed through Brigade runs the same circuit:
- Intent goes in. A task with acceptance criteria, from
brigade work briefor abrigade runprompt. - Context attaches. Prior evidence briefs from the ledger and a code-impact pack from the graph, when one exists in the repo. The worker starts from verified history instead of a cold grep.
- Bounded execution. Replaceable workers do the labor through their own CLIs.
brigade runis intentionally bounded: one orchestrator plans and synthesizes, assigned workers execute in between. - Verification.
brigade work verify runexecutes the real check and records the real exit code. The model never grades its own work. - The receipt lands. Command, exit code, git state, and the code-graph delta go to a plain file, then into the Evidence Ledger. Reviewed notes become durable memory.
brigade outcomescores the skill that produced the result.
Then the circuit closes: the next brief carries that history, so run N+1 starts where run N actually ended, not where the chat scrollback claims it did.
Work enters as intent and leaves as evidence.
The inversion
The design puts the durable work record at the center and treats models as replaceable workers around it. Codex, Claude Code, Cursor, OpenCode, and the rest can all pass work through the same loop, and swapping one for another changes nothing about what persists: receipts, graph deltas, evidence, reviewed memory, and outcome scores survive every model upgrade. The evidence outlives the worker that produced it.
If it helps to reach for an analogy: Brigade behaves like a runtime for the work itself, never for the agents. It does not host your agents, does not own their internal reasoning state, and does not run in the background. It is a CLI that writes plain files when you invoke it, and hooks in wired repos route checks through it. The loop is the contract; the receipts are the proof.
Where each step lives
| Step | Command surface | Artifact |
|---|---|---|
| Intent | brigade work brief, brigade run "<task>" | task ledger, run plan |
| Context | evidence briefs, code context packs | run.json records which briefs attached |
| Bounded execution | brigade run roster dispatch | worker outputs, changes.patch with --worktree |
| Verification | brigade work verify run --capture | receipt.json with the exit code |
| Record | brigade evidence search, brigade outcome rank | Evidence Ledger, memory/outcome/ |
Related: The Brigade run for the dispatch mechanics, Memory ownership for who writes canonical memory.