stella goal
Work in judged rounds until a judge model confirms the goal is met.
Give Stella a goal and let it work in judged rounds until a judge model confirms, from evidence, that the goal has actually been met.
Synopsis
stella goal <goal> [--no-pipeline] [global flags]What it does
stella goal works in rounds, each run through the staged pipeline by default — pass --no-pipeline for raw step-loop rounds instead. At the end of each round, a judge model independently assesses whether the goal is met — reading the changed files, tests, and CI with read-only tools, not just the worker's narration. The loop ends when the judge confirms success, or when a backstop trips: a hard round cap (default 8 rounds), the --budget limit, or a worker-turn abort. Reaching a backstop ends the run reporting the goal as not met.
Crucially, the judge is routed cross-family — it is a different model family than the worker, to avoid same-model bias. If only one provider family is configured, the worker doubles as its own judge.
For the full explanation of judged rounds, the cross-family judge, and the definition-of-done check, see Goal mode.
Flags
stella goal takes the global flags, plus one of its own:
| Flag | Why it matters here |
|---|---|
--no-pipeline | Each working round runs the raw step loop instead of the staged pipeline (triage, plan, witness, execute, verify). The pipeline is the default. |
--model <provider/model_id> | Pin the worker model. The judge is routed to a different family automatically when one is available. |
--budget <usd> | Cap total spend across all rounds; work aborts cleanly once the cap is exceeded. |
stella goal is an interactive mode: it always renders human-readable text and does not honor --output-format. Use stella run for headless json / stream-json output.
Configure at least two provider families if you want a truly independent judge. With a single family configured, the worker model judges its own work.
Examples
Work toward a goal until the judge confirms it is met:
stella goal "Migrate the config loader to use serde and add tests"Pin the worker model and cap spend across all rounds (global flags go before the subcommand):
stella --model anthropic/claude-fable-5 --budget 10.00 \
goal "Make the CLI exit with a non-zero code on invalid input"Run raw step-loop rounds instead of the staged pipeline:
stella goal --no-pipeline "Silence the deprecation warnings in the build"You can also run a goal-driven turn from the plain line REPL (stella chat --plain) with the /goal <goal> command.