結論:rewind前に変更経路を分ける

Claude Codeのcheckpointingは、各user prompt前の状態を基準に、file editing toolで加えた変更とconversationを素早く戻す機能です。/rewindまたは入力欄が空の時のEsc二回で開き、codeと会話の両方、会話だけ、codeだけ、要約のいずれかを選びます。ただしBash、通常のsubagent、別session、手作業の変更まで一括復旧する機能ではありません。

具体的な困りごとは、「checkpointがあるから大丈夫」と考えて複数経路の変更を同じcheckoutへ重ね、復旧時に戻らないfileや残したい同僚の変更へ気づくことです。この記事を読むと、rewindの5選択肢、追跡範囲、Gitへ切り替える条件を判断できます。

次の行動:今の作業について、ClaudeのEdit、Bash、subagent、別session、人の編集を五列に分け、各列の復旧手段を書いてください。

公式仕様:100件・30日と対象外を確認する

公式checkpointing文書では、Claude Codeはuser promptごとに新しいcheckpointを作り、session内の直近100 checkpointについてfile snapshotを保持します。conversationと一緒に保存されるため、sessionをresumeした後も/rewindを利用できます。sessionとcheckpointは既定で30日後のcleanup対象で、保持期間はcleanupPeriodDaysで変更できます。これは長期backupではなく、作業中の短期回復点です。

rewind menuには、Restore code and conversation、Restore conversation、Restore code、Summarize from here、Summarize up to hereがあります。選択地点より後に追跡対象のfile editがなければcode restoreは表示されません。conversationを戻すと元promptが入力欄へ戻るため、条件を修正して再送できます。summaryはfileを変えずcontextを圧縮し、元messageはtranscriptへ残ります。

最大の制限は変更経路です。Bash commandが削除・移動・copyしたfileは追跡されません。background skillを含む多くのsubagent editも通常は親sessionから戻せず、別sessionや手動editorの変更も対象外です。symlinkとhard linkはrestore時にskipされ、warningが出ます。debug logでskip pathを確認し、Gitまたは手作業で復旧します。

rewindとGitを6軸で比較する

  1. 速度:直前の試行錯誤はrewind、数日をまたぐ復旧はGitを選びます。
  2. 対象:Edit toolの変更はcheckpoint、Bash・外部編集・subagentはGitで守ります。
  3. 会話:promptの分岐や要約はrewind、code履歴だけならcommitとbranchを使います。
  4. 共同作業:個人sessionの復旧はcheckpoint、reviewと共有はcommitを正本にします。
  5. 保持:100件・cleanup期間内はcheckpoint、release履歴はremote repositoryへ残します。
  6. 証拠:試行をやり直すだけならrewind、監査やrollbackにはdiff、test、commit SHAを残します。

会話だけ戻す選択は、codeを維持して別の説明を試す時に便利です。codeだけ戻す選択は、議論や判断材料を残したまま実装を捨てたい時に使います。両方を戻すのは、前提からやり直す時です。どの選択でも、未追跡file、Bashによる生成物、同時sessionの変更を先に確認してください。復旧前後のtest結果とdiffを同じ作業記録へ残すと、何が戻り、何が残ったかを後から説明できます。

安全に変更を戻す8手順

  1. git statusでtracked、untracked、他者変更を確認し、現状のdiffを保存します。
  2. 変更をEdit、Bash、subagent、外部編集に分類し、checkpoint対象外を特定します。
  3. 入力欄を空にして/rewindを実行し、戻り先のpromptと時刻を照合します。
  4. 目的が実装復旧、会話分岐、context圧縮のどれかを一文で決めます。
  5. codeだけ、会話だけ、両方、二種類のsummaryから最小の操作を選びます。
  6. skip warningが出たら先へ進めず、/debugのpathとlink種別を確認します。
  7. restore後にgit diff、test、生成物、設定fileをreadbackし、期待状態と比較します。
  8. 採用する状態を小さくcommitし、重要な分岐はbranchへ残して次のpromptへ進みます。

チェックリストとHOLD条件

  • 戻り先promptを確認した
  • 現diffを読んだ
  • untracked fileを確認した
  • Bash変更を分離した
  • subagent変更を確認した
  • 別sessionの有無を確認した
  • symlinkとhard linkを確認した
  • 会話とcodeのどちらを戻すか決めた
  • skip warningを読んだ
  • restore後testを固定した
  • Gitの復旧点がある
  • 共同作業者へ影響しない

HOLDするのは、誰の変更か不明、Bashによるmigrationや削除が混在、同じcheckoutで別sessionが実行中、production dataを操作済み、symlinkの実体が不明、restore後の検証commandがない場合です。checkpointの存在をbackup完了の証明にしません。

よくある質問と次の行動

Escを二回押してもmenuが出ません

入力欄にtextがあると二回Escは入力をclearします。clearされたtextはhistoryへ残るため、Upで戻せます。確実に開くなら/rewindを使います。

summaryを選ぶとfileも戻りますか?

戻りません。summaryはconversationの一部を圧縮してcontextを空ける操作です。file状態は維持されます。

30日より長く残せますか?

cleanupPeriodDaysでsession cleanup期間を調整できますが、組織の保持方針と端末管理を確認し、永続履歴はGitへ残してください。

対象範囲と操作は公式checkpointing、session分岐は公式sessions、保持は公式Claude directoryで再確認してください。

並列編集はsubagent fork、file分離はworktree運用、変更証跡は監査logへつなげます。Miraigentの無料診断では、復旧点、Git、test、責任者を一枚の運用表へ整理します。