| name | ralph-loop |
| description | Execute one Ralph development loop iteration. Reads fix_plan.md, implements the first unchecked task, verifies, and commits.
|
Current Status
From the repo root you can summarize progress:
RALPH_DIR=".ralph"
total=$(grep -c "^\- \[" "$RALPH_DIR/fix_plan.md" 2>/dev/null || echo 0)
done=$(grep -c "^\- \[x\]" "$RALPH_DIR/fix_plan.md" 2>/dev/null || echo 0)
echo "Tasks: $done/$total complete, $((total - done)) remaining"
Execution Contract
- Read
.ralph/fix_plan.md — find the FIRST unchecked - [ ] item.
If the user provided a task override in their message, use that instead.
- Search the codebase for existing implementations (delegate exploration to a subagent or Task tool when available).
- If the task uses an external library API, look up docs first.
- Implement the smallest complete change.
- Run targeted verification (lint/type/test for touched scope).
- Update fix_plan.md:
- [ ] to - [x].
- Commit with descriptive message.
- Report status in RALPH_STATUS block.
- STOP immediately after the status block.
Constraints
- ONE task only. Stop after completing it.
- Skip QA unless this task completes the last
- [ ] in its ## section (epic boundary).
- At epic boundary: run full QA (e.g. project test runner). Otherwise set TESTS_STATUS: DEFERRED.
- NEVER modify .ralph/ files except fix_plan.md checkboxes.
- Prefer dedicated exploration for large searches; keep the main change set small.
Status Reporting
At the end of your response, include:
---RALPH_STATUS---
STATUS: IN_PROGRESS | COMPLETE | BLOCKED
TASKS_COMPLETED_THIS_LOOP:
FILES_MODIFIED:
TESTS_STATUS: PASSING | FAILING | DEFERRED | NOT_RUN
WORK_TYPE: IMPLEMENTATION | TESTING | DOCUMENTATION | REFACTORING
EXIT_SIGNAL: false | true
RECOMMENDATION:
---END_RALPH_STATUS---