- Published on
Day 03 - Session, context window, resume/continue
- Authors

- Name
- Trần Mạnh Thắng
- @TranManhThang96
1. Mục tiêu bài học
- Hiểu
sessiontrong Claude Code là gì và vì sao session không giống một terminal command thông thường. - Phân biệt
context windowvới toàn bộ codebase trên disk. - Nhận biết khi context bị nhiễu: Claude trả lời lệch, quên constraint, nhầm file, hoặc lặp lại hướng cũ đã bị bác bỏ.
- Biết dùng
/helpđể kiểm tra command trong session, và dùng đúngclaude --continue,claude --resume,/resume,/clear,/compact. - Biết chia task lớn thành các phần nhỏ để Claude Code làm việc ổn định hơn.
- Tạo được summary context cho project
taskflow-aivà dùng summary đó để kiểm tra Claude còn hiểu project sau khi resume.
Thời lượng gợi ý: 2 tiếng.
- 20 phút: lý thuyết session và context window.
- 35 phút: cho Claude Code phân tích repo
taskflow-ai. - 35 phút: tạo summary context, compact, resume.
- 20 phút: kiểm tra hiểu biết của Claude bằng câu hỏi và diff nhỏ.
- 10 phút: ghi lại checklist và reflection.
2. Bối cảnh thực tế
Khi dùng Claude Code trên một feature dài, bạn thường bắt đầu bằng việc cho Claude đọc repo, giải thích architecture, lập plan, sửa code, chạy test, rồi review diff. Vấn đề là tất cả hoạt động đó tạo ra rất nhiều context: prompt, file đã đọc, command output, lỗi test, quyết định kỹ thuật, và cả những nhánh suy nghĩ đã bị loại bỏ.
Claude Code giúp bạn tiếp tục công việc qua nhiều lần mở terminal nhờ session được lưu lại. Bạn có thể resume conversation trước đó thay vì giải thích lại từ đầu. Nhưng nếu cứ nhồi mọi việc vào một session, Claude có thể bị nhiễu context: nhớ nhầm mục tiêu cũ, ưu tiên file không liên quan, hoặc giữ lại assumption đã sai.
Khi nên dùng session dài:
- Task có cùng mục tiêu, ví dụ thiết kế rồi implement API
tasks. - Claude cần giữ các quyết định đã thống nhất, ví dụ stack, naming convention, cấu trúc folder.
- Bạn đang debug một lỗi có nhiều bước thử và cần lịch sử điều tra.
Khi không nên dùng session dài:
- Chuyển sang task không liên quan, ví dụ từ backend CRUD sang viết nội dung marketing.
- Session đã chứa log dài, nhiều lỗi cũ, nhiều hướng bị bỏ.
- Bạn vừa đổi yêu cầu lớn, ví dụ bỏ Fastify để sang NestJS.
- Bạn chuẩn bị làm thao tác rủi ro như migration hoặc xóa file, cần context sạch và plan rõ.
3. Kiến thức nền
Session là gì
Session là một cuộc hội thoại làm việc giữa bạn và Claude Code trong một project. Claude Code lưu transcript cục bộ liên tục khi bạn làm việc, nên bạn có thể quay lại conversation trước bằng claude --continue, claude --resume, hoặc /resume.
Điểm quan trọng: session lưu lịch sử hội thoại, nhưng không thay thế Git. Nếu Claude sửa code sai, nguồn sự thật vẫn là working tree và diff của Git.
Context window là gì
Context window là vùng trí nhớ làm việc mà model có thể dùng tại một thời điểm. Nó bao gồm prompt của bạn, phản hồi của Claude, file đã đọc, output lệnh, plan, lỗi test, và các summary sau compact.
Context window không phải toàn bộ repo taskflow-ai. Nếu bạn hỏi về file Claude chưa đọc, Claude có thể suy luận đúng một phần, nhưng vẫn có rủi ro hallucination. Với repo thật, hãy yêu cầu Claude nói rõ file nào đã đọc và file nào chỉ đang suy đoán.
Context bị nhiễu là gì
Context bị nhiễu khi thông tin trong session làm Claude mất trọng tâm hoặc ưu tiên sai. Một số dấu hiệu:
- Claude nhắc lại requirement đã bị thay đổi.
- Claude sửa file ngoài phạm vi bạn yêu cầu.
- Claude đề xuất chạy lại lệnh đã chứng minh là sai.
- Claude quên constraint quan trọng như "không sửa README.md" hoặc "không đổi database schema".
- Claude trả lời tự tin nhưng không dẫn được file/path cụ thể.
- Claude trộn backend và frontend decision trong cùng một plan.
Nguyên nhân thường gặp:
- Task quá rộng: "build full app" thay vì "tạo route GET /tasks".
- Kết quả test/log quá dài được đưa vào context.
- Bạn hỏi nhiều câu ngoài lề trong cùng session.
- Claude đọc quá nhiều file không cần thiết.
- Session chứa nhiều lần đổi hướng kiến trúc.
Resume, continue, clear, compact
Các thao tác cần nhớ:
| Thao tác | Dùng khi nào | Ý nghĩa thực tế |
|---|---|---|
/help | Muốn kiểm tra command có sẵn trong Claude Code | Xem hướng dẫn ngay trong interactive session |
claude --continue | Muốn quay lại session gần nhất trong thư mục hiện tại | Resume nhanh conversation gần nhất |
claude --resume | Có nhiều session và muốn chọn | Mở session picker |
/resume | Đang ở trong Claude Code và muốn chuyển session | Chọn hoặc mở lại conversation trước |
/clear | Chuyển sang task không liên quan | Reset context làm việc để giảm nhiễu |
/compact [instructions] | Session dài nhưng vẫn cùng task | Thay history bằng summary có định hướng |
/compact không phải "xóa hết". Nó tóm tắt lịch sử để giải phóng context. Nếu không đưa instruction, summary có thể bỏ sót chi tiết bạn quan tâm. Vì vậy với task code, hãy nói rõ cần giữ lại: mục tiêu, file đã sửa, lệnh đã chạy, lỗi còn mở, quyết định kỹ thuật, và constraint.
Chia task nhỏ
Một task tốt cho Claude Code nên có:
- Mục tiêu hẹp: một endpoint, một component, một test suite.
- Phạm vi file dự kiến.
- Acceptance criteria rõ.
- Lệnh verify cụ thể.
- Quy tắc rollback hoặc dừng khi gặp rủi ro.
Ví dụ không tốt:
Hãy hoàn thiện toàn bộ taskflow-ai.
Ví dụ tốt:
Trong backend của taskflow-ai, hãy chỉ phân tích cấu trúc hiện tại và đề xuất plan để thêm GET /tasks.
Không sửa file. Hãy liệt kê file cần đọc, assumption, rủi ro, và lệnh test dự kiến.
4. Step-by-step thực hành
Bước 1: Mở project và kiểm tra trạng thái Git
Chạy trong terminal tại thư mục cha chứa project taskflow-ai.
cd taskflow-ai
Lệnh làm gì: chuyển terminal vào project xuyên suốt khóa học.
Kết quả kỳ vọng: terminal đang ở thư mục taskflow-ai. Nếu thư mục không tồn tại, bạn cần hoàn thành Day 02 hoặc tạo project trước khi học tiếp.
Rủi ro: nếu vào nhầm repo, Claude Code sẽ đọc và sửa nhầm codebase.
git status --short
Lệnh làm gì: xem working tree có file đang sửa không.
Kết quả kỳ vọng: có thể trống nếu repo sạch, hoặc hiện danh sách file đã thay đổi.
Rủi ro: nếu có thay đổi của người khác hoặc thay đổi bạn chưa hiểu, không yêu cầu Claude rollback. Hãy ghi lại trạng thái trước khi bắt đầu.
Bước 2: Mở session trong đúng repo
Chạy trong thư mục taskflow-ai.
claude
Lệnh làm gì: mở Claude Code interactive session trong đúng thư mục project.
Kết quả kỳ vọng: Claude Code mở interactive session trong terminal.
Rủi ro: nếu chạy ở sai thư mục, session sẽ gắn với context repo sai. Kiểm tra lại pwd hoặc đường dẫn terminal trước khi chạy.
Nếu CLI báo chưa đăng nhập hoặc thiếu quyền, dừng lại và xử lý setup từ Day 02 trước.
Trong Claude Code, nếu không chắc cú pháp command, nhập:
/help
Lệnh làm gì: xem danh sách command hiện có ngay trong interactive session.
Kết quả kỳ vọng: Claude Code hiển thị các command có thể dùng như resume, clear, compact tùy phiên bản CLI.
Rủi ro: không có rủi ro ghi file. Đây là cách kiểm tra lại cú pháp khi tài liệu hoặc CLI thay đổi.
Không chạy claude --permission-mode acceptEdits cho bài phân tích read-only này. Mode đó cho phép Claude tạo/sửa file và auto-approve các filesystem command phổ biến trong working directory; phù hợp hơn khi write scope đã rõ và sẽ học kỹ ở Day 04.
Bước 3: Cho Claude phân tích repo nhưng giới hạn phạm vi
Trong Claude Code, nhập prompt:
Bạn đang ở project taskflow-ai. Mục tiêu hôm nay là học session và context management, chưa implement feature mới.
Hãy phân tích repo ở mức tổng quan:
1. Xác định stack backend/frontend/test/devops hiện có.
2. Liệt kê 5-8 file hoặc folder quan trọng nhất và vì sao.
3. Chỉ rõ phần nào bạn đã đọc từ file thật, phần nào là suy luận.
4. Không sửa file.
5. Không chạy lệnh destructive.
Sau khi phân tích, hãy tạo một "project mental model" ngắn dưới 20 dòng.
Kết quả kỳ vọng:
- Claude đọc một số file như
package.json, folder backend/frontend, config test nếu có. - Claude trả lời có phân biệt "đã đọc" và "suy luận".
- Không có diff code.
Rủi ro:
- Prompt quá mở có thể khiến Claude đọc quá nhiều file.
- Nếu Claude muốn sửa code, nhắc lại "analysis only".
Bước 4: Yêu cầu tạo summary context thủ công
Trong cùng session, nhập:
Hãy tạo summary context cho session này để dùng sau khi resume.
Format bắt buộc:
- Goal hiện tại
- Repo mental model
- File/folder đã đọc
- Quyết định đã thống nhất
- Constraint an toàn
- Câu hỏi còn mở
- Lệnh verify đã/chưa chạy
Không thêm nội dung không chắc chắn. Nếu thiếu thông tin, ghi "chưa xác minh".
Kết quả kỳ vọng: một summary đủ ngắn để copy vào prompt sau này hoặc dùng làm instruction cho /compact.
Rủi ro: nếu summary chứa assumption sai, lần resume sau sẽ tiếp tục sai. Review summary như review code.
Bước 5: Compact có định hướng
Trong Claude Code, chạy:
/compact Giữ lại goal Day 03, mental model của taskflow-ai, file/folder đã đọc, constraint an toàn, câu hỏi còn mở, và lệnh verify. Bỏ các trao đổi ngoài lề.
Lệnh làm gì: thay history dài bằng summary tập trung vào phần cần giữ.
Chạy ở đâu: trong interactive prompt của Claude Code, không chạy ở shell bên ngoài.
Kết quả kỳ vọng: Claude Code compact session và tiếp tục conversation với context gọn hơn.
Rủi ro:
- Nếu instruction quá mơ hồ, compact có thể bỏ mất decision quan trọng.
- Nếu session đang chứa lỗi chưa debug xong, hãy yêu cầu giữ lại lỗi, command, và output ngắn.
Bước 6: Kiểm tra Claude còn hiểu project không
Sau compact, nhập:
Không đọc thêm file ngay. Dựa trên context hiện tại, hãy trả lời:
1. Project taskflow-ai đang dùng stack gì?
2. Những file/folder nào bạn đã thật sự đọc?
3. Những điểm nào bạn chưa xác minh?
4. Nếu task tiếp theo là thêm API list tasks, bạn cần đọc thêm file nào trước?
Kết quả kỳ vọng:
- Claude không bịa rằng đã đọc file chưa đọc.
- Claude nêu được giới hạn hiểu biết.
- Claude đề xuất bước đọc file tiếp theo hợp lý.
Rủi ro: nếu Claude trả lời quá tự tin nhưng thiếu file/path, context summary đang yếu. Hãy yêu cầu Claude tự kiểm tra bằng cách đọc file cụ thể.
Bước 7: Thoát và resume session
Thoát khỏi Claude Code theo cách bạn thường dùng trong terminal. Sau đó chạy trong thư mục taskflow-ai:
claude --continue
Lệnh làm gì: resume session gần nhất trong thư mục hiện tại.
Kết quả kỳ vọng: quay lại conversation Day 03 gần nhất.
Rủi ro: nếu bạn vừa mở session khác trong cùng repo, --continue có thể không phải session bạn muốn.
Nếu muốn chọn đúng session:
claude --resume
Lệnh làm gì: mở danh sách session để chọn.
Kết quả kỳ vọng: thấy session hoặc nội dung gần nhất liên quan đến Day 03.
Rủi ro: chọn nhầm session sẽ đưa context cũ vào task mới. Đọc vài dòng summary trước khi tiếp tục.
Bước 8: Dùng /clear khi đổi task
Trong Claude Code, nếu bạn muốn chuyển sang task khác không liên quan, nhập:
/clear
Lệnh làm gì: reset context làm việc để bắt đầu task mới sạch hơn.
Chạy ở đâu: trong Claude Code interactive prompt.
Kết quả kỳ vọng: conversation mới không còn bị kéo bởi history cũ.
Rủi ro: nếu dùng /clear khi chưa lưu summary, bạn mất lợi thế của context vừa xây. Trước khi clear, hãy yêu cầu Claude xuất summary ngắn nếu còn cần dùng lại.
Bước 9: Rollback khi Claude Code làm sai
Luôn kiểm tra diff trước khi giữ thay đổi:
git diff --stat
Lệnh làm gì: xem những file nào đã thay đổi và mức độ thay đổi.
Kết quả kỳ vọng: chỉ có file thuộc task hiện tại.
Rủi ro: nếu thấy file ngoài phạm vi, dừng lại review từng diff. Không rollback file của người khác trong repo dùng chung.
git diff
Lệnh làm gì: xem nội dung thay đổi chi tiết.
Kết quả kỳ vọng: diff khớp acceptance criteria.
Rủi ro: output dài có thể làm nhiễu context nếu paste toàn bộ vào Claude. Chỉ đưa phần liên quan hoặc yêu cầu Claude đọc file/diff cần thiết.
Nếu cần hủy thay đổi do chính bạn vừa tạo trong file cụ thể:
git restore path/to/file
Lệnh làm gì: đưa file về trạng thái Git hiện tại.
Rủi ro: mất thay đổi chưa commit trong file đó. Không chạy với file có thay đổi của người khác hoặc thay đổi bạn chưa kiểm tra.
5. Prompt mẫu nên dùng
Prompt khám phá codebase
Hãy phân tích repo taskflow-ai ở mức architecture. Trước khi kết luận, hãy liệt kê file/folder bạn cần đọc và lý do.
Chỉ đọc các file cần thiết cho mental model ban đầu. Không sửa file.
Khi trả lời, phân tách rõ "đã xác minh từ file" và "suy luận".
Prompt lập plan
Mục tiêu tiếp theo là thêm API list tasks, nhưng hiện tại chỉ lập plan.
Hãy dùng context hiện có, sau đó đề xuất:
1. File cần đọc thêm
2. Các bước implement nhỏ
3. Test cần có
4. Rủi ro context hoặc assumption
5. Điểm cần tôi xác nhận trước khi sửa code
Không chỉnh sửa file.
Prompt implement có giới hạn
Hãy implement bước nhỏ đầu tiên trong plan: chỉ thêm route GET /tasks ở backend.
Không sửa frontend, không đổi database schema, không thay đổi README.
Trước khi edit, nhắc lại file bạn sẽ sửa và acceptance criteria.
Sau khi edit, chạy đúng lệnh test liên quan và báo kết quả.
Prompt review context sau resume
Chúng ta vừa resume session. Trước khi làm tiếp, hãy kiểm tra hiểu biết hiện tại:
- Goal của session là gì?
- Những quyết định nào đã thống nhất?
- File nào đã đọc thật sự?
- Điều gì chưa xác minh?
Không đọc thêm file cho tới khi trả lời xong.
Prompt viết test
Dựa trên thay đổi hiện tại, hãy đề xuất test nhỏ nhất có ý nghĩa.
Chỉ viết test cho behavior đã implement, không mở rộng scope.
Nêu rõ lệnh chạy test, output kỳ vọng, và failure nào test này bắt được.
6. Trade-offs
Session dài giúp Claude giữ được mạch làm việc, nhưng cũng làm tăng rủi ro nhiễu context. Với taskflow-ai, một session dài phù hợp khi bạn đang theo một feature xuyên suốt như tasks CRUD. Nhưng nếu chuyển từ backend route sang UI design hoặc DevOps, nên dùng /clear hoặc session mới.
claude --continue rất nhanh, nhưng phụ thuộc vào session gần nhất trong thư mục hiện tại. Nếu đang làm nhiều nhánh song song, dùng claude --resume và kiểm tra nội dung summary/session trước khi tiếp tục sẽ an toàn hơn.
/compact tiết kiệm context và giúp session gọn hơn, nhưng summary là một dạng mất mát thông tin. Nếu summary bỏ sót lỗi test hoặc constraint bảo mật, Claude có thể đi sai. Với task quan trọng, tự review summary trước khi tiếp tục.
Chia task nhỏ tạo thêm overhead giao tiếp, nhưng giảm lỗi lớn. Senior workflow thường không tối ưu số prompt ít nhất; nó tối ưu khả năng kiểm soát diff, test, và rollback.
7. Best practices
- Ghi dấu mốc session bằng summary rõ ràng: ngày học, branch, goal, file đã đọc, constraint và next step.
- Dùng
/cleargiữa các task không liên quan. - Dùng
/compact <instructions>trước khi session quá dài, nhất là sau khi đã có plan hoặc sau một vòng debug dài. - Dùng
/helptrong session khi cần xác minh command thay vì dựa vào trí nhớ hoặc tài liệu cũ. - Yêu cầu Claude nói rõ file đã đọc thật và phần đang suy luận.
- Không paste log dài nguyên khối; đưa đoạn lỗi chính, lệnh đã chạy, và môi trường.
- Giữ secret, token, production credential ngoài prompt và ngoài file summary.
- Khi repo có nhiều người cùng sửa, luôn nói rõ ownership file trước khi Claude edit.
- Trước khi implement, yêu cầu Claude nhắc lại scope và file dự kiến sửa.
- Sau khi resume, luôn kiểm tra mental model trước khi cho Claude tiếp tục sửa code.
- Nếu team đặt
.claude/settings.jsonvớipermissions.defaultModelàauto, ghi rõ trong workflow và tránh dùng cho bài read-only nếu chưa có write scope.
8. Performance / cost / context
Context càng lớn thì Claude càng phải xử lý nhiều thông tin hơn. Hệ quả thường thấy là phản hồi chậm hơn, chi phí/tài nguyên cao hơn tùy gói sử dụng, và chất lượng suy luận có thể giảm nếu context chứa nhiều thông tin nhiễu.
Cách tối ưu:
- Bắt đầu task bằng scope hẹp và acceptance criteria rõ.
- Không yêu cầu Claude đọc toàn repo nếu chỉ cần sửa một module.
- Dùng summary context thay vì giữ toàn bộ log.
- Compact sau các mốc tự nhiên: sau khi map repo, sau khi thống nhất plan, sau khi fix xong một lỗi.
- Clear khi đổi chủ đề.
- Đưa command output ngắn: lỗi chính, stack trace liên quan, test name fail.
- Với rule bền vững của project, đưa vào tài liệu project như
CLAUDE.mdhoặc.claude/CLAUDE.mdở Day 05, không phụ thuộc vào trí nhớ session.
Mẫu compact instruction tốt:
/compact Giữ lại goal, quyết định kiến trúc, file đã sửa, file đã đọc, test đã chạy, lỗi còn mở, constraint bảo mật, và next step. Bỏ log dài và trao đổi ngoài lề.
9. Checklist cuối bài
- Tôi giải thích được session và context window khác nhau thế nào.
- Tôi biết khi nào dùng
claude --continuevà khi nào dùngclaude --resume. - Tôi đã mở session trong đúng thư mục
taskflow-ai. - Tôi đã yêu cầu Claude phân biệt thông tin đã đọc từ file và thông tin suy luận.
- Tôi đã tạo summary context cho
taskflow-ai. - Tôi đã thử
/compactvới instruction cụ thể. - Tôi đã resume session và kiểm tra Claude còn hiểu project không.
- Tôi biết dùng
/clearkhi đổi task không liên quan. - Tôi biết không paste secret hoặc log quá dài vào context.
- Tôi đã kiểm tra
git difftrước khi giữ thay đổi.
10. Bài tập
Bài tập cơ bản
Mở taskflow-ai, tạo một session mới, yêu cầu Claude phân tích repo ở mức tổng quan và xuất summary context dưới 20 dòng. Không cho Claude sửa file.
Bài tập nâng cao
Trong session vừa tạo, dùng /compact với instruction riêng của bạn. Sau đó hỏi Claude 5 câu kiểm tra mental model:
- Stack backend/frontend là gì?
- File/folder nào đã đọc?
- Điều gì chưa xác minh?
- Nếu thêm GET
/tasks, cần đọc file nào tiếp? - Constraint an toàn của session là gì?
Ghi lại câu trả lời nào đúng, câu nào cần kiểm chứng lại.
Bài tập áp dụng vào project cá nhân
Chọn một repo cá nhân hoặc repo công ty không chứa secret. Tạo session mới, yêu cầu Claude map architecture trong phạm vi read-only, tạo summary context, compact, resume, rồi kiểm tra Claude còn hiểu đúng repo không.
Không dùng repo có production credential, customer data, hoặc thông tin nội bộ nhạy cảm nếu bạn chưa được phép.
Tài liệu
Tóm tắt kiến thức
Session là cuộc hội thoại làm việc được Claude Code lưu cục bộ liên tục để bạn có thể quay lại sau. Với project taskflow-ai, session giúp giữ mạch phân tích repo, quyết định kỹ thuật, plan, test output, và các constraint đã thống nhất.
Context window là vùng thông tin model đang dùng để suy luận tại một thời điểm. Nó không phải toàn bộ repo. Claude chỉ hiểu chắc những gì đã đọc hoặc những gì bạn cung cấp rõ ràng. Khi context chứa quá nhiều file, log, hướng sai, hoặc câu hỏi ngoài lề, session dễ bị nhiễu.
Các command quan trọng:
claude: mở Claude Code trong thư mục project hiện tại./help: xem command hiện có ngay trong interactive session.claude --continue: tiếp tục session gần nhất trong thư mục hiện tại.claude --resume: mở session picker để chọn session./resume: resume hoặc chuyển session từ bên trong Claude Code./clear: reset context giữa các task không liên quan./compact [instructions]: thay history bằng summary, có thể kèm instruction để giữ đúng phần quan trọng.
Nguyên tắc chính: context là tài nguyên cần quản lý chủ động. Không để Claude Code kéo theo mọi thứ từ một ngày làm việc dài vào một task nhỏ.
Lưu ý về permission: bài Day 03 ưu tiên phân tích read-only bằng prompt và review thủ công. claude --permission-mode acceptEdits cho phép tạo/sửa file và auto-approve các filesystem command phổ biến trong working directory, nên chỉ dùng khi write scope đã rõ. Rule bền vững của project nên đặt trong CLAUDE.md hoặc .claude/CLAUDE.md, không trộn với summary tạm thời của session.
Sơ đồ tư duy hoặc luồng xử lý
Luồng làm việc khuyến nghị cho Day 03:
Vào taskflow-ai
|
v
git status --short
|
v
claude
|
v
/help nếu cần kiểm tra command
|
v
Prompt phân tích repo read-only
|
v
Tạo project mental model
|
v
Tạo summary context
|
v
/compact với instruction cụ thể
|
v
Hỏi lại để kiểm tra Claude còn hiểu project không
|
v
Thoát session
|
v
claude --continue hoặc claude --resume
|
v
Kiểm tra goal, file đã đọc, assumption, next step
Mental model cần giữ sau compact:
Goal hiện tại
Repo stack
Folder/file quan trọng
File đã đọc thật
Quyết định đã thống nhất
Constraint an toàn
Test/lệnh đã chạy
Lỗi hoặc câu hỏi còn mở
Next step nhỏ nhất
Bảng so sánh
| Khái niệm/lệnh | Mục đích | Khi dùng | Rủi ro nếu dùng sai |
|---|---|---|---|
| Session | Lưu mạch hội thoại và công việc | Làm một task có nhiều bước | Kéo theo quyết định cũ không còn đúng |
| Context window | Vùng thông tin model đang xử lý | Mọi lần Claude suy luận | Quá đầy hoặc nhiễu làm Claude quên constraint |
/help | Xem command hiện có | Khi không chắc cú pháp | Bỏ qua bước này dễ dùng nhầm command đã thay đổi |
claude --continue | Resume session gần nhất | Muốn quay lại nhanh | Có thể resume nhầm nếu vừa mở session khác |
claude --resume | Chọn session từ danh sách | Có nhiều session song song | Chọn nhầm session gây nhiễu task |
/clear | Reset context | Đổi sang task không liên quan | Mất mạch nếu chưa lưu summary |
/compact [instructions] | Tóm tắt history | Session dài nhưng vẫn cùng task | Summary thiếu chi tiết quan trọng |
claude --permission-mode acceptEdits | Cho phép edit và auto-approve common filesystem commands trong working directory | Khi task có write scope rõ | Dùng cho task read-only dễ tạo diff ngoài ý muốn |
| Tình huống | Nên làm | Không nên làm |
|---|---|---|
| Bắt đầu feature mới | Session mới hoặc /clear | Dùng tiếp session đã debug lỗi khác |
| Context dài nhưng cùng goal | /compact có instruction | Paste lại toàn bộ log cũ |
| Resume sau nghỉ giữa chừng | Hỏi Claude nhắc lại goal và assumption | Cho Claude sửa code ngay |
| Claude trả lời mơ hồ | Yêu cầu nêu file đã đọc và chưa đọc | Tin vào kết luận không có path cụ thể |
| Log test dài | Đưa lỗi chính và command | Paste toàn bộ output không lọc |
Lỗi thường gặp
Dùng
claude --continuetrong sai thư mục.- Hậu quả: Claude resume session của repo khác hoặc không tìm được session đúng.
- Cách tránh: kiểm tra
pwdhoặc tên thư mục trước khi chạy.
Không lưu dấu mốc session.
- Hậu quả: khó phân biệt nhiều conversation giống nhau khi resume.
- Cách tránh: tạo context summary ngắn có ngày học, branch, goal, file đã đọc và next step trước khi thoát.
Compact quá muộn.
- Hậu quả: Claude đã bị nhiễu bởi log dài và quyết định cũ.
- Cách tránh: compact sau mỗi mốc tự nhiên như map repo, chốt plan, fix xong lỗi.
Compact không có instruction.
- Hậu quả: summary có thể bỏ mất constraint quan trọng.
- Cách tránh: yêu cầu giữ goal, file, decision, test, lỗi còn mở, next step.
Nhầm
/clearvới rollback code.- Hậu quả: context sạch hơn nhưng file trên disk vẫn giữ thay đổi.
- Cách tránh: dùng Git để xem hoặc hủy diff khi cần.
Tin rằng Claude đã hiểu toàn repo.
- Hậu quả: Claude đưa plan dựa trên assumption.
- Cách tránh: bắt Claude nói rõ file nào đã đọc thật.
Đưa secret hoặc production data vào summary.
- Hậu quả: thông tin nhạy cảm nằm trong transcript/session.
- Cách tránh: redact secret, dùng sample value, không paste credential.
Bật
acceptEditscho bài chỉ cần phân tích.- Hậu quả: Claude có thể tạo/sửa file hoặc chạy filesystem command phổ biến mà bạn chưa review từng bước.
- Cách tránh: dùng session thường cho Day 03; chỉ dùng mode này khi đã có write scope và acceptance criteria rõ.
Cách debug
Khi Claude trả lời lệch mục tiêu:
Hãy dừng lại và tự audit context hiện tại:
1. Goal mới nhất là gì?
2. Constraint nào đang áp dụng?
3. File nào bạn đã đọc thật sự?
4. Bạn đang suy luận điểm nào mà chưa xác minh?
5. Có thông tin cũ nào có thể đang gây nhiễu không?
Không sửa file trong câu trả lời này.
Khi Claude quên constraint:
Constraint quan trọng: chỉ làm trong backend, không sửa frontend, không đổi schema, không sửa README.
Hãy nhắc lại constraint này, sau đó cập nhật plan với phạm vi file dự kiến.
Khi session quá dài:
/compact Giữ lại goal hiện tại, constraint an toàn, quyết định kỹ thuật, file đã sửa, file đã đọc, test đã chạy, lỗi còn mở, và next step. Bỏ log dài, trao đổi ngoài lề, và hướng đã bị loại bỏ.
Khi resume và chưa chắc Claude còn hiểu đúng:
Chúng ta vừa resume. Không đọc file mới ngay.
Hãy tóm tắt mental model hiện tại của taskflow-ai và đánh dấu từng ý là "đã xác minh" hoặc "chưa xác minh".
Khi cần kiểm tra file trên disk:
git status --short
Chạy ở đâu: trong thư mục taskflow-ai.
Lệnh làm gì: xem file nào đang thay đổi.
Kết quả kỳ vọng: danh sách ngắn các file modified/untracked hoặc trống nếu repo sạch.
Rủi ro: không có rủi ro ghi file, nhưng nếu bạn không hiểu file nào đang thay đổi thì không nên cho Claude rollback.
git diff --stat
Chạy ở đâu: trong thư mục taskflow-ai.
Lệnh làm gì: xem tổng quan số dòng thay đổi theo file.
Kết quả kỳ vọng: chỉ thấy file thuộc task hiện tại.
Rủi ro: không hiển thị đủ chi tiết logic; cần git diff để review sâu.
git diff
Chạy ở đâu: trong thư mục taskflow-ai.
Lệnh làm gì: xem nội dung thay đổi cụ thể.
Kết quả kỳ vọng: diff khớp scope và acceptance criteria.
Rủi ro: output dài; nếu đưa nguyên vào Claude có thể làm nhiễu context. Chọn đoạn liên quan.
Link tài liệu nên đọc
- Claude Code Sessions: https://code.claude.com/docs/en/sessions
- Claude Code Best practices: https://code.claude.com/docs/en/best-practices
- Claude Code Quickstart: https://code.claude.com/docs/en/quickstart
Đọc theo thứ tự:
- Quickstart để nắm cách mở Claude Code trong project và dùng
/help,/resume. - Sessions để hiểu resume, session picker và compact.
- Best practices để quản lý context bằng
/clear,/compact, summary thủ công, và kiểm tra lại command bằng/helpkhi cần.
Bài tập
Bài 1 — Cơ bản
Mục tiêu: tạo session riêng và yêu cầu Claude Code phân tích taskflow-ai ở chế độ read-only.
Thực hiện:
- Mở terminal ở thư mục chứa project
taskflow-ai. - Chạy:
cd taskflow-ai
Lệnh làm gì: vào project thực hành.
Kết quả kỳ vọng: terminal đang đứng trong thư mục taskflow-ai.
Rủi ro: nếu vào sai project, session và context sẽ sai.
- Chạy:
git status --short
Lệnh làm gì: kiểm tra working tree trước khi bắt đầu.
Kết quả kỳ vọng: repo sạch hoặc bạn biết rõ các file đang thay đổi.
Rủi ro: nếu có file lạ, không yêu cầu Claude sửa hoặc rollback trước khi hiểu nguồn gốc.
- Chạy:
claude
Lệnh làm gì: mở Claude Code interactive session trong đúng thư mục taskflow-ai.
Kết quả kỳ vọng: Claude Code interactive session mở trong terminal.
Rủi ro: nếu CLI chưa setup, quay lại Day 02.
Nếu không chắc command nào có sẵn trong Claude Code, nhập:
/help
Lệnh làm gì: xem danh sách command hiện có trong interactive session.
Kết quả kỳ vọng: bạn thấy các command liên quan như resume, clear, compact tùy phiên bản CLI.
Rủi ro: không có rủi ro ghi file.
- Nhập prompt:
Hãy phân tích repo taskflow-ai ở mức tổng quan để tạo mental model ban đầu.
Không sửa file, không chạy lệnh destructive.
Trả lời theo format:
- Stack đã xác minh
- Folder/file quan trọng đã đọc
- Điều đang suy luận nhưng chưa xác minh
- Rủi ro context nếu tiếp tục task lớn
- Summary dưới 20 dòng
Kết quả cần có: Claude nêu được stack/folder chính và phân biệt rõ phần đã đọc với phần chưa xác minh.
Bài 2 — Thực tế
Mục tiêu: tạo summary context đủ dùng để resume sau này.
Trong cùng session vừa mở, nhập:
Hãy tạo "Context Summary — Day 03" cho taskflow-ai.
Yêu cầu:
1. Tối đa 30 dòng.
2. Không chứa secret, token, credential, hoặc dữ liệu thật.
3. Gồm goal, repo mental model, file đã đọc, constraint, câu hỏi còn mở, và next step.
4. Đánh dấu rõ nội dung nào "đã xác minh" và nội dung nào "chưa xác minh".
Sau khi Claude trả lời, tự review summary:
- Có path cụ thể không?
- Có assumption nào cần sửa không?
- Có nhắc lại constraint read-only không?
- Có next step nhỏ và kiểm chứng được không?
Tùy chọn: nếu muốn lưu lại trong repo học tập cá nhân, yêu cầu Claude tạo file trong project của bạn, ví dụ docs/context-summary-day03.md. Trước khi cho tạo file, kiểm tra đây có phải repo cá nhân và không ảnh hưởng worker khác.
Kết quả cần có: một summary ngắn có thể dùng để khởi động lại context mà không cần paste toàn bộ transcript.
Không bật claude --permission-mode acceptEdits cho bài này nếu mục tiêu vẫn là read-only. Mode đó cho phép tạo/sửa file và auto-approve các filesystem command phổ biến trong working directory, nên chỉ phù hợp khi bạn đã chốt write scope.
Bài 3 — Nâng cao
Mục tiêu: thực hành compact, resume, và kiểm tra Claude còn hiểu đúng không.
- Trong Claude Code, chạy:
/compact Giữ lại goal Day 03, repo mental model của taskflow-ai, file đã đọc, phần chưa xác minh, constraint an toàn, lệnh đã chạy, và next step. Bỏ trao đổi ngoài lề.
Lệnh làm gì: compact session với instruction cụ thể.
Chạy ở đâu: trong Claude Code interactive prompt.
Kết quả kỳ vọng: session tiếp tục với context gọn hơn.
Rủi ro: summary sau compact có thể thiếu chi tiết; cần kiểm tra lại ngay.
- Ngay sau compact, nhập:
Không đọc thêm file. Hãy trả lời 6 câu:
1. Goal hiện tại là gì?
2. Stack nào đã xác minh?
3. File/folder nào đã đọc thật sự?
4. Điều gì chưa xác minh?
5. Constraint an toàn nào đang áp dụng?
6. Next step nhỏ nhất nếu muốn thêm GET /tasks là gì?
- Thoát Claude Code, vẫn đứng trong thư mục
taskflow-ai, rồi chạy:
claude --continue
Lệnh làm gì: resume session gần nhất trong thư mục taskflow-ai.
Kết quả kỳ vọng: mở lại đúng session vừa compact.
Rủi ro: nếu session gần nhất không phải session Day 03 vừa dùng, bạn có thể resume nhầm.
- Nếu nghi ngờ resume nhầm, chạy:
claude --resume
Lệnh làm gì: mở danh sách session để chọn đúng conversation.
Kết quả kỳ vọng: thấy session hoặc nội dung liên quan Day 03.
Rủi ro: chọn nhầm session sẽ làm task mới bị nhiễu bởi context cũ.
- Sau khi resume, nhập:
Chúng ta vừa resume. Hãy tự kiểm tra context:
- Bạn có chắc đây là session Day 03 không?
- Bạn nhớ goal và constraint nào?
- Bạn cần đọc lại file nào để xác minh trước khi implement?
Không sửa file.
Kết quả cần có: Claude nhận diện đúng goal, không bịa file đã đọc, và đề xuất bước xác minh hợp lý.
Bài 4 — Review & Reflection
Mục tiêu: rèn thói quen đánh giá context như đánh giá code.
Trả lời ngắn trong notes cá nhân:
- Context của session có bị nhiễu ở điểm nào không?
- Prompt nào làm Claude trả lời tốt nhất? Vì sao?
- Prompt nào quá rộng hoặc tạo output dài?
- Khi nào bạn sẽ dùng
/clearthay vì/compact? - Khi nào bạn sẽ dùng
claude --resumethay vìclaude --continue? - Nếu làm việc trong team, bạn sẽ ghi ownership file cho Claude như thế nào?
Sau đó yêu cầu Claude review chính session:
Hãy review workflow Day 03 của tôi như một senior engineer.
Tập trung vào rủi ro context, assumption chưa xác minh, command có thể nguy hiểm, và cách chia task.
Không khen chung chung. Hãy đưa finding cụ thể và cách sửa.
Kết quả cần có: ít nhất 3 finding cụ thể về cách bạn quản lý context.
Tiêu chí hoàn thành
- Tạo được session Claude Code trong đúng thư mục
taskflow-ai. - Biết kiểm tra repo trước khi mở Claude bằng
git status --short. - Có summary context cho
taskflow-aigồm goal, mental model, file đã đọc, constraint, câu hỏi còn mở. - Đã dùng
/compactvới instruction cụ thể. - Đã thử resume bằng
claude --continuehoặcclaude --resume. - Sau resume, kiểm tra được Claude còn hiểu đúng project hay không.
- Biết khi nào dùng
/clearcho task không liên quan. - Không đưa secret, production data, hoặc log quá dài vào context.
- Không để Claude sửa file khi bài tập chỉ yêu cầu phân tích read-only.
- Không dùng
acceptEditscho bài read-only nếu chưa có write scope rõ.
Gợi ý nếu bí
- Nếu Claude trả lời quá chung, yêu cầu: "Hãy dẫn path cụ thể và nói rõ đã đọc file nào".
- Nếu Claude muốn sửa code, nhắc lại: "Read-only. Không edit file trong bài này".
- Nếu không thấy session đúng khi resume, dùng
claude --resumethay vìclaude --continue. - Nếu summary quá dài, yêu cầu rút xuống 20-30 dòng và bỏ log chi tiết.
- Nếu Claude quên constraint sau compact, compact instruction của bạn chưa đủ rõ; hãy tạo summary thủ công trước.
- Nếu repo chưa có nhiều file vì Day 02 chưa hoàn thành, dùng chính cấu trúc hiện có và đánh dấu phần còn thiếu là "chưa xác minh".
- Nếu không chắc command slash nào đúng, dùng
/helptrong Claude Code trước khi thao tác.
Đáp án tham khảo hoặc kết quả kỳ vọng
Kết quả kỳ vọng cho summary context:
Context Summary — Day 03
- Goal: học session/context management trên taskflow-ai, chưa implement feature mới.
- Repo mental model: backend, frontend, test/devops nếu đã có; chi tiết nào chưa đọc thì đánh dấu chưa xác minh.
- File đã đọc: package/config/folder chính, kèm path cụ thể.
- Constraint: read-only trong bài Day 03; không sửa README; không chạy lệnh destructive; không đưa secret vào context.
- Đã xác minh: chỉ các điểm có file/path hoặc command output.
- Chưa xác minh: API routes, database schema, test setup nếu Claude chưa đọc file tương ứng.
- Lệnh đã chạy: git status --short; các command khác nếu có.
- Next step: trước khi thêm GET /tasks, đọc entrypoint backend, route registration, test setup, và data model hiện có.
Kết quả kỳ vọng sau /compact:
- Claude vẫn nhớ goal Day 03 là quản lý session/context, không phải implement feature.
- Claude nêu được file/folder đã đọc thật sự.
- Claude không khẳng định stack hoặc schema nếu chưa xác minh.
- Claude nhắc lại constraint an toàn.
- Claude đề xuất next step nhỏ, ví dụ đọc backend entrypoint trước khi lập plan API.
Kết quả kỳ vọng sau resume:
claude --continuemở lại session gần nhất nếu bạn không tạo session khác sau đó.claude --resumecho phép chọn đúng session nếu có nhiều session.- Claude trả lời được goal, constraint, điều đã xác minh, và điều cần xác minh tiếp.
Nếu kết quả không đạt, không cố implement tiếp. Hãy dùng /clear cho task mới hoặc tạo lại summary context ngắn, chính xác hơn.