simmerlisted
Install: claude install-skill tomascupr/sous-chef
# Simmer - reduce until done
A loop is: check state → decide → act → **verify** → repeat, with a stop condition and
a budget. In this kitchen, Codex is the worker inside the loop and you are the loop's
author and judge. The worker never grades its own homework - you run the checks. And
because each `codex exec` is a fresh context while your own conversation can be
compacted or restarted mid-loop, neither of you is the loop's memory: the repo is.
If `codex` is missing or `~/.codex/sous-chef.config.toml` doesn't exist, stop and
offer `/sous-chef:mise` first (Codex silently ignores a missing profile - `test -f`).
The repo must have at least one commit (the no-progress guard needs `HEAD`).
## 1. Write the loop contract first - and get it confirmed
A loop is only as good as its stop condition. Establish with the user, and confirm
before lap 1 (simmer creates a branch and makes commits - say so):
- **Goal** - ONE measurable end state, e.g. "`pnpm test` exits 0 with the 12 new
migration tests passing".
- **Check commands** - the exact commands that verify the goal (tests, typecheck,
lint, a curl). Machine-checkable or it doesn't belong in a loop: if success can't be
verified cheaply by a command, don't simmer - do it interactively instead.
- **Budget** - max laps (default 5) and any wall-clock limit. Tell the user the
realistic wall time: each lap is a full Codex run, typically 5–20 minutes at high
reasoning effort.
- **Branch** - create `sous-chef/<task>` yourself be