Sản phẩm nhà. Plugin này do ShipWithAI xây dựng và duy trì. Khác với các tool bên thứ ba được review trong toolkit, đây là sản phẩm của chính chúng tôi — hãy đọc với tinh thần đó.

Vấn đề nó giải quyết

Phần lớn project bắt đầu đời sống Claude Code bằng một CLAUDE.md copy về, mô tả một project không còn tồn tại. Commands sai, cấu trúc thư mục đã đổi từ ba lần refactor trước, và không có gì ngăn model ghi vào .env.

Harness đảo ngược thứ tự: đọc repo trước, viết file sau. Stack, build commands, cấu trúc thư mục, env vars và test framework đều được trích từ file đang thật sự nằm trong project — không phải từ một template mà bạn tự hứa sẽ cập nhật sau.

Cách cài đặt

/plugin marketplace add ShipWithAI/shipwithai-plugins
/plugin install shipwithai-harness@shipwithai

Cách sử dụng

/shipwithai-harness:setup # quét project rồi sinh harness
/shipwithai-harness:doctor # chấm điểm harness đang có và đề xuất sửa

setup chạy năm bước — scan, summarize, ask, write, validate. Nó hỏi đúng hai câu: project của bạn là gì (bắt buộc) và quy ước riêng nếu có (tuỳ chọn).

Năm file được sinh ra:

FileNội dung
CLAUDE.mdCommands thật, cấu trúc thư mục thật, quy ước của bạn
.claude/settings.jsonPermission rules khớp với toolchain đang dùng
.claude/hooks/validate-command.pyChặn fork bomb, curl | bash, force push
.claude/hooks/protect-files.pyChặn cứng thao tác ghi vào .env, .pem, .key
docs/ARCHITECTURE.mdẢnh chụp kiến trúc từ cấu trúc thật của project

Mẹo dùng

  • Đọc scan summary trước khi trả lời hai câu hỏi. Nếu nó đọc sai stack, sửa ngay từ đó — mọi thứ phía sau đều thừa hưởng cái sai này.
  • Chạy /shipwithai-harness:doctor sau mỗi lần refactor lớn. Harness lệch với code là thứ vô hình cho tới khi Claude tự tin chạy một lệnh không còn tồn tại.
  • Hooks sinh ra là mức sàn, không phải mức trần. Bổ sung rule riêng khi bạn thấy codebase của mình hay mời gọi lỗi kiểu gì.

Khi KHÔNG nên dùng

Bỏ qua nếu bạn đã dùng ShipWithAI Starter — init của Starter phủ cùng phạm vi và rộng hơn. Bỏ qua với script dùng một lần hoặc sandbox, nơi harness tốn công hơn phần nó tiết kiệm. Và nếu project không có file config quen thuộc nào, hãy chuẩn bị sửa tay phần output.