---
name: cancel
description: "Cancel stuck or orphaned executions"
aliases: [kill, abort]
---

# /ouroboros:cancel

Cancel stuck or orphaned executions by session ID, cancel all running sessions, or interactively pick from active executions.

## Usage

```
/ouroboros:cancel                          # Interactive: list active, pick one
/ouroboros:cancel <execution_id>           # Cancel specific execution
/ouroboros:cancel --all                    # Cancel all running executions
```

**Trigger keywords:** "cancel execution", "kill session", "stop running", "abort execution"

## How It Works

This skill interacts **directly with the event store** (not via MCP tool) to emit cancellation events. It uses the CLI command under the hood.

Three modes:

1. **Bare (no args)**: Lists all active (running/paused) executions in a numbered table and prompts you to pick one to cancel
2. **Explicit (`execution_id`)**: Cancels the specified execution immediately
3. **`--all` flag**: Cancels every running or paused execution at once

## Instructions

When the user invokes this skill:

1. Determine which mode to use:
   - If the user provided an execution/session ID: **Explicit mode**
   - If the user says "cancel all" or "cancel everything": **--all mode**
   - If no ID given and not "all": **Bare mode** (interactive listing)

2. Run the appropriate CLI command using Bash:

   **Bare mode** (interactive):
   ```bash
   ouroboros cancel execution
   ```
   This will list active executions and prompt for selection.

   **Explicit mode** (specific execution):
   ```bash
   ouroboros cancel execution <execution_id>
   ```

   **Cancel all mode**:
   ```bash
   ouroboros cancel execution --all
   ```

   **With custom reason**:
   ```bash
   ouroboros cancel execution <execution_id> --reason "Stuck for 2 hours"
   ```

3. Present results to the user:
   - Show which executions were cancelled
   - If bare mode, show the list and selection prompt
   - If no active executions, inform the user

4. End with a next-step suggestion:
   - After cancellation: `◆ Cancelled — use ooo status to verify, or ooo run to start fresh`
   - No active sessions: `◆ No active executions — use ooo run to start a new one`

## State Transitions

Only sessions in `running` or `paused` status can be cancelled. Sessions that are already `completed`, `failed`, or `cancelled` are skipped with a warning.

## Fallback (No Database)

If the configured runtime EventStore does not exist:

```
No Ouroboros database found at the configured runtime path.
Run an execution first with: /ouroboros:run
```

## Example

```
User: cancel that stuck execution

> ouroboros cancel execution

Active Executions
┌───┬──────────────────┬──────────────┬─────────┬─────────┬──────────────┐
│ # │ Session ID       │ Execution ID │ Seed ID │ Status  │ Started      │
├───┼──────────────────┼──────────────┼─────────┼─────────┼──────────────┤
│ 1 │ sess-abc-123     │ exec-001     │ seed-42 │ running │ 2024-01-15   │
│ 2 │ sess-def-456     │ exec-002     │ seed-99 │ paused  │ 2024-01-14   │
└───┴──────────────────┴──────────────┴─────────┴─────────┴──────────────┘

Enter number to cancel (1-2), or 'q' to quit: 1
Cancel session sess-abc-123 (running)? [y/N]: y
✓ Cancelled execution: sess-abc-123

◆ Cancelled — use `ooo status` to verify, or `ooo run` to start fresh
```

## RFC #1392 State Breadcrumb Footer

Your final response MUST end with exactly one breadcrumb footer line:

```
◆ <current state> → next: <recommended action>
```

Derive `<current state>` from live session state via `ouroboros_session_status` when that MCP projection is available; otherwise derive it from this skill's actual outcome. Never use a linear `Step N of M` footer because Ouroboros is an evolutionary loop. When the next action is genuinely a choice, list 2-3 honest options in the `next:` clause. The breadcrumb line must be the last line of the response.
