Speed-first goal-oriented loop — set an objective, agent picks next concrete action, captures evidence, stops at PR. Different from /autopilot (rigor-first multi-issue queue).
/goal <objective> | pause | resume | clear | status
/goal Cut homepage LCP below 2s on mobile
What you’ll see: a knowledge-base read and quick scout, a short block of clarifying questions, then a plan (requirements + subtasks) for you to confirm. After that the loop self-paces — one concrete action per turn, each verified and logged as evidence — and stops when the goal is ready for PR.
/goal Cut homepage LCP below 2s on mobile # set an objective and start the loop
/goal status # current goal, subtasks done, evidence, next action
/goal pause # pause — state preserved
/goal resume # pick up where it left off
/goal clear # discard the active goal (archived, not deleted)
| Argument | What it does |
|---|---|
<objective> |
Sets a freeform goal and starts the loop (one active goal at a time) |
[--prototype] |
Speed mode: happy-path build only, targeted tests for the change, discovered edge cases deferred to issues, agent work trusted with a spot-check |
[--full] |
Production mode (auto-detected from words like “production”, “customer”, “end to end”): nothing deferred without explicit sign-off, unit + integration + E2E tests required and green before every merge, skipped/weakened tests banned, every delegated deliverable independently re-verified rather than trusted |
--merge-on-green |
Pre-authorizes the per-PR gate: after each PR the loop watches CI and merges on green instead of stopping |
pause / resume |
Pause or resume the active goal; state survives sessions |
clear |
Archive the active goal |
status |
Compact status block (also the default when run with no args and a goal is active) |
clarifying/proposed/active/paused/awaiting_pr), it asks “replace / keep / cancel” and waits for you. Otherwise it reads the project knowledge base first (profile, conventions, domain rules, past goals, known footguns) — mandatory, and calibrates the whole goal — then a cheap explore-light scan fills only the gaps.done_when clause). Nothing executes until you approve; a dry-run option executes without writes.verified boolean, and goal completion (the Phase 6 PR) is blocked if any evidence entry is still verified: false.--merge-on-green; run /pr or tell it to.| Agent | Model tier | Role |
|---|---|---|
| explore-light | haiku | Scout — targeted codebase scan after the KB read |
| backend / frontend | sonnet | Multi-file code work in parallel worktree lanes (budget: max 6 spawns per goal without checking in — lifted when you explicitly authorize broad parallelism) |
| main loop (planner/verifier) | strongest available model tier | Vision → architecture → task plan, arbitration, root-cause on stuck lanes, final goal-completeness review |
QA passes aren’t a spawned agent — they route to the installed /qa skill like other toolkit skills the plan needs.
.claude/.goals/current.json — full goal state: clarifications, subtasks, evidence log, turns, connections.claude/.goals/archive/ — completed/cleared goalsgoal/<slug> if needed) — never pushed to main.claude/knowledge/shared/goals-history.md and related knowledge files| Problem | Fix |
|---|---|
Existing goal active — replace? |
One goal at a time: replace (archives the old one), keep it, or cancel |
Loop paused with blocked_reason: "stuck" |
The same subtask ran 4+ turns without progress — give guidance or /goal clear |
| Loop paused after 6 agent spawns | Spawn budget hit — approve continuing, or split the objective; it’s probably too broad for /goal |
| It refuses to skip verification | By design — the loop won’t ship unverified code. /goal clear if you truly want to abandon it |