| name | persistence |
| description | Persistence mode (Ralph). Activated when the user says "don't stop", "keep going", "Ralph mode", "persistence mode", "until it works", "until all tests pass", or wants iterative implementation until all acceptance criteria pass. The boulder never stops. |
| allowed tools | Read, Write, Edit, Grep, Glob, Bash |
Persistence Mode (Ralph)
Iterative implementation loop that does NOT stop until all acceptance criteria from the
PRD pass — or max iterations are reached. Named after Sisyphus: the boulder never stops.
Rules
- Never ask for confirmation between iterations — just keep going
- Never claim "done" without evidence — run the actual test/build commands
- Track iteration count — stop at max iterations even if not all criteria pass
- Report status after each iteration — which criteria pass, which fail, what you'll try next
- Each iteration must make progress — if the same criterion fails 3 times with the same approach, try a different strategy
- Preserve working code — never break passing criteria to fix a failing one
Configuration
- Max iterations: [SPEC] (default: 5)
- Test command: [SPEC] (from CLAUDE.md Commands section)
- Build command: [SPEC] (from CLAUDE.md Commands section)
Workflow
Phase 1: Extract criteria
- Read the PRD at the given path
- Extract ALL acceptance criteria into a numbered checklist
- Print the checklist:
[ ] Criterion 1, [ ] Criterion 2, etc.
- Identify the test/build command from CLAUDE.md or project config
Phase 2: Implement (loop)
For each iteration (1 to max_iterations):
── Iteration {N}/{max} ──────────────────────
- Assess: which criteria are NOT yet passing?
- Plan: what specific changes will address the next failing criterion?
- Implement: make the changes
- Verify: run tests/build to check ALL criteria (not just the one you worked on)
- Report:
✅ Criterion 1: passing
✅ Criterion 2: passing
❌ Criterion 3: failing — [reason]
── {passed}/{total} criteria passing ──
- If ALL criteria pass → go to Phase 3
- If not all pass → continue to next iteration
Phase 3: Finalize
- Run full test suite one final time
- Run slop-cleaner skill on changed files (if available)
- Print final status:
── Ralph Complete ──────────────────────
Iterations: {N}/{max}
Criteria: {passed}/{total} passing
Files changed: [list]
────────────────────────────────────────
- If max iterations reached with failures, clearly state which criteria still fail
Escape conditions
- All criteria pass → success, stop
- Max iterations reached → stop, report remaining failures
- Build/compilation completely broken with no path forward → stop, explain
Anti-patterns (do NOT do these)
- Do NOT ask "should I continue?" — the answer is always yes until done
- Do NOT skip verification — always run the actual commands
- Do NOT count a criterion as passing based on "it should work" — verify with evidence
- Do NOT make multiple unrelated changes per iteration — focus on one failing criterion
Racionalizações comuns
| Racionalização | Realidade |
|---|
| "Já deve estar passando, não preciso rodar de novo" | "Deve" não é evidência. Execute o comando e confirme. |
| "Esse critério é trivial, posso pular" | Critério trivial que falha em produção vira incidente. Verifique todos. |
| "Vou arrumar dois critérios de uma vez pra ir mais rápido" | Mudanças simultâneas dificultam isolar qual quebrou. Uma por iteração. |
| "Já tentei 3 vezes, não tem solução" | Tentou 3 vezes a MESMA abordagem. Mude a estratégia. |
Red Flags
- Declarou critério como "passando" sem rodar o comando de verificação
- Pediu confirmação do usuário entre iterações (deve ser autônomo)
- Quebrou critério que já passava ao tentar corrigir outro
- Repetiu a mesma abordagem 3+ vezes sem mudar estratégia
References
- Inspired by oh-my-claudecode's Ralph mode
- See
/implement for the standard implementation workflow
- See
slop-cleaner skill for post-implementation cleanup