TROISINH
Sử dụng thực chiếnSlash Commands & Workflow hàng ngày

Checkpoints & Rewind trong Claude Code: Thử nghiệm táo bạo, quay lại tức thì

Khám phá Checkpoints và Rewind trong Claude Code - cơ chế 'save state' giúp bạn thử nghiệm refactoring táo bạo, debug sâu mà không tốn token tái tạo ngữ cảnh.

Định nghĩa

Checkpoints trong Claude Code là cơ chế "đánh dấu" trạng thái hội thoại và ngữ cảnh codebase tại một thời điểm cụ thể, cho phép bạn dùng lệnh /rewind để quay ngược về trạng thái đó bất cứ lúc nào mà không cần trả chi phí token để tái tạo lại context. Đây là "cứu cánh" cho việc thử nghiệm refactoring táo bạo hoặc debug sâu mà không sợ làm hỏng tiến trình hiện tại.

Giải thích chi tiết

Checkpoints là "Save State" cho cả AI và Code

Khác với git commit (chỉ lưu trạng thái file), checkpoints lưu trạng thái của chính cuộc hội thoại AI — bao gồm context window đang có, các file đang được tham chiếu, và "mental model" mà Claude đã xây dựng về codebase của bạn. Khi tạo checkpoint, hệ thống snapshot toàn bộ trạng thái làm việc, từ lịch sử chat đến các biến môi trường tạm thời.

Điểm mấu chốt: checkpoint không chỉ lưu code mà còn lưu cách Claude hiểu code. Điều này quan trọng vì sau 20-30 lượt trao đổi, Claude đã "học" được rất nhiều về kiến trúc ngầm của dự án — việc rebuild lại sự hiểu biết này từ đầu rất tốn kém.

Economics của Context Window và Token

Context window (200K tokens) là tài nguyên đắt đỏ. Khi bạn thử nghiệm một giải pháp phức tạp và nó thất bại, nếu không có checkpoints, bạn phải trả token để "kể lại" cho Claude toàn bộ ngữ cảnh đã mất hoặc tái tạo các file đã sửa đổi.

/rewind cho phép bạn quay lại trạng thái trước khi thử nghiệm, tiết kiệm 100% chi phí token của việc tái tạo ngữ cảnh. Trong thực tế, một session debug phức tạp có thể ngốn 50K-100K tokens cho các thử nghiệm bất thành — checkpoints biến chi phí này thành zero.

Psychological Safety: Xóa bỏ nỗi sợ thử nghiệm

"The Checkpoints Safety Net" là insight quan trọng: nỗi sợ mắc lỗi làm chậm development hơn là việc viết code thực tế. Khi developer biết họ có thể /rewind ngay lập tức về trạng thái sạch, họ sẵn sàng thử những giải pháp táo bạo hơn — refactor architecture sâu, thử pattern mới, hoặc xóa code legacy mà không lo "đổ vỡ".

Đây là sự chuyển đổi từ "measure twice, cut once" sang "cut ten times, keep the best" — chỉ khả thi khi rollback không tốn chi phí.

Tích hợp với Git Workflow

Checkpoints hoạt động song song với git nhưng khác biệt quan trọng:

  • Thời điểm: Checkpoint có thể tạo giữa chừng khi code chưa hoàn thiện (chưa commit được), ngay cả khi syntax đang lỗi
  • Tốc độ: Rewind nhanh hơn cả git stashgit checkout vì không cần resolve conflict hoặc rebuild ngữ cảnh AI
  • Phạm vi: Git lưu file system, checkpoint lưu cả conversation state và AI context

Best practice là dùng checkpoints cho "experimental branches" ngay cả khi bạn đang ở branch chính, để thử nghiệm nhanh mà không làm pollute git history với các commit "WIP: thử cách này xem sao".

Ví dụ thực tế

Refactoring Component Thanh Toán Táo Bạo

Bạn đang refactor component xử lý VietQR trong app ngân hàng số Việt Nam — 500 dòng logic kiểm tra mã QR, chuyển đổi từ class component sang hooks pattern phức tạp. Trước khi bắt đầu, bạn tạo checkpoint: /checkpoint Trước khi tách hooks VietQR.

Sau 30 phút thử nghiệm, bạn nhận ra hướng tiếp cận này tạo ra quá nhiều re-render và prop drilling phức tạp. Thay vì ngồi git reset --hard và mất 15 phút giải thích lại cho Claude tại sao bỏ cách làm cũ, bạn gõ /rewind — instant back to clean state. Claude vẫn nhớ rõ yêu cầu ban đầu, và bạn thử ngay hướng tiếp cận thứ hai (compound components pattern) với ngữ cảnh còn nguyên vẹn.

Debug "Rabbit Hole" An Toàn Trong Hệ Thống Giao Hàng

