Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Pick up where you left off from a previous session — use after context resets, compaction, or new conversations
.claude/skills/hashgraph-online-skill-resume/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-10 | ✗→✓ | ▲ Improved | 600% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 250% | 0% |
| case-13 | ✗→✓ | ▲ Improved | 136% | 0% |
| case-14 | ✗→✓ | ▲ Improved | 116% | 0% |
| case-18 | ✗→✓ | ▲ Improved | 96% | 0% |
> 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.
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.
Use this skill when user says:
Do NOT use for:
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.
bashif [[ -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.
bashif [[ ! -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:
markdown## 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 laterStop here - do not proceed to Phase 2.
bash./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_progressExtract these key values:
current_phase - Phase number (1-4)current_position - Description of current position within phasestatus - Workflow status (in_progress, blocked, complete, paused, etc.)last_updated - Timestamp of last state modificationbash./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 |
The context returned includes:
bash# 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)bash# Extract blockers section sed -n '/^## Blockers/,/^## /p' .octo/STATE.md | head -n -1 | tail -n +2
Expected format:
(none)bash# Get project title (first H1) head -n 5 .octo/PROJECT.md | grep "^# " | head -1 | sed 's/^# //'
markdown## 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}
| Phase | Name | |-------|------| | 1 | Discover | | 2 | Define | | 3 | Develop | | 4 | Deliver |
| 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 with /octo:embrace" | | ready | Begin workflow | "Ready to begin. Run /octo:embrace to start." | | planning | Continue planning | "Continue planning. Use /octo:define to refine." | | building | Continue building | "Continue implementation. Use /octo:develop." | | shipped | Project delivered | "Project delivered! Review lessons in LESSONS.md." | | complete_with_gaps | Review gaps | "Phase complete with gaps. Review ISSUES.md before proceeding." |
Phase 1 (Discover):
Continue research and exploration.
- Use `/octo:research [topic]` for multi-AI research
- Use `/octo:debate [question]` for decision support
- Check `.octo/phases/phase1/` for research notesPhase 2 (Define):
Continue requirements clarification.
- Use `/octo:prd` to write product requirements
- Use `/octo:define` to refine scope
- Check `.octo/phases/phase2/` for requirements docsPhase 3 (Develop):
Continue implementation.
- Use `/octo:develop` to build features
- Use `/octo:tdd` for test-driven development
- Check `.octo/phases/phase3/` for implementation planPhase 4 (Deliver):
Continue validation and delivery.
- Use `/octo:deliver` for final review
- Use `/octo:security` for security audit
- Use `/octo:ship` to finalize deliverymarkdown## 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.
markdown## Session Restored **Project:** User Authentication System **Last Active:** 2026-02-02T10:30:00Z **Phase:** 2 - Define **Position:** define-requirements **Status:** in_progress ### Where You Left Off - [2026-02-02T10:30:00Z] Phase 2: Started requirements review (in_progress) - [2026-02-01T16:45:00Z] Phase 1: Completed discovery (complete) - [2026-02-01T14:20:00Z] Phase 1: Research synthesis complete (in_progress) ### Current Blockers None ### Ready to Continue Continue with current phase. Context loaded. Continue requirements clarification. - Use `/octo:prd` to write product requirements - Use `/octo:define` to refine scope - Check `.octo/phases/phase2/` for requirements docs
markdown## Session Restored **Project:** E-commerce Platform **Last Active:** 2026-02-01T18:00:00Z **Phase:** 3 - Develop **Position:** implement-payment-gateway **Status:** blocked ### Where You Left Off - [2026-02-01T18:00:00Z] Phase 3: Payment integration blocked (blocked) - [2026-02-01T15:30:00Z] Phase 3: Started payment gateway integration (in_progress) - [2026-02-01T12:00:00Z] Phase 3: Completed user auth implementation (complete) ### Current Blockers - Missing Stripe API credentials - Payment webhook endpoint not configured - SSL certificate pending for payment domain ### Ready to Continue Review blockers first: `/octo:issues` **To unblock:** 1. Configure Stripe API credentials in environment 2. Set up webhook endpoint at /api/webhooks/stripe 3. Complete SSL certificate setup for payments subdomain
markdown## Session Restored **Project:** Data Analytics Dashboard **Last Active:** 2026-01-28T09:00:00Z **Phase:** 2 - Define **Position:** requirements-gathering **Status:** paused ### Where You Left Off - [2026-01-28T09:00:00Z] Phase 2: Project paused by user (paused) - [2026-01-27T16:00:00Z] Phase 2: Stakeholder feedback pending (in_progress) - [2026-01-27T10:00:00Z] Phase 1: Discovery complete (complete) ### Current Blockers - Waiting for stakeholder availability ### Ready to Continue Project paused. Resume with `/octo:embrace` When ready to continue: 1. Review `.octo/PROJECT.md` for project context 2. Check `.octo/STATE.md` for pause reason 3. Run `/octo:embrace` to resume workflow
Good:
bash./scripts/octo-state.sh read_state ./scripts/octo-state.sh get_context_tier auto
Poor:
bash# Parse STATE.md manually grep "Current Phase" .octo/STATE.md
Good:
Poor:
Good:
Status: blocked → "Review blockers first: /octo:issues"Poor:
Status: blocked → "Continue working"| Action | Why It's Wrong | |--------|----------------| | Skip .octo/ existence check | Will fail with confusing errors | | Ignore blockers on resume | User won't know why they stopped | | Restart from beginning | Loses all previous context and progress | | Skip history display | User loses continuity of what was done | | Use hardcoded context tier | Should adapt based on current status |
/octo:resume → Full restoration with context
/octo:status → Quick dashboard without restorationNo .octo/ exists → /octo:resume suggests /octo:embrace
.octo/ exists but paused → /octo:resume suggests resuming with /octo:embraceUser runs /octo:resume
→ Context restored
→ User continues with /octo:develop (or appropriate phase skill)| User Input | Action Required | |------------|-----------------| | "resume" | Resolve state with octopus state-path → Load context → Display summary → Route | | "continue" | Same as resume | | "pick up where I left off" | Same as resume | | "what was I doing" | Same as resume, emphasize history | | "restore session" | Same as resume |
Run `octopus state-path` → Read state → Load adaptive context → Show history + blockers → Route intelligently
Otherwise → User loses previous context and wastes time re-discovering where they wereNever restart from beginning if state exists. Restore context, show history, route intelligently.
When context is cleared (compaction, plan mode exit, new session), detect and reload automatically:
bash# Auto-detect context loss without writing into the project checkout. # The plugin executable resolves its own installation root on every host. if ! WORKFLOW_STATE_FILE="$(octopus state-path)" || [[ -z "$WORKFLOW_STATE_FILE" ]]; then echo "Unable to resolve persistent workflow state; refusing an incomplete resume." >&2 exit 1 fi if [[ -f "$WORKFLOW_STATE_FILE" ]] && [[ -z "${WORKFLOW_CONTEXT_LOADED}" ]]; then echo "⚠️ Context was cleared — reloading from persistent state..." NEEDS_RESUME=true fi
What survives context clearing:
octopus state-path)context/*.md beside the path returned by octopus state-path (phase outputs)~/.claude-octopus/results/After resume completes, set export WORKFLOW_CONTEXT_LOADED=true to prevent duplicate reloads.
State persists in files. Context clearing is not a problem. Files outlive memory.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 20,167 | 16,357 | -19% | 1 | 1 | 0% | 1,194 | 4,150 | +248% | 0 | 0 | — |
case-07 | fail→fail | 10,803 | 14,841 | +37% | 1 | 1 | 0% | 998 | 3,994 | +300% | 0 | 0 | — |
case-02 | fail→fail | 11,190 | 18,808 | +68% | 1 | 1 | 0% | 963 | 4,495 | +367% | 0 | 0 | — |
case-03 | fail→fail | 15,129 | 17,108 | +13% | 1 | 1 | 0% | 276 | 4,208 | +1425% | 0 | 0 | — |
case-04 | fail→fail | 14,775 | 16,940 | +15% | 1 | 1 | 0% | 174 | 4,150 | +2285% | 0 | 0 | — |
case-05 | fail→fail | 8,578 | 16,369 | +91% | 1 | 1 | 0% | 315 | 4,117 | +1207% | 0 | 0 | — |
case-06 | fail→fail | 10,442 | 18,212 | +74% | 1 | 1 | 0% | 820 | 4,203 | +413% | 0 | 0 | — |
case-08 | pass→fail | 10,249 | 16,504 | +61% | 1 | 1 | 0% | 779 | 4,119 | +429% | 0 | 0 | — |
case-09 | pass→pass | 13,768 | 7,821 | -43% | 1 | 1 | 0% | 1,369 | 4,337 | +217% | 0 | 0 | — |
case-10 | fail→pass | 9,050 | 8,723 | -4% | 1 | 1 | 0% | 619 | 4,336 | +600% | 0 | 0 | — |
case-11 | fail→pass | 12,643 | 10,602 | -16% | 1 | 1 | 0% | 1,354 | 4,736 | +250% | 0 | 0 | — |
case-12 | fail→fail | 9,651 | 16,328 | +69% | 1 | 1 | 0% | 721 | 4,113 | +470% | 0 | 0 | — |
case-13 | fail→pass | 15,697 | 8,245 | -47% | 1 | 1 | 0% | 1,790 | 4,227 | +136% | 0 | 0 | — |
case-14 | fail→pass | 14,689 | 10,832 | -26% | 1 | 1 | 0% | 2,214 | 4,782 | +116% | 0 | 0 | — |
case-15 | fail→fail | 18,192 | 15,838 | -13% | 1 | 1 | 0% | 1,980 | 4,086 | +106% | 0 | 0 | — |
case-16 | fail→fail | 15,553 | 9,243 | -41% | 1 | 1 | 0% | 1,658 | 4,459 | +169% | 0 | 0 | — |
case-17 | fail→fail | 14,540 | 7,768 | -47% | 1 | 1 | 0% | 1,479 | 4,176 | +182% | 0 | 0 | — |
case-18 | fail→pass | 20,462 | 10,911 | -47% | 1 | 1 | 0% | 2,476 | 4,863 | +96% | 0 | 0 | — |
case-19 | fail→pass | 30,863 | 6,487 | -79% | 1 | 1 | 0% | 4,042 | 3,954 | -2% | 0 | 0 | — |
case-20 | fail→fail | 20,812 | 15,540 | -25% | 1 | 1 | 0% | 2,783 | 4,061 | +46% | 0 | 0 | — |
case-21 | fail→fail | 13,290 | 16,774 | +26% | 1 | 1 | 0% | 1,290 | 4,158 | +222% | 0 | 0 | — |
case-22 | pass→pass | 11,754 | 9,699 | -17% | 1 | 1 | 0% | 1,046 | 4,365 | +317% | 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 10 counted toward the lift figure. The other 12 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 +23 percentage points is the difference between those two pass rates over the 10 comparable cases. 5 cases got worse with the skill loaded, and they are included in that figure.
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.