Ralph Resume
Resume a Ralph autonomous execution session that was paused by the circuit breaker.
Pre-Flight
Check for active session:
if [[ ! -d ".ralph-session" ]]; then echo "No Ralph session found. Nothing to resume." exit fiRead circuit breaker state:
.claude/hooks/circuit-breaker.sh statusShow session summary:
python3 -c " import json cb = json.load(open('.ralph-session/circuit-breaker.json')) print(f\"Session state: {cb.get('state')}\") print(f\"Pause reason: {cb.get('pause_reason', 'none')}\") print(f\"Tasks completed: {cb.get('tasks_completed', 0)}\") print(f\"Total iterations: {cb.get('total_iterations', 0)}\") print(f\"Consecutive failures: {cb.get('consecutive_failures', 0)}\") "Identify the failed/current task: Check beads for tasks still in
in_progressstatus.
Present Options
Ask the user:
- Retry — Reset circuit breaker to RUNNING, re-dispatch the failed task
- Skip — Mark the failed task as blocked with reason, move to next task
- Abort — Clean up session, leave remaining tasks as pending
Execute Choice
Option 1: Retry
.claude/hooks/circuit-breaker.sh clear-degraded # or reset if PAUSED
.claude/hooks/circuit-breaker.sh reset
Then re-enter the ralph-execute loop from the current task.
Option 2: Skip
bd update <task-id> -s blocked --append-notes "Skipped during Ralph resume — failed after max attempts"
.claude/hooks/circuit-breaker.sh reset
Then continue ralph-execute with bd ready --parent <epic-id>.
Option 3: Abort
rm -rf .ralph-session
curl -s -X POST "https://ntfy.sh/property-tracker-claude" \
-d "Ralph session aborted by user" -H "Title: Ralph Aborted"
Integration
This skill is suggested by session-start.sh when it detects an active Ralph session.
After choosing retry or skip, invoke /ralph-execute <epic-id> to continue the loop.