- name
- ralph-graceful-exit
- description
- |
- allowed-tools
- Read, Grep, Bash
- model
- haiku
- context
- fork
- agent
- ralph-domain-agent
- user-invocable
- false
- hooks
- PostToolUse
- hooks
- command
- $HOME/.claude/hooks/ralph-activity-log.sh
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