Ralph Graceful Exit
Purpose
Detect when a Ralph Loop iteration has truly completed its task, beyond just the <promise>DONE</promise> tag. This skill implements 4-signal detection to verify genuine completion.
Integrations
| Type | References |
|---|---|
| hooks | ralph-circuit-breaker, ralph-rate-limiter, ralph-activity-log |
| plugins | ralph-loop@claude-plugins-official |
4-Signal Detection
| Signal | Threshold | Detection Method |
|---|---|---|
| test_loops | ≥3 consecutive | Only running tests, no code changes |
| done_signals | ≥2 occurrences | "done", "complete", "finished" in output |
| completion_indicators | ≥2 patterns | Strong completion language patterns |
| fix_plan_check | all items ✓ | All @fix_plan.md items checked |
Detection Logic
When evaluating completion:
-
Check activity log for test-only iterations
grep -c "test\|pytest\|jest\|npm test" ~/.ralph-state/activity.log -
Scan recent output for done_signals patterns
- "done", "complete", "finished", "all tests pass"
- "implementation complete", "task finished"
-
Look for completion_indicators in conversation
- Strong completion language
- Summary of what was accomplished
- No pending TODO items mentioned
-
Verify fix_plan if exists
- Check if @fix_plan.md exists
- Verify all checkbox items are checked
[x]
Exit Recommendation
If ≥2 signals detected, recommend outputting:
<promise>DONE</promise>
Signal Weights
| Signal | Weight | Confidence |
|---|---|---|
| fix_plan_check (all ✓) | 1.0 | High |
| test_loops ≥3 | 0.8 | High |
| done_signals ≥2 | 0.6 | Medium |
| completion_indicators ≥2 | 0.5 | Medium |
Total weight ≥1.5 → Strong recommendation to exit Total weight ≥1.0 → Suggest checking completion status