דלג לתוכן הראשי
failproofai מגיע עם 30 מדיניות מובנות שתופסות מצבי כשל נפוצים של סוכנים. כל מדיניות מופעלת על סוג hook event ספציפי ושם כלי. תשע מדיניות קובלות פרמטרים שמאפשרים לך לכוונן את התנהגותן ללא כתיבת קוד. ארבע מדיניות workflow אוכפות צינור commit → push → PR → CI לפני שClaude עוצר.

סקירה כללית

מדיניות מקובצות לקטגוריות:
קטגוריהמדיניותסוג Hook
פקודות מסוכנותblock-sudo, block-rm-rf, block-curl-pipe-sh, block-failproofai-commandsPreToolUse
סודות (sanitizers)sanitize-jwt, sanitize-api-keys, sanitize-connection-strings, sanitize-private-key-content, sanitize-bearer-tokensPostToolUse
סביבהblock-env-files, protect-env-varsPreToolUse
גישת קבציםblock-read-outside-cwd, block-secrets-writePreToolUse
Gitblock-push-master, block-work-on-main, block-force-push, warn-git-amend, warn-git-stash-drop, warn-all-files-stagedPreToolUse
בסיס נתוניםwarn-destructive-sql, warn-schema-alterationPreToolUse
אזהרותwarn-large-file-write, warn-package-publish, warn-background-process, warn-global-package-installPreToolUse
Workflowrequire-commit-before-stop, require-push-before-stop, require-pr-before-stop, require-ci-green-before-stopStop
  • block- — עצור את הסוכן מהמשך הביצוע.
  • warn- — תן לסוכן הקשר נוסף כדי שיוכל להתקן את עצמו.
  • sanitize- — נקה נתונים רגישים מפלט הכלי לפני ש-Claude רואה זאת.
  • require- — חסום את ה-Stop event עד שמתקיימות תנאים.

כל מדיניות תומכת בשדה hint אופציונלי ב-policyParams. ה-hint מוצמד להודעת ה-deny או instruct ש-Claude רואה, מספק הדרכה מעשית ללא שינוי קוד מדיניות. עובד עם מדיניות מובנות, custom וconv. ראה Configuration → hint לפרטים.

פקודות מסוכנות

מנע סוכנים מהפעלת פעולות שקשה לבטל או שעלולות לפגוע במערכת האירוח.

block-sudo

Event: PreToolUse (Bash)
ברירת מחדל: דוחה כל פקודת sudo.
חוסם קריאות שכוללות את מילת המפתח sudo. תיאום דפוסים נעשה על tokens פקודה מנותחים, לא על המחרוזת הגולמית, למניעת עקיפה דרך זריקת מפעיל shell. פרמטרים:
ParamTypeברירת מחדלתיאור
allowPatternsstring[][]קידומות פקודה מדויקות המותרות. כל ערך מתואמת כנגד ה-argv tokens המנותחים.
דוגמה:
{
  "policyParams": {
    "block-sudo": {
      "allowPatterns": ["sudo systemctl status", "sudo journalctl"]
    }
  }
}
עם תצורה זו, sudo systemctl status nginx מותר, אבל sudo rm /etc/hosts דחוי.
דפוסים מתואמים כנגד tokens מנותחים, לא כנגד מחרוזת הפקודה הגולמית. זה מונע עקיפה דרך אופרטורים shell מצורפים (למשל sudo systemctl status x; rm -rf / לא מתואם ל-sudo systemctl status *).

block-rm-rf

Event: PreToolUse (Bash)
ברירת מחדל: דוחה rm -rf, rm -fr וצורות מחיקה רקורסיביות דומות.
פרמטרים:
ParamTypeברירת מחדלתיאור
allowPathsstring[][]נתיבים בטוחים למחיקה רקורסיבית (למשל /tmp).
דוגמה:
{
  "policyParams": {
    "block-rm-rf": {
      "allowPaths": ["/tmp", "/var/cache"]
    }
  }
}

block-curl-pipe-sh

Event: PreToolUse (Bash)
ברירת מחדל: דוחה curl <url> | bash, curl <url> | sh, wget <url> | bash ודפוסים דומים.
אין פרמטרים.

