Start autonomous iteration loop. Triggers on "loop", "keep going", "continue until done", "implement feature", "fix all", "loop status", "cancel loop".
Install
npx skillscat add saadshahd/moo-md/loop Install via the SkillsCat registry.
Role
EXECUTE. Decompose work into waves of atomic items. Verify each, iterate
until done. Observable evidence over assumed completion. Retry with context,
not from scratch.
Principles
- Every criterion maps to ≥1 work item — If a criterion from shape
has no corresponding work item, the decomposition is incomplete. - Retry with feedback, not from scratch — When an item fails
verification, carry it to the next wave with[VERIFY] FAIL: [reason]
so the retry transforms with context, not blindly repeats. - Never ship on assumption alone — Execution output and measurements
are sufficient evidence. Code review ships with monitoring. Assumptions
block until verified. - mustNot violations are hard stops — These are inviolable constraints
from shape. When violated, stop immediately and surface to user. - Holdout separation — Generation subagents see criteria[] + mustNot[]
(guidance + prevention). holdout[] is reserved for an independent
verification subagent. The generator never sees the holdout set. - Surface what the wave revealed — Every wave ends with
[LEARN] [one domain insight the wave revealed ≤15w, not the process].
Process
Accept brief + shape — Scan for intent brief (ACCEPTANCE/STOP
criteria) and shape output (criteria[]/holdout[]/mustNot[]/shape). If
missing, clarify before proceeding. If shape recommended Colleague mode
and task has multiple work items, recommend team composition (bond) —
persistent dialogue serves understanding better than fire-and-forget
subagents.Decompose — Break into 5-21 atomic work items. Each passes the
"one sentence without and" test. Every criteria[] entry maps to ≥1
item. Mark dependencies between items. If Disposable=yes from shape:
keep items ≤3, expect to discard.Zone 3 override: decompose regardless of item count. Each item gets
retrieval (search/read) before generation. Carry includes "retrieved
vs assumed" in failure context.When decomposition requires codebase understanding (multi-module,
unfamiliar codebase, 8+ items expected), spawn an Explore agent:
Task(prompt="[session + criteria + mustNot] Analyze the codebase for
[scope]. Return: files involved, module boundaries, dependencies
between components.", subagent_type="Explore")
Use findings to inform item breakdown. For straightforward tasks,
decompose inline.Announce:
[LOOP] Starting | Shape: {shape} | Items: {N} | Feasible: {axis} — {bound}Execute in waves — A wave = items with no unresolved dependencies.
Within a wave: reversible before irreversible.Spawn per ready item (generator sees criteria + mustNot, NOT holdout):
Task(prompt="[session + criteria + mustNot + ACCEPTANCE.constraints] [work item]", subagent_type="general-purpose")After wave completes, spawn holdout verification (independent evaluator):
Task(prompt="[HOLDOUT-VERIFY] [holdout[] + mustNot[]] Evaluate work output. Per holdout item, score: PASS(1.0) / WEAK(0.7) / PARTIAL(0.3) / FAIL(0.0). Report satisfaction, confidence, basis. Do not fix.", subagent_type="general-purpose")Wave report:
[WAVE {N}] satisfaction: {0-100} | confidence: {high/med/low} | basis: {execution/observation/inspection}- Per holdout item:
{item}: {score} {verdict} — {evidence} - Footer:
Done: {n} | Carry: {n} | Stall: {n} [LEARN] What this wave revealed: [one insight ≤15w]- Carry = WEAK (evidence quality) or PARTIAL/FAIL (incomplete).
Context travels WITH the retry prompt (co-located, not referenced). - Stall = no progress — diagnose from output, revise remaining items
- Critical risk (13+ points or irreversible): emit comprehension probe
per wave — one question (≤10w) targeting what changed and why.
Standard/Trivial: probe at completion only (step 5).
Satisfaction gating (advisory by default, blocking for critical risk):
Satisfaction Standard risk Critical risk ≥ 85 → review → review 60–84 advisory blocking < 60 advisory blocking Review — When satisfaction ≥ threshold, get expert review against
spec and mustNot constraints. Findings: BLOCKER (must fix) / WARNING /
SUGGESTION. BLOCKERs create new work items, return to waves.Verify + present — Final report:
- OUTCOME: 1 sentence +
satisfaction: {N} | confidence: {X} | basis: {Y} - DECISIONS: 2-4 bullets, risk-ordered. Each states impact, not just
action. - EVIDENCE: per holdout item, score + command/output that proves it.
- DETAILS: grouped by concern, available on request.
After verification, generate one question (≤10w) targeting where
understanding would break. Gate: Autonomous=skip, Collaborative/Guided=emit.User: Adjust → re-enter | Done → complete.
- OUTCOME: 1 sentence +
Circuit Breakers
| Trigger | Action |
|---|---|
| Max iterations (user-configured) | Pause, announce progress |
| Budget exceeded (user-configured) | Pause, offer continue |
| mustNot violated | Stop immediately |
Cancel
"Cancel loop", "stop", "abort" → report completed/remaining. Current
wave completes before cancel.
Boundaries
Execute against locked criteria; surface scope questions, never resolve
them. Gates flag deviations; user resolves. User owns continuation —
loop never decides to stop or continue on its own.
Handoff
Loop is a terminal phase — it produces completed, verified work. No
outbound Skill() calls. When finished or cancelled, present results
to the user.
Back-transitions (when discovered mid-execution):
- Wrong intent → surface to user, recommend re-entering intent phase
- Approach failing → surface to user, recommend reshaping