skill-resume について
Codex CLI向けのセッション復元スキルで、プロジェクト状態や引き継ぎファイルから以前の作業を再開します。関連するコンテキスト、履歴、ブロッカーを読み込み、ワークフローの状態に応じて次の操作を案内します。
主な機能
- 01セッション引き継ぎファイルの確認
- 02適応型プロジェクトコンテキストの読み込み
- 03履歴とブロッカーの抽出
- 04ワークフロー状態に応じた案内
活用シーン
- 01一時停止したプロジェクト作業の再開
- 02コンテキスト圧縮後のセッション復元
- 03現在のフェーズと未完了事項の確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ nyldn/ claude-octopus --skill skill-resumeインストール後、Claude Code で/skill-resumeを入力して読み込まれたか確認します。
同梱ファイルagents/openai.yaml
詳細
ホスト:Codex CLI — このスキルは Claude Code 向けに設計され、Codex 用に調整されています。 相互参照コマンドでは、
/octo:*スラッシュコマンドではなく、Codex にインストールされているスキル名を使用します。 現在のセッションで利用可能であることが確認されるまでは、プロバイダー、モデル、またはホストのサブエージェントが利用可能だと主張しないでください。 ホストツールに相当する機能については、skills/blocks/codex-host-adapter.mdを参照してください。
セッションの復元
概要
前回のセッションからコンテキストを復元し、中断した箇所からワークフローをシームレスに続行します。
基本原則: 状態を確認 → 適応型コンテキストを読み込む → 復元の概要を表示 → 適切なアクションに進む。
使用するタイミング
ユーザーが次のように言った場合に、このスキルを使用します:
- 「再開して」または「作業を続けて」
- 「中断したところから再開して」
- 「何をしていたの?」
- 「セッションを復元して」
- 「前回の続きから進めて」
次の場合には使用しないでください:
- 新しいプロジェクトを開始するとき(/octo:embrace を使用)
- 現在のステータスだけを確認するとき(/octo:status を使用)
- 状態を直接変更するとき(octo-state.sh を使用)
プロセス
フェーズ 0:セッション引き継ぎファイルを確認する(v9.6.0)
ステップ 0:セッション引き継ぎファイルを確認する
.octo/ を確認する前に、セッション引き継ぎファイルを探します。このファイルは PreCompact および SessionEnd フックによって自動的に書き込まれ、前回のセッションの人間が読める概要が含まれています。
octopus state-path が返すワークフロー状態と同じ場所にあり、プロジェクトのチェックアウト外に保存されています。以前のリリースでは、代わりにプロジェクトのルートに .octo-continue.md が作成されていました。移動先の引き継ぎファイルが存在しない場合に限り、そのコピーを読み込み、変更、移動、削除はしないでください。
HANDOFF_FILE=""
if WORKFLOW_STATE_FILE="$(octopus state-path)" && [[ -n "$WORKFLOW_STATE_FILE" ]]; then
HANDOFF_FILE="$(dirname "$WORKFLOW_STATE_FILE")/continue.md"
fi
if [[ -n "$HANDOFF_FILE" && -f "$HANDOFF_FILE" ]]; then
cat "$HANDOFF_FILE"
elif [[ -f ".octo-continue.md" ]]; then
cat ".octo-continue.md"
fi
引き継ぎファイルが見つかった場合は、コンテキストとして内容をユーザーに表示します。その後、フェーズ 1 に進み、完全な状態を読み込みます。引き継ぎファイルは概要をすばやく把握するためのものであり、正式な状態は .octo/STATE.md に記録されています。従来の .octo-continue.md を表示した場合は、今後更新されないためプロジェクトから削除できることをユーザーに伝えてください。
フェーズ 1:プロジェクトの初期化を確認する
リポジトリ機能の復元
トランスクリプトまたはマシンローカルの .octo 状態を探す前に、移植可能な機能アーティファクトを確認します。
OCTO_ROOT="${CLAUDE_PLUGIN_ROOT:-${HOME}/.claude-octopus/plugin}"
python3 "$OCTO_ROOT/scripts/helpers/feature-contract.py" resume --root "$(pwd -P)" --explicit "<feature directory or spec path, empty when omitted>"
機能が明確に特定できる場合は、リポジトリから意図、決定事項、未解決のマーカー、および安定した完了済み/保留中のタスク ID を復元します。過去の完了状況はコンテキストとして扱い、改めて検証する必要があります。実行時の生ファイルが見つからなくても問題ありません。関連性のない機能が複数ある場合は、ユーザーに選択を依頼してください。新しさを基準に選んではいけません。選択された機能を、既存の agent-resume オーケストレーターパスに渡します。明示的な Claude エージェント ID がある場合は、トランスクリプトの継続を維持します。
仕様のみの機能は、計画の続きから再開します。計画/タスクを含む機能は、同じポリシー、確認、分析、ウェーブ検証のゲートを通じて、保留中の実装を再開します。返された決定事項の一括処理は、次の計画/開発の境界に進む前に、ホストのネイティブな質問ツールを使って一度だけ実行します。スキップされた決定事項は未解決のままにします。
ステップ 1:.octo/ ディレクトリが存在することを確認する
if [[ ! -d ".octo" ]]; then
echo "No project state found"
exit 1
fi
.octo/ が存在せず、ステップ 0 で引き継ぎファイルが見つかった場合は、その内容を表示し、そのコンテキストに基づいて新しいセッションを開始することを提案します。
どちらも存在しない場合は、次を表示します:
## Session Restoration Failed
**No project state found.**
There is no machine-local `.octo/` directory. Check the portable feature artifacts before treating this as a fresh project.
### 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
ここで停止し、フェーズ 2 に進まないでください。
フェーズ 2:現在の状態を読み取る
ステップ 1:octo-state.sh read_state を実行する
./scripts/octo-state.sh read_state
想定される出力形式:
schema=2.0
last_updated=2026-02-02T10:30:00Z
current_phase=2
current_position=define-requirements
status=in_progress
ステップ 2:状態変数を解析する
次の主要な値を抽出します:
current_phase- フェーズ番号(1~4)current_position- フェーズ内の現在位置の説明status- ワークフローの状態(in_progress、blocked、complete、paused など)last_updated- 最後に状態が変更された日時
フェーズ 3:適応型コンテキストを読み込む
ステップ 1:コンテキスト階層を取得する(自動モード)
./scripts/octo-state.sh get_context_tier auto
現在のステータスに基づいて、適切なコンテキスト階層を自動的に選択します。
| ステータス | 選択される階層 | 読み込まれるコンテキスト |
|---|---|---|
| ready, planned, planning, complete, shipped | planning | STATE.md + PROJECT.md + ROADMAP.md |
| building, in_progress | execution | + フェーズ計画 + 最近の要約 |
| blocked, paused | execution | + フェーズ計画 + 最近の要約 |
ステップ 2:参照用にコンテキストを保存する
返されるコンテキストには、以下が含まれます。
- 現在の状態の詳細
- プロジェクトのビジョンと要件
- フェーズごとの計画と要約
- コードベースの分析(既存のコードベースがあるプロジェクトの場合)
フェーズ 4:履歴とブロッカーを抽出する
ステップ 1:STATE.md から直近 3 件の履歴を読む
# Extract history section from STATE.md
grep -A 4 "^## History" .octo/STATE.md | tail -n 3
想定される形式:
- [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)
ステップ 2:STATE.md からブロッカーを抽出する
# Extract blockers section
sed -n '/^## Blockers/,/^## /p' .octo/STATE.md | head -n -1 | tail -n +2
想定される形式:
- ブロッカーがある場合:ブロッカー項目のリスト
- ブロッカーがない場合:
(none)
ステップ 3:PROJECT.md からプロジェクトのタイトルを読む
# Get project title (first H1)
head -n 5 .octo/PROJECT.md | grep "^# " | head -1 | sed 's/^# //'
フェーズ 5:復元の概要を表示する
ステップ 1:概要を作成して表示する
## 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}
ステップ 2:フェーズ番号を名前に対応付ける
| フェーズ | 名前 |
|---|---|
| 1 | 発見 |
| 2 | 定義 |
| 3 | 開発 |
| 4 | 提供 |
フェーズ 6:インテリジェントなルーティング
ステップ 1:ステータスに基づいてルーティングする
| ステータス | アクション | メッセージ |
|---|---|---|
in_progress | 現在のフェーズを続行 | "Continue with current phase. Context loaded." |
blocked | ブロッカーを確認 | "Review blockers first: /octo:issues" |
complete | 次のフェーズに進む準備完了 | "Phase complete. Ready for /octo:ship" |
paused | プロジェクトを再開 | "Project paused. Resume with /octo:embrace" |
ready | ワークフローを開始 | "Ready to begin. Run /octo:embrace to start." |
planning | 計画を続行 | "Continue planning. Use /octo:define to refine." |
building | 開発を続行 | "Continue implementation. Use /octo:develop." |
shipped | プロジェクトを提供済み | "Project delivered! Review lessons in LESSONS.md." |
complete_with_gaps | 不足点を確認 | "Phase complete with gaps. Review ISSUES.md before proceeding." |
ステップ 2:フェーズごとのガイダンス(ステータスが in_progress の場合)
フェーズ 1(発見):
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 notes
フェーズ 2(定義):
Continue requirements clarification.
- Use `/octo:prd` to write product requirements
- Use `/octo:define` to refine scope
- Check `.octo/phases/phase2/` for requirements docs
フェーズ 3(開発):
Continue implementation.
- Use `/octo:develop` to build features
- Use `/octo:tdd` for test-driven development
- Check `.octo/phases/phase3/` for implementation plan
フェーズ 4(提供):
Continue validation and delivery.
- Use `/octo:deliver` for final review
- Use `/octo:security` for security audit
- Use `/octo:ship` to finalize delivery
出力例
例 1:プロジェクトの状態が見つからない場合
## Session Restoration Failed
**No project state found.**
There is no machine-local `.octo/` directory. Check the portable feature artifacts before treating this as a fresh project.
### Get Started
Run `/octo:embrace [your project description]` to start a new project.
例 2:復元成功(進行中)
## 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
例 3:ブロックされたプロジェクトの復元
## 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
例 4:一時停止中のプロジェクトの復元
## 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
ベストプラクティス
1. 状態の読み取りには必ず octo-state.sh を使用する
良い例:
./scripts/octo-state.sh read_state
./scripts/octo-state.sh get_context_tier auto
悪い例:
# Parse STATE.md manually
grep "Current Phase" .octo/STATE.md
2. コンテキストを完全に復元する
良い例:
- 適応型のコンテキスト階層を読み込む
- 直近 3 件の履歴を表示する
- ブロッカーがあれば表示する
- フェーズごとのガイダンスを提示する
悪い例:
- 現在のフェーズだけを表示する
- 履歴を無視する
- 次の手順を示さない
3. ステータスに基づいて適切にルーティングする
良い例:
Status: blocked → "Review blockers first: /octo:issues"
悪い例:
Status: blocked → "Continue working"
注意事項 — しないでください
| アクション | 問題点 |
|---|---|
| .octo/ の存在確認を省略する | 分かりにくいエラーが発生します |
| 再開時にブロッカーを無視する | ユーザーは停止した理由が分かりません |
| 最初からやり直す | これまでのコンテキストと進捗がすべて失われます |
| 履歴の表示を省略する | ユーザーは作業内容の連続性を失います |
| コンテキスト階層を固定する | 現在のステータスに応じて調整する必要があります |
他のスキルとの連携
/octo:status との連携
/octo:resume → Full restoration with context
/octo:status → Quick dashboard without restoration
/octo:embrace との連携
No .octo/ exists → /octo:resume suggests /octo:embrace
.octo/ exists but paused → /octo:resume suggests resuming with /octo:embrace
flow-* スキルとの連携
User runs /octo:resume
→ Context restored
→ User continues with /octo:develop (or appropriate phase skill)
クイックリファレンス
| ユーザー入力 | 必要なアクション |
|---|---|
| "resume" | octopus state-path で状態を解決 → コンテキストを読み込む → 概要を表示 → ルーティング |
| "continue" | resume と同じ |
| "pick up where I left off" | resume と同じ |
| "what was I doing" | resume と同じ。履歴を重視 |
| "restore session" | 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 were
状態が存在する場合は、最初からやり直さないでください。コンテキストを復元し、履歴を表示し、適切に振り分けます。
コンパクション後のコンテキスト復元
コンテキストがクリアされたとき(コンパクション、プランモードの終了、新しいセッション)は、自動的に検出して再読み込みします。
# 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
コンテキストのクリア後も保持されるもの:
- ホストワークスペースのプロジェクト状態(決定事項、コンテキスト、メトリクス。
octopus state-pathで解決) octopus state-pathが返すパスの隣にあるcontext/*.md(フェーズ出力)- ネイティブタスク(TaskList は引き続き使用できます)
- Git コミットと WIP チェックポイント
~/.claude-octopus/results/のマルチ AI 統合ファイル
再開が完了したら、重複した再読み込みを防ぐために export WORKFLOW_CONTEXT_LOADED=true を設定します。
状態はファイルに保持されます。コンテキストがクリアされても問題ありません。ファイルはメモリより長く残ります。