* docs: sync to Claude Code v2.1.245 Sync the tutorial, its four translations, and both learner-facing skills against Claude Code v2.1.245 (was anchored at v2.1.235). The graded material turned out to be staler than the tutorials it grades. The lesson READMEs already said "31 hook events", "six rewind options" and "six permission modes"; the quiz and self-assessment still said 25, 5 and 5, so learners were scored against a wrong answer and then sent to a lesson that contradicted it. Seven such claims are fixed here. Two long-standing doc defects were also verified against official docs: - Hook default timeout was documented as 60 seconds. It is 600 for command/http/mcp_tool (30 for prompt, 60 for agent), with per-event overrides. Wrong in five places. - Skill precedence was documented as enterprise > project > personal. The official order is enterprise > personal > project. question-bank.md Lesson 03 Q9 already graded the correct order, so the lesson had been contradicting its own quiz. Fixed - Hook default timeout 60s -> 600s, with per-event overrides - Skill precedence: project and personal were swapped - Memory "overrides root CLAUDE.md" -> concatenation model (last holdouts after the quiz was aligned in #164) - permissionMode frontmatter omitted `auto` (English + vi/ja/uk); the quiz was right and the docs were wrong - Built-in subagent `Bash` no longer exists upstream -> renamed to `claude` - `/undo` is absent from the official commands reference -> marked deprecated - `backgroundTasks` settings block was fabricated -> replaced with CLAUDE_CODE_DISABLE_BACKGROUND_TASKS and the concurrency env var - Plugin manifest field is `lspServers`, not inline `lsp` - vi/05-mcp documented `claude mcp add --transport ws`, which upstream explicitly does not support - Self-assessment could never reach its own maximum score: rounds cap at 4+4+4+3+4 = 19, not 20 - 13 dangling quiz `Review:` pointers, two of which named another lesson - Skill description cap: 1024 chars -> 1,536 combined with `when_to_use` Added - WebSocket (`ws`) MCP transport, undocumented until now - Concise output style (v2.1.237), a fifth built-in - modelPicker, promptCacheTtl, subagentPromptCacheTtl, modelPricing, keybindingFlavor settings - ANTHROPIC_DEFAULT_MODEL env var - Hook `async`, `asyncRewake`, `shell`, `statusMessage`, `retry` keys; `agent` type marked experimental - /design canvas, Remote Control out of research preview, notify_when_idle, plugin manifest fields (workflows, channels, dependencies, outputStyles) Deferred deliberately: the reserved `synced` skills folder, and a bulk footer stamp across the translations. zh/ carries none of the P0 claims (it is abridged upstream of this run), so it has no P0 sub-tasks rather than fabricated English. Mermaid validation did not run in this environment (mmdc absent); CI covers it. * fix(docs): propagate v2.1.245 corrections to CATALOG, translations, and stale enumerations * fix(docs): propagate built-in subagent rename to uk/vi/zh CATALOG and zh lesson
チェックポイントと巻き戻し
チェックポイントは、Claude Code セッションの会話状態を保存し、過去の地点へ巻き戻すための機能である。複数のアプローチを比較したい場合、ミスから復旧したい場合、代替案を見比べたい場合に大きな威力を発揮する。
概観
チェックポイントを使うと、会話状態を保存して過去の地点に戻れるため、安全に試行錯誤と複数アプローチの探索ができる。チェックポイントは会話状態のスナップショットであり、以下を含む:
- やり取りされた全メッセージ
- 加えられたファイル変更
- ツール使用履歴
- セッションコンテキスト
別アプローチの試行、ミスからの復旧、代替案の比較といった場面で威力を発揮する。
主要な概念
| 概念 | 説明 |
|---|---|
| Checkpoint(チェックポイント) | メッセージ・ファイル・コンテキストを含む会話状態のスナップショット |
| Rewind(巻き戻し) | 過去のチェックポイントへ戻り、それ以降の変更を破棄する操作 |
| Branch Point(分岐点) | 複数のアプローチを試すための起点となるチェックポイント |
チェックポイントへのアクセス
チェックポイントへアクセス・管理する主な方法は 2 つある。
キーボードショートカット
Esc キーを 2 回(Esc + Esc)押すと、チェックポイントインターフェイスが開き、保存済みチェックポイントを参照できる。
スラッシュコマンド
すばやくアクセスしたい場合は /rewind コマンド(エイリアス:/checkpoint)を使う:
# 巻き戻しインターフェイスを開く
/rewind
# またはエイリアスを利用
/checkpoint
巻き戻しオプション
巻き戻しを実行すると、6 つのオプションメニューが表示される:
- Restore code and conversation -- 指定したチェックポイントの状態にファイルとメッセージの両方を戻す
- Restore conversation -- メッセージのみ巻き戻し、現在のコードはそのまま残す
- Restore code -- ファイル変更のみ戻し、会話履歴は完全に維持する
- Summarize from here -- そこ以降の会話を AI 生成のサマリに圧縮し、コンテキストウィンドウを解放する。選択点より前のメッセージはそのまま残る。ディスク上のファイルは変更されない。元のメッセージはセッショントランスクリプトに保存される。サマリを特定のトピックに絞るための指示を任意で与えられる。
- Summarize up to here -- 逆方向の対応物。選択点より 前 のすべてを AI 生成のサマリに圧縮し、そこ以降のメッセージはそのまま残す。「Summarize from here」と合わせて、コンテキストウィンドウを双方向かつ狙った範囲で圧縮できる。ディスク上のファイルは変更されず、元のメッセージはセッショントランスクリプトに保存される。
- Never mind -- 操作をキャンセルし、現在の状態に戻る
注意: 会話を復元または要約した後、選択したメッセージの元のプロンプトが入力欄に復元され、再送信や編集ができる状態になる。
自動チェックポイント
Claude Code は自動でチェックポイントを作成する:
- ユーザーの入力ごと - 入力のたびに新しいチェックポイントが生成される
- セッション間で保持 - 別セッションを跨いでもチェックポイントは残る
- 自動クリーンアップ - 30 日経過したチェックポイントは自動削除される
これにより、数分前から数日前まで、会話のどの時点へも巻き戻せる。
ユースケース
| シナリオ | ワークフロー |
|---|---|
| アプローチの探索 | 保存 → 案 A を試す → 保存 → 巻き戻し → 案 B を試す → 比較 |
| 安全なリファクタリング | 保存 → リファクタリング → テスト → 失敗なら巻き戻し |
| A/B テスト | 保存 → 設計 A → 保存 → 巻き戻し → 設計 B → 比較 |
| ミスからの復旧 | 問題に気づく → 直前の良好な状態へ巻き戻し |
チェックポイントの利用
一覧表示と巻き戻し
Esc を 2 回押すか /rewind を実行するとチェックポイントブラウザが開く。タイムスタンプ付きの一覧から好きなチェックポイントを選ぶと、その状態に巻き戻る。
チェックポイントの詳細
各チェックポイントには以下が表示される:
- 作成時のタイムスタンプ
- 変更されたファイル
- 会話内のメッセージ数
- 使用されたツール
実用例
例 1: 別アプローチを試す
User: Let's add a caching layer to the API
Claude: I'll add Redis caching to your API endpoints...
[Makes changes at checkpoint A]
User: Actually, let's try in-memory caching instead
Claude: I'll rewind to explore a different approach...
[User presses Esc+Esc and rewinds to checkpoint A]
[Implements in-memory caching at checkpoint B]
User: Now I can compare both approaches
例 2: ミスからの復旧
User: Refactor the authentication module to use JWT
Claude: I'll refactor the authentication module...
[Makes extensive changes]
User: Wait, that broke the OAuth integration. Let's go back.
Claude: I'll help you rewind to before the refactoring...
[User presses Esc+Esc and selects the checkpoint before the refactor]
User: Let's try a more conservative approach this time
例 3: 安全な試行錯誤
User: Let's try rewriting this in a functional style
[Creates checkpoint before experiment]
Claude: [Makes experimental changes]
User: The tests are failing. Let's rewind.
[User presses Esc+Esc and rewinds to the checkpoint]
Claude: I've rewound the changes. Let's try a different approach.
例 4: アプローチの分岐
User: I want to compare two database designs
[Takes note of checkpoint - call it "Start"]
Claude: I'll create the first design...
[Implements Schema A]
User: Now let me go back and try the second approach
[User presses Esc+Esc and rewinds to "Start"]
Claude: Now I'll implement Schema B...
[Implements Schema B]
User: Great! Now I have both schemas to choose from
チェックポイントの保持期間
Claude Code はチェックポイントを自動管理する:
- ユーザー入力ごとにチェックポイントが自動作成される
- 古いチェックポイントは最大 30 日まで保持される
- ストレージが無限に増えないよう自動でクリーンアップされる
ワークフローパターン
探索のための分岐戦略
複数アプローチを試すとき:
1. 初期実装 → チェックポイント A
2. アプローチ 1 を試す → チェックポイント B
3. チェックポイント A に巻き戻し
4. アプローチ 2 を試す → チェックポイント C
5. B と C の結果を比較
6. 最良案を選んで継続
安全なリファクタリングのパターン
大きな変更を加えるとき:
1. 現状 → チェックポイント(自動)
2. リファクタリング開始
3. テスト実行
4. 成功 → 続行
5. 失敗 → 巻き戻して別案を試す
ベストプラクティス
チェックポイントは自動作成されるため、状態保存を意識せず作業に集中できる。ただし以下のポイントは押さえておくとよい。
チェックポイントを効果的に使う
✅ やる:
- 巻き戻し前に利用可能なチェックポイントを確認する
- 別方向を試したいときに巻き戻しを使う
- 複数アプローチの比較用にチェックポイントを残す
- 各巻き戻しオプション(コードと会話の復元、会話のみ復元、コードのみ復元、要約)の挙動を理解する
❌ やらない:
- コード保全をチェックポイントだけに頼る
- ファイルシステムへの外部変更まで追跡されると思い込む
- git コミットの代わりにチェックポイントを使う
設定
チェックポイントは Claude Code の組み込み機能で、有効化のための設定は不要である。ユーザー入力のたびにチェックポイントが自動生成される。
チェックポイントの挙動は 2 つの設定で制御する。スナップショットを取得するかどうかと、どれだけ保持するかである:
{
"fileCheckpointingEnabled": true,
"cleanupPeriodDays": 30
}
| 設定 | デフォルト | 効果 |
|---|---|---|
fileCheckpointingEnabled |
true |
各編集の前にファイルをスナップショットし、/rewind で復元できるようにする。v2.1.119 以降が必要。/config では Rewind code (checkpoints) として表示される。環境変数での同等指定は CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING |
cleanupPeriodDays |
30 |
セッション履歴とチェックポイントの保持日数 |
Claude Code がスナップショットを保持するのは 直近 100 件のチェックポイント までで、それより古いものは保持期間内であっても削除される。
v2.1.117 のアップデート:
cleanupPeriodDaysがチェックポイントだけでなく、ディスク上の 4 種類のキャッシュの保持期間を統合的に制御するようになった:
- セッションチェックポイント
~/.claude/tasks/— 永続的なタスクリスト~/.claude/shell-snapshots/— 取得済みのシェル環境スナップショット~/.claude/backups/— 設定ファイル / CLAUDE.md の循環バックアップ1 つの設定で 4 つのディレクトリが同じ日数で一律に整理される。
制限事項
チェックポイントには次の制限がある:
- bash コマンドによる変更は追跡されない -
rm、mv、cpなどのファイルシステム操作はチェックポイントに含まれない - 外部の変更は追跡されない - エディタやターミナルなど Claude Code の外で行った変更は捕捉されない
- バージョン管理の代わりにはならない - 永続的で監査可能な変更には git を使う
トラブルシューティング
チェックポイントが見つからない
問題: 期待したチェックポイントが存在しない
対処法:
- チェックポイントが消去されていないか確認する
- ディスク容量を確認する
cleanupPeriodDaysを十分大きくする(デフォルト: 30 日)
巻き戻しに失敗する
問題: チェックポイントへ巻き戻せない
対処法:
- 未コミットの変更が衝突していないか確認する
- チェックポイントが破損していないか確認する
- 別のチェックポイントへ戻すことを試す
Git との連携
チェックポイントは git を補完するが、置き換えるものではない:
| 項目 | Git | チェックポイント |
|---|---|---|
| 範囲 | ファイルシステム | 会話 + ファイル |
| 永続性 | 永続的 | セッション単位 |
| 粒度 | コミット単位 | 任意の地点 |
| 速度 | 比較的遅い | 即時 |
| 共有 | 可 | 限定的 |
両者を組み合わせて使う:
- 試行錯誤にはチェックポイントを使う
- 確定した変更には git コミットを使う
- git 操作の前にチェックポイントを作成する
- 良好なチェックポイントの状態を git にコミットする
クイックスタートガイド
基本ワークフロー
- 普通に作業する - Claude Code が自動でチェックポイントを作成
- 戻りたくなったら -
Escを 2 回押すか/rewindを使う - チェックポイントを選ぶ - リストから巻き戻し先を選択
- 復元対象を選ぶ - コードと会話、会話のみ、コードのみ、ここから要約、ここまで要約、キャンセルから選択
- 作業を続ける - 選んだ時点に戻った状態で再開
キーボードショートカット
Esc+Esc- チェックポイントブラウザを開く/rewind- チェックポイントへの別アクセス手段/checkpoint-/rewindのエイリアス
いつ巻き戻すかを知る:コンテキスト監視
チェックポイントで戻ることはできるが、いつ戻るべきかをどう判断するか。会話が長くなるにつれて Claude のコンテキストウィンドウは消費され、モデル品質は静かに劣化する。気づかないうちに半盲状態のモデルからコードを受け取っているかもしれない。
cc-context-stats は、Claude Code のステータスバーにリアルタイムの コンテキストゾーン を追加してこの問題を解決する。コンテキストウィンドウのどの位置にいるかを追跡し、Plan(緑、計画とコーディングが安全)から Code(黄、新しい計画は始めない)、Dump(橙、まとめて巻き戻す)まで段階表示する。ゾーンが切り替わったら、劣化した出力で押し切らずチェックポイントから新しく始めるべきタイミングだとわかる。
関連概念
- 高度な機能 - プランニングモードやその他の高度な機能
- メモリ管理 - 会話履歴とコンテキストの管理
- スラッシュコマンド - ユーザーが起動するショートカット
- フック - イベント駆動の自動化
- プラグイン - バンドルされた拡張パッケージ
追加リソース
- チェックポイント公式ドキュメント
- 高度な機能ガイド - 拡張思考などの機能
まとめ
チェックポイントは Claude Code の自動機能で、作業を失う恐れなく安全にさまざまなアプローチを試せる。ユーザー入力のたびに新しいチェックポイントが作られるため、セッションのどの時点へも戻れる。
主な利点:
- 複数アプローチを恐れずに試せる
- ミスからすばやく復旧できる
- 異なる解決案を並べて比較できる
- バージョン管理と安全に組み合わせられる
注意:チェックポイントは git の代わりにはならない。試行錯誤にはチェックポイント、永続的なコード変更には git を使う。
最終更新: 2026 年 8 月 25 日 Claude Code バージョン: 2.1.245 出典:
- https://code.claude.com/docs/en/checkpointing
- https://code.claude.com/docs/en/settings
- https://github.com/anthropics/claude-code/releases/tag/v2.1.117 対応モデル: Claude Sonnet 4.6、Claude Opus 4.7、Claude Haiku 4.5