中断した作業を再開
Resumes interrupted zen commands from checkpoints after crashes or manual stops.
/plugin marketplace add B16B1RD/cc-zen-workflow/plugin install b16b1rd-zen-plugins-zen@B16B1RD/cc-zen-workflowクラッシュや中断後に、中断した zen コマンドを途中から再開する
ユースケース:
このコマンドを実行したら、以下のフェーズを順番に実行してください。
| 引数 | 説明 |
|---|---|
| なし | チェックポイントから自動検出 |
.zen/memory/checkpoint.json の存在を確認:
ls .zen/memory/checkpoint.json 2>/dev/null
ファイルが存在しない場合:
中断された作業は見つかりませんでした。
新しい作業を開始するには:
- /zen:issue:list で Issue 一覧を確認
- /zen:issue:start <番号> で作業を開始
ここで終了。
Read ツールで .zen/memory/checkpoint.json を読み取り:
{
"version": "1.0",
"command": "zen:issue:start",
"issue_number": 123,
"branch": "feat/issue-123-example",
"phase": "phase5_implementation",
"timestamp": "2026-01-07T12:00:00+09:00",
"context": {
"issue_title": "タイトル例",
...
}
}
以下を確認:
# タイムスタンプから経過時間を計算(Claude が実行)
# checkpoint の timestamp をパースし、現在時刻との差分を計算
# 例: 2026-01-07T12:00:00+09:00 と現在時刻を比較して時間数を算出
# Issue 状態確認
gh issue view {issue_number} --json state --jq '.state'
# ブランチ確認
git branch --list "{branch}"
タイムスタンプ検証の実行方法:
Claude は checkpoint.json の timestamp フィールドを読み取り、現在時刻との差分を計算する。ISO 8601 形式のタイムスタンプをパースし、24 時間(86400 秒)以上経過しているかを判定する。
24 時間以上経過している場合:
AskUserQuestion で確認:
チェックポイントが {hours} 時間前のものです。
オプション:
- 再開する: 中断した作業を続行
- 最初からやり直す: チェックポイントを削除して新規開始
- キャンセル: 何もしない
検出した内容を表示:
中断された作業が見つかりました
コマンド: {command}
Issue: #{issue_number} - {issue_title}
ブランチ: {branch}
中断フェーズ: {phase}
中断時刻: {timestamp}
再開しますか?
AskUserQuestion で確認:
オプション:
- 再開する(推奨): 中断したフェーズから続行
- 最初からやり直す: チェックポイントを削除して新規開始
- キャンセル: 何もしない
選択後の遷移:
| 選択肢 | 後続処理 |
|---|---|
| 再開する | → Phase 3 へ |
| 最初からやり直す | チェックポイント削除 → 該当コマンドを最初から実行 |
| キャンセル | 終了 |
「最初からやり直す」の具体的手順:
# 1. チェックポイントを削除
rm .zen/memory/checkpoint.json
# 2. checkpoint.json から command と issue_number を取得済みなので、
# Skill ツールで該当コマンドを呼び出す
例: command: "zen:issue:start", issue_number: 80 の場合:
Skill ツール呼び出し:
skill: "zen:issue:start"
args: "80"
これにより、チェックポイントなしの状態で Issue #80 の作業が Phase 0 から開始される。
現在のブランチがチェックポイントのブランチと異なる場合:
# 未コミットの変更を確認
git status --porcelain
# 変更がなければブランチ切り替え
git checkout {branch}
未コミットの変更がある場合:
警告: 現在のブランチに未コミットの変更があります
現在のブランチ: {current_branch}
切り替え先: {checkpoint_branch}
オプション:
- 変更をスタッシュして切り替え: git stash → checkout
- 変更を破棄して切り替え
- キャンセル
チェックポイントの command と phase に基づいて、適切な再開処理を実行。
| 中断フェーズ | 再開処理 |
|---|---|
phase0 | Phase 1 から再開(品質検証) |
phase1 | Phase 2 から再開(作業準備) |
phase2 | Phase 3 から再開(実装計画生成) |
phase3 | Phase 4 から再開(作業開始案内) |
phase4 | Phase 5 から再開(一気通貫実行) |
phase5_implementation | 実装作業を続行 |
phase5_lint | lint から再開 |
phase5_pr | PR 作成から再開 |
phase5_review | レビューから再開 |
phase5_fix | 修正対応を続行 |
再開実行の責務分担:
/zen:resume はチェックポイントを検出し、適切なコマンドを Skill ツールで呼び出す。各コマンドは自身の実行開始時にチェックポイントを確認し、存在する場合は記録されたフェーズから処理を再開する。
再開の流れ:
/zen:resume 実行
↓
1. チェックポイント検出・妥当性確認(Phase 1)
2. ユーザー確認(Phase 2)
3. ブランチ切り替え(Phase 3.1)
4. Skill ツールで該当コマンドを呼び出す:
- skill: "zen:issue:start"
- args: "{issue_number}"
↓
/zen:issue:start が実行される
↓
コマンド側でチェックポイントを検出し、該当フェーズから続行
phase5_ サブフェーズの再開詳細:*
| サブフェーズ | 具体的な再開処理 |
|---|---|
phase5_implementation | 実装計画(context.implementation_plan)を参照し、未完了タスクから実装を続行 |
phase5_lint | /zen:lint を Skill ツールで呼び出し |
phase5_pr | /zen:pr:create を Skill ツールで呼び出し |
phase5_review | /zen:pr:review {pr_number} を Skill ツールで呼び出し(context.pr_number を使用) |
phase5_fix | /zen:pr:fix {pr_number} を Skill ツールで呼び出し |
| 中断フェーズ | 再開処理 |
|---|---|
phase0 | Phase 0 から再開(タスク分解判定) |
phase0_decompose | Phase 0 分解処理から再開 |
phase1 | Phase 1 から再開(Issue 作成) |
phase2 | Phase 2 から再開(Projects 追加) |
| 中断フェーズ | 再開処理 |
|---|---|
phase1 | Phase 1 から再開(現在状態確認) |
phase2 | Phase 2 から再開(品質チェック) |
phase3 | Phase 3 から再開(PR 作成) |
phase4 | Phase 4 から再開(後処理) |
| 中断フェーズ | 再開処理 |
|---|---|
phase1 | Phase 1 から再開(準備) |
phase2 | Phase 2 から再開(レビュアー選定) |
phase3 | Phase 3 から再開(レビュアー数決定) |
phase4 | Phase 4 から再開(並列レビュー実行) |
phase5 | Phase 5 から再開(結果検証・統合) |
phase6 | Phase 6 から再開(結果出力) |
作業を再開しました
Issue: #{issue_number} - {issue_title}
ブランチ: {branch}
再開フェーズ: {phase}
続きから作業を進めてください。
警告: チェックポイントファイルが破損しています
チェックポイントを削除して、新しい作業を開始してください。
対処:
1. rm .zen/memory/checkpoint.json
2. /zen:issue:start <番号> で作業を開始
エラー: Issue #{number} が見つかりません
考えられる原因:
- Issue が削除された
- Issue 番号が間違っている
対処:
1. /zen:issue:list で Issue 一覧を確認
2. チェックポイントを削除: rm .zen/memory/checkpoint.json
警告: ブランチ {branch} が見つかりません
オプション:
- ブランチを新規作成して作業を続行
- チェックポイントを削除して最初からやり直す
gh コマンド、git コマンド実行、チェックポイント削除(rm){
"version": "1.0",
"command": "zen:issue:start",
"issue_number": 123,
"branch": "feat/issue-123-example",
"phase": "phase5_implementation",
"timestamp": "2026-01-07T12:00:00+09:00",
"context": {
"issue_title": "Issue タイトル",
// コマンド・フェーズ固有の追加情報
}
}
| フィールド | 型 | 説明 |
|---|---|---|
version | string | チェックポイントフォーマットのバージョン |
command | string | 中断されたコマンド名 |
issue_number | number | 関連する Issue 番号(ある場合) |
branch | string | 作業ブランチ名 |
phase | string | 中断されたフェーズ |
timestamp | string | 最終更新時刻(ISO 8601) |
context | object | フェーズ固有の追加情報 |
注意: この機能は将来の拡張予定であり、現時点では実装されていません。
Claude Code のセッションフック機構が利用可能になった際、セッション開始時に .zen/memory/checkpoint.json を自動確認し、中断された作業がある場合に通知する機能を追加予定:
中断された作業が見つかりました
コマンド: {command}
Issue: #{issue_number} - {issue_title}
中断時刻: {timestamp}
再開するには /zen:resume を実行してください。
現状: 手動での /zen:resume 実行が必要です。