Quality-gated autonomous mission completion loop for Claude Code and Codex (plan, execute, review, score, iterate).
mission
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
**English** | Japanese
mission is an OSS loop-engineering plugin for Claude Code and Codex. It keeps
agentic work moving until a recorded plan, reviewer evidence, an aggregated
score, and a state gate say the mission is actually done.
> Prompt engineering tells an agent what to do. Loop engineering defines how the
> agent keeps working until the job is actually done.
**The problem it solves is stopping too early** — not writing a better prompt.
---
When to use mission
- Multi-step work where a single pass can ship something that *looks* finished:
silent coverage gaps, summaries that do not reconcile with their own detail,
sections promised in the text but never written.
- Irreversible production actions that must not run without human approval.
- Work spanning multiple sessions or context resets that needs resumable,
auditable state.
- Environments where the *evidence for why the work was allowed to stop* is part
of the deliverable.
When **not** to use mission
- **You want a higher-quality artifact on average.** No quality advantage has
been demonstrated. Measured cost is **5.4x wall-clock time and 4.9x notional
spend** against a goal-only baseline. If your work resembles the 95% that
passes the gate unchanged, a single careful pass gives you the same artifact
faster.
- **Your task is simple and self-contained.** mission routes such work to the
host's goal contract itself and does not even create mission state.
- **You want a PR-review bot, a development methodology, or a prompt replay
loop.** Other tools do those better; see Alternatives.
---
How it works
mission records a plan, executes it, records executed verification results,
collects structured reviewer output (mission-review/1), aggregates it into a
four-axis score with aggregate-reviews, records it with
push-score --scoring-json, and repeats until mark-passes
accepts the state or a halt condition fires. A Stop hook prevents the session
from ending while an active mission is still below the gate.
The pass gate is explicit:
For simple, low-risk, non-issue-bound work, init returns a routing verdict to
the host's goal contract and creates no state. Complexity, risk signals, and
--issue-ref decide this; --force-mission overrides it.
---
What the evidence shows
This section separates what is **reproducible by you** from what is **operational
evidence from the maintainer's own repositories**. Read the limitations.
Reproducible: paired benchmark vs a goal-only baseline
Protocol and raw data: benchmarks/mission-vs-goal/README.md.
| Measure | Result | Reading |
|---|---|---|
| Completion rate | goal 94.5% / mission 96.6% | Near parity. N is too small for a superiority claim. |
| Declared done but failed the validator | 0/120 goal, 0/114 mission | **No recorded case where the baseline failed and mission saved it.** |
| Wall-clock time | mission **5.4x** | Real cost, clean-condition measurement. |
| Notional spend | mission **4.9x** | Relative only. Under subscription execution there is no per-token charge; the consumed resource is the plan rate limit. |
| Second-iteration rate | 5.6% of mission runs | The review loop changes the artifact in a small minority of runs. |
| Finding quality (F1) | goal 0.858 / mission 0.873 — **no difference** | Mean per-task delta +0.015 against a pre-registered threshold of +0.10, with one task where mission scored lower. |
**On quality the result is now measured, and it is a no-difference result.**
The earlier regex marker scoring was structurally broken — a bare list of the
right keywords scored a perfect 1.00 while correct paraphrases, and correct
answers written in Japanese, scored 0. It has been replaced by structured
findings scoring: both arms emit a machine-checkable table of
location / key / expected / actual / verdict rows which is matched against an
answer key. Formatting, wording and language no longer affect the score;
asserting a compliant item as a defect costs precision.
**The instrument was validated before the comparison was run.** A deliberately
degraded arm — allowed to read only the summary, with the detail table needed to
verify any claim withheld — was separated by 1.00 against a pre-registered
threshold of 0.15. That is why the null result above is a measured
no-difference and not a failure to measure.
Criteria were fixed in advance in