loop
Run open-ended iteration on one artifact as a minimise refinement loop — plan → implement → evaluate, repeating until the goal is met or max_iterations is hit.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Run open-ended iteration on one artifact as a minimise refinement loop — plan → implement → evaluate, repeating until the goal is met or max_iterations is hit.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
| name | loop |
| description | Run open-ended iteration on one artifact as a minimise refinement loop — plan → implement → evaluate, repeating until the goal is met or max_iterations is hit. |
A job runs a fixed task list once — you already know the steps. A loop repeats
plan → implement → evaluate against one artifact until the planner decides the goal is met (or
max_iterations is hit), with each iteration's critique feeding forward into the next plan.
If the tasks are already known and finite, this is the wrong command — that is /minimise:job.
If mini --help fails, tell the user to run /minimise:setup and stop.
The user asked for a loop, but the goal and the rubric are what actually decide when it stops,
and those are theirs to approve. Never author a spec or run mini loop new before they agree.
Put in front of them:
max_iterations — the ceiling on cost. Suggest at least 5 unless the work argues
otherwise. The built-in planner prompt already treats a failing evaluate dimension as a
default reason to continue (it only stops early if its summary states why the failure is
acceptable) — a low ceiling defeats that by cutting the loop off before it can actually
converge.evaluate.max_concurrent — suggest at least 8 so dimensions fan out fully in one
round instead of queuing behind a low cap; only lower it if the dimension count is small or
the work argues for staggering.If the user says no, iterate inline and drop it.
Write the spec (to worklogs/scratch/ if it exists, else a plans dir the project already uses —
never the repo root). This is the whole schema; there are no other fields:
version: "1"
name: Refine the README
goal: Improve the README until a first-time reader can set up, use, and test the project unaided.
max_iterations: 5
loop:
plan:
prompt: >
You are the PLANNER. Read the goal and journal history, then decide the next
concrete step for the implementer — or stop the loop if the goal is met.
implement:
prompt: >
You are the IMPLEMENTER. Carry out the current plan by editing the working tree,
then report what you changed.
evaluate:
max_concurrent: 8 # dimensions fan out in parallel, capped by this (code default 4)
dimensions:
- name: clarity # names must be unique
rubric: Is the README easy to follow for a first-time reader?
- name: completeness
rubric: Does it cover setup, usage, and testing without gaps?
Each of plan, implement, and every dimension is a worker: it may set at most one of
prompt:, prompt_file:, or persona:. Setting none uses the built-in step default; setting
two is a validation error. persona: accepts either a user-defined name from
~/.minimise/personas.yaml, or one of mini's built-in reviewer personas (mini persona list
to see them — reserved mini: namespace, no config needed). For a document-review loop, pointing
evaluate.dimensions at the built-in mini:doc-review:* / mini:software-design:* personas
gives a blind, multi-lens review; each dimension still needs its own rubric: naming the document
and what this run cares about — the persona supplies the reviewer's general judgment style, the
rubric supplies the specifics. Leave plan/implement unset: the planner reads what the personas
flagged and the implementer fixes it, same as any other loop.
Show the user the spec, then run it:
mini loop new --plan <file> # → Loop ID; validates the spec and every persona
mini loop start <id> # runs to convergence or max_iterations (foreground, idempotent)
mini loop status <id> # iteration progress, stage timing, per-dimension verdicts
mini loop journal <id> # the loop's memory: plan/implement/evaluate lines + commits
Report back from mini loop status and mini loop journal — what changed, what the evaluators
said, and whether it stopped because the goal was met or because it ran out of iterations. Those
two endings mean very different things and the user needs to know which one they got.
Status: completed only means the planner chose to stop — it does not mean every dimension
passed. Always surface the verdict table (or journal verdicts) alongside a "completed" report;
a planner can stop with failing dimensions if it judged that acceptable.
Author a mini job or loop plan under control — triage loop-vs-job, run a retrieval-aware interview pre-filled from existing personas and recent runs, then preview the exact YAML behind an approve/edit/reject gate before handing off to the unchanged `mini job new` / `mini loop new`. Use when starting a new job or loop from a one-liner and you want to review the plan before anything runs.
Run multi-step work as a background minimise job — authors a plan YAML, wires the review gates, runs it, and reports what landed.
Reviews what a minimise job actually IMPLEMENTED against its plan — a NON-BLOCKING advisory reviewer that reads the plan (YAML) from stdin, inspects the job's git diff, and reports findings without ever aborting the job. Use when invoked as `/minimise:review-implementation`, or when a minimise `post_plan` hook runs `claude -p '/minimise:review-implementation'` to critique the finished work. Always exits reporting; it never fails the job. Checks correctness, completeness vs. the plan's goals, obvious bugs, missing tests, and over-engineering — mirroring ralphex's post-implementation review, trimmed to the essentials.
Reviews a minimise job plan or loop spec as a pragmatic BLOCKING quality gate, reading it (YAML) from stdin and printing a machine-readable REVIEW: PASS / REVIEW: FAIL verdict. Use when invoked as `/minimise:review-plan`, or when a minimise `pre_plan` hook runs `claude -p '/minimise:review-plan'` to gate a job before implementation. Reports ONLY severe issues (correctness bugs, data-loss/destructive risk, missing steps that make a task unimplementable, internal contradictions, factually wrong claims about the codebase, a loop goal with no stopping condition) and ignores style, wording, and nice-to-haves.
Verify and install the prerequisites for minimise — the `mini` CLI, the `claude` CLI, and a git repo.