block-failproofai-commands

Event: PreToolUse (Bash)
ברירת מחדל: דוחה פקודות שיבטלו או תפסיקו את failproofai עצמו (למשל npm uninstall failproofai, failproofai policies --uninstall).
אין פרמטרים.

סודות (sanitizers)

מנע סוכנים מדליפת credentials להקשרם או לפלטם. מדיניות Sanitizer מופעלות על PostToolUse events. כאשר Claude מריץ פקודת Bash, קורא קובץ, או קורא לכל כלי, מדיניות אלה בודקות את הפלט לפני החזרתו ל-Claude. אם תבנית סוד מזוהה, המדיניות מחזירה החלטת deny שמונעת את הפלט מהעברה חזרה.

sanitize-jwt

Event: PostToolUse (כל הכלים)
ברירת מחדל: מחפה JWT tokens (שלוש segments base64url מופרדות ב-.).
אין פרמטרים.

sanitize-api-keys

Event: PostToolUse (כל הכלים)
ברירת מחדל: מחפה פורמטים נפוצים של API key: Anthropic (sk-ant-), OpenAI (sk-), GitHub PATs (ghp_), AWS access keys (AKIA), Stripe keys (sk_live_, sk_test_), וGoogle API keys (AIza).
פרמטרים:
ParamTypeברירת מחדלתיאור
additionalPatterns{ regex: string; label: string }[][]דפוסי regex נוספים להתייחס אליהם כסודות.
דוגמה:
{
  "policyParams": {
    "sanitize-api-keys": {
      "additionalPatterns": [
        { "regex": "myco_[A-Za-z0-9]{32}", "label": "MyCo internal API key" },
        { "regex": "pat_[0-9a-f]{40}", "label": "Internal PAT" }
      ]
    }
  }
}

sanitize-connection-strings

Event: PostToolUse (כל הכלים)
ברירת מחדל: מחפה מחרוזות חיבור בסיס נתונים המכילות credentials מוטבעים (למשל postgresql://user:password@host/db).
אין פרמטרים.

sanitize-private-key-content

Event: PostToolUse (כל הכלים)
ברירת מחדל: מחפה PEM blocks (-----BEGIN PRIVATE KEY-----, -----BEGIN RSA PRIVATE KEY-----, וכו’).
אין פרמטרים.

sanitize-bearer-tokens

Event: PostToolUse (כל הכלים)
ברירת מחדל: מחפה Authorization: Bearer <token> headers כאשר ה-token הוא 20 תווים או יותר.
אין פרמטרים.

סביבה

הגן על תצורת סביבה רגישה מלהיקרא או חשוף ע”י סוכנים.

block-env-files

Event: PreToolUse (Bash, Read)
ברירת מחדל: דוחה קריאת קבצי .env דרך cat .env, קריאות כלי Read עם .env כנתיב הקובץ, וכו’.
לא חוסם .envrc או קבצים סביביים אחרים - רק קבצים בשם בדיוק .env. אין פרמטרים.

protect-env-vars

Event: PreToolUse (Bash)
ברירת מחדל: דוחה פקודות שמדפיסות משתני סביבה: printenv, env, echo $VAR.
אין פרמטרים.

גישת קבצים

שמור סוכנים לעבוד בתוך גבולות פרויקט ורחוק מקבצים רגישים.

block-read-outside-cwd

Event: PreToolUse (Read, Bash)
ברירת מחדל: דוחה קריאת קבצים מחוץ לספריית העבודה הנוכחית (שורש הפרויקט).
פרמטרים:
ParamTypeברירת מחדלתיאור
allowPathsstring[][]קידומות נתיב מוחלט המותרות אפילו אם מחוץ ל-cwd.
דוגמה:
{
  "policyParams": {
    "block-read-outside-cwd": {
      "allowPaths": ["/shared/data", "/opt/company/config"]
    }
  }
}

block-secrets-write

Event: PreToolUse (Write, Edit)
ברירת מחדל: דוחה כתיבה לקבצים המשמשים בדרך כלל למפתחות פרטיים ותעודות: id_rsa, id_ed25519, *.key, *.pem, *.p12, *.pfx.
פרמטרים:
ParamTypeברירת מחדלתיאור
additionalPatternsstring[][]דפוסי שם קובץ נוספים (glob-style) לחסימה.
דוגמה:
{
  "policyParams": {
    "block-secrets-write": {
      "additionalPatterns": [".token", ".secret"]
    }
  }
}

Git

מנע pushes, force-pushes, ושגיאות branch accidental שקשה לבטל.

block-push-master

Event: PreToolUse (Bash)
ברירת מחדל: דוחה git push origin main ו-git push origin master.
פרמטרים:
ParamTypeברירת מחדלתיאור
protectedBranchesstring[]["main", "master"]שמות branches שלא ניתן לדחוף אליהם ישירות.
דוגמה:
{
  "policyParams": {
    "block-push-master": {
      "protectedBranches": ["main", "master", "release", "prod"]
    }
  }
}
כדי להתיר דחיפה לכל branches (למעשה השבתת מדיניות זו ללא הסרתה מ-enabledPolicies), קבע protectedBranches: [].

block-work-on-main

Event: PreToolUse (Bash)
ברירת מחדל: דוחה checkout של branches main או master ישירות.
פרמטרים:
ParamTypeברירת מחדלתיאור
protectedBranchesstring[]["main", "master"]שמות branches שלא ניתן לבחור בהם ישירות.

block-force-push

Event: PreToolUse (Bash)
ברירת מחדל: דוחה git push --force ו-git push -f.
אין פרמטרים ספציפיים למדיניות. השתמש ב-hint חוצה-חתך כדי להציע חלופות:
{
  "policyParams": {
    "block-force-push": {
      "hint": "Create a new branch from your current HEAD (e.g. `git checkout -b <new-branch>`) and push that instead."
    }
  }
}

warn-git-amend

Event: PreToolUse (Bash)
ברירת מחדל: הנחיה ל-Claude להמשיך בזהירות בעת הרצת git commit --amend. לא חוסם את הפקודה.
אין פרמטרים.

warn-git-stash-drop

Event: PreToolUse (Bash)
ברירת מחדל: הנחיה ל-Claude לאשר לפני הרצת git stash drop. לא חוסם את הפקודה.
אין פרמטרים.

warn-all-files-staged

Event: PreToolUse (Bash)
ברירת מחדל: הנחיה ל-Claude לבדוק מה הוא משכבע כאשר הוא מריץ git add -A או git add .. לא חוסם את הפקודה.
אין פרמטרים.

בסיס נתונים

תפוס פעולות SQL הרסניות לפני שהן מבוצעות כנגד בסיס הנתונים שלך.

warn-destructive-sql

Event: PreToolUse (Bash)
ברירת מחדל: הנחיה ל-Claude לאשר לפני הרצת SQL המכיל DROP TABLE, DROP DATABASE, או DELETE ללא WHERE clause.
אין פרמטרים.

warn-schema-alteration

Event: PreToolUse (Bash)
ברירת מחדל: הנחיה ל-Claude לאשר לפני הרצת ALTER TABLE statements.
אין פרמטרים.

אזהרות

תן לסוכנים הקשר נוסף לפני פעולות פוטנציאליות מסוכנות אך לא הרסניות.

warn-large-file-write

Event: PreToolUse (Write)
ברירת מחדל: הנחיה ל-Claude לאשר לפני כתיבת קבצים גדולים מ-1024 KB.
פרמטרים:
ParamTypeברירת מחדלתיאור
thresholdKbnumber1024סף גודל קובץ בקילובייטים שמעליו מוציאה אזהרה.
דוגמה:
{
  "policyParams": {
    "warn-large-file-write": {
      "thresholdKb": 256
    }
  }
}
ה-hook handler אוכף סדר גודל 1 MB stdin על payload. כדי לבדוק מדיניות זו עם תוכן קטן, קבע thresholdKb לערך הרבה מתחת ל-1024.

warn-package-publish

Event: PreToolUse (Bash)
ברירת מחדל: הנחיה ל-Claude לאשר לפני הרצת npm publish.
אין פרמטרים.

warn-background-process

Event: PreToolUse (Bash)
ברירת מחדל: הנחיה ל-Claude להיות זהיר בעת הפעלת תהליכים ברקע דרך nohup, &, disown, או screen.
אין פרמטרים.

warn-global-package-install

Event: PreToolUse (Bash)
ברירת מחדל: הנחיה ל-Claude לאשר לפני הרצת npm install -g, yarn global add, או pip install ללא סביבה וירטואלית.
אין פרמטרים.

התנהגות AI

בחן כאשר סוכנים תקועים או מתנהגים בצורה בלתי צפויה.

warn-repeated-tool-calls

Event: PreToolUse (כל הכלים)
ברירת מחדל: הנחיה ל-Claude להשקול מחדש כאשר אותו כלי נקרא 3+ פעמים עם אותם פרמטרים בדיוק - סימן נפוץ שהסוכן תקוע בלולאה.
אין פרמטרים.

Workflow

אכוף workflow מובנה של סוף-תא. מדיניות אלה מופעלות על ה-Stop event ודוחות את Claude מהעצירה עד שכל תנאי נעמדים. הם עוקבים אחר שרשרת תלות טבעית: commit → push → PR → CI. אם מדיניות דוחה, מדיניות מאוחרות יותר בשרשרת דלוקות (deny short-circuits). כל מדיניות workflow היא fail-open: אם הכלי הנדרש לא זמין (למשל gh לא מותקן, אין git remote), המדיניות מתירה עם הודעת מידע המסבירה מדוע ההשפעה דלקה.

require-commit-before-stop

Event: Stop
ברירת מחדל: דוחה עצירה כאשר יש שינויים שלא שונו (modified, staged, או untracked files). מחזירה הודעת מידע כאשר ספריית העבודה נקייה.
אין פרמטרים.

require-push-before-stop

Event: Stop
ברירת מחדל: דוחה עצירה כאשר יש commits שלא דחפו או כאשר ל-branch הנוכחי אין remote tracking branch. מציע git push -u ליצור tracking branch במידת הצורך. נכשל פתוח אם אין remote מוגדר.
פרמטרים:
ParamTypeברירת מחדלתיאור
remotestring"origin"שם remote לדחיפה אליו.
דוגמה:
{
  "policyParams": {
    "require-push-before-stop": {
      "remote": "upstream"
    }
  }
}

require-pr-before-stop

Event: Stop
ברירת מחדל: דוחה עצירה כאשר לא קיים pull request ל-branch הנוכחי, או כאשר ה-PR הקיים סגור/merged. הנחיה ל-Claude ליצור PR עם gh pr create.
אין פרמטרים.
מדיניות זו דורשת GitHub CLI (gh) להתקין ולהיות מואשר. הריצו gh auth login עם personal access token שיש לו scope repo לקריאה pull requests. אם gh לא מותקן או לא מואשר, המדיניות נכשלת פתוח ומדווחת הסיבה ל-Claude.

require-ci-green-before-stop

Event: Stop
ברירת מחדל: דוחה עצירה כאשר בדיקות CI נכשלות או עדיין פועלות ב-branch הנוכחי. בודק הן GitHub Actions workflow runs והן בדיקות bot של צד שלישי (למשל CodeRabbit, SonarCloud, Codecov). מתייחס ל-skipped conclusions כהצלחה. מחזירה הודעת מידע כאשר כל הבדיקות עוברות.
אין פרמטרים.
מדיניות זו דורשת GitHub CLI (gh) להתקין ולהיות מואשר. הריצו gh auth login עם personal access token שיש לו scope repo לקריאה Actions workflow runs ו-Checks API. אם gh לא מותקן או לא מואשר, המדיניות נכשלת פתוח ומדווחת הסיבה ל-Claude.


השבתת מדיניות בודדות

הסר מדיניות ספציפית מ-enabledPolicies בתצורה שלך, או בטל אותה בטאב Policies של הדashboard.
{
  "enabledPolicies": [
    "block-rm-rf",
    "sanitize-api-keys"
  ]
}
מדיניות שלא רשומות ב-enabledPolicies לא פועלות, גם אם קיימות ערכי policyParams עבורן.