Skip to main content
A goal statement is the contract pasted at the start of an autonomous session: mission, guardrails, failure protocol, and definition of done, in under 4,000 characters. This page is a component library — pick one variant per category, fill every placeholder, and assemble in the order the categories appear here. The structure is mined from real run contracts. The strongest predictor of a reliable run is not model size — it is a goal statement where every guardrail is a hard number and every “done” has a named check.
Why under 4,000 characters. A goal statement that needs more space is either restating the base prompt (delete the restatement) or scoping more than one run’s worth of work (split it). Shorter contracts also survive the trip to small local models — see writing prompts for small models.
Compatibility — not every pick is safe. Same-numbered variants are the tested pairings (M1+H1+F1+…, M2+H2+F2+…, M3+H3+F3+…) — the assembled examples below. When mixing across rows:
  • H1 requires write authority. Never pair it with a read-only or PR-only mission.
  • H3 pairs only with a read-only mission (M3).
  • Any composition that delegates (D1/D3) or writes must include the X2 denial list — filled in, or explicitly “(none this session)”.
These rules are prose, not yet a machine-checkable matrix — a small compatibility lint/checklist is a future follow-up.

1. Mission

One paragraph. Name the primary objective, the decisive metric or question, the secondary lanes, the time budget, and the authority level. M1 — timed multi-lane run:
M2 — single focused build/fix task:
M3 — research/mining sweep:

2. Hard conditions (guardrails)

Numbered, each independently checkable, each with a consequence. The header carries the enforcement rule so the agent cannot treat conditions as advice. H1 — disruptive-change window (for runs that take a serving system down):
H2 — change safety (for code/config work):
H3 — read-only:

3. Failure protocol

State what a failed attempt costs, what happens between attempts, and when to stop. The two live failure modes are blind retry storms and silent abandonment — the protocol must exclude both. F1 — keep-trying cycles (durable objective, expensive attempts):
F2 — fail fast (bounded task, cheap to hand back):
F3 — degrade, never abort (sweeps and multi-lane runs):

4. End state (definition of done)

Numbered deliverables. The closing clause “or documented why not” converts an incomplete run from a silent failure into a report. E1 — multi-deliverable:
E2 — single artifact:
E3 — report only:

5. Operating rules

The per-run behavioral deltas. Anything true of every run belongs in the shared base prompt, not here. O1 — full autonomy:
O2 — focused solo work:
O3 — sweep discipline:

6. Verification contract

What “done” costs. This is the category small models skip first, so it names mechanical checks, not judgment — see the evidence blocks for the longer task-level forms. V1 — evidence per claim:
V2 — repro before/after:
V3 — grader-facing:

7. Delegation contract

Whether subagents exist, how many, and what happens when the spawn substrate fails. Every plan built on delegation states its solo fallback. D1 — probe, bound, fall back:
D2 — solo:
D3 — fan-out with a result contract:

Assembled examples

Three full goal statements, one per objective type. Character counts are measured on the raw text as shown (wc -c), all under the 4,000 limit. They are frontier-targeted: a 30B target gets one lane per session and a rewrite per writing prompts for small models. Compositions that delegate (A and C) get the X2 denial list appended at fill time — filled in, or explicitly “(none this session)”.

Example A — unattended infrastructure run (3,423 chars)

M1 + H1 + F1 + E1 + O1 + V1 + D1.

Example B — single focused build/fix task (2,499 chars)

M2 + H2 + F2 + E2 + O2 + V2 + D2.

Example C — research/mining sweep (2,699 chars)

M3 + H3 + F3 + E3 + O3 + V3 + D3.

See also