Bạn đang debug race condition trong hệ thống đặt xe Grab/Gojek — khi tài xế và khách hàng cùng cập nhật trạng thái chuyến đi đồng thời. Claude đề xuất thêm logging, đổi từ Promises sang async/await, thử nhiều cách fix khác nhau. Sau 20 lượt trao đổi (ngốn 80K tokens), bạn nhận ra hướng đi sai hoàn toàn — nhưng đã quá nhiều thay đổi trong code và context window đầy dữ liệu rác từ các thử nghiệm thất bại.

Với checkpoint được tạo trước khi bắt đầu debug (/checkpoint Trước khi đụng vào async flow), bạn /rewind và "teleport" về thời điểm trước khi debug, bắt đầu lại với cách tiếp cận khác (synchronous processing với queue) mà không mất 80K tokens để rebuild context hoặc phải git checkout mất hết công sửa code đúng ở những chỗ khác.

So Sánh 3 Kiến Trúc API Cho Logistics Việt Nam

Khi thiết kế API cho hệ thống giao hàng Viettel Post/Giao Hàng Nhanh, bạn muốn thử cả 3 pattern: REST truyền thống cho đối tác B2B, GraphQL cho app khách hàng tra cứu đơn hàng, và gRPC cho internal communication giữa các trung tâm phân loại. Thay vì tạo 3 branch git phức tạp, bạn tạo checkpoint ban đầu (/checkpoint Baseline API), sau đó:

  1. Thử implement REST cho đối tác doanh nghiệp, đánh giá latency với hệ thống kho legacy
  2. /rewind về baseline, thử GraphQL cho mobile app khách hàng, đánh giá over-fetching
  3. /rewind về baseline, thử gRPC cho communication nội bộ giữa các hub
  4. Cuối cùng /rewind về baseline và implement giải pháp hybrid tốt nhất dựa trên kiến thức đã thu thập từ cả 3 thử nghiệm

Tổng chi phí token chỉ bằng baseline + 3 experiments, thay vì phải tái tạo baseline 3 lần nếu không dùng checkpoint.

Ứng dụng

Developer đang refactor legacy code tại FPT Software hoặc KMS: Dùng checkpoints trước mỗi "slice" trong Strangler Fig pattern để thử nhiều cách wrap legacy API của khách hàng Nhật Bản khác nhau. Nếu một anti-corruption layer không hoạt động với hệ thống COBOL cũ, rewind và thử pattern adapter khác ngay lập tức.

Senior Dev tại Tiki hoặc Sendo dạy Junior: Tạo checkpoint trước khi demo anti-pattern trong hệ thống recommendation engine để chỉnh sửa ngay lập tức sau khi demo xong, hoặc để junior tự thử sửa code rồi rewind nếu lỗi mà không lo "phá" repo đang chạy flash sale.

Freelancer chuyển đổi giữa nhiều client: Checkpoints giúp chuyển đổi nhanh giữa các context dự án khác nhau (từ app fintech Momo sang ZaloPay, hoặc từ e-commerce sang edtech) mà không cần reload toàn bộ CLAUDE.md từ đầu. Tạo checkpoint "End of Client A session", chuyển sang Client B, cuối ngày rewind về Client A để tiếp tục với ngữ cảnh còn nguyên vẹn.

AI-assisted Architecture Review cho startup Việt Nam: Tạo checkpoint trước khi hỏi Claude về các giải pháp thay thế cho hệ thống microservices. Sau khi xem xong option A (Kafka), rewind và hỏi option B (RabbitMQ) với cùng baseline — đảm bảo so sánh công bằng không bị bias từ các suggestion trước đó.

So sánh

Tính năngCheckpointsGit CommitGit StashAuto-save IDE
Thời điểm tạoGiữa chừng conversationKhi code sạch, tests passKhi cần switch nhanhRealtime liên tục
Nội dung lưuContext AI + Code + Trạng thái mental modelCode only (snapshot filesystem)Code only (diff)File changes only
Chi phí rollback0 token0 (git checkout)0 (stash pop)Không rollback được
Tốc độ phục hồiInstant (dưới 1 giây)Cần checkout + rebuild context AICần resolve conflictN/A
Use case chínhThử nghiệm AI an toàn, A/B test ý tưởngLưu trữ lâu dài, chia sẻ teamSwitch branch tạm thờiCrash recovery

Kết luận: Checkpoints không thay thế git — chúng bổ sung cho git bằng cách lưu trạng thái "nửa chừng" mà git không thể lưu (ví dụ: code đang lỗi syntax nhưng bạn muốn thử một hướng refactor khác). Hãy nghĩ checkpoints là "RAM" cho session làm việc, còn git là "ổ cứng" cho lưu trữ lâu dài.

Bài viết liên quan

Cùng cụm daily-workflow:

Đọc tiếp:

On this page