Build
Missions
Give Excalibur a goal and it plans and drives the whole cycle — interpret → understand → build → verify → ship — autonomously, with a live plan, checkpoint/resume and a budget ceiling.
A mission is the meta-orchestrator. Hand Excalibur a big, multi-faceted goal and it doesn't just write code: it interprets the goal, auto-authors a plan (a graph of capabilities), and drives it end to end — adapting after every step. It's the command form of the whole product cycle the rest of the docs describe.
excalibur mission "add rate limiting to the public API, with tests and docs"
In the m-shell you don't need the command — a big, multi-part goal routes to a mission on its own.
What it does
From the goal, Excalibur derives the capability DAG and runs it, and each capability fires its own dedicated engine — not a generic prompt:
| Capability | What runs |
|---|---|
| Understand | the read-only scope fan-out → a map of subsystems, built-vs-missing and risks |
| Plan | a concrete, step-by-step implementation plan |
| Build | a focused run, or a swarm of parallel agents when the work splits, or best-of-N rival approaches |
| Verify | the adversarial verification mesh + your tests — a real gate |
| Ship | commit the change — or open a pull request with --pr |
What it understood up front is threaded into every later step, so the plan and the build are grounded in your real code.
It adapts as it goes
A mission isn't a fixed checklist. After each gate or failure it reassesses and picks the next move — retry, escalate a single run into a swarm, replan, skip a superseded step, or finish — so a wrong turn self-heals instead of dead-ending. A live plan ribbon stays pinned above the run, showing every capability's status (✓ ◐ ○ ✗) as it advances.
Long jobs: checkpoint, budget, resume
Missions are built for work that doesn't finish in one sitting:
- Checkpointed — state is saved to
.excalibur/missions/<id>/after every step. - Budget ceiling —
--budget <usd>pauses the mission (resumably) the moment spend hits the cap. - Resumable — pick a paused mission back up where it left off; the completed prefix isn't re-run.
excalibur mission "migrate the billing service to the new schema" --budget 5
excalibur mission "ship the export feature end to end" --pr
Missions vs. swarm vs. orchestrate
Three different things — don't confuse them:
| Who plans it | What it is | |
|---|---|---|
| Mission | Excalibur, from your goal | the full cycle, auto-authored and driven |
Swarm (swarm) | the planner sizes it | parallel agents over the independent parts of one task |
Orchestrate (orchestrate --spec) | you, in YAML | a deterministic DAG you authored |