Help us improve
Share bugs, ideas, or general feedback.
From task-harness
Cancels an active task harness session and preserves progress for later resumption. Use when needing to stop a running workflow mid-execution or pause work. Trigger with "cancel task harness", "stop harness", or "pause task workflow".
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:cancel-harnessThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Stops an active task harness session while preserving progress for later resumption.
Cancel stuck or orphaned executions by session ID or interactively using the Ouroboros CLI. Works with the event store to emit cancellation events.
Executes long-running tasks autonomously across Claude Code sessions using headless bash loops or in-session hooks. Supports structured decomposition for projects and Ralph-style iteration for TDD, fixes, refactoring.
Automates long-running task loops using Claude Code's /loop and ScheduleWakeup for autonomous re-entry with fresh context each cycle. Useful for unattended multi-cycle task execution.
Share bugs, ideas, or general feedback.
Stops an active task harness session while preserving progress for later resumption.
The cancel skill gracefully stops a running task harness session by:
/cancel-ralph to stop iteration/task-harness:resumeSession state and completed work are preserved, allowing the workflow to be resumed from where it stopped.
/cancel-ralph delegationSearch .claude/task-harness/sessions/ for files where status == "running":
for f in .claude/task-harness/sessions/*.json; do
status=$(jq -r '.status' "$f")
if [[ "$status" == "running" ]]; then
echo "Found active session: $(basename "$f" .json)"
fi
done
If session-id provided: Use that session directly.
If no session-id and one active session: Cancel that session.
If no session-id and multiple active sessions: List them for user selection:
Active sessions:
1. 1234567890-12345 (implement-auth) - 2/5 tasks
2. 1234567891-54321 (fix-bugs) - 1/3 tasks
Specify session: /task-harness:cancel <session-id>
Modify the session JSON to mark as cancelled:
jq '.status = "cancelled" | .completedAt = "2024-01-15T12:00:00Z" | .finalMessage = "Cancelled by user"' \
"$STATE_FILE" > "$STATE_FILE.tmp" && mv "$STATE_FILE.tmp" "$STATE_FILE"
Delegate to cancel the underlying iteration:
/cancel-ralph
Show cancellation confirmation with resume instructions.
Upon successful cancellation:
Task Harness Cancelled
======================
Session: 1234567890-12345
Harness: implement-auth-feature
Progress: 2/5 tasks completed
Cancelled during: Task 3 - Implement Auth Routes
To resume: /task-harness:resume 1234567890-12345
| Error | Cause | Resolution |
|---|---|---|
| No active sessions | No sessions with status "running" | Check /task-harness:status for session states |
| Session not found | Invalid session ID provided | Use /task-harness:status to list valid IDs |
| Multiple sessions | Ambiguous without session ID | Specify the session ID explicitly |
User: /task-harness:cancel
Skill: Finds single active session, cancels it
Result:
Task Harness Cancelled
======================
Session: 1234567890-12345
Progress: 3/5 tasks completed
Cancelled during: Task 4 - Write Tests
To resume: /task-harness:resume 1234567890-12345
User: /task-harness:cancel 1234567890-12345
Skill: Cancels the specified session
Result: Session cancelled, progress preserved
User: /task-harness:cancel
Skill: Detects multiple active sessions
Result:
Multiple active sessions found:
1. 1234567890-12345 (auth-feature) - 2/5 tasks
2. 1234567891-54321 (bug-fixes) - 1/3 tasks
Please specify: /task-harness:cancel <session-id>