tdd-guard

Chặn agent sửa code khi chưa có test đang fail, và chặn viết code vượt quá cái test đòi hỏi.

HookNhómTest và review codenizos/tdd-guard · ★ 2,4K · đọc 29/10/2026Đã đọc mã và tổng hợp ·

Ưu, nhược và chỗ chưa rõ

tdd-guard: ưu, nhược và chỗ chưa rõ, mỗi dòng kèm nguồn
ƯuREADME ghi hook chặn lệnh sửa code khi chưa có test fail, giải thích cho agent cần làm gì, và hỗ trợ Vitest, Jest, Storybook, pytest, PHPUnit, Go, Rust, RSpec, Minitest.README
ƯuMax Taylor chạy 54 lần trên 3 project nhỏ và thấy bản có TDD Guard thêm test mới ở mọi lần chạy vòng hai, ổn định nhất trong ba cách; anh tóm lại là code không tốt hơn nhưng đều tay hơn.Max Taylor, 2026-09-28
ƯuTừ bản 0.10.0 bạn sửa được luật kiểm tra, bỏ qua thư mục, và bật tắt guard giữa phiên, sau khi người dùng phàn nàn guard chặn cả script debug tạm.Issue #45
NhượcTrong cùng bài đo, TDD Guard tốn gấp 1.9 đến 3.8 lần token so với Claude Code không có guard, và có lần bỏ sót yêu cầu của spec vì không có test nào đòi.Max Taylor, 2026-09-28
NhượcKhi reporter không ghi được kết quả test (ví dụ chạy trong Docker không mount thư mục .claude), guard chặn cả lệnh sửa hợp lệ và agent quay sang viết test trùng.Issue #11
NhượcBản plugin gọi npx tdd-guard@latest ở mỗi hook, tức là mỗi lần sửa file có thể chạy một bản mới tải từ npm mà bạn chưa đọc.plugin/hooks/hooks.json
Chưa rõREADME ghi TDD Guard đã phát triển thành Probity (trước đó tên Conduct), hỗ trợ thêm Codex và Copilot CLI, và khuyên project mới bắt đầu ở đó; TDD Guard vẫn được bảo trì. Chưa rõ TDD Guard còn nhận tính năng mới bao lâu.nizos/probity
Chưa rõĐường cài plugin (/plugin marketplace add nizos/tdd-guard) tự lấy bản mới nhất, không ghim được phiên bản; muốn ghim phải cài tay bằng npm theo docs/installation.md.README, Installation

Khi nên dùng

  • Bạn đang làm tiếp một codebase có sẵn bộ test và muốn agent lần nào cũng viết test trước, chấp nhận tốn thêm khoảng 2 đến 4 lần token.

Khi không nên dùng

  • Project mới (tác giả khuyên dùng Probity), project không có bộ test được hỗ trợ, hoặc bạn đang cần tiết kiệm token.

Cách cài

Claude Code
npm install -g [email protected]  (rồi thêm hook PreToolUse, UserPromptSubmit, SessionStart gọi lệnh tdd-guard vào settings, và cài reporter cho bộ test, theo docs/installation.md)
Theo tài liệu của tác giả

Nó chạm vào những gì

File đọc và ghi
Ghi kết quả test, todo và nội dung sửa vào .claude/tdd-guard/data trong project; tạo thư mục .claude nếu chưa có. Reporter của bộ test (Vitest, Jest, pytest...) ghi kết quả test vào cùng chỗ.
Gọi mạng
Gửi nội dung thay đổi và kết quả test tới model Claude để chấm: qua Claude Agent SDK (mặc định), qua lệnh claude, hoặc qua Anthropic API. Model mặc định ghi trong docs là claude-sonnet-4-6. Bản plugin chạy npx tdd-guard@latest nên tải gói từ npm ở mỗi lần gọi hook.
Script lúc cài
Gói npm không có postinstall; script prepare (husky) chỉ chạy khi build từ mã nguồn.
Tiến trình
Mỗi lần Claude Code định Write, Edit, MultiEdit hoặc TodoWrite, hook chạy tdd-guard; nó có thể bật lệnh claude con (giới hạn 60 giây) và các linter như npx eslint, golangci-lint, rubocop.

Đọc từ: hooks.json, Config.ts#L14, FileStorage.ts, ClaudeCli.ts#L16-L41, validation-model.md, package.json

Mục này chạy mã trên máy bạn với quyền của tài khoản bạn. Theo tài liệu Claude Code, hook và MCP server chạy ngoài sandbox. Đọc phần trên và file của tác giả trước khi cài. Tài liệu bảo mật plugin

Test và review code

Cả nhóm →