Skip to content
Automation
Skill

/skill-resume

Pick up where you left off from a previous session — use after context resets, compaction, or new conversations

From plugin
octo
4.1k70 skills49 agents53 commands18 hooks
Install
$ npx -y skills add nyldn/claude-octopus --skill skill-resume --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/skill-resume

Context preview

The summary Claude sees to decide when to auto-load this skill.

Pick up where you left off from a previous session — use after context resets, compaction, or new conversations

SKILL.md

skill-resume.SKILL.md
name: skill-resume
description: "Pick up where you left off from a previous session — use after context resets, compaction, or new conversations"
disable-model-invocation: true

> **Host: Codex CLI** — This skill was designed for Claude Code and adapted for Codex. > Cross-reference commands use installed skill names in Codex rather than `/octo:*` slash commands. > Use the active Codex shell and subagent tools. Do not claim a provider, model, or host subagent is available until the current session exposes it. > For host tool equivalents, see `skills/blocks/codex-host-adapter.md`.

Session Restoration

Overview

Restore context from a previous session and seamlessly continue the workflow where you left off.

**Core principle:** Check state → Load adaptive context → Display restoration summary → Route to appropriate action.

When to Use

**Use this skill when user says:**

  • "Resume" or "continue working"
  • "Pick up where I left off"
  • "What was I doing?"
  • "Restore session"
  • "Continue from last time"

**Do NOT use for:**

  • Starting new projects (use /octo:embrace)
  • Checking current status only (use /octo:status)
  • Modifying state directly (use octo-state.sh)

The Process

Phase 0: Check Session Handoff File (v9.6.0)

Step 0: Check for .octo-continue.md

Before checking `.octo/`, look for a session handoff file. This is written automatically by PreCompact and SessionEnd hooks and contains a human-readable summary of the last session.

if [[ -f ".octo-continue.md" ]]; then
    cat ".octo-continue.md"
fi

**If `.octo-continue.md` exists**, read it and display its contents to the user as context. Then continue to Phase 1 to load the full state. The handoff file provides a quick overview; `.octo/STATE.md` provides the authoritative state.

Phase 1: Check Project Initialization

Step 1: Verify .octo/ Directory Exists

if [[ ! -d ".octo" ]]; then
    echo "No project state found"
    exit 1
fi

**If .octo/ does not exist but `.octo-continue.md` exists**, display the handoff file contents and offer to start a new session based on that context.

**If neither exists, display:**

## Session Restoration Failed

**No project state found.**

There is no `.octo/` directory in this project, which means no previous session state exists.

### Get Started

Run `/octo:embrace [your project description]` to start a new project.

**Example:**

/octo:embrace build a REST API with user authentication


This will:
1. Initialize .octo/ directory with STATE.md, PROJECT.md, ROADMAP.md
2. Begin the Double Diamond workflow
3. Create session state you can resume later

**Stop here** - do not proceed to Phase 2.

Phase 2: Read Current State

Step 1: Execute octo-state.sh read_state

./scripts/octo-state.sh read_state

**Expected output format:**

schema=2.0
last_updated=2026-02-02T10:30:00Z
current_phase=2
current_position=define-requirements
status=in_progress

Step 2: Parse State Variables

Extract these key values:

  • `current_phase` - Phase number (1-4)
  • `current_position` - Description of current position within phase
  • `status` - Workflow status (in_progress, blocked, complete, paused, etc.)
  • `last_updated` - Timestamp of last state modification

Phase 3: Load Adaptive Context

Step 1: Get Context Tier (Auto Mode)

./scripts/octo-state.sh get_context_tier auto

This automatically selects the appropriate context tier based on current status:

| Status | Tier Selected | Context Loaded | |--------|---------------|----------------| | ready, planned, planning, complete, shipped | planning | STATE.md + PROJECT.md + ROADMAP.md | | building, in_progress | execution | + phase plans + recent summaries | | blocked, paused | execution | + phase plans + recent summaries |

Step 2: Store Context for Reference

The context returned includes:

  • Current state details
  • Project vision and requirements
  • Phase-specific plans and summaries
  • Codebase analysis (if brownfield project)

Phase 4: Extract History and Blockers

Step 1: Read Last 3 History Entries from STATE.md

# Extract history section from STATE.md
grep -A 4 "^## History" .octo/STATE.md | tail -n 3

**Expected format:**

- [2026-02-02T10:30:00Z] Phase 2: Completed requirements review (complete)
- [2026-02-02T09:15:00Z] Phase 2: Started define phase (in_progress)
- [2026-02-01T16:45:00Z] Phase 1: Completed discovery (complete)

Step 2: Extract Blockers from STATE.md

# Extract blockers section
sed -n '/^## Blockers/,/^## /p' .octo/STATE.md | head -n -1 | tail -n +2

**Expected format:**

  • If blockers exist: List of blocker items
  • If no blockers: `(none)`

Step 3: Read Project Title from PROJECT.md

# Get project title (first H1)
head -n 5 .octo/PROJECT.md | grep "^# " | head -1 | sed 's/^# //'

Phase 5: Display Restoration Summary

Step 1: Build and Display Summary

## Session Restored

**Project:** {project_title from PROJECT.md}
**Last Active:** {last_updated from STATE.md}
**Phase:** {current_phase} - {phase_name}
**Position:** {current_position}
**Status:** {status}

### Where You Left Off

{Last 3 entries from STATE.md history}

### Current Blockers

{Blockers from STATE.md or "None"}

### Ready to Continue

{Intelligent suggestion based on status - see routing table below}

Step 2: Map Phase Number to Name

| Phase | Name | |-------|------| | 1 | Discover | | 2 | Define | | 3 | Develop | | 4 | Deliver |

Phase 6: Intelligent Routing

Step 1: Route Based on Status

| Status | Action | Message | |--------|--------|---------| | `in_progress` | Continue current phase | "Continue with current phase. Context loaded." | | `blocked` | Review blockers | "Review blockers first: `/octo:issues`" | | `complete` | Ready for next phase | "Phase complete. Ready for `/octo:ship`" | | `paused` | Resume project | "Project paused. Resume

Read more
Ships withocto

Every AI model has blind spots. Claude Octopus supports twelve external provider integrations — Codex, Antigravity CLI, Copilot, Qwen, Ollama, Perplexity, OpenRouter, OrcaRouter, OpenCode, Cursor CLI, Grok, and Kimi Code — alongside the built-in Claude Code

Get the whole plugin

Other skills on octo.