תיעוד 99
הגדרת מצב אוטומטי
ספרו למסווג של מצב אוטומטי אילו מאגרים, דליים ודומיינים הארגון שלכם סומך עליהם. הגדירו הקשר סביבה, דרסו את כללי החסימה וההתרה של ברירת המחדל, ובדקו את התצורה שבתוקף באמצעות פקודות המשנה של ה-CLI של מצב אוטומטי.
מצב אוטומטי מאפשר ל-Claude Code לרוץ בלי בקשות הרשאה שגרתיות, על ידי ניתוב קריאות לכלים דרך מסווג שחוסם כל דבר בלתי הפיך, הרסני, או מכוון אל מחוץ לסביבה שלכם. כללי deny וכללי ask מפורשים נבדקים לפני המסווג, ועדיין חוסמים או מציגים בקשה. השתמשו בבלוק ההגדרות autoMode כדי לספר למסווג הזה אילו מאגרים, דליים ודומיינים הארגון שלכם סומך עליהם, כדי שיפסיק לחסום פעולות פנימיות שגרתיות.
[!NOTE]
הדף הזה הוא מדריך ההגדרה. הפעלה וכיבוי של מצב אוטומטי מכוסים בדף מצבי הרשאה:
- מעבר למצב אוטומטי באמצע סשן, או יציאה ממנו: ראו החלפת מצבי הרשאה
- התחלת סשן במצב אוטומטי: ראו התחלה במצב הרשאה אחר
מצב אוטומטי זמין לכל המשתמשים בכל ספק, כולל Anthropic API, Claude Platform on AWS, Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, וסשנים מחוברים של שער אפליקציות Claude. אם Claude Code מדווח שמצב אוטומטי אינו זמין לחשבון שלכם, בדקו את הדרישות המלאות, שמכסות גם את המודלים הנתמכים ואת הבקרה ברמת הארגון בתוכניות Team ו-Enterprise.
כברירת מחדל, המסווג סומך רק על ספריית העבודה ועל ה-remotes המוגדרים של המאגר הנוכחי. פעולות כמו דחיפה לארגון בקרת המקור של החברה, או כתיבה לדלי ענן של הצוות, נחסמות עד שמוסיפים אותן ל-autoMode.environment.
הדף הזה מכסה איך:
- להוסיף נקודת ביקורת אנושית לדחיפות ולבקשות משיכה עם
permissions.ask - להגדיר תשתית מהימנה עם
autoMode.environment - ליצור רשומות סביבה עם
/auto-mode-setup - לסקור סירובים כדי לדעת מה להוסיף בהמשך
#גבולות נפוצים
מצב אוטומטי מתיר דחיפות לכל ענף של המאגר שבו עובדים, כולל ענף ברירת המחדל, וגם יצירת בקשות משיכה כברירת מחדל. ענף שאינו ענף ברירת המחדל, וששמו מסמן אותו כיעד פריסה או פרסום, כמו production, release או gh-pages, אינו מכוסה בברירת המחדל הזו: המסווג שופט דחיפה לשם לפי השיקולים שלו, כולל התייחסות אליה כפריסה לייצור. גם תוכן הדחיפה עדיין נבדק, ולכן force push, סוד שנכנס לקומיט, או שינוי שישלח סודות אל מחוץ למאגר כש-CI או צינור פריסה מריץ אותו, נשארים חסומים.
אם רוצים נקודת ביקורת אנושית לפני פקודות הדחיפה ובקשת המשיכה של Claude, הוסיפו כללי הרשאה: המתכונים למטה משאירים את מצב אוטומטי פעיל לכל השאר.
#הוספת נקודת ביקורת אנושית
המנגנון הישיר ביותר הוא permissions.ask. כללי ask שמוגבלים לפי תוכן, כמו אלה למטה, נבדקים לפני המסווג ותמיד כופים בקשת הרשאה, גם במצב אוטומטי, כי כלל ask מפורש הוא הכוונה המוצהרת שלכם לקבל בקשה עבור הפעולה הזו. הוסיפו את הכללים בההגדרות שלכם:
{
"permissions": {
"ask": [
"Bash(git push *)",
"Bash(gh pr create *)"
]
}
}הכללים האלה תואמים פקודות שמתחילות ב-git push או ב-gh pr create. דחיפה ש-Claude כותב בדרך אחרת, כמו git -C <dir> push או git -c <key>=<value> push, אינה תואמת את הכלל, ולכן אין עליה נקודת ביקורת. לנקודת ביקורת שבודקת את טקסט הפקודה המלא, הוסיפו הוק PreToolUse.
בחרו את המנגנון שמתאים למידת הנחרצות הנדרשת מהגבול:
| גבול | מנגנון | התנהגות במצב אוטומטי |
|---|---|---|
| בקשה לפני הפעולה | permissions.ask | תמיד מציג בקשה לפקודה שתואמת כלל מוגבל לפי תוכן, כמו המתכון למעלה. המסווג אינו יכול לאשר אוטומטית פעולה תואמת. |
| לעולם לא להריץ את הפעולה | permissions.deny | חוסם לפני שהמסווג נשאל. לא המסווג ולא כוונת המשתמש יכולים לדרוס את זה. |
| גבול חד פעמי לסשן הזה | ציינו אותו בשיחה, כמו "don't push until I review" | המסווג חוסם פעולות תואמות, אבל הגבול יכול ללכת לאיבוד אם דחיסת הקשר מסירה את ההודעה שציינה אותו. השתמשו בכלל ask או deny לערובה יציבה. |
#איפה המסווג קורא הגדרות
המסווג קורא את אותו תוכן CLAUDE.md ש-Claude עצמו טוען, כך שהוראה כמו "לעולם אל תעשה force push" ב-CLAUDE.md של הפרויקט מכוונת גם את Claude וגם את המסווג באותו זמן. התחילו שם למוסכמות של הפרויקט ולכללי התנהגות.
לכללים שחלים על פני כמה פרויקטים, כמו תשתית מהימנה או כללי deny ברחבי הארגון, השתמשו בבלוק ההגדרות autoMode. המסווג קורא את autoMode מההיקפים הבאים:
| היקף | קובץ | משמש עבור |
|---|---|---|
| מפתח אחד | ~/.claude/settings.json | תשתית מהימנה אישית |
| ברחבי הארגון | הגדרות מנוהלות | תשתית מהימנה שמופצת לכל המפתחים |
דגל --settings או Agent SDK | JSON מוטמע | דריסות לכל הפעלה, לאוטומציה |
המסווג אינו קורא את autoMode מהגדרות פרויקט ב-.claude/settings.json או ב-.claude/settings.local.json. שני הקבצים נמצאים בספריית המאגר, כך שמאגר שנכנס לניהול גרסאות או שלב בנייה יכולים אחרת להזריק כללי allow משלהם. העבירו כל בלוק autoMode שב-.claude/settings.local.json אל ~/.claude/settings.json.
רשומות מכל היקף משולבות. מפתח יכול להרחיב את environment, allow, soft_deny ו-hard_deny ברשומות אישיות, אבל אינו יכול להסיר רשומות שההגדרות המנוהלות מספקות. מכיוון שכללי allow פועלים כחריגים לכללי חסימה רכה בתוך המסווג, רשומת allow שמפתח מוסיף יכולה לדרוס רשומת soft_deny של הארגון: השילוב הוא תוספתי, לא גבול מדיניות קשיח.
[!NOTE]
המסווג הוא שער שני שרץ אחרי מערכת ההרשאות. לפעולות שאסור להן לרוץ לעולם, בלי קשר לכוונת המשתמש או להגדרת המסווג, השתמשו ב-
permissions.denyבהגדרות מנוהלות. זה חוסם את הפעולה לפני שהמסווג נשאל, ואי אפשר לדרוס אותו.
#הגדרת תשתית מהימנה
ברוב הארגונים, autoMode.environment הוא השדה היחיד שצריך להגדיר. הוא אומר למסווג אילו מאגרים, דליים ודומיינים מהימנים: המסווג משתמש בו כדי להחליט מה המשמעות של "חיצוני", כך שכל יעד שאינו ברשימה הוא יעד אפשרי להוצאת מידע.
claude auto-mode defaults מדפיס שלושה סוגים של רשומות סביבה.
- חריצי הקשר: מתארים את הארגון, המחסנית ומצב האבטחה שלכם, כדי שהמסווג יקרא את שאר הכללים בהקשר שלכם. ברירת המחדל של כל אחד היא
None configured, או ההנחה השמרנית ששמה רשום לצדו:Organization (ארגון)
Primary use of Claude Code (השימוש העיקרי ב-Claude Code): ברירת המחדל היא פיתוח תוכנה
Cloud provider(s) (ספקי ענן)
Repository visibility (נראות המאגר): מאגר נחשב פרטי, אלא אם המארח והשם של ה-remote שלו מצביעים אחרת, או שהמסווג קורא בדיקת נראות מוקדמת יותר בשיחה שמראה שהוא ציבורי.
בבקשות למסווג ש-Claude Code עצמו שולח, המסווג קורא את ההודעות שלכם ואת הפקודות ש-Claude מריץ, ולא את הפלט שלהן. הראיה צריכה להיות משהו שהמסווג יכול לקרוא, כמו הודעה שלכם שמציינת שהמאגר ציבורי. הפלט של
gh repo viewלבדו אינו מגיע אליו.Internal sharing / snippet hosting (שיתוף פנימי / אירוח קטעי קוד): שירותי paste ו-gist ציבוריים נחשבים מחוץ לגבול האמון עד שמציינים אחד מהם
Org-specific CLIs (כלי CLI ייעודיים לארגון)
Secrets management (ניהול סודות)
CI/CD deploy targets (יעדי פריסה של CI/CD)
Network posture (תנוחת רשת)
Host containment (הכלת המארח): ברירת המחדל היא מכונת מפתח רגילה או רץ CI עם אינטרנט פתוח. אם Claude Code רץ בקונטיינר, ב-VM או ב-pod עם רשימת היתר ליציאה (egress allow-list), או עם שכנים שאסור לו לגעת בהם, ציינו את המארחים המותרים, אם נקודת הקצה של המטא-דאטה בענן צריכה להיות נגישה, ואיזה פרויקט ענן, אשכול או registry המשימה משתמשת בהם ובאיזו זהות. עד שהרשומה הזו מציינת את הזהות הזו, המסווג חוסם בקשות לפרטי הגישה של המארח עצמו. נדרש Claude Code גרסה v2.1.257 או חדשה יותר
Protected deployment namespaces / environments (מרחבי שמות / סביבות פריסה מוגנים): נופל חזרה להיוריסטיקה של Sensitive remote targets עד שמציינים אותם
Data retention / declassification (שמירת נתונים / הסרת סיווג)
- חריצי אמון: מציינים מה המסווג מתייחס אליו כבתוך הגבול שלכם. החריצים הם Trusted repo, Source control, Trusted internal domains, Trusted cloud buckets, Key internal services ו-Internal package registry. רשומות המאגר ובקרת המקור ברירת המחדל שלהן היא מאגר העבודה וה-remotes המוגדרים שלו. כל חריץ אמון אחר ברירת המחדל שלו היא
None configured, כך ששום דבר אחר אינו מהימן עד שמוסיפים אותו. הנראות של מאגר מגדירה היקף רק לחומר סודי: מאגר פרטי הוא יעד קביל לחומר סודי, אבל הפיכת מאגר לפרטי לעולם אינה מתירה להכניס אליו סודות, נתונים אישיים או נתונים שהופקדו. המסווג מתייחס לתוכן שהועבר, שהופנה מחדש, או שנקרא לראשונה מחוץ למאגר העבודה כאינו העבודה העצמית של המאגר הזה. - חריצי רגישות: מציינים מה כללי ההגנה מתייחסים אליו כסיכון גבוה. החריצים הם Sensitive data locations & audiences, Sensitive remote targets ו-Protected IaC scopes. כל אחד מהם ברירת מחדל להיוריסטיקה רחבה, למשל התייחסות לכל מארח או מרחב שמות שבשמו מופיע
prodאוproductionכיעד מרוחק רגיש, כך שכללי ההגנה פעילים לפני שמגדירים משהו. ציון יעדים קונקרטיים בחריץ רגישות גורם לכללים האלה לחול על היעדים שצוינו במקום על ההיוריסטיקה.
כדי להוסיף רשומות משלכם לצד ברירות המחדל, כללו במערך את המחרוזת המילולית "$defaults". רשומות ברירת המחדל משובצות במיקום הזה, כך שהרשומות המותאמות יכולות לבוא לפניהן או אחריהן.
הדוגמה הבאה שומרת את רשומות ברירת המחדל ומוסיפה מאגרים, דליים, דומיינים ושירותים של ארגון.
{
"autoMode": {
"environment": [
"$defaults",
"Source control: github.example.com/acme-corp and all repos under it",
"Trusted cloud buckets: s3://acme-build-artifacts, gs://acme-ml-datasets",
"Trusted internal domains: *.corp.example.com, api.internal.example.com",
"Key internal services: Jenkins at ci.example.com, Artifactory at artifacts.example.com"
]
}
}אחרי שמירת ההגדרות, הריצו claude auto-mode config כדי לאשר שהכללים שבתוקף כוללים את הרשומות שלכם.
הרשומות הן פרוזה, לא ביטוי רגולרי ולא תבניות של כלים. המסווג קורא אותן ככללי שפה טבעית. כתבו אותן כמו שהייתם מתארים את התשתית למהנדס חדש. סעיף סביבה מקיף מכסה:
- Organization (ארגון): שם החברה, ולמה Claude Code משמש בעיקר, כמו פיתוח תוכנה, אוטומציית תשתית או הנדסת נתונים
- Source control (בקרת מקור): כל ארגון GitHub, GitLab או Bitbucket שהמפתחים שלכם דוחפים אליו
- Cloud providers and trusted buckets (ספקי ענן ודליים מהימנים): שמות דליים או קידומות ש-Claude צריך להיות מסוגל לקרוא מהם ולכתוב אליהם
- Trusted internal domains (דומיינים פנימיים מהימנים): שמות מארח ל-API, ללוחות בקרה ולשירותים בתוך הרשת שלכם, כמו
*.internal.example.com - Key internal services (שירותים פנימיים מרכזיים): CI, מאגרי ארטיפקטים, אינדקסים פנימיים של חבילות, כלי אירועים
- Internal package registry (מאגר חבילות פנימי): מאגר npm, PyPI או מאגר פרטי אחר שההתקנות צריכות לעבור דרכו, כך שהתקנות שעוקפות אותו לטובת מאגר ציבורי נחסמות
- Sensitive data locations & audiences (מיקומי נתונים רגישים וקהלים): הדליים, מסדי הנתונים או הנתיבים שמחזיקים נתונים אישיים, נתונים עסקיים סודיים, פרטי גישה, נתונים מוסדרים, או חומר רגיש דומה, והקהלים שאיתם מותר לשתף את הנתונים בכל מיקום, כדי שהמסווג יגן על המיקומים האלה במקום לנחש לפי התוכן
- Sensitive remote targets (יעדים מרוחקים רגישים): מרחבי השמות, המארחים או הקונטיינרים שנחשבים לייצור, כך שמעטפות מרוחקות ו-port-forward אליהם דורשים את האישור המפורש שלכם
- Protected IaC scopes (היקפי IaC מוגנים): משאבי התשתית שפעולות
applyאוdestroyשלהם תמיד דורשות שתציינו את השינוי בשמו - Additional context (הקשר נוסף): אילוצי תעשייה מוסדרת, תשתית מרובת דיירים, או דרישות תאימות שמשפיעות על מה שהמסווג צריך להתייחס אליו כמסוכן
תבנית התחלה שימושית: מלאו את השדות שבסוגריים המסולסלים, והסירו כל שורה שאינה חלה.
{
"autoMode": {
"environment": [
"$defaults",
"Organization: {COMPANY_NAME}. Primary use: {PRIMARY_USE_CASE, e.g. software development, infrastructure automation}",
"Source control: {SOURCE_CONTROL, e.g. GitHub org github.example.com/acme-corp}",
"Cloud provider(s): {CLOUD_PROVIDERS, e.g. AWS, GCP, Azure}",
"Trusted cloud buckets: {TRUSTED_BUCKETS, e.g. s3://acme-builds, gs://acme-datasets}",
"Trusted internal domains: {TRUSTED_DOMAINS, e.g. *.internal.example.com, api.example.com}",
"Key internal services: {SERVICES, e.g. Jenkins at ci.example.com, Artifactory at artifacts.example.com}",
"Additional context: {EXTRA, e.g. regulated industry, multi-tenant infrastructure, compliance requirements}"
]
}
}אין צורך למלא את הכל בבת אחת. פריסה סבירה: התחילו עם ברירות המחדל והוסיפו את ארגון בקרת המקור ואת השירותים הפנימיים המרכזיים, מה שפותר את החיוביים השגויים הנפוצים ביותר, כמו דחיפה למאגרים שלכם. אחר כך הוסיפו דומיינים מהימנים ודליי ענן. מלאו את השאר כשמופיעות חסימות.
#יצירת רשומות סביבה עם /auto-mode-setup
הריצו את /auto-mode-setup כדי ש-Claude Code ינסח רשומות autoMode.environment, ולפעמים גם רשומות כללים, מתוך הפרויקט שלכם ומתוך ההפעלות האחרונות בו. אם תקבלו את הטיוטה, Claude Code כותב אותה אל ~/.claude/settings.json.
[!NOTE]
/auto-mode-setupזמין בתוכניות Pro, Max, Ultra, Team ו-Enterprise, ועם מפתח API של Claude Console. בתוכנית Pro, Max, Ultra או Team נדרשת גרסה v2.1.228 ומעלה, או v2.1.233 ומעלה ב-Windows מקורי. בתוכנית Enterprise או עם מפתח API של Claude Console נדרשת גרסה v2.1.283 ומעלה. אם הפקודה חסרה בהפעלה שלכם, ראו/auto-mode-setupמחזיר "Unknown command".
#מה /auto-mode-setup קורא
אם ~/.claude/settings.json כבר מכיל רשומות autoMode, Claude Code מתחיל בשאלה אם להוסיף לרשימת הסביבה שלכם או להחליף אותה, ובכל מקרה שומר את הכללים שכתבתם. אחר כך Claude Code שואל איך אתם משתמשים בפרויקט הזה ומציע שתי סריקות אופציונליות לפני שהוא סורק משהו. בסריקה, Claude Code תמיד קורא את המקורות האלה:
- את
CLAUDE.md,README.md, קובצי התצורה ו-git remotes של הפרויקט הזה - את ההגדרות
autoModeו-permissions.allowשלכם - את המארחים, ה-buckets ושמות הפקודות מתוך הפקודות ש-Claude הריץ בהפעלות האחרונות שלכם בפרויקט הזה, אף פעם לא את ההודעות שלכם
שתי הסריקות האופציונליות מוסיפות מקור אחד כל אחת:
- המילה הראשונה של כל פקודה בהיסטוריית המעטפת שלכם
- המארחים המרוחקים והשמות של המאגרים תחת ספריית הבית שלכם
#סקירה ושמירה של הטיוטה
Claude Code סורק ברקע, ואז מציג לכם את הטיוטה. אתם מקבלים אותה או דוחים אותה בשלמותה, ולכן ערכו את ~/.claude/settings.json אחר כך כדי להתאים רשומות בודדות. כשאתם מקבלים, Claude Code כותב את הטיוטה ומיישב אותה עם ההגדרות שכבר יש לכם:
- Claude Code כותב את רשימת
environmentבלי"$defaults", כי הטיוטה מפרטת את הרשומות המובנות שהשאירה ללא שינוי - Claude Code כולל
"$defaults"בכל אחת מרשימותallow,soft_denyו-hard_denyשהטיוטה מוסיפה להן רשומות, אלא אם כבר כתבתם רשימתallowבלי זה, כדי שהכללים המובנים שלא החלפתם יישארו בתוקף - אחרי השמירה, Claude Code מציע להסיר כללי
permissions.allowב-~/.claude/settings.jsonשמצב אוטומטי מתעלם מהם, כמוBash(*), או שמאשרים אוטומטית פקודות הרסניות
אחר כך הריצו claude auto-mode config כדי לראות את התוצאה בפועל.
#כיבוי /auto-mode-setup
אחרי שמצב אוטומטי חסם כמה פעולות ועדיין אין לכם רשומות autoMode.environment, Claude Code מציג דיאלוג שכותרתו "Teach auto mode about your environment?" בסוף תור ומציע להריץ עבורכם את /auto-mode-setup. כדי לעצור את ההצעה אבל להשאיר את הפקודה, בחרו Don't show again בדיאלוג הזה.
כדי לכבות גם את הפקודה וגם את ההצעה, הוסיפו את רשומת skillOverrides הזו אל ~/.claude/settings.json:
{
"skillOverrides": {
"auto-mode-setup": "off"
}
}/auto-mode-setup היא פקודה מובנית ולא מיומנות ארוזה, ולכן רשומת skillOverrides הזו עדיין חלה עליה, אבל disableBundledSkills לא מכבה אותה.
#/auto-mode-setup מחזיר "Unknown command"
אם הקלדה של /auto-mode-setup בשורת Claude Code מדפיסה Unknown command: /auto-mode-setup, בדקו את הסיבות האלה:
- הפעלה ראשונה אחרי התקנה או שדרוג: התחילו הפעלה חדשה. אם הפקודה עדיין חסרה שם, ראו את ההגדרות שבהן גם הפעלות מאוחרות יותר מתחילות בלעדיה.
- גרסה מיושנת: הריצו
claude --versionבמעטפת. אם הגרסה נמוכה מהמינימום לתוכנית שלכם, עדכנו את Claude Code. - טלמטריה כבויה, ספק צד שלישי, או Claude apps gateway: לפני v2.1.304, הפקודה לא זמינה בהפעלות שבהן שליפת feature-flag כבויה. אם ההפעלה שלכם היא אחת מהן, עדכנו את Claude Code ל-v2.1.304 ומעלה.
בהפעלת ענן, הפקודה מדפיסה /auto-mode-setup isn't available in this environment. במקום זאת. הריצו אותה בהפעלה אינטראקטיבית בטרמינל.
#דריסת כללי החסימה וההתרה
שלושה שדות נוספים מאפשרים להחליף את רשימות הכללים המובנות של המסווג:
autoMode.hard_deny: גבולות אבטחה ללא תנאיautoMode.soft_deny: פעולות הרסניות שכוונת המשתמש יכולה לשחררautoMode.allow: חריגים לכללי חסימה רכה
כל אחד מהם הוא מערך של תיאורי פרוזה, שנקראים ככללים בשפה טבעית. לחסימות קשיחות שמבוססות על תבנית כלי ורצות לפני המסווג, השתמשו ב-permissions.deny.
בתוך המסווג, הקדימות פועלת בארבע דרגות:
- כללי
hard_denyחוסמים ללא תנאי. כוונת המשתמש וחריגיallowלא חלים. - כללי
soft_denyחוסמים אחר כך. כוונת המשתמש וחריגיallowיכולים לדרוס אותם. - כללי
allowדורסים אחר כך כלליsoft_denyתואמים כחריגים. - כוונת משתמש מפורשת דורסת את החסימות הרכות שנותרו: אם הודעת המשתמש מתארת ישירות ובאופן ספציפי את הפעולה המדויקת ש-Claude עומד לבצע, המסווג מתיר אותה גם כשכלל
soft_denyתואם.
בקשות כלליות לא נחשבות לכוונה מפורשת. בקשה מ-Claude "clean up the repo" לא מאשרת force-pushing, אבל בקשה מ-Claude "force-push this branch" כן.
כדי להקל, הוסיפו ל-allow כשהמסווג מסמן שוב ושוב דפוס שגרתי שהחריגים שבברירת המחדל לא מכסים. כדי להדק, הוסיפו ל-soft_deny סיכונים הרסניים ייחודיים לסביבה שלכם שברירות המחדל מפספסות, או ל-hard_deny גבולות אבטחה שאסור לחצות אף פעם.
כדי לשמור את הכללים המובנים בזמן שמוסיפים כללים משלכם, כללו את המחרוזת המילולית "$defaults" במערך. כללי ברירת המחדל משובצים במיקום הזה, כך שהכללים המותאמים שלכם יכולים לבוא לפניהם או אחריהם, ואתם ממשיכים לרשת עדכונים כשהרשימה המובנית משתנה בין גרסאות.
הדוגמה הבאה שומרת את ברירות המחדל בכל ארבע הרשימות ומוסיפה כללים ייחודיים לארגון לכל אחת.
{
"autoMode": {
"environment": [
"$defaults",
"Source control: github.example.com/acme-corp and all repos under it"
],
"allow": [
"$defaults",
"Deploying to the staging namespace is allowed: staging is isolated from production and resets nightly",
"Writing to s3://acme-scratch/ is allowed: ephemeral bucket with a 7-day lifecycle policy"
],
"soft_deny": [
"$defaults",
"Never run database migrations outside the migrations CLI, even against dev databases",
"Never modify files under infra/terraform/prod/: production infrastructure changes go through the review workflow"
],
"hard_deny": [
"$defaults",
"Never send repository contents to third-party code-review APIs"
]
}
}[!CAUTION]
הגדרה של אחד מ-
environment,allow,soft_denyאוhard_denyבלי"$defaults"מחליפה את כל רשימת ברירת המחדל של אותו מקטע. אם תגדירו מערך בלי"$defaults", אתם משליכים את הכללים המובנים של אותו מקטע:
soft_deny: כל כלל חסימה רכה מובנה, כולל force push,curl | bash, פריסות לייצור, ו-auto-mode bypasshard_deny: כלל דליפת הנתונים המובנה
כל מקטע מוערך בנפרד, כך שהגדרת environment לבד משאירה את רשימות ברירת המחדל של allow, soft_deny ו-hard_deny ללא שינוי.
השמיטו את "$defaults" רק כשאתם מתכוונים לקחת בעלות מלאה על הרשימה. כדי לעשות זאת בבטחה, הריצו claude auto-mode defaults כדי להדפיס את הכללים המובנים, העתיקו אותם לקובץ ההגדרות שלכם, ואז סקרו כל כלל מול ה-pipeline וסבילות הסיכון שלכם.
#עריכת כללים מתוך /permissions
כדי להציג ולערוך כללי מסווג ורשומות environment בלי לפתוח קובץ הגדרות, הריצו /permissions ובחרו בלשונית Auto mode. הלשונית דורשת Claude Code בגרסה v2.1.246 ומעלה, והיא מופיעה רק כשמצב אוטומטי זמין להפעלה שלכם.
Claude Code מציג רשומות מהגדרות מנוהלות או מדגל --settings לקריאה בלבד, ושומר כל שינוי שאתם עושים בלשונית אל ~/.claude/settings.json.
#ניתוב כל פקודות המעטפת דרך המסווג
כברירת מחדל, כללי התרה צרים של Bash ו-PowerShell כמו Bash(npm test) נשארים בתוקף במצב אוטומטי. Claude Code פותר אותם לפני שהמסווג רץ, אלא אם הפקודה נושאת דומיינים מותרים לכל פקודה. Claude Code משעה רק את הכללים הרחבים שמעניקים הרצת קוד שרירותית, כמו Bash(*) או מפרשים עם תווי הכללה, יחד עם כל כלל שמציין את Monitor, כי פקודות Monitor רצות דרך המעטפת. המשמעות היא שכלל צר עדיין יכול להעביר ארגומנט הרסני בלי שהמסווג יראה אותו, למשל נתיב סקריפט או דגל שהקידומת של הכלל לא צפתה.
הגדירו את autoMode.classifyAllShell ל-true כדי להשעות כל כלל התרה של Bash ו-PowerShell בזמן שמצב אוטומטי פעיל, כך שהמסווג מעריך כל פקודת מעטפת בלי קשר לרשימת ההתרה שלכם, מלבד הסרות בנתיב קריטי.
{
"autoMode": {
"classifyAllShell": true
}
}זה מחליף השהיה בכיסוי: פקודה שכלל התרה היה מאשר מיד מחכה עכשיו להחלטת מסווג, וכל פקודת מעטפת נספרת כקריאה למסווג.
ההגדרה חלה רק בזמן שמצב אוטומטי פעיל, וכללי ההתרה שלכם מתנהגים כרגיל במצבי הרשאה אחרים.
#בדיקת ברירות המחדל והתצורה בפועל
פקודות המשנה claude auto-mode עוזרות לבדוק, לאמת ולאפס את התצורה שלכם.
הדפיסו את כללי environment, allow, soft_deny ו-hard_deny המובנים כ-JSON:
claude auto-mode defaultsכדי לקרוא את הניסוח המלא של כלל אחד בלי להעביר דרך jq, העבירו --label עם תחילת התווית של הכלל, למשל claude auto-mode defaults --label 'Git Destructive'. ההתאמה היא קידומת בלי תלות ברישיות על התווית של כל כלל, ומקטעים בלי התאמה מודפסים כרשימות ריקות.
הדפיסו את מה שהמסווג באמת משתמש בו כ-JSON, עם ההגדרות שלכם במקום שהוגדרו וברירות מחדל אחרת:
claude auto-mode configגם defaults וגם config מדפיסים את ארבע רשימות הכללים כאובייקט JSON יחיד, כשכל כלל הוא מחרוזת פרוזה. זו דוגמה מקוצרת:
{
"allow": [
...
"Test Artifacts: Hardcoded test API keys, placeholder credentials in examples, or hardcoding test cases. Placeholder means authored as a placeholder , a file or value copied from a real secret or sensitive path is never a test artifact (see Sensitive-Source Provenance).",
...
],
"soft_deny": [
"Git Destructive [named+specifics , **must name:** the destructive operation and its target]: Force pushing (`git push --force`), deleting remote branches, tags, or releases, or rewriting remote history. Also `git commit --amend` when the commit being rewritten is not the agent's own unpushed work: either no prior `git commit` is visible (HEAD pre-dates the session), or a `git push` of the current branch is visible after the most recent commit (it has been pushed). Clears when the user asked to amend/reword/fixup, or when it is a message-only reword (`--amend -m …`, nothing newly staged) of a commit the agent visibly created this session.",
...
],
"hard_deny": [...],
"environment": [
...
"**Trusted repo**: The git repository the agent started in (its working directory) and its configured remote(s). When the repo's public/private visibility is given , by the Repository visibility entry or the user's own message , use it to scope what is OK to commit or push there: confidential material is fine in a private repo; in a public one, only that repo's own work is , and content ported, repointed, or first read from outside this session's repo is not its own work, whoever directed the port. Visibility scopes confidential material only: secrets and sensitive data (personal & entrusted) are never cleared into any repo by its visibility (see Definitions).",
...
]
}קבלו משוב AI על רשומות allow, soft_deny, hard_deny ו-environment המותאמות שלכם:
claude auto-mode critiqueאם כתבתם כללים מותאמים, claude auto-mode critique סוקר אותם ומסמן רשומות שהן עמומות, מיותרות, או שסביר שיגרמו לתוצאות חיוביות שגויות.
כדי להשליך את ההתאמות שלכם ולחזור לברירות המחדל המובנות, הריצו את פקודת המשנה לאיפוס, שמסירה את מקטע autoMode מקובץ הגדרות המשתמש שלכם:
claude auto-mode resetהפקודה מסכמת מה היא תסיר ושואלת Reset auto mode configuration to defaults? לפני הכתיבה. העבירו --yes כדי לדלג על האישור. האיפוס משנה רק את ~/.claude/settings.json: כללי autoMode מהגדרות מנוהלות או מדגל --settings עדיין חלים.
#סקירת חסימות
כדי לאפשר לקלוד לנסות שוב פעולה שנחסמה, השתמשו בלשונית Recently blocked בתוך /permissions:
1. פתיחת הלשונית
הריצו /permissions בסשן כדי לפתוח את תיבת ההרשאות, ואז בחרו את הלשונית Recently blocked.
2. בדיקת הפעולה
סמנו את שורת הפעולה וקראו את הפקודה או הקלט שלה מתחת לרשימה. הסתמכו על הפקודה או הקלט, לא על תיאור השורה, שקלוד או הכלי כתבו.
3. אישור הפעולה
לחצו על r כדי לאשר את הפעולה ולאפשר לקלוד לנסות אותה שוב.
4. סגירת התיבה
לחצו על Esc כדי לסגור את התיבה ולהחיל את האישור. אם קלוד עבד כשפתחתם את /permissions, שלחו הודעה אחרי שקלוד מסיים כדי לאפשר לקלוד לנסות שוב את הפעולה. אחרת, אין צורך לשלוח דבר: קלוד ממשיך עכשיו ועשוי לנסות אותה שוב. אם הוא לא מנסה, ציינו את שם הפעולה בהודעה הבאה, כפי שמתואר באישורים שאתם מציינים בשיחה.
אישור פעולה לא מוסיף כלל הרשאה. במצב אוטומטי, פעולה שמנסים שוב עוברת את הבדיקה מחדש, ולכן היא יכולה להיחסם שוב. כדי לאפשר לפקודה לעבור מעכשיו, הוסיפו כלל allow.
אם אינכם רוצים שקלוד ינסה שוב מיד, אפשר לאשר פעולה למועד מאוחר יותר, לבטל אישור, או לסגור את התיבה ולבטל את האישורים:
- אישור למועד מאוחר יותר: לחצו על
Enterבשורה, ואז עלEsc. השורה יוצאת מהלשונית, וקלוד עשוי לנסות שוב את הפעולה אחרי ההודעה הבאה, כשקלוד מסיים. אם לחצתם גם עלrבשורה אחרת, השורה שבה לחצתם עלEnterנשארת בלשונית וקלוד לא מקבל מידע על הפעולה הזו. אשרו את השורה בביקור הבא, או לחצו עלrבשתיהן - ביטול אישור: לפני שלוחצים על
Esc, לחצו עלEnterבשורה, בין שאישרתם אותה עםEnterובין שאישרתם עםr - סגירת התיבה וביטול האישורים: לחצו על
Ctrl+Cפעמיים
אי אפשר לאשר פעולה מהלשונית כשהשורה שלה לא יכולה להציג את כל הפקודה או הקלט, או כשאין לפעולה שורה:
- השורה מציגה
This row can't be approved here: אם התכוונתם לפעולה, אמרו זאת לקלוד בהודעה הבאה וקלוד עשוי לנסות אותה שוב - אין שורה, ויש
Not runאו שגיאת מסווג בשיחה: המסווג של המצב האוטומטי לא נתן פסיקה. כדי לראות איך להריץ את הפעולה, קראו את מצב אוטומטי לא יכול לקבוע את הבטיחות של פעולה
#תיקון חסימה עם כלל allow, רשומת סביבה, או ניסיון חוזר
הודעות נראות כמו bash blocked by auto mode · /permissions · Auto mode: [Data Exfiltration]. כדי לקרוא את הפקודה או כתובת ה-URL שמאחורי הודעה כזו, השתמשו בלשונית Recently blocked, ב-hook, או בשיחה:
- לשונית Recently blocked: סמנו את שורת הפעולה. במצב קורא מסך, כל פקודה וקלט מופיעים לפני הרשימה.
- Hook: כדי ללכוד באופן תכנותי את הקלט המדויק של חסימות, הוסיפו hook מסוג
PermissionDenied, שמקבל אותו כ-tool_input. אם ה-hook שלכם קורא אתreason, צפו שלא יהיה קידומתAuto mode:, וטקסט כגוןBlocked by classifierבמקוםNo reason provided. - שיחה: מצאו את קריאת הכלי. אם הקריאה מופיעה מקוצרת או מקופלת לשורת סיכום כגון
Ran 3 shell commands, לחצו עלCtrl+Oכדי לפתוח את מציג התמליל, שמרחיב אותה.
הטקסט מתחת לקריאה אומר אם יש משהו לתקן. שורה עמומה Not run · auto mode's check had no usable answer, או טקסט שמדווח על בעיה במסווג עצמו, כגון Auto mode could not evaluate this action, פירושו ש-Claude Code חסם את הקריאה בלי פסיקה מהמסווג. עבור שורת Not run, לחצו על Ctrl+O כדי לקרוא את ההודעה המלאה, ואז ראו מצב אוטומטי לא יכול לקבוע את הבטיחות של פעולה או השרת לא החזיר פסיקת בטיחות כדי לדעת מה לעשות.
אחרת, שורה Blocked by auto mode פירושה שהמסווג שפט שהקריאה לא בטוחה. כדי לאפשר לקריאה לעבור, בצעו את הצעד שמתאים למה שקלוד ניסה להגיע אליו או לעשות:
- יעד שקלוד צריך לאורך המשימה, כגון רישום חבילות, דומיין פנימי, או מארח מאגר: הוסיפו אותו ל-
autoMode.environment. - פקודה שאתם רוצים להריץ בלי סקירה מעכשיו: הוסיפו כלל
allow. - פעולה חד פעמית שאכן התכוונתם אליה: ציינו את הכוונה בהודעה הבאה ואפשרו לקלוד לנסות שוב.
אפשר להוסיף את רשומת הסביבה או את כלל allow מלשונית Auto mode בתיבת /permissions.
הטקסט בסוגריים מרובעים, כגון [Data Exfiltration], הוא שם הכלל שהמסווג התאים. כדי לקרוא את הניסוח המלא של הכלל, ראו בדיקת ברירות המחדל והתצורה האפקטיבית.
#תיקון חסימות חוזרות
חסימות חוזרות לאותו יעד בדרך כלל אומרות שהמסווג חסר הקשר. הוסיפו את היעד ל-autoMode.environment, או הריצו /auto-mode-setup כדי ש-Claude Code ינסח את הרשומות, ואז הריצו claude auto-mode config כדי לאשר שהשינוי נכנס לתוקף.
#ראו גם
- מצבי הרשאה: מהו מצב אוטומטי, מה הוא חוסם כברירת מחדל, ואילו סשנים מתחילים בו
- הגדרות מנוהלות: פריסת תצורת
autoModeבכל הארגון - הרשאות: כללי allow, ask ו-deny שחלים לפני שהמסווג רץ
- כל ההגדרות: כל מפתח הגדרות, כולל
autoMode