VNPT

Give Claude a Feedback Loop (Stage 4: Test)

Feedback Loop (chu trình tự sửa lỗi): Tự động kiểm tra và sửa lỗi qua test suite, build hoặc screenshot diff trước khi chuyển giao kỹ sư

Bài gốc: Anthropic Claude Academy reference/ai-native-sdlc/course/08-give-claude-a-feedback-loop.md 2026-09-16 ~5 phút đọc

1. Những thay đổi: Feedback Loop

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.

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:

Archify Interactive Diagram (Stage 4: Feedback Loop) Mở toàn màn hình ↗

3. Bắt đầu: Điều kiện tiên quyết & Hạ tầng

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).

toolchain exit 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.md sample 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".

target quantifiable
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.

TDD failing 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/UX screenshot 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).

contract definition 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.

Hooks PreToolUse 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ả