allow, deny, instruct כמו המדיניות המובנית.
דוגמה מהירה
שתי דרכים לטעון מדיניות מותאמת אישית
אפשרות 1: מבוססת קונוונציה (מומלץ)
שחרר קובצי*policies.{js,mjs,ts} לתוך .failproofai/policies/ והם יטענו באופן אוטומטי - אין צורך בדגלים או שינויי תצורה. זה פועל כמו git hooks: שחרר קובץ, זה פשוט עובד.
- שני המדירים (פרויקט ומשתמש) נסרקים (איחוד — לא first-scope-wins)
- הקבצים נטענים באופן אלפביתי בתוך כל ספרייה. הקדם עם
01-,02-כדי לשלוט בסדר - רק קבצים תואמים ל-
*policies.{js,mjs,ts}נטענים; קבצים אחרים מתעלמים - כל קובץ נטען באופן עצמאי (fail-open לקובץ)
- עובד לצד מדיניות מפורשת
--customומדיניות מובנית
אפשרות 2: נתיב קובץ מפורש
policies-config.json כ-customPoliciesPath. הקובץ נטען בצורה טרייה בכל אירוע hook - אין אחסון זיכרון מטמון בין אירועים.
שימוש בשניהם יחד
מדיניות קונוונציה וקובץ--custom מפורש יכולים להתקיים. סדר טעינה:
- קובץ
customPoliciesPathמפורש (אם מוגדר) - קובצי קונוונציה פרויקט (
{cwd}/.failproofai/policies/, אלפביתי) - קובצי קונוונציה משתמש (
~/.failproofai/policies/, אלפביתי)
API
ייבוא
customPolicies.add(hook)
רושם מדיניות. קרא לזה כמה פעמים שצריך עבור מדיניויות מרובות באותו קובץ.
עוזרי ההחלטה
deny(message) - ההודעה מופיעה ל-Claude עם קידומת Blocked by failproofai:. ה-deny הראשון מקצר את כל הערכה נוספת.
instruct(message) - ההודעה מוספת להקשר של Claude עבור קריאת הכלי הנוכחית. כל הודעות instruct מצטברות ומסופקות יחד.
הודעות allow אינפורמטיביות
allow(message) מאפשר את הפעולה וגם שולח הודעה אינפורמטיבית חזרה ל-Claude. ההודעה מסופקת כ-additionalContext בתגובת stdout של מטפל ה-hook — אותו מנגנון המשמש ל-instruct, אך שונה מבחינה סמנטית: זה עדכון סטטוס, לא אזהרה.
מקרי שימוש:
- אישורי סטטוס:
allow("All CI checks passed.")— אומר ל-Claude שהכל בסדר - הסברים fail-open:
allow("GitHub CLI not installed, skipping CI check.")— אומר ל-Claude למה בדיקה דולגה כדי שיהיה לה הקשר מלא - הודעות מרובות מצטברות: אם כמה מדיניויות כל אחת מחזירה
allow(message), כל ההודעות מחוברות עם שורות חדשות ומסופקות יחד
שדות PolicyContext
שדות SessionMetadata
סוגי אירועים
סדר הערכה
מדיניויות מוערכות בסדר זה:- מדיניויות מובנות (בסדר הגדרה)
- מדיניויות מותאמות אישית מפורשות מ-
customPoliciesPath(בסדר.add()) - מדיניויות קונוונציה מפרויקט
.failproofai/policies/(קבצים אלפביתיים, סדר.add()בתוך) - מדיניויות קונוונציה מ-
~/.failproofai/policies/של משתמש (קבצים אלפביתיים, סדר.add()בתוך)
ה-
deny הראשון מקצר את כל המדיניויות הבאות. כל הודעות instruct מצטברות ומסופקות יחד.ייבואים טרנזיטיביים
קובצי מדיניות מותאמת אישית יכולים לייבא מודולים מקומיים באמצעות נתיבים יחסיים:from "failproofai" ייבואים לנתיב dist בפועל ויצירת קובצי .mjs זמניים כדי להבטיח תאימות ESM.
סינון סוג אירוע
השתמש ב-match.events כדי להגביל מתי מדיניות נעיר:
match לחלוטין כדי להנעיר בכל סוג אירוע.
טיפול בשגיאות ואופני כשל
מדיניות מותאמת אישית היא fail-open: שגיאות לעולם לא חוסמות מדיניות מובנית או מקריסות מטפל ה-hook.דוגמה מלאה: מדיניויות מרובות
דוגמאות
ספרייתexamples/ מכילה קובצי מדיניות מוכנים להרצה:

