Objectives & acceptance
An objective is a persistent, multi‑run goal — a campaign AM keeps working across scheduled runs until it's met. Where a focus is "what to do this run", an objective is "the goal we're driving toward".
Set an objective
In Repo settings → Objective, set:
- Objective — the campaign goal, e.g. "raise test coverage to 70%".
- Acceptance command (optional) — a shell command that exits
0when the objective is met, e.g../scripts/coverage-at-least.sh 70.
How it completes
After each run, AM runs the acceptance command. When it passes, the objective is marked met and the scheduler stops working it — the campaign is done. With no acceptance command, you mark it met manually (Mark met / Reopen). If you use a progress ledger, the objective also auto‑completes when every sub‑task is done.
objective active → run → acceptance passes (or all ledger tasks done)? → met (scheduler stops)
└─ no → keep working it next cycle
Progress ledger (optional)
By default each run re‑attacks the whole objective from scratch. A ledger turns one broad objective into an ordered checklist of small, independently verifiable sub‑tasks that AM works through cumulatively — so progress builds run over run instead of starting over.
In Repo settings → Objective, with an objective set, click Decompose. AM makes one planning pass and breaks the objective into a handful of ordered sub‑tasks, each with its own (optional) verify command. From then on:
- Each scheduled run picks the next open sub‑task as its focus (not the whole objective), and the gates check that sub‑task.
- After the run the sub‑task is marked done or blocked, and the ledger persists — the next run builds on the last.
- A progress bar (
done / total) shows how far the campaign has come. - When every sub‑task is resolved, the objective flips to met.
Priority chain: When a ledger exists with pending tasks, it overrides the repo's focus for each run. See Focus → Priority chain for details.
The ledger is opt‑in: leave it un‑decomposed and the objective behaves exactly as before (whole‑objective runs + acceptance command). It only applies when an objective is set.
Status values
| Status | Meaning |
|---|---|
| (empty) | No objective; runs use the repo focus |
| active | AM is driving toward it (whole‑objective, or task‑by‑task with a ledger) |
| met | Achieved (acceptance passed or all ledger tasks done) — scheduler skips this repo |
Objective vs explore mode
- Objective = a human‑set destination AM keeps working toward.
- Explore mode = AM proposes its own bounded work when there's no standing objective.
A standing objective takes priority: while one is active, explore mode stands down.