Help us improve
Share bugs, ideas, or general feedback.
From task-harness
Resumes a cancelled, failed, or blocked task harness session from where it stopped. Use when continuing a previously stopped workflow or retrying after fixing issues. Trigger with "resume task harness", "continue workflow", or "restart harness session".
npx claudepluginhub omara1-bakri-org/local-plugins --plugin task-harnessHow this skill is triggered — by the user, by Claude, or both
Slash command
/task-harness:resumeThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Continues a cancelled, failed, or blocked task harness session from its last checkpoint.
Resumes a saved Hypo-Workflow pipeline from `.pipeline/state.yaml`, continuing from the next uncompleted step without replaying finished work. Handles lock files, worker separation, and subagent authorization.
Resumes an active deep-work session by restoring context from artifacts and continuing from the current phase. Supports explicit session ID, phase override, and worktree path.
Resumes interrupted Maestro sessions using existing active-session files and shared phase tracking. Use to continue multi-agent orchestration workflows after interruptions.
Share bugs, ideas, or general feedback.
Continues a cancelled, failed, or blocked task harness session from its last checkpoint.
The resume skill restores and continues a previously stopped task harness session by:
.claude/task-harness/sessions/Extract session ID and optional --from-task flag:
Arguments: <session-id> [--from-task N]
Examples:
1234567890-12345
1234567890-12345 --from-task 3
Check the session exists and is resumable:
STATE_FILE=".claude/task-harness/sessions/${SESSION_ID}.json"
[[ -f "$STATE_FILE" ]] || echo "ERROR: Session not found"
STATUS=$(jq -r '.status' "$STATE_FILE")
if [[ "$STATUS" != "cancelled" && "$STATUS" != "failed" && "$STATUS" != "blocked" ]]; then
echo "ERROR: Session status '$STATUS' is not resumable"
fi
If --from-task N provided: Use task index N (0-based).
Otherwise: Find first task where status != "complete":
RESUME_INDEX=$(jq '[.tasks[] | .status] | to_entries | map(select(.value != "complete")) | .[0].key' "$STATE_FILE")
Update session for resumption:
jq ".status = \"running\" |
.currentTaskIndex = $RESUME_INDEX |
.tasks[$RESUME_INDEX].status = \"in_progress\" |
del(.completedAt) |
del(.finalMessage)" "$STATE_FILE" > tmp && mv tmp "$STATE_FILE"
Generate dynamic planning prompt including:
Launch ralph-loop with the task prompt:
/ralph-loop "<task-prompt>" --completion-promise "<promise-text>"
Upon successful resume:
Task Harness Resumed
====================
Session: 1234567890-12345
Harness: implement-auth-feature
Previous Status: cancelled
Resuming from: Task 3 - Implement Auth Routes
Progress: 2/5 tasks previously completed
Execution restarted...
| Error | Cause | Resolution |
|---|---|---|
| Session not found | Invalid session ID | Use /task-harness:status to list valid IDs |
| Not resumable | Status is "running" or "completed" | Cancel first if running, or start new if completed |
| Invalid task index | --from-task exceeds task count | Check total tasks in session |
| State corruption | Malformed session JSON | Check logs, may need to restart from YAML |
User: /task-harness:resume 1234567890-12345
Skill: Finds first incomplete task (task 3), resumes execution
Result:
Task Harness Resumed
====================
Session: 1234567890-12345
Resuming from: Task 3 - Implement Auth Routes
User: /task-harness:resume 1234567890-12345 --from-task 2
Skill: Overrides resume point to task 2 (re-runs completed task)
Result:
Task Harness Resumed
====================
Resuming from: Task 2 - Implement User Model (override)
Warning: Task 2 was previously completed, re-running
User: /task-harness:resume 1234567890-12345
Skill: Session was "failed" due to max retries, resumes with fresh retry count
Result:
Task Harness Resumed
====================
Previous Status: failed (max retries on task 4)
Resuming from: Task 4 - Write Tests
Retry count reset to 0