allow, deny, instruct như các chính sách có sẵn.
Ví dụ nhanh
Hai cách để tải các chính sách tùy chỉnh
Tùy chọn 1: Dựa trên quy ước (được khuyến nghị)
Thả các tệp*policies.{js,mjs,ts} vào .failproofai/policies/ và chúng sẽ được tải tự động — không cần các cờ hoặc thay đổi cấu hình. Điều này hoạt động như git hooks: thả một tệp, nó chỉ hoạt động.
- Cả hai thư mục dự án và người dùng được quét (hợp nhất — không phải chiến thắng phạm vi đầu tiên)
- Các tệp được tải theo thứ tự bảng chữ cái trong mỗi thư mục. Thêm tiền tố
01-,02-để kiểm soát thứ tự - Chỉ các tệp khớp với
*policies.{js,mjs,ts}được tải; các tệp khác bị bỏ qua - Mỗi tệp được tải độc lập (mở lỗi cho mỗi tệp)
- Hoạt động cùng với các chính sách
--customrõ ràng và có sẵn
Tùy chọn 2: Đường dẫn tệp rõ ràng
policies-config.json dưới dạng customPoliciesPath. Tệp được tải mới trên mỗi sự kiện hook - không có bộ nhớ đệm giữa các sự kiện.
Sử dụng cả hai cùng nhau
Các chính sách quy ước và tệp--custom rõ ràng có thể coexist. Thứ tự tải:
- Tệp
customPoliciesPathrõ ràng (nếu được cấu hình) - Các tệp quy ước dự án (
{cwd}/.failproofai/policies/, theo thứ tự bảng chữ cái) - Các tệp quy ước người dùng (
~/.failproofai/policies/, theo thứ tự bảng chữ cái)
API
Nhập khẩu
customPolicies.add(hook)
Đăng ký một chính sách. Gọi điều này bao nhiêu lần cần thiết cho nhiều chính sách trong cùng một tệp.
Các trợ giúp quyết định
deny(message) - thông báo xuất hiện trước Claude với tiền tố "Blocked by failproofai:". Một deny duy nhất sẽ ngắn mạch tất cả các đánh giá tiếp theo.
instruct(message) - thông báo được thêm vào ngữ cảnh của Claude cho lệnh gọi công cụ hiện tại. Tất cả các thông báo instruct được tích lũy và được gửi cùng nhau.
Các thông báo allow có thông tin
allow(message) cho phép hoạt động và gửi lại một thông báo thông tin cho Claude. Thông báo được gửi dưới dạng additionalContext trong phản hồi stdout của trình xử lý hook — cơ chế giống như được sử dụng bởi instruct, nhưng có nghĩa khác: nó là một cập nhật trạng thái, không phải cảnh báo.
Các trường hợp sử dụng:
- Xác nhận trạng thái:
allow("All CI checks passed.")— cho Claude biết mọi thứ đều tốt - Giải thích mở lỗi:
allow("GitHub CLI not installed, skipping CI check.")— cho Claude biết lý do tại sao kiểm tra bị bỏ qua để nó có đầy đủ ngữ cảnh - Nhiều thông báo tích lũy: nếu nhiều chính sách mỗi cái trả về
allow(message), tất cả các thông báo được nối với dòng mới và gửi cùng nhau
Các trường PolicyContext
Các trường SessionMetadata
Các loại sự kiện
Thứ tự đánh giá
Các chính sách được đánh giá theo thứ tự này:- Các chính sách có sẵn (theo thứ tự định nghĩa)
- Các chính sách tùy chỉnh rõ ràng từ
customPoliciesPath(theo thứ tự.add()) - Các chính sách quy ước từ dự án
.failproofai/policies/(tệp theo thứ tự bảng chữ cái, thứ tự.add()bên trong) - Các chính sách quy ước từ người dùng
~/.failproofai/policies/(tệp theo thứ tự bảng chữ cái, thứ tự.add()bên trong)
deny đầu tiên sẽ ngắn mạch tất cả các chính sách tiếp theo. Tất cả các thông báo instruct được tích lũy và được gửi cùng nhau.Nhập bắc cầu
Các tệp chính sách tùy chỉnh có thể nhập các mô-đun cục bộ bằng cách sử dụng các đường dẫn tương đối:from "failproofai" sang đường dẫn dist thực tế và tạo các tệp .mjs tạm thời để đảm bảo tương thích ESM.
Lọc loại sự kiện
Sử dụngmatch.events để giới hạn khi chính sách xảy ra:
match hoàn toàn để xảy ra trên mỗi loại sự kiện.
Xử lý lỗi và các chế độ lỗi
Các chính sách tùy chỉnh mở lỗi: các lỗi không bao giờ chặn các chính sách có sẵn hoặc làm hỏng trình xử lý hook.Ví dụ đầy đủ: nhiều chính sách
Ví dụ
Thư mụcexamples/ chứa các tệp chính sách sẵn sàng để chạy:

