/outcome <what you want> (or chanto -p --outcome "…"):
- Criteria: the agent explores read-only, then writes executable acceptance criteria to
.chanto/outcome/<id>/criteria.json, e.g. "signup rejects duplicate emails:pytest .chanto/outcome/<id>/checks/test_signup.py -k duplicate". It can only write there in this phase. - Baseline: every criterion runs before any change. One that already passes is flagged, because it proves nothing about the work.
- Approval: you approve the criteria (plain-language titles plus commands), not code.
- Build: verified mode with the criteria as checks. The criteria files are locked: loosening them fails the gate, and existing tests stay protected.
- Report (
report.md): each criterion with its evidence (command output), plus "Review these by hand". Those are changes that passing checks can't vouch for: auth and security code, schema migrations, dependency changes, secrets, CI and infrastructure, public API surface, deleted files, and risky constructs (shell or eval, destructive data operations, concurrency, injection-prone queries).