「/rewind」で巻き戻し候補を呼び出し、目的の状態に戻す操作手順
Claude Codeには、プロンプトを送るたびにコードの状態を自動保存する「チェックポイント」機能がある。実装が思わぬ方向に進んでも、保存点までコードと会話をまとめて戻せる。呼び出し方は「/rewind」コマンドの実行、またはプロンプト入力欄が空の状態でEscキーを2回押す、の2通り。入力欄に文字が残っていると、ダブルEscはメニューを開かずテキストをクリアするだけなので注意したい。
メニューを開くと、セッション中に送った各プロンプトが時系列で並ぶ。戻したいポイントを選び、続けて実行したいアクションを選ぶ2段階の操作だ。
コードと会話を戻す3つの復元オプション(コードのみ/会話のみ/両方)
復元系は「状態そのものを巻き戻す」操作で、次の3つから選べる。
- コードと会話を復元:ファイルの変更と会話履歴の両方を選択ポイントまで戻す
- 会話を復元:現在のコードは残したまま、会話だけを巻き戻す
- コードを復元:会話はそのまま残し、ファイルの変更だけを取り消す
試した実装方針が外れたときは「コードを復元」でファイルだけを戻すとよい。なぜその方針を試したかという会話の文脈が残るため、次の指示を出しやすくなる。
コンテキストを圧縮する2つの要約オプション(ここから要約/ここまで要約)
要約系は復元と違い、ディスク上のファイルには一切手を触れない。会話の一部をAI生成の要約に置き換え、コンテキストウィンドウ(Claudeが一度に読める会話やファイル内容の容量枠)の消費を抑える機能だ。
「ここから要約」は選択ポイント以降の会話を圧縮し、それより前はそのまま残す。脇道の議論を畳んで最初の指示だけ詳細に残したいときに向く。逆に「ここまで要約」は選択ポイントより前を圧縮し、直近のやり取りは末尾にそのまま残る。要件整理が長引いた案件で、直近の実装内容だけを完全な形で保持したい場合に使うとよい。いずれも元のメッセージ自体はセッションのトランスクリプトに残るため、必要になればClaudeは詳細を参照できる。
bashコマンドで変更したファイルはrewindで戻らない
チェックポイントが追跡するのは、Claudeのファイル編集ツールで直接書き換えたファイルだけだ。bashツール経由で実行したコマンドの結果は対象外になる。
これはウェブ開発で実際に踏みやすい罠だ。Claudeにマイグレーションコマンドを実行させ、その後の実装方針が気に入らず「コードを復元」で巻き戻したとする。ソースコードは選択ポイントの状態に戻るが、bashコマンドで実行したマイグレーションはデータベースに適用されたままになる。結果としてコードとスキーマがズレ、「カラムが見つからない」「マイグレーション済みで再実行できない」といったエラーに直面する。composerでのパッケージ追加やnpmのビルド生成物、rmやmvで消した・移動したファイルも同様に対象外だ。
対策は、DBスキーマを変える操作やファイル削除系のコマンドを実行させる前に一段階止め、コード変更だけを先にレビューしてから実行させる運用にすることだ。巻き戻した直後は「git status」や「git diff」で実際にどのファイルが戻ったかを確認し、マイグレーション状態は別途確認コマンドで照合する癖をつけておくと、ズレに早く気づける。
チェックポイントはセッション単位の一時的な取り消しであり、Gitの代わりにはならない。コミットの粒度を細かく保つことが、rewindの限界を補う実務上の対応になる。