Luôn cung cấp cho Claude một phương thức để tự xác minh kết quả công việc của chính nó thông qua Feedback Loop (chu trình tự sửa lỗi), dù là các bài test, một bản build, hay screenshot diff. Một session tự kiểm tra công việc và tự sửa các sai sót của mình trước khi kỹ sư nhìn thấy chúng.
AI-Native: In-session Feedback Loop
Session được cấp một phương thức để tự kiểm tra công việc của mình trước khi con người nhìn thấy: chạy test, chạy build, chụp screenshot. Claude lặp lại cho đến khi kiểm tra vượt qua (pass), nhờ đó những gì đến tay kỹ sư đều đã vượt qua bước kiểm tra này. Việc thiết lập Feedback Loop (chu trình tự sửa lỗi) này thuộc về kỹ sư điều phối session, và các bước dưới đây được viết cho họ.
Traditional: Late Signal Bottleneck
Tín hiệu xác nhận code hoạt động đến rất trễ: CI mất vài phút, tester mất vài ngày, production mất vài tuần. Khi agent tạo ra code, tín hiệu trễ đồng nghĩa một người phải kiểm tra toàn bộ kết quả của nó, và người đó trở thành điểm nghẽn (bottleneck).
Nguyên tắc cốt lõi
Không chấp nhận xác nhận "đã sửa xong" từ Claude nếu thiếu terminal log nguyên văn chứng minh tất cả bài test đã pass (green).
2. Sơ đồ luồng: Feedback Loop trong Stage 4
Feedback Loop (chu trình tự sửa lỗi) với TDD failing test first, Test Guard Hook và visual feedback loop:
Hạ tầng test/build: Một test suite và một bản build chạy local bằng 1 lệnh cho mỗi loại (vd: make test, npm test).
Hạ tầng UI: Đối với công việc UI, phương thức để Claude nhìn thấy kết quả là tối quan trọng, hoặc là browser tool hoặc là tiện ích screenshot được kết nối qua MCP.
4. Các bước thực thi: 7 bước thiết lập
7 bước chuẩn hóa thiết lập Feedback Loop (chu trình tự sửa lỗi) cho session:
1
Đóng gói lệnh kiểm tra đơn lẻ (Single Target)
Nếu việc kiểm tra công việc hiện tại đòi hỏi một chuỗi lệnh và một số hiểu biết về môi trường, hãy đóng gói nó vào một target duy nhất như make test hoặc npm test với quy ước thoát exit code khác 0 khi thất bại (exits non-zero on failure).
toolchainexit non-zero
2
Khai báo Healthy Output trong CLAUDE.md
Trong mục Commands của CLAUDE.md, liệt kê từng lệnh kèm theo một ví dụ về output thành công (healthy output sample).
CLAUDE.mdsample output
3
Thiết lập mục tiêu định lượng (Quantifiable Target)
Nêu rõ mục tiêu và làm cho nó có thể định lượng được để Claude tự kiểm tra công việc mà không cần hỏi bạn, ví dụ: "Tất cả bài test trong test_status.py đều pass", "Ảnh screenshot khớp với bản mock đính kèm", hoặc "Endpoint trả về mã 200 kèm trường dữ liệu mới".
targetquantifiable
4
Áp dụng TDD: Viết failing test first
Đối với việc sửa lỗi (bug fixes), hãy viết failing test trước. Yêu cầu Claude tái hiện lỗi dưới dạng một bài test, chạy nó và xác nhận nó fail vì đúng lý do bạn mong đợi. Commit bài test đó. Chỉ sau đó mới yêu cầu Claude sửa code để bài test pass mà không được chỉnh sửa bài test, với hook chặn sửa file test từ bước cuối cùng thực thi hạn chế này. Một test có trước khi fix lỗi mà agent không sửa được chính là bằng chứng xác thực lỗi đã được giải quyết.
TDDfailing test first
5
Khép kín Feedback Loop bằng visual check cho giao diện UI
Đối với công việc UI, hãy khép kín Feedback Loop (chu trình tự sửa lỗi) bằng một bước kiểm tra trực quan (visual check). Cung cấp cho Claude một browser tool hoặc screenshot tool, đưa cho nó bản mock và để nó lặp lại (iterate): Triển khai → Chụp screenshot → So sánh → Căn chỉnh. Hai hoặc ba vòng lặp là bình thường, và kết quả sẽ cải thiện sau mỗi vòng.
UI/UXscreenshot diff
6
Đưa việc xác minh vào định nghĩa hoàn thành (Definition of Done)
Chỉ dẫn này nằm trong CLAUDE.md: "Run the tests before reporting a task complete, and show the output" (Chạy các bài test trước khi báo cáo hoàn thành một task, và dán kèm output nguyên văn).
contractdefinition of done
7
Bảo vệ Feedback Loop bằng Test Guard Hook
Cuối cùng, bản thân Feedback Loop (chu trình tự sửa lỗi) cần được bảo vệ, bởi vì một agent đang sửa code tuyệt đối không được phép làm suy yếu bài kiểm tra trên đoạn code đó. Một hook chặn thao tác chỉnh sửa các file test trong suốt task fix bug sẽ làm điều này — triển khai dưới dạng PreToolUse interceptor (chốt chặn kiểm soát lệnh trước khi thực thi). Giải pháp thay thế là kiểm tra diff trong quá trình review và từ chối bất kỳ thay đổi nào chạm vào test.
HooksPreToolUse interceptor
5. Cấu hình mẫu trong CLAUDE.md
Mẫu cấu hình verification block trong CLAUDE.md:
## Verifying your work
- Build: make build (must finish with "Build succeeded")
- Test: make test (all green; never skip or delete a failing test)
- Lint: make lint (zero warnings)
Run all three before reporting any task complete, and paste the output.
If a test fails, fix the code, not the test.
6. Kiểm soát & Đo lường hiệu quả
Yếu tố Quản trị
Chi tiết Thực thi Kỹ thuật
What is enforced
Bắt buộc chạy xác minh trước khi báo cáo task hoàn thành, và chặn agent sửa file test trong task fix bug, cả hai được hiện thực bằng hooks khi tổ chức yêu cầu bảo đảm tuyệt đối.
What the evidence is
Terminal output nguyên văn từ make test, build log, hoặc screenshot diff do Claude chạy và dán output, đảm bảo bằng chứng xuất phát trực tiếp từ toolchain.
Where it is logged
Ghi nhận trong session transcript, được OpenTelemetry export chuyển tiếp về observability stack của tổ chức và hiển thị trong check run của PR, nơi người review và kiểm toán viên đều quan sát được.
Who approves
Code owner phê duyệt PR, tập trung vào intent và rủi ro kỹ thuật vì bằng chứng cơ học đã được đính kèm đầy đủ.
Chỉ số Đo lường Hiệu quả
Leading indicator: First-pass CI success rate cho code do agent tạo ra (hệ thống CI sẵn có hỗ trợ đo đạc).
Lagging indicator: Thời gian review mỗi PR (từ PR metadata) giảm rõ rệt khi bài test bắt được các lỗi trước đây reviewer phải soi thủ công; và change failure rate từ incident tracker.