Việc viết code, AI đã làm thay bạn. Nhưng việc nghiệm thu vẫn đè nặng trên vai bạn.
Một đoạn code viết đúng hay chưa, AI không chịu trách nhiệm, cuối cùng vẫn phải chính bạn đọc qua từng dòng: rào cản này đã chặn đường rất nhiều người.
Gần đây, Anthropic đã đưa cả việc nghiệm thu AI vào vòng lặp.
Họ để Claude sau khi viết xong code, không giao việc ngay, mà tự chạy tiếp bốn bước kiểm tra:
/code-review trước tiên bắt lỗi, /simplify dọn sạch phần triển khai thừa, /verify thực hiện xác minh đầu-cuối một lần, nếu lần này động đến giao diện, lại dùng /design đối chiếu lại hình ảnh theo DESIGN.md.
Bốn bước chạy xong, mới tính là bàn giao.
Ngày 22 tháng 7, đội Claude Code đã công bố "vòng lặp xác minh" nội bộ này.

Nói cách khác, Claude viết code xong, sẽ tự tìm lỗi trước, sửa đến khi không có vấn đề rồi mới quay lại tìm bạn.
Điều này có nghĩa AI bắt đầu từ "biết viết code", tiến hóa đến "biết kiểm tra code mình viết".
Vòng lặp hoàn thành công việc của agent, thêm một khâu xác minh
Anthropic đặt tên cho thứ này là vòng lặp xác minh (verification loop).
Định nghĩa chính thức rất đơn giản, đó là một quá trình lặp đi lặp lại mà Claude kiểm tra và cố gắng sửa chữa công việc của chính mình.
Nó thay đổi vòng lặp hoàn thành công việc của agent.
Trước đây là "thu thập ngữ cảnh → thực thi hành động → kiểm tra thủ công", bước cuối cùng kẹt lại trên người: AI giao việc ra, bạn phải tự đọc từng dòng.
Bây giờ đường thẳng này được kéo dài thành "thu thập ngữ cảnh → thực thi hành động → xác minh tự động → sửa chữa → xác minh lại", việc kiểm tra và sửa chữa được nhét trở lại bên trong vòng lặp.

Sơ đồ vòng lặp agent chính thức của Anthropic: prompt đi vào, Claude thu thập ngữ cảnh, thực thi hành động, xác minh kết quả, nếu xác minh không qua thì đánh trả chạy lại, qua mới trả về.
Một số kiểm tra Claude vốn đã biết làm. Những tín hiệu xác định trong kho code, như type checker, linter, chạy test, lỗi runtime, nó đọc hiểu và cũng sẽ sửa luôn.
Thực sự phiền phức là loại khác: giao diện sửa đúng chưa, quy trình người dùng có trơn tru không, lần thay đổi này có chôn vùi những lỗ hổng vô hình không......
Những điều này trước đây chỉ có thể dựa vào người giám sát, làm đi làm lại hàng chục hàng trăm lần cùng một kiểm tra.
Cách giải của Anthropic là viết ra từng bước những kiểm tra bạn phải làm thủ công mỗi lần, đóng gói thành Skill, giao cho Claude tự động thực hiện trong mỗi nhiệm vụ.
Mấy chục năm qua, tất cả quy trình của kỹ thuật phần mềm: viết yêu cầu, lập kế hoạch, đánh giá từng tầng, các cuộc họp không bao giờ hết, bản chất đều vì: viết code quá chậm, thời gian của kỹ sư quá đắt giá.
Nhưng khi AI biến khâu viết code này nhanh hơn, rẻ hơn, tiền đề này không còn nữa.
Phán đoán của chính đội Claude Code là: nút cổ chai không biến mất, nó chỉ chuyển dịch: từ "viết code" chuyển sang các khâu xác minh, đánh giá code, an toàn.
Code sinh ra quá nhanh, vấn đề mới trở thành liệu những code này có đúng không, ai bảo trì, con người có theo kịp nhịp độ đánh giá code không.
Đối mặt với nút cổ chai mới này, đội Claude Code đã thí nghiệm trước trên chính mình.
4 Skill tự kiểm tra mà đội Claude Code dùng hàng ngày
Nội bộ đội Claude Code, hàng ngày đều dùng bốn Skill tự kiểm tra này.
/code-review, chuyên đánh giá các thay đổi code, bắt những lỗi tiềm ẩn ra, thuận tiện đưa một ý kiến đánh giá.
Điều này bằng với tự trang bị một người đánh giá không biết mệt mỏi.
/simplify, dọn dẹp diff của lần thay đổi này, xóa bỏ phần triển khai phức tạp quanh co, làm cho cấu trúc trở nên đơn giản.
Nó không thêm chức năng cho bạn, mà là xóa bỏ phần thừa, đơn giản hóa triển khai, đẩy chi phí bảo trì sau này xuống.
Điểm này rất quan trọng, cũng thể hiện trình độ cao. Đa số người viết code đều chồng chất lên, công cụ chủ động làm phép trừ lại càng hiếm có.
/verify, thực hiện xác minh đầu-cuối, chạy thực sự một lần, xác nhận chức năng thực sự hoàn thành, chứ không phải "trông như hoàn thành".
/design, chỉ lên sân khi động đến UI. Nó đối chiếu với DESIGN.md trong kho, kiểm tra từng điều xem triển khai hình ảnh của bạn có lệch hướng không.
4 Skill này không mọc ra từ không khí.
Lớp đáy của chúng, Claude Code đã trải một lớp hỗ trợ xác minh sẵn có:
/verify tích hợp có thể chạy ứng dụng lên quan sát thay đổi, bạn viết rõ lệnh build và test trong CLAUDE.md, nó cứ thế thực hiện; còn có Code Review chuyên đánh giá đa agent trên PR, GitHub Actions có thể tự động khai hỏa mỗi lần commit.
4 Skill của đội, bằng với trên nền tảng chung này, lại thêm một công đoạn riêng của mình.

Viết một Skill xác minh của riêng mình như thế nào?
Cách Anthropic đưa ra cũng rất đơn giản:
Viết bước bạn phải làm thủ công mỗi lần đó ra bằng lời lẽ thông thường, coi như bạn đang hướng dẫn chú ý cho một đồng nghiệp mới vào ngày đầu tiên.
Nếu bạn thậm chí bí không biết mô tả bước kiểm tra này thế nào, có thể để Claude đưa ra một phiên bản thực hành tốt nhất phổ biến trước, rồi sửa trên đó.
Phiên bản của bạn có khả năng cao sẽ khác với cách làm chung ở vài điểm, và chính mấy chỗ khác biệt đó, lại là thứ đáng ghi nhớ nhất.
Kiểm tra cũng không nhất thiết phải là phán đoán mơ hồ kiểu "cảm thấy đúng không".
Ví dụ: bất kỳ thay đổi nào xóa trường cơ sở dữ liệu nhưng không có bước di chuyển dữ liệu đi kèm, nhất loạt đánh trả. Đây là một "quy tắc bản địa" mà linter chung mãi mãi không bắt được, nhưng lại là của riêng dự án bạn.
Phàm là đường đỏ nào bạn vẫn phải dựa vào giám sát thủ công mới giữ được, đều đáng viết thành một vòng lặp.
Viết xong thì sao?
Ném cho skill-creator để nó phỏng vấn bạn vài câu ngược lại, hoặc đơn giản là tự ném một file Markdown vào .claude/skills/.
Skill xác minh đơn giản nhất, chính là vài dòng giải thích cộng một đoạn nội dung. Sau đó gọi một lần trong một nhiệm vụ mới, xác nhận bước kiểm tra này thực sự chạy theo, không đúng thì sửa.
Gặp phải những Skill bạn không sửa được, ví dụ tích hợp sẵn, do plugin quản lý, cũng có cách đối phó: viết một Skill vỏ bọc, để nó gọi cái gốc trước, rồi gọi phần xác minh của bạn. Lách một vòng, vẫn nhét được kiểm tra vào.
Xác minh không phải cắt một nhát, nó có 4 mức
Kiểm tra đóng gói thành Skill xong, câu hỏi tiếp theo là: thứ này khi nào kích hoạt?
Anthropic đưa ra 4 mức độ tự động hóa, từ lỏng đến chặt.
Standalone: Bạn tự nhớ ra, điều khiển thủ công một chút.
Embedded: Nhúng vào quy trình nhiệm vụ nào đó, chạy cùng một lượt.
Chained: Vài Skill xác minh xâu thành một chuỗi, tự động chạy hết cái này đến cái khác.
On every PR: Mức khắc nghiệt nhất, mỗi lần commit code đều tự động đi qua một lượt.
Chính thức gọi tầng nhảy vọt ở giữa này là "từ thói quen đến khế ước".
Vốn là thói quen cá nhân "tôi mỗi lần đều nhớ chạy bổ sung một lần /verify sau /simplify", sau khi xâu thành chuỗi, trở thành khế ước cố định "/simplify chạy xong, tự động gọi /verify".
Cả chuỗi tự đi hết vòng lặp phát triển, chỉ quay lại tìm bạn khi cần bạn phê chuẩn.
Chuỗi kéo càng dài, độ tin cậy càng cao, nhưng chính thức đặc biệt dặn một câu: xác minh chuỗi sẽ đốt token thực sự.
Vì vậy đừng ngay từ đầu đặt tất cả kiểm tra thành PR gate, mỗi lần commit nhất định phải chặn, tư thế đúng là xem nó có ổn định không trước, rồi từng bước từng bước tăng lên.
Đằng sau 4 Skill, lập trình AI đang đổi đường đua
Đằng sau 4 Skill, cuộc cạnh tranh lập trình AI đang chuyển từ sinh thành sang xác minh.
Cha đẻ Claude Code, cũng đã đưa ra cùng một phán đoán.
Ngày 9 tháng 6 năm nay, ông ấy đăng tweet nói: trong thời đại mô hình mạnh có thể tự chủ chạy lâu dài, tự xác minh là then chốt để mô hình chạy lâu hơn, kết quả gần hơn với kỳ vọng của bạn: bạn không cần phải túc trực bên cạnh thường xuyên giám sát Claude, mà có thể giao nhiều việc hơn.
Nói thẳng ra, xác minh làm càng vững chắc, agent mới dám thả chạy thoải mái; chạy càng lâu, người càng an tâm.

Trước đây chúng ta dựa vào prompt, nhưng nó cũng có một trần nhà: chỉ giải quyết nhiệm vụ lần này, lần sau vẫn phải làm lại từ đầu.
Ở đây trước tiên sửa một hiểu lầm thường gặp: Skill không phải là một đoạn prompt Markdown.
Nó là một module năng lực, bên trong chứa chỉ dẫn, cấu trúc file, script, gọi công cụ, cấu hình và cả một bộ quy trình công việc, là kết tủa các bước kiểm tra, quy chuẩn thiết kế, những vấp ngã đã trải qua của đội thành một gói tùy gọi tùy đến, Claude cần thì tự đi lật.
Quan trọng hơn, Skill đang từ một tính năng của Claude Code, trở thành tiêu chuẩn mở xuyên nhà cung cấp.
Theo tổng hợp của giới, GitHub Copilot, Cursor, OpenAI Codex, Gemini CLI đều đã áp dụng cùng một bộ định dạng.
Điều này có nghĩa, những Skill bạn kết tủa cho đội, sẽ không bị khóa chết trên một công cụ nào, nó sẽ kết tủa kinh nghiệm, quy phạm, quy trình kiểm tra của đội, trở thành một khối năng lực có thể gọi đi gọi lại.
Điều này cũng dẫn đến một thực tế chua xót: cùng một Claude, hiệu suất dùng ra của các đội khác nhau có thể chênh lệch vài lần, tạo ra khoảng cách này không nằm ở mô hình, mà ở workflow:
Bạn có viết kiểm tra thành Skill không, có dựng lên vòng lặp xác minh không, có để agent tự chạy thông vòng phản hồi không.
Suy cho cùng, năng lực của agent là một bài toán cộng: mô hình, cộng công cụ, cộng cơ chế xác minh, cộng quy trình công việc.
Mục mô hình này, các nhà ngày càng gần nhau. Thực sự kéo khoảng cách là ba mục sau, chúng đều nằm trong tay người dùng.
Tất nhiên, blog này trình bày là tối ưu hóa quy trình phát triển hỗ trợ AI, chứ không phải "AI đã có thể viết phần mềm độc lập". Nó vẫn không thể tách rời kỹ sư, cũng không thể tách rời con người để làm bàn giao cấp sản xuất.
Vì vậy, nó không phải là agent muốn đến cướp bát cơm của kỹ sư con người, nhưng hướng đi đã rất rõ ràng.
Trước đây, chúng ta luôn dạy AI viết code thế nào, bây giờ bắt đầu dạy nó xác minh xem mình viết đúng không.
Đối với một người hàng ngày phải dùng AI để viết code, đợi đến ngày "trước khi tan làm vẫn phải thủ công kiểm tra lại một lượt" cuối cùng có thể yên tâm giao cho AI, nó mới thực sự bắt đầu thay bạn gánh việc.
Tài liệu tham khảo:
https://claude.com/blog/building-verification-loops-in-claude-code-with-skills
https://claude.com/blog/getting-started-with-loops?utm_source=chatgpt.com
Bài viết từ tài khoản WeChat công chúng “Tân Trí Nguyên”, tác giả: ASI Khải Thị Lục






