סקיל Git Guardrails
git-guardrails הוא סקיל לקלוד קוד שמתקין מנגנון בטיחות שחוסם פקודות גיט מסוכנות לפני שהן רצות. כשעובדים עם סוכן AI שמריץ פקודות, פקודה הרסנית אחת כמו push בכוח, reset קשיח או מחיקת ענף יכולה למחוק עבודה של ימים. הסקיל מתקין hook שמיירט את הפקודות האלה וחוסם אותן, וקלוד מקבל הודעה שאין לו הרשאה להריץ אותן. כך מקבלים רשת ביטחון שמונעת תאונות לפני שהן קורות. בפרויקטי הפיתוח שאני מוביל, מנגנון כזה הוא ביטוח זול מול נזק יקר. במדריך תקבלו את שיטת ההתקנה המלאה, ארבעה תרחישי שימוש, וצ'קליסט לעבודה נכונה.
פקודת התקנה
npx skills add mattpocock/skills@git-guardrails-claude-code -g -y
ההתקנה מתבצעת דרך מנהל החבילות הרשמי של הסקילים בפקודה אחת. הסקיל הוא קובץ Markdown פתוח מהמאגר של מאט פוקוק, וכולל סקריפט hook מקומי. אפשר להוריד ולבדוק את הקוד דרך הכפתורים שבראש העמוד.
מה הסקיל כולל?
הסקיל מתקין hook מסוג PreToolUse שמיירט פקודות Bash וחוסם את הפקודות ההרסניות, עם בחירה אם להחיל זאת על פרויקט בודד או על כל הפרויקטים.
קוד הסקיל המלא
---
name: git-guardrails-claude-code
description: Set up Claude Code hooks to block dangerous git commands (push, reset --hard, clean, branch -D, etc.) before they execute. Use when user wants to prevent destructive git operations, add git safety hooks, or block git push/reset in Claude Code.
---
# Setup Git Guardrails
Sets up a PreToolUse hook that intercepts and blocks dangerous git commands before Claude executes them.
## What Gets Blocked
- `git push` (all variants including `--force`)
- `git reset --hard`
- `git clean -f` / `git clean -fd`
- `git branch -D`
- `git checkout .` / `git restore .`
When blocked, Claude sees a message telling it that it does not have authority to access these commands.
## Steps
### 1. Ask scope
Ask the user: install for **this project only** (`.claude/settings.json`) or **all projects** (`~/.claude/settings.json`)?
### 2. Copy the hook script
The bundled script is at: [scripts/block-dangerous-git.sh](scripts/block-dangerous-git.sh)
Copy it to the target location based on scope:
- **Project**: `.claude/hooks/block-dangerous-git.sh`
- **Global**: `~/.claude/hooks/block-dangerous-git.sh`
Make it executable with `chmod +x`.
### 3. Add hook to settings
Add to the appropriate settings file:
**Project** (`.claude/settings.json`):
```json
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [
{
"type": "command",
"command": "\"$CLAUDE_PROJECT_DIR\"/.claude/hooks/block-dangerous-git.sh"
}
]
}
]
}
}
```
**Global** (`~/.claude/settings.json`):
```json
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [
{
"type": "command",
"command": "~/.claude/hooks/block-dangerous-git.sh"
}
]
}
]
}
}
```
If the settings file already exists, merge the hook into existing `hooks.PreToolUse` array — don't overwrite other settings.
### 4. Ask about customization
Ask if user wants to add or remove any patterns from the blocked list. Edit the copied script accordingly.
### 5. Verify
Run a quick test:
```bash
echo '{"tool_input":{"command":"git push origin main"}}' | <path-to-script>
```
Should exit with code 2 and print a BLOCKED message to stderr.
מה זה git-guardrails ולמה הסקיל הזה שונה?
git-guardrails פותר סיכון אמיתי בעבודה עם סוכני AI: פקודת גיט הרסנית אחת יכולה למחוק שעות או ימים של עבודה. push בכוח שדורס היסטוריה, reset קשיח שמוחק שינויים, או מחיקת ענף, כל אלה בלתי הפיכים כמעט. כשקלוד מריץ פקודות לבד, מספיקה טעות אחת. הסקיל מוסיף שכבת הגנה שמונעת את התאונות האלה.
מה שמייחד אותו הוא שהוא פועל ברמת ה-hook, לא ברמת ההמלצה. הוא מתקין hook מסוג PreToolUse שמיירט כל פקודת Bash לפני שהיא רצה, ובודק אם היא ברשימת הפקודות ההרסניות. אם כן, היא נחסמת לחלוטין וקלוד מקבל הודעה שאין לו הרשאה. זו לא בקשה יפה להיזהר, אלא חסם טכני אמיתי. אפשר להחיל אותו על פרויקט בודד או על כל הפרויקטים, לפי הצורך.
ההבדל מורגש בשקט הנפשי. במקום לקוות שקלוד לא יטעה, יש מנגנון שמבטיח זאת. בשילוב עם סקיל diagnosing-bugs וזרימות פיתוח אחרות, אפשר לתת לקלוד יותר אוטונומיה בבטחה, כי הפעולות המסוכנות באמת חסומות.
מה git-guardrails נותן לקלוד קוד?
הסקיל מוסיף לקלוד רשת ביטחון אמיתית: חסם טכני שמונע פקודות גיט הרסניות, כך שאפשר לעבוד עם יותר אוטונומיה ופחות חשש.
חסם ברמת ה-hook
הסקיל לא מסתפק בהמלצה, אלא מתקין hook מסוג PreToolUse שמיירט פקודות לפני הרצה. זה חסם טכני אמיתי, לא בקשה להיזהר, ולכן הוא עובד גם כשקלוד פועל באוטונומיה מלאה.
רשימת פקודות מסוכנות
הסקיל חוסם בדיוק את הפקודות שעלולות לגרום לנזק בלתי הפיך: push על כל גרסאותיו, reset קשיח, clean, מחיקת ענף ושחזור גורף. הרשימה ממוקדת בפקודות ההרסניות באמת, בלי להפריע לעבודה הרגילה.
היקף לבחירתכם
אפשר להתקין את ההגנה על פרויקט בודד בלבד או על כל הפרויקטים שלכם. כך מי שרוצה הגנה גורפת מקבל אותה בכל מקום, ומי שמעדיף שליטה פרטנית יכול להחיל אותה רק היכן שצריך.
הודעה ברורה לקלוד
כשפקודה נחסמת, קלוד מקבל הודעה מפורשת שאין לו הרשאה אליה. כך הוא לא מנסה לעקוף, אלא מבין שמדובר במגבלה מכוונת וממשיך בדרך בטוחה. השקיפות הזאת שומרת על זרימת עבודה חלקה.
ארבע היכולות הופכות עבודה עם סוכן ממסוכנת לבטוחה. בעבודות שלי, רשת ביטחון כזו מאפשרת לתת לקלוד לעבוד מהר ובאוטונומיה, בידיעה שהפעולות ההרסניות פשוט חסומות.
למי הסקיל הזה מתאים?
כל מי שעובד עם קלוד קוד: זה הקהל המובהק. ברגע שסוכן מריץ פקודות לבד, רשת ביטחון מפני פקודות הרסניות היא הכרחית. השילוב עם סקיל codebase-design ועם זרימות עבודה מסודרות נותן עבודה בטוחה ואיכותית.
מובילי פיתוח שאחראים על ריפו: כשכמה אנשים וסוכנים נוגעים באותו ריפו, חסימת push בכוח ו-reset קשיח מונעת תאונות שמשפיעות על כולם. זה כלי ניהול סיכונים פשוט ויעיל.
מפתחים שנותנים לסוכן אוטונומיה: ככל שרוצים לתת לקלוד לעבוד לבד יותר, חשוב יותר שהפעולות המסוכנות יהיו חסומות. הסקיל מאפשר להעלות את רמת האוטונומיה בלי להעלות את הסיכון.
צוותים וסוכנויות: התקנה גורפת על כל הפרויקטים מבטיחה סטנדרט בטיחות אחיד לכל המפתחים. גם בעבודות אוטומציה שלי, חסימה של פעולות הרסניות היא חלק מבניית מערכת אמינה.
מפתחים מתחילים: מי שעדיין לומד גיט מוגן מטעויות נפוצות שעלולות למחוק עבודה. ההגנה נותנת מרחב ללמוד בלי לפחד מנזק בלתי הפיך.
מי שפחות יתאים: מי שזקוק באופן קבוע לפקודות שהסקיל חוסם, למשל בתהליך deployment ידני, יצטרך להתאים את הרשימה או לכבות זמנית. לרוב המשתמשים, הפקודות החסומות אינן חלק מהעבודה היומית.
איך git-guardrails עזר לי בפרויקטים אמיתיים
מניעת push בכוח שדרס עבודה
בעבר, push בכוח לא זהיר דרס עבודה של אחרים. אחרי התקנת הסקיל, ניסיון כזה נחסם אוטומטית וקלוד קיבל הודעה שאין לו הרשאה. התאונה שהייתה קורית פשוט לא קרתה, וזה חסך שחזור מתסכל.
אוטונומיה גבוהה יותר בבטחה
רציתי לתת לקלוד לעבוד יותר לבד, אבל חששתי מפקודות הרסניות. עם הסקיל, הפעולות המסוכנות חסומות, אז יכולתי להעלות את רמת האוטונומיה בביטחון. קלוד עבד מהר יותר, ואני ישנתי בשקט.
סטנדרט בטיחות אחיד לצוות
בצוות, רציתי שכל המפתחים יהיו מוגנים מאותן טעויות. התקנת הסקיל ברמה גלובלית נתנה לכולם את אותה רשת ביטחון. הסטנדרט האחיד הוריד את הסיכון של תאונות גיט בכל הפרויקטים.
הגנה על מפתח שלומד גיט
מפתח חדש עדיין לא הכיר את הפקודות המסוכנות. הסקיל חסם אותן עבורו, כך שהוא יכול היה ללמוד ולהתנסות בלי הסיכון למחוק עבודה בטעות. ההגנה נתנה לו ביטחון להתקדם מהר יותר.
ארבעת המקרים מראים שהסקיל הוא ביטוח זול מול נזק יקר. פקודה הרסנית אחת יכולה לעלות בימי עבודה, והסקיל פשוט מונע אותה. זו רשת ביטחון שמאפשרת לעבוד מהר ובאוטונומיה בלי לחשוש מתאונות.
סיכום
סקיל git-guardrails הוא כלי חובה לכל מי שעובד עם קלוד קוד. הוא מתקין hook שחוסם פקודות גיט הרסניות לפני שהן רצות, ובכך נותן רשת ביטחון אמיתית שמאפשרת לעבוד עם יותר אוטונומיה ופחות חשש מתאונות.
אם אתם מתחילים, התקינו אותו ובחרו אם להחיל על פרויקט בודד או על הכול. מהרגע הזה, פקודות מסוכנות פשוט ייחסמו, וקלוד יקבל הודעה ברורה. תרגישו את השקט הנפשי כבר מהפעולה הראשונה.
בפוסטים הבאים אמשיך לסקור סקילים שמשדרגים את הבטיחות ואיכות הפיתוח. האתר של דביר נעמן מרכז את כל הכלים, השיטות והליווי שאני מציע לעסקים שרוצים לעבוד חכם ובטוח עם בינה מלאכותית.
שיתוף הסקיל
שאלות ותשובות
מה זה בעצם הסקיל git-guardrails?
זה סקיל לקלוד קוד שמתקין מנגנון בטיחות שחוסם פקודות גיט מסוכנות לפני שהן רצות. הוא מתקין hook שמיירט פקודות כמו push בכוח, reset קשיח ומחיקת ענף, וחוסם אותן. כך מקבלים רשת ביטחון שמונעת אובדן עבודה כשעובדים עם סוכן AI שמריץ פקודות.
אילו פקודות הסקיל חוסם?
הוא חוסם את הפקודות שעלולות לגרום לנזק בלתי הפיך: push על כל גרסאותיו כולל בכוח, reset קשיח, clean שמוחק קבצים, מחיקת ענף, ושחזור גורף של קבצים. הרשימה ממוקדת בפקודות ההרסניות באמת, כך שהעבודה הרגילה עם גיט נמשכת כרגיל.
איך מתקינים את הסקיל בקלוד קוד?
בפקודה אחת דרך מנהל החבילות הרשמי של הסקילים, כפי שמופיע בקופסת ההתקנה למעלה. הסקיל הוא קובץ Markdown פתוח מהמאגר של מאט פוקוק, וכולל סקריפט hook. בהתקנה הוא ישאל אם להחיל על פרויקט בודד או על כל הפרויקטים.
מה זה hook מסוג PreToolUse?
זה מנגנון של קלוד קוד שרץ לפני שכלי כלשהו מופעל, ויכול לאשר או לחסום אותו. הסקיל משתמש בו כדי ליירט כל פקודת Bash ולבדוק אם היא ברשימת הפקודות המסוכנות. אם כן, ההרצה נחסמת. זה הופך את ההגנה לחסם טכני אמיתי ולא רק להמלצה.
האם הסקיל בטוח להתקנה?
מאוד. מטרתו דווקא להגביר אבטחה, על ידי חסימת פעולות הרסניות. הוא פועל מקומית דרך hook וסקריפט, בלי שליחת מידע לצד שלישי, בלי מפתחות API ובלי טלמטריה. למעשה, הוא אחד הסקילים שהכי משפרים את הבטיחות של עבודה עם סוכן.
האם זה יפריע לעבודת הגיט הרגילה שלי?
לא. הסקיל חוסם רק פקודות הרסניות ספציפיות, לא את העבודה היומית עם גיט. commit, pull, ו-branch רגיל ממשיכים לעבוד כרגיל. רק כשמנסים פעולה שעלולה למחוק עבודה, ההגנה נכנסת לפעולה. כך מקבלים בטיחות בלי לפגוע בזרימה.
מה קורה אם אני באמת צריך פקודה שנחסמה?
אם אתם זקוקים באופן קבוע לפקודה שהסקיל חוסם, למשל push כחלק מ-deployment, אפשר להתאים את הרשימה או לכבות את ההגנה זמנית. ההגנה נועדה למנוע טעויות אוטומטיות, לא לחסום אתכם. השליטה נשארת בידיכם.
האם הסקיל מתאים גם למפתחים מנוסים?
בהחלט. אפילו מפתחים מנוסים טועים לפעמים בפקודה הרסנית, במיוחד בעבודה מהירה או עם סוכן אוטונומי. רשת הביטחון מועילה לכולם, וההתקנה הגלובלית מבטיחה סטנדרט בטיחות אחיד. זו הגנה שעולה דקה להתקין ויכולה לחסוך ימים של שחזור.