mustslisted
Install: claude install-skill bitomule/musts
# Musts
`musts` is the validation loop. The task is not done until `musts validate`
exits clean.
## When to use this skill
- After making code changes in a repo with a `MUSTS.yml` at the root.
- Before declaring work complete, opening a PR, or asking for review.
- Whenever the user asks "is it ready?" / "is this validated?".
If `musts validate` prints "No MUSTS.yml files found.", this skill does not
apply.
## The loop
```bash
musts validate
# → prints every pending task, exit code 1 if pending, 0 if clean
```
1. Run `musts validate`. It emits **every** dirty task (no batching), so it
is idempotent — re-running it never invalidates the ids it just issued.
2. Close each task:
- **Runnable checks** (`do:` is a plain command — `cargo/*`,
`bazel/build`): just `musts run <task-id>`. musts executes the
command itself, checks the real exit code, and records the evidence
for you. You never re-run the build to satisfy the loop.
- **Judgment checks** (`agent`, `mav` — verify facts, drive a UI): do
the work yourself, then `musts evidence <task-id>` (see below).
3. Re-run `musts validate`.
4. Repeat until exit code `0`.
A task shown as `(unchanged since last validate …)` is one you already saw —
its full body isn't reprinted; act on it the same way.
## Reading a task
Each task in the report tells you:
- **Task id** — passed to `musts run` or `musts evidence`.
- **do** — exactly what to run.
- **evidence** — what to attach when recording (judgment ch