# チェックポイントの例 Claude Code でチェックポイントを効果的に使うための実例集。 注意:チェックポイントはユーザー入力ごとに自動作成される。手動保存は不要である。巻き戻すには `Esc` を 2 回(`Esc+Esc`)押すか `/rewind` を使ってチェックポイントブラウザを開く。 ## 例 1: データベースマイグレーション ### シナリオ MySQL から PostgreSQL へ移行したいが、直接マイグレーションと段階的なデュアルライト方式の両方を試したい。 ### ワークフロー ``` User: Let's implement a direct migration from MySQL to PostgreSQL [Checkpoint A created automatically] Claude: I'll implement the direct migration... [Changes database driver, updates queries, modifies schema] User: Run the tests [Checkpoint B created automatically] Claude: Running tests... ❌ 15 tests failing - connection pool issues User: This approach has issues. Let's try the dual-write pattern instead. [User presses Esc+Esc, selects Checkpoint A, chooses "Restore code and conversation"] User: Now implement a dual-write pattern where we write to both databases Claude: I'll implement dual-write migration... [Implements dual-write layer, gradual migration strategy] User: Run the tests Claude: Running tests... ✅ All tests passing User: The dual-write approach is clearly safer. Let's commit this. ``` ## 例 2: パフォーマンス最適化 ### シナリオ 複数のパフォーマンス最適化戦略を試す。 ### ワークフロー ``` User: Let's optimize the API response time. Current: 450ms [Checkpoint "Baseline" created automatically] Claude: I'll add database query caching... [Implements Redis caching] User: Run performance tests Claude: Results: 280ms average response time (38% improvement) User: Let me try a different approach. [User presses Esc+Esc, selects "Baseline" checkpoint, chooses "Restore code and conversation"] User: Try database query optimization instead Claude: I'll optimize database queries... [Adds indexes, optimizes N+1 queries] User: Run performance tests Claude: Results: 180ms average response time (60% improvement) User: Let me also try a third approach. [User presses Esc+Esc, selects "Baseline" checkpoint, chooses "Restore code and conversation"] User: Try response compression and CDN Claude: I'll add compression and CDN... [Implements gzip, sets up CDN] User: Run performance tests Claude: Results: 320ms average response time (29% improvement) User: Query optimization was the best. Let me go back and combine it with caching. [User presses Esc+Esc, selects the checkpoint after query optimization, chooses "Restore code and conversation"] User: Now add Redis caching on top of these optimized queries Claude: [Adds Redis caching on top of optimized queries] User: Run performance tests Claude: Results: 95ms average response time (79% improvement) 🎉 User: Perfect! This is the winner. Let's commit this. ``` ## 例 3: UI/UX のイテレーション ### シナリオ ダッシュボードに複数のレイアウト案を試す。 ### ワークフロー ``` User: Let's redesign the dashboard with a sidebar layout [Checkpoint "Start" created automatically] Claude: [Implements sidebar layout] User: Show me a screenshot Claude: [Shows screenshot] User: The sidebar feels cramped. Let's try a top navigation instead. [User presses Esc+Esc, selects "Start" checkpoint, chooses "Restore code and conversation"] User: Try a top navigation layout Claude: [Implements top navigation] User: Show me a screenshot Claude: [Shows screenshot] User: Better, but let's try a card-based grid layout [User presses Esc+Esc, selects "Start" checkpoint, chooses "Restore code and conversation"] User: Try a card-based grid layout Claude: [Implements card grid] User: Show me a screenshot Claude: [Shows screenshot] User: This is great! But can we combine the top nav with the card grid? [User presses Esc+Esc, selects the checkpoint after the card grid, chooses "Restore code and conversation"] User: Add top navigation to the card grid layout Claude: [Adds top navigation to card grid] User: Perfect! This is the final design. ``` ## 例 4: デバッグセッション ### シナリオ 複数の仮説を立てながら厄介なバグを追う。 ### ワークフロー ``` User: There's a memory leak in the application [Checkpoint "Before debugging" created automatically] Claude: Let me investigate... [Analyzes code] User: I think it's in the event listeners. Let's fix those. Claude: [Fixes event listener cleanup] User: Run memory profiler Claude: Still leaking memory - event listeners weren't the issue User: Let me go back and try a different hypothesis. [User presses Esc+Esc, selects "Before debugging" checkpoint, chooses "Restore code and conversation"] User: Maybe it's the database connections? Claude: [Implements connection pooling fixes] User: Run memory profiler Claude: Still leaking - not the connections either User: Let me go back and try another angle. [User presses Esc+Esc, selects "Before debugging" checkpoint, chooses "Restore code and conversation"] User: Let's check for circular references Claude: [Finds and fixes circular references in cache] User: Run memory profiler Claude: ✅ Memory leak fixed! The circular references in the caching layer were the culprit. User: Excellent! Let's commit this fix. ``` ## 例 5: API 設計の進化 ### シナリオ 複数回のイテレーションで REST API を設計する。 ### ワークフロー ``` User: Create a REST API for our blog platform [Checkpoint "Before API design" created automatically] Claude: [Creates basic CRUD API] User: This is too simple. Let's add pagination and filtering Claude: [Adds pagination and filtering] User: We need better resource relationships Claude: [Implements HATEOAS links] User: Actually, let's try GraphQL instead of REST [User presses Esc+Esc, selects "Before API design" checkpoint, chooses "Restore code and conversation"] User: Implement a GraphQL API for our blog platform instead Claude: [Implements GraphQL API] User: I think REST is better for our use case. [User presses Esc+Esc, selects the checkpoint after HATEOAS, chooses "Restore code and conversation"] User: Let's finalize the REST approach. ``` ## 例 6: 設定管理 ### シナリオ 複数の設定方式を試す。 ### ワークフロー ``` User: Move configuration to environment variables [Checkpoint "Original config" created automatically] Claude: [Implements env var configuration] User: Test in development Claude: Works locally but deployment issues in production User: Let me try a different approach. [User presses Esc+Esc, selects "Original config" checkpoint, chooses "Restore code and conversation"] User: Try a config file approach with validation Claude: [Implements YAML config with JSON schema validation] User: Test in development Claude: ✅ Works well, good validation errors User: Can we also support env vars for sensitive values? Claude: [Adds env var override for secrets] User: Test deployment Claude: ✅ All environments working correctly User: Perfect! This is production-ready. ``` ## 例 7: テスト戦略 ### シナリオ 包括的なテストを実装する。 ### ワークフロー ``` User: Add unit tests for the auth module [Checkpoint created automatically] Claude: [Adds Jest unit tests] User: Run tests Claude: 45 tests passing, 78% coverage User: Add integration tests too Claude: [Adds integration tests] User: Run tests Claude: 89 tests passing, 92% coverage, but tests are slow (3 minutes) User: The tests are too slow. Let's optimize. Claude: [Optimizes test setup, adds parallel execution] User: Run tests Claude: 89 tests passing, 92% coverage, 35 seconds ✅ User: Great! Now add E2E tests for critical paths Claude: [Adds Playwright E2E tests] User: Run all tests Claude: 112 tests passing, 94% coverage, 2 minutes User: Perfect balance of coverage and speed! ``` ## 例 8: チェックポイントから要約する ### シナリオ 長いデバッグセッションの後、コンテキストを保ったまま会話を圧縮したい。 ### ワークフロー ``` User: [After 20+ messages of debugging and exploration] [User presses Esc+Esc, selects an early checkpoint, chooses "Summarize from here"] [Optionally provides instructions: "Focus on what we tried and what worked"] Claude: [Generates a summary of the conversation from that point forward] [Original messages are preserved in the transcript] [The summary replaces the visible conversation, reducing context window usage] User: Now let's continue with the approach that worked. ``` ## 重要なポイント 1. **チェックポイントは自動**: ユーザー入力ごとに作成されるため手動保存は不要 2. **`Esc+Esc` または `/rewind` を使う**: チェックポイントブラウザを開く 2 つの方法 3. **適切な復元オプションを選ぶ**: コードのみ、会話のみ、両方、要約のうち目的に合うものを選択 4. **試行錯誤を恐れない**: チェックポイントがあるため大胆な変更を安心して試せる 5. **git と組み合わせる**: 試行錯誤にはチェックポイント、確定したものには git を使う 6. **長いセッションは要約する**: 「Summarize from here」で会話量を扱いやすく保つ --- **最終更新**: 2026 年 4 月 9 日