Install any skill in seconds. Free to start, no credit card required.
Get Started Free →List in-flight Ouroboros sessions and show the commands needed to re-attach after MCP disconnect
.claude/skills/q00-resume-session/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✗→✓ | ▲ Improved | 31% | 0% |
| case-05 | ✗→✓ | ▲ Improved | -26% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 0% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 20% | 0% |
| case-08 | ✗→✓ | ▲ Improved | -2% | 0% |
Recover in-flight Ouroboros sessions after an unexpected MCP server disconnect.
Claude Code reserves /resume for its built-in session picker. This skill intentionally uses resume-session so it does not shadow that native command.
ooo resume-session
ooo resume-session --all
/ouroboros:resume-sessionTrigger keywords: "in-flight Ouroboros sessions", "re-attach", "mcp disconnected", "lost Ouroboros execution"
ooo resume-session reads the EventStore directly (no MCP server required) and lists every session that is still in a running or paused state. The command is strictly read-only — it never creates the data directory, never writes schema, and never appends events. Its job is to surface the identifiers you need to re-attach.
ooo resume-session shows the 20 most recent active sessions.ooo resume-session --all shows every active session.When the user invokes this skill:
ouroboros resume
This reads ~/.ouroboros/ouroboros.db directly — the MCP server does not need to be running.
with. The command prints both the session_id and the exec_id, along with the two re-attach paths.
ouroboros tui monitor
Launches the TUI and lets you pick the session to inspect. The ouroboros status execution <exec_id> command is registered but its handler is still a placeholder in src/ouroboros/cli/commands/status.py (it only prints "Would show details for execution: …"), so it is intentionally not surfaced here. Follow-up tracked as a separate issue.
ouroboros run workflow --orchestrator --resume <session_id> <seed.yaml>
| Code | Meaning | |------|---------| | 0 | Success — sessions listed, or no sessions found | | 1 | Invalid user selection (non-numeric or out-of-range) | | 2 | EventStore exists but could not be opened or read |
If the command reports "No in-flight sessions found", the execution either completed, failed, was cancelled, or the EventStore has never been created. To browse historical sessions interactively, use the TUI monitor:
ouroboros tui monitorUser: ooo resume-session
┌─────────────────────── In-Flight Sessions ───────────────────────┐
│ # Session ID Execution ID Status Started │
│ 1 sess-abc123 exec-xyz789 running 2026-04-15 │
└───────────────────────────────────────────────────────────────────┘
Enter number to re-attach (1-1), or 'q' to quit: 1
╭─ Re-attach ────────────────────────────────────────────────────────────────╮
│ Session ID: sess-abc123 │
│ Execution ID: exec-xyz789 │
│ │
│ Inspect (read-only interactive monitor): │
│ ouroboros tui monitor │
│ │
│ Resume execution (requires the original seed file): │
│ ouroboros run workflow --orchestrator --resume sess-abc123 seed-001 │
╰────────────────────────────────────────────────────────────────────────────╯After you have the identifiers:
ouroboros tui monitor — launch the TUI and pick the session to inspectouroboros run workflow --orchestrator --resume <session_id> <seed.yaml> — resume executionooo evaluate — evaluate results once the execution completesooo cancel execution <exec_id> — cancel if the session is stuck| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 9,728 | 8,253 | -15% | 1 | 1 | 0% | 1,354 | 1,268 | -6% | 0 | 0 | — |
case-02 | fail→fail | 9,011 | 4,593 | -49% | 1 | 1 | 0% | 1,526 | 1,184 | -22% | 0 | 0 | — |
case-03 | fail→fail | 7,532 | 7,235 | -4% | 1 | 1 | 0% | 1,295 | 1,194 | -8% | 0 | 0 | — |
case-04 | fail→pass | 8,402 | 3,913 | -53% | 1 | 1 | 0% | 1,263 | 1,656 | +31% | 0 | 0 | — |
case-05 | fail→pass | 14,606 | 4,454 | -70% | 1 | 1 | 0% | 2,126 | 1,580 | -26% | 0 | 0 | — |
case-06 | fail→pass | 8,346 | 3,441 | -59% | 1 | 1 | 0% | 1,524 | 1,527 | +0% | 0 | 0 | — |
case-07 | fail→pass | 8,685 | 3,646 | -58% | 1 | 1 | 0% | 1,405 | 1,679 | +20% | 0 | 0 | — |
case-08 | fail→pass | 10,327 | 4,876 | -53% | 1 | 1 | 0% | 1,725 | 1,683 | -2% | 0 | 0 | — |
case-09 | fail→pass | 38,615 | 1,617 | -96% | 1 | 1 | 0% | 5,867 | 1,213 | -79% | 0 | 0 | — |
case-10 | fail→pass | 17,523 | 2,080 | -88% | 1 | 1 | 0% | 2,596 | 1,304 | -50% | 0 | 0 | — |
case-11 | fail→pass | 8,239 | 4,308 | -48% | 1 | 1 | 0% | 1,207 | 1,591 | +32% | 0 | 0 | — |
case-12 | fail→pass | 7,443 | 2,952 | -60% | 1 | 1 | 0% | 1,187 | 1,297 | +9% | 0 | 0 | — |
case-13 | pass→pass | 13,126 | 1,975 | -85% | 1 | 1 | 0% | 2,183 | 1,346 | -38% | 0 | 0 | — |
case-14 | fail→pass | 11,894 | 1,802 | -85% | 1 | 1 | 0% | 1,861 | 1,215 | -35% | 0 | 0 | — |
case-15 | pass→pass | 9,974 | 1,386 | -86% | 1 | 1 | 0% | 1,615 | 1,190 | -26% | 0 | 0 | — |
case-16 | fail→pass | 12,558 | 4,060 | -68% | 1 | 1 | 0% | 1,864 | 1,514 | -19% | 0 | 0 | — |
case-17 | fail→pass | 28,019 | 1,983 | -93% | 1 | 1 | 0% | 4,956 | 1,252 | -75% | 0 | 0 | — |
case-18 | pass→pass | 18,300 | 2,207 | -88% | 1 | 1 | 0% | 3,333 | 1,418 | -57% | 0 | 0 | — |
case-19 | fail→pass | 13,269 | 3,924 | -70% | 1 | 1 | 0% | 1,740 | 1,426 | -18% | 0 | 0 | — |
case-20 | fail→pass | 12,799 | 2,006 | -84% | 1 | 1 | 0% | 1,726 | 1,336 | -23% | 0 | 0 | — |
case-21 | pass→pass | 14,128 | 2,680 | -81% | 1 | 1 | 0% | 2,369 | 1,279 | -46% | 0 | 0 | — |
case-22 | fail→pass | 47,556 | 2,161 | -95% | 1 | 1 | 0% | 8,075 | 1,339 | -83% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 21 counted toward the lift figure. The other 1 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +68 percentage points is the difference between those two pass rates over the 21 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.