allow, deny, instruct như các chính sách tích hợp 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ị)
Đặt 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ờ hoặc thay đổi cấu hình. Điều này hoạt động giống như git hooks: đặt một tệp, nó chỉ hoạt động.
- Cả hai thư mục dự án và người dùng được quét (union — không phải first-scope-wins)
- 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 (fail-open cho mỗi tệp)
- Hoạt động cùng với các chính sách
--customvà tích hợp sẵn rõ ràng
Tùy chọn 2: Đường dẫn tệp rõ ràng
policies-config.json như customPoliciesPath. Tệp được tải mới trên mỗi sự kiện hook - không có bộ nhớ cache giữa các sự kiện.
Sử dụng cả hai cùng nhau
Các chính sách theo 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
Import
customPolicies.add(hook)
Đăng ký một chính sách. Gọi hàm này bao nhiêu lần tùy ý cho nhiều chính sách trong cùng một tệp.
Trợ giúp quyết định
deny(message) - thông báo xuất hiện cho Claude với tiền tố "Blocked by failproofai:". Một deny duy nhất sẽ short-circuit tất cả các đánh giá tiếp theo.
instruct(message) - thông báo được nối 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à cung cấp cùng nhau.
Thông báo allow thông tin
allow(message) cho phép hoạt động và gửi thông báo thông tin lại cho Claude. Thông báo được cung cấp như additionalContext trong phản hồi stdout của trình xử lý hook — cơ chế tương tự được sử dụng bởi instruct, nhưng khác nhau về mặt ngữ nghĩa: đó là một cập nhật trạng thái, không phải một cảnh báo.
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 bình thường - Giải thích fail-open:
allow("GitHub CLI not installed, skipping CI check.")— cho Claude biết tại sao kiểm tra bị bỏ qua để nó có bối cảnh đầy đủ - Nhiều thông báo tích lũy: nếu một số chính sách mỗi cái trả về
allow(message), tất cả thông báo được nối với các dòng mới và cung cấp 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 tích hợp 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ừ
.failproofai/policies/dự án (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ừ
~/.failproofai/policies/người dùng (tệp theo thứ tự bảng chữ cái, thứ tự.add()bên trong)
deny đầu tiên short-circuits tất cả các chính sách sau. Tất cả các thông báo instruct được tích lũy và cung cấp cùng nhau.Các import chuyển tiếp
Các tệp chính sách tùy chỉnh có thể import 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 khả năng tương thích ESM.
Lọc loại sự kiện
Sử dụngmatch.events để giới hạn khi một chính sách kích hoạt:
match hoàn toàn để kích hoạt 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 là fail-open: các lỗi không bao giờ chặn các chính sách tích hợp sẵn hoặc làm crash 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:

