automaintainer/ docs
Dashboard →

Focus

The focus is what you want AM to work on, in plain English. It's the single most important input to a run's quality.

Write a good focus

  • Bounded. One small, shippable outcome — "fix failing tests in the auth module", not "modernise the codebase".
  • Verifiable. Pair it with a verify command that passes only when the work is correct.
  • Concrete. Name the area, file, or behaviour where you can.

A vague focus ("improve the code") tends to make agents over‑explore and commit nothing. If you're unsure how to phrase it, start from a playbook — they ship procedural, battle‑tested focuses.

Good vs vague

Vague Better
improve quality add a unit test for the untested parseConfig() function
update deps bump one outdated minor/patch dependency safely
fix the docs expand the sparse README "Configuration" section

Procedural focuses

The best focuses read like a short numbered recipe — orient briefly, do one thing, commit. Playbooks use this style, e.g.:

Add ONE new plugin that doesn't exist yet.
1) Skim PLUGIN_STANDARDS.md and one existing plugin (briefly).
2) Pick a small, useful plugin not already present.
3) Implement it to the standard. 4) Add a minimal test. 5) Commit.
Keep it small; don't over‑explore; commit by ~your 8th tool call.

Focus vs objective

  • Focus = what to do this run.
  • Objective = a persistent multi‑run goal that AM keeps working until an acceptance check passes.

Priority chain (when an objective ledger exists)

When an objective is decomposed into a progress ledger, the priority chain is:

  1. Ledger sub-task → overrides focus with the task title + verify command
  2. Repo focus → used when no ledger task is pending
  3. Empty focus → agent works without a specific directive

What this means: If you have a decomposed ledger with pending tasks, your repo focus is ignored for each run until all ledger tasks are complete. The scheduler picks the next open sub-task as the focus for that run. Once the ledger is empty (all tasks done), the repo focus is used again.