"Am I ACTUALLY done, or did I just stop?" - Domain-agnostic iterative workflow engine based on ralph-loop methodology. Use when (1) task has clear completion criteria, (2) single-pass execution is insufficient, (3) quality requires iteration, (4) "keep going until X" patterns apply. Provides the abstract loop; pair with domain-specific criteria files. Does NOT trigger for: simple tasks, tasks without clear success criteria, or when user wants quick/approximate results.
Seed question: Am I ACTUALLY done, or did I just stop?
This skill implements and extends the ralph-loop methodology for iterative workflows:
ralph-loop = iterative workflows = keep going until genuinely complete
Origins:
This skill abstracts the ralph-loop pattern into a domain-agnostic loop engine that can be applied to any task with clear completion criteria, not just factual verification.
Ralph-wiggum's insight: most tasks fail not from lack of capability, but from premature exit.
The loop engine enforces persistence:
WHILE (completion criteria NOT all pass):
1. EXECUTE - Do one pass of work using domain methodology
2. ASSESS - Evaluate results against domain criteria
3. CHECK - Compare against completion thresholds
4. IF gaps exist:
- Identify which criteria failed
- Plan targeted action for next pass
- ITERATE
5. IF all pass:
- Output completion promise
- EXIT
Each domain requires:
| Component | Purpose | Location |
|---|---|---|
| Criteria file | Defines "complete" for this domain | criteria/<domain>.criteria.md |
| Work methodology | How to execute each pass | Domain-specific skill |
| Assessment method | How to evaluate results | In criteria file |
| Completion promise | Text that signals success | In criteria file |
| Your Task | Use This Criteria | Completion Promise |
|---|---|---|
| Factual research, investigations | criteria/investigation.criteria.md | ALL FALSIFICATION CRITERIA PASS |
| Code implementation, TDD | criteria/programming.criteria.md | ALL PROGRAMMING CRITERIA PASS |
| PR iteration, code reviews | criteria/review.criteria.md | ALL REVIEW CRITERIA PASS |
criteria/investigation.criteria.md)ALL FALSIFICATION CRITERIA PASScriteria/programming.criteria.md)ALL PROGRAMMING CRITERIA PASScriteria/review.criteria.md)ALL REVIEW CRITERIA PASSIdentify which criteria file applies to your task.
Read the criteria file to understand completion requirements.
pass = 1
WHILE true:
# Execute
results = execute_work_pass(pass)
# Assess
assessment = evaluate_against_criteria(results)
# Check
IF all_criteria_pass(assessment):
output_completion_promise()
BREAK
ELSE:
gaps = identify_gaps(assessment)
plan_next_iteration(gaps)
pass += 1
Each iteration produces:
## Pass [N]
### Work Completed
[What was done this pass]
### Criteria Check
- [ ] Criterion 1: [status] (threshold: X) [pass/fail]
- [ ] Criterion 2: [status] (threshold: Y) [pass/fail]
...
### Status
[INCOMPLETE: N criteria failing] or [COMPLETE: All criteria pass]
### If Incomplete: Next Iteration Plan
- Gap: [what's missing]
- Action: [what to do next]
Only when ALL criteria pass:
## Final Status
All criteria satisfied:
- [X] Criterion 1: [final status]
- [X] Criterion 2: [final status]
...
<promise>[DOMAIN COMPLETION PROMISE]</promise>
Never claim completion while criteria fail
Never skip assessment
Gaps are data, not failures
Iterate until genuinely complete
To prevent infinite loops and runaway iterations:
| Limit | Default | Purpose |
|---|---|---|
| Max iterations | 10 | Prevents unbounded execution |
| Time per pass | No limit | Domain-dependent, set in criteria if needed |
| User override | Allowed | Can specify --max-iterations N |
If completion criteria not met after max iterations:
## Iteration Limit Reached
Completed: [N]/[max] iterations
Criteria status:
- [X] Criterion 1: PASS
- [ ] Criterion 2: FAIL (blocked by: [reason])
**Recommendation:** [next steps for user]
| Failure | Response |
|---|---|
| CI/build system down | Document, continue with local verification where possible |
| Network issues | Use cached data, flag as ALLEGED tier |
| Test flakiness | Retry once, then document as known issue |
| Rate limiting | Pause, retry with backoff, document if persistent |
Sometimes criteria cannot be met due to external constraints:
When optimal verification isn't possible, degrade gracefully:
VERIFIED → CREDIBLE → ALLEGED → SPECULATIVE
Full tests → Partial tests → Manual verification → Documented gap
Always document the degradation and its reason.
This skill complements the official ralph-loop plugin:
| ralph-loop | iterative-loop-engine |
|---|---|
/ralph-loop:ralph-loop command | Skill-based activation |
| External orchestration | Self-contained methodology |
| Generic tasks | Domain-specific criteria |
When to use which:
Agents using this engine should:
Example agent header:
---