- הבנה מלאה של מערכת ה-Skills וכל שדה ב-YAML Frontmatter (כולל
tools,agent,hooks) - לפחות 3 Custom Slash Commands פעילים ב-
.claude/commands/ - Skill מלא למחולל בלוגים בעברית (
/write-blog-he) — מוכן לשימוש - Skill עם Shell Commands שמזריק נתונים דינמיים מהפרויקט
- ספריית פקודות מתועדת עם הערכות עלות לכל Skill
- יכולת להבחין מתי להשתמש ב-User-Invoked לעומת Auto-Invoked
- שליטה ב-Forked Context — מתי להפעיל ומתי לא
- שליטה ב-Custom Agents עם
maxTurnsו-disallowedTools— סוכנים מוגבלים למשימות ספציפיות - 5 Templates מוכנים לשימוש — Code Review, Changelog, Health Check, Meeting Notes, Migration
- יכולת לשרשר Skills ב-3 גישות: Orchestrator, Agent Composition, ו-Headless Chaining
- נוסחת ROI לחישוב ההחזר על כל Skill שאתה בונה
- תוכל/י לכתוב Skill מאפס עם YAML Frontmatter מלא ולהפעיל אותו כפקודת /slash
- תוכל/י להחליט מתי להשתמש ב-User-Invoked לעומת Auto-Invoked ומתי להפעיל Forked Context
- תוכל/י לשלב Shell Commands להזרקת נתונים דינמיים לתוך Skills
- תוכל/י לשרשר Skills באמצעות Orchestrator, Agent Composition, או Headless Chaining
- תוכל/י לחשב ROI על כל Skill שאתה בונה ולהעריך אם ההשקעה משתלמת
- פרקים קודמים: פרק 1 (Hooks), פרק 2 (Custom Agents), פרק 3 (MCP) — Skills משתמשים בכל שלושת הרכיבים האלה
- כלים נדרשים: Claude Code v2.1.0+ מותקן, תיקיית
.claude/commands/קיימת בפרויקט (או~/.claude/commands/לגלובלי) - ידע מקדים: הבנה בסיסית של Markdown ו-YAML (אם אתה יודע לכתוב README — אתה מוכן)
- זמן משוער לפרק: 75-90 דקות (כולל בניית 3 Skills מעשיים)
בפרק הקודם (פרק 3: MCP) למדת לחבר את Claude Code לשירותים חיצוניים — דפדפנים, מסדי נתונים, GitHub ועוד. עכשיו יש ל-Claude כלים חזקים אבל אתה עדיין צריך לכתוב הוראות מחדש בכל פעם. בפרק הזה תלמד לארוז תהליכים שלמים לתוך פקודה אחת — Skill שמפעילים עם /slash ומקבלים תוצאה עקבית בכל פעם. בפרק הבא (פרק 5: Plugins) תלמד לארוז Skills, Agents, Hooks ושרתי MCP ביחד כ-Plugin שאפשר לשתף עם אחרים או להתקין ממארקטפלייס.
| מונח באנגלית | הסבר בעברית |
|---|---|
| Skill | קובץ Markdown עם הוראות שהופך לפקודת /slash — מתכון שאפשר להפעיל שוב ושוב |
| YAML Frontmatter | בלוק מטא-דאטה בראש קובץ Markdown (בין שני ---) שמגדיר שם, תיאור, מודל ועוד |
| Slash Command | פקודה שמתחילה ב-/ ומפעילה Skill — למשל /deploy או /write-blog |
| User-Invoked | Skill שרץ רק כשאתה מקליד את הפקודה ידנית |
| Auto-Invoked | Skill ש-Claude מפעיל אוטומטית כשהוא מזהה שזה רלוונטי למשימה |
| Forked Context | הרצת Skill בהקשר מבודד (כמו Sub-Agent) — לא צורך מחלון השיחה הראשי |
| Hot Reload | עדכון Skill "בלייב" — עורכים את הקובץ, מפעילים שוב, רואים את השינוי מיד |
| Bundled Skill | Skill שמגיע מובנה עם Claude Code — כמו /simplify, /batch, /debug |
| Dynamic Data Injection | הזרקת נתונים חיים לתוך ה-Skill באמצעות פקודות Shell שרצות לפני ש-Claude מעבד את ההוראות |
מה זה Skills — אבן הבניין לזרימת עבודה חוזרת
חשוב על המשימות שאתה מבצע שוב ושוב ב-Claude Code. אולי אתה תמיד מבקש "בדוק את הקוד שלי, מצא בעיות אבטחה, ותן דוח מסודר." או "קח את השינויים האחרונים, כתוב Release Notes, ושלח Pull Request." בכל פעם אתה מקליד את אותה בקשה ארוכה, עם אותם פרטים, ומקווה שהפלט יהיה עקבי.
Skill (מיומנות/פקודה) פותר את הבעיה הזו. זהו קובץ Markdown — עם כותרת YAML שמגדירה מטא-דאטה וגוף טקסט שמכיל הוראות — שהופך לפקודת /slash שאפשר להפעיל בלחיצה אחת. במקום להסביר תהליך של 10 שלבים כל פעם מחדש, אתה כותב את ההוראות פעם אחת כ-Skill ומפעיל עם פקודה קצרה.
פקודת /slash אחת מחליפה 10 שלבים ידניים. Skill ממוצע חוסך 3-5 דקות בכל הפעלה — ואם אתה מפעיל אותו 5 פעמים ביום, זה 15-25 דקות חסכון יומי על משימה אחת בלבד.
מערכת ה-Skills הושקה בסוף 2025, וקיבלה שדרוג משמעותי בגרסה 2.1.0 (ינואר 2026) שהוסיף Forked Context (הקשר מבודד), Hot Reload (טעינה מחדש מיידית), ותמיכה ב-Custom Agents (סוכנים מותאמים). מאז, Skills הם אחד הכלים הכי חזקים ב-Claude Code — ומי שמשתמש בהם נכון חוסך שעות של עבודה חוזרת כל שבוע.
Plugins (שמבוססים על Skills כאבן בניין בסיסית) זמינים במארקטפלייס של Claude Code נכון למרץ 2026. מערכת ה-Skills שתלמד בפרק הזה היא הבסיס לכל Plugin — בלי Skill טוב, אין Plugin טוב. ה-Skills המובנים (/simplify, /batch, /review) מושכים מיליוני הפעלות חודשיות.
חשוב להבחין: Skill הוא לא CLAUDE.md ולא Hook. CLAUDE.md מגדיר כללים קבועים שתמיד פעילים ("תמיד כתוב ב-TypeScript, לא JavaScript"). Hook רץ אוטומטית על אירוע ספציפי ("אחרי כל שמירת קובץ, הרץ Formatter"). Skill הוא תהליך שלם שמופעל לפי בקשה (או אוטומטית) — "בצע Code Review מקיף על הקבצים שהשתנו, תן דוח, ותקן מה שאפשר." שלושת הכלים משלימים אחד את השני, וביחד הם יוצרים מערכת אוטומציה מלאה.
הרעיון המרכזי פשוט:
Skill = Reusable Prompt + Context — Skill הוא פרומפט מוכן שחידדת לאורך זמן, ארוז בפורמט שמאפשר הפעלה מיידית ועקבית בכל פעם.
השדה name ב-YAML Frontmatter הופך לפקודת ה-/slash. אם name: deploy-staging, אז הפקודה /deploy-staging מפעילה את ה-Skill. פשוט ככה.
חשוב להבין: Skill הוא לא קוד. הוא לא סקריפט Python או Shell. הוא קובץ Markdown רגיל — טקסט — שמכיל הוראות שClaude עוקב אחריהן. אם אתה יודע לכתוב הוראות ברורות בשפה טבעית, אתה יודע לכתוב Skill. לא צריך ידע בתכנות, לא צריך ללמוד שפה חדשה. מספיק לדעת מה אתה רוצה ולכתוב את זה בצורה מדויקת ומסודרת.
דוגמה מהחיים: נגיד שאתה Lead Developer בסטארטאפ ישראלי שמשתמש ב-Claude Code. כל פעם שמישהו בצוות פותח PR, אתה רוצה שClaude יבצע Code Review לפי הסטנדרטים של החברה. בלי Skill, צריך להסביר כל פעם מחדש: "בדוק את הקוד לפי הכללים שלנו — כל פונקציה צריכה JSDoc, אסור Hardcoded Secrets, Imports ממוינים אלפביתית..." עם Skill, כותבים את הכללים פעם אחת ומפעילים עם /our-review בכל PR.
Skill לעומת Prompt רגיל — מה ההבדל?
| מאפיין | Prompt רגיל | Skill |
|---|---|---|
| שימוש חוזר | מקלידים כל פעם מחדש | כותבים פעם אחת, מפעילים תמיד |
| עקביות | כל פעם ניסוח קצת שונה = תוצאה שונה | הוראות זהות = תוצאה עקבית |
| שיתוף עם צוות | צריך לשלוח ב-Slack "הנה הפרומפט שלי" | קובץ ב-Git — כל הצוות משתמש באותו Skill |
| בקרת עלויות | אין שליטה על מודל או Effort | מגדירים מודל ו-Effort Level לכל Skill |
| הקשר מבודד | צורך מחלון השיחה הראשי | אפשר להריץ ב-Fork — לא פוגע בהקשר |
| נתונים דינמיים | צריך להדביק ידנית | Shell Commands מזריקים נתונים אוטומטית |
דוגמאות מייצגות — Skills בפעולה
כדי להבין את העוצמה של Skills, הנה כמה תרחישים מהחיים:
תרחיש 1: צוות פיתוח בתל אביב
צוות של 4 מפתחים בסטארטאפ SaaS. כל אחד מהם פותח 2-3 Pull Requests ביום. לפני כל PR, צריך: לבדוק שאין Secrets בקוד, לוודא שיש Tests, לכתוב תיאור PR מפורט, ולבדוק שה-Types תקינים. בלי Skills — כל מפתח מבזבז 15 דקות על הבדיקות האלה לפני כל PR. עם Skill בשם /pre-pr שעושה את כל הבדיקות — זה יורד ל-2 דקות (הפעלת הפקודה + קריאת הפלט). עם 4 מפתחים ו-10 PRs ביום: חיסכון של 130 דקות ביום — יותר משעתיים של עבודת מפתחים.
תרחיש 2: משווקת דיגיטלית פרילנסרית
מנהלת 5 לקוחות. כל שבוע צריכה לכתוב 5 פוסטים לבלוגים (אחד לכל לקוח). עם Skill בשם /write-blog-he — מספקת נושא, מקבלת טיוטה ראשונה איכותית בעברית, עורכת ומפרסמת. במקום 3 שעות לפוסט — שעה אחת. חיסכון של 10 שעות שבועיות על כתיבה בלבד.
תרחיש 3: DevOps Engineer
אחראי על Deploy לסביבות שונות. Skill בשם /deploy-staging שמריץ בדיקות, בונה Docker Image, דוחף ל-Registry, ומעדכן את ה-Kubernetes Deployment. במקום 10 פקודות ידניות שקל לטעות בהן — פקודה אחת שעושה הכל נכון בכל פעם.
חשוב על 3 משימות שאתה מבצע שוב ושוב ב-Claude Code. רשום אותן על דף או בקובץ. למשל: "ביקורת קוד לפני PR", "כתיבת תיעוד לפונקציה חדשה", "ניתוח לוגים מהיום". אלה המועמדים הראשונים שלך להפיכה ל-Skills. שמור את הרשימה — נשתמש בה בהמשך הפרק.
אנטומיית Skill — YAML Frontmatter לעומק
כל קובץ Skill מורכב משני חלקים: YAML Frontmatter (מטא-דאטה) ו-Markdown Body (הוראות). ה-Frontmatter מוגדר בין שני סימני --- בראש הקובץ, וכל מה שמתחתיו הוא גוף ההוראות.
הנה המבנה הבסיסי:
---
name: my-skill
description: What this skill does
model: sonnet
effort: medium
fork: true
invoke: user
---
# Instructions for Claude
1. First, do this...
2. Then, check that...
3. Finally, report...
בוא נעבור על כל שדה:
בוא נעבור על כל שדה לעומק, עם דוגמאות ומקרי שימוש:
name (חובה) — שם הפקודה
השדה name קובע את שם פקודת ה-/slash. הכלל: קצר, תיאורי, באנגלית, עם מקפים (lowercase with hyphens). השם צריך לספר מה ה-Skill עושה בלי שיצטרכו לקרוא את התיאור.
| שם טוב | שם רע | למה |
|---|---|---|
deploy-staging |
d |
ברור מה עושה לעומת ראשי תיבות |
write-blog |
wb |
קריא ומובן לכל חבר צוות |
security-check |
do-everything |
ממוקד במשימה אחת ברורה |
audit-imports |
myTool_v2 |
lowercase-with-hyphens הוא הסטנדרט |
description (חובה) — תיאור
השדה description מסביר מה ה-Skill עושה. זה לא רק תיעוד — Claude משתמש בתיאור כדי להחליט אם להפעיל את ה-Skill אוטומטית (במצב Auto-Invoke). התיאור גם מופיע בפלט של /help, כך שחשוב שיהיה ברור ותמציתי.
דוגמאות לתיאורים טובים:
"Generate SEO-optimized Hebrew blog posts with English technical terms"— ברור, ספציפי, מציין את השפה"Run security audit on recently changed files and report vulnerabilities"— מתאר מה קורה ומה הפלט"Deploy the current branch to staging environment after running tests"— שלם, כולל תנאי מוקדם
תיאור גרוע: "Does stuff" או "My tool" — Claude לא יבין מתי להפעיל אוטומטית, והצוות לא יבין למה הפקודה קיימת.
agent (אופציונלי) — סוכן מותאם
השדה agent מפנה לקובץ הגדרות סוכן בתיקיית .claude/agents/. כשה-Skill רץ, הוא משתמש בסוכן הספציפי הזה במקום בסוכן הרגיל. זה שימושי כשאתה רוצה ש-Skill מסוים יפעל עם מגבלות כלים ספציפיות, רמת Effort מסוימת, או maxTurns מוגבל.
למשל, יש לך סוכן בשם security-auditor ב-.claude/agents/security-auditor.md שמוגדר עם disallowedTools: ["Write", "Edit"] (לא יכול לשנות קבצים — רק לקרוא ולדווח). Skill שמשתמש בסוכן הזה יכול לבצע ביקורת אבטחה בלי סיכון שישנה קבצים בטעות:
---
name: security-audit
description: Read-only security review of recent changes
agent: security-auditor
fork: true
---
מה אפשר להגדיר בקובץ Agent? שלושה שדות קריטיים שמופיעים ב-YAML של קובץ ה-Agent עצמו (לא ב-Skill, אלא בקובץ .claude/agents/security-auditor.md):
| שדה ב-Agent | מה עושה | דוגמה |
|---|---|---|
maxTurns |
מגביל כמה צעדים הסוכן יכול לבצע. מונע "ריצה אינסופית" של סוכנים שנתקעים בלולאה | maxTurns: 20 — מספיק לרוב המשימות, לא יבזבז תקציב |
disallowedTools |
רשימת כלים שהסוכן לא יכול להשתמש בהם. מייצר "סוכן Read-Only" או "סוכן בלי Shell" | disallowedTools: ["Write", "Edit", "Bash"] — קורא בלבד, לא יכול לשנות שום דבר |
effort |
רמת חשיבה ברירת מחדל לסוכן הזה (עוקפת את ההגדרה בסשן) | effort: high — לניתוח אבטחה מעמיק, למשל |
---
name: security-auditor
description: Read-only agent for security analysis
model: opus
effort: high
maxTurns: 25
disallowedTools:
- Write
- Edit
- Bash
---
You are a security auditor. Analyze code for vulnerabilities.
NEVER attempt to modify files. Report findings only.
הערך המומלץ ל-maxTurns ברוב ה-Skills. מספיק לסוכן לקרוא 10-15 קבצים, להריץ 3-5 פקודות, ולייצר דוח. ערך גבוה מדי (100+) מסכן בזבוז תקציב; ערך נמוך מדי (5) עלול לחתוך את הסוכן באמצע העבודה.
model (אופציונלי) — בחירת מודל
כאן אתה שולט בעלויות — וזה קריטי. Skill פשוט שבודק פורמט קוד? השתמש ב-model: haiku — מהיר וזול. Skill מורכב שמנתח ארכיטקטורה? השתמש ב-model: opus — איטי יותר אבל חכם יותר. ברירת המחדל היא המודל הפעיל של הסשן הנוכחי.
הנה מדריך מהיר לבחירת מודל:
| סוג משימה | מודל מומלץ | עלות יחסית |
|---|---|---|
| פורמט קוד, Lint Fix, סיכום קצר | haiku |
הכי זולה |
| כתיבת בלוג, Code Review, תיעוד | sonnet |
מאוזנת |
| ניתוח ארכיטקטורה, אבטחה, רפקטורינג מורכב | opus |
הכי יקרה |
Skill ש-80% מהזמן עושה משימה פשוטה (פורמט, בדיקת Lint, סיכום קצר) — הגדר אותו עם model: sonnet או model: haiku. תחסוך 60-90% מעלות הפעלה לעומת Opus, בלי הבדל משמעותי בתוצאה למשימות פשוטות.
effort (אופציונלי) — רמת חשיבה
השדה effort שולט בעומק החשיבה של Claude. שלוש רמות: "low" (מהיר, שטחי), "medium" (ברירת מחדל, מאוזן), "high" (מעמיק, יסודי). משימות מהירות כמו פורמט קוד — low. ניתוח אבטחה מעמיק — high.
invoke (אופציונלי) — מי מפעיל
השדה invoke קובע מי שולט על ההפעלה. ברירת המחדל היא "user" — ה-Skill רץ רק כשאתה מקליד את פקודת ה-/. האפשרות השנייה היא "auto" — Claude יכול להפעיל את ה-Skill מעצמו כשהוא שופט שזה רלוונטי. נרחיב על זה בסעיף 4.4.
fork (אופציונלי) — הקשר מבודד
השדה fork קובע אם ה-Skill רץ בהקשר מבודד (true) או בתוך השיחה הנוכחית (false). ברירת המחדל: false ל-User-Invoked, true ל-Auto-Invoked. נרחיב בסעיף 4.5.
hooks (אופציונלי) — Hooks ספציפיים ל-Skill
אפשר להגדיר Hooks (כמו אלה שלמדת בפרק 1) שמופעלים רק כשה-Skill הספציפי הזה רץ. למשל, Hook שרץ אחרי ש-Skill של Deploy מסיים — שולח התראה ל-Slack. או Hook שלפני הפעלת /deploy-production מוודא שאתה ב-Branch הנכון. זה מאפשר "שכבות הגנה" ספציפיות לכל Skill.
---
name: deploy-production
description: Deploy current branch to production after safety checks
hooks:
PreToolUse:
- command: "bash -c 'branch=$(git branch --show-current); if [ \"$branch\" != \"main\" ]; then echo \"ERROR: Must be on main branch\"; exit 1; fi'"
---
ה-Hook הזה בודק שאתה ב-Branch main לפני שמתחיל. אם לא — ה-Skill לא ירוץ.
סיכום: Reference Card של כל שדות ה-YAML
| שדה | חובה? | ברירת מחדל | ערכים אפשריים |
|---|---|---|---|
name |
כן | — | lowercase-with-hyphens |
description |
כן | — | טקסט חופשי |
model |
לא | מודל הסשן | haiku, sonnet, opus |
effort |
לא | medium | low, medium, high |
invoke |
לא | user | user, auto |
fork |
לא | false (user) / true (auto) | true, false |
agent |
לא | — | שם קובץ ב-.claude/agents/ |
hooks |
לא | — | מבנה hooks כמו ב-settings.json |
tools |
לא | כל הכלים | רשימת כלים שה-Skill יכול להשתמש בהם (Read, Write, Bash, וכו') |
שדה tools חשוב במיוחד כשאתה רוצה להגביל Skill ספציפי — למשל, Skill שרק קורא קבצים ולא משנה אותם. במקום ליצור Agent נפרד, אפשר פשוט לרשום בשדה tools רק את הכלים המותרים:
---
name: analyze-deps
description: Analyze project dependencies (read-only)
tools:
- Read
- Glob
- Grep
---
ה-Skill הזה יכול רק לקרוא קבצים ולחפש — לא לערוך, לא להריץ פקודות Shell. מושלם לסריקות אנליטיות שלא צריכות לשנות שום דבר.
צור קובץ חדש: .claude/commands/hello.md. הכנס בו:
---
name: hello
description: Greet the user with a fun fact about their project
---
Analyze the current project directory. Find one interesting or surprising fact about the codebase (e.g., total lines of code, most edited file, oldest file, unusual dependency). Greet the user in a friendly way and share this fun fact.
שמור, חזור ל-Claude Code, והקלד /hello. זהו ה-Skill הראשון שלך.
כתיבת הוראות — גוף ה-Markdown
אחרי ה-YAML Frontmatter (בין שני ---), מגיע גוף ההוראות — Markdown רגיל שאומר ל-Claude בדיוק מה לעשות. זהו הלב של ה-Skill. הוראות טובות = תוצאות עקביות. הוראות מעורפלות = תוצאות שמשתנות בכל הפעלה.
הכלל הזהב: Claude עוקב אחרי ההוראות כמו שהן כתובות. אם דילגת על שלב — גם הוא ידלג.
ההוראות מתחילות מיד אחרי ה---- השני. אתה יכול להשתמש בכל פורמט Markdown: כותרות (#, ##, ###), רשימות ממוספרות ולא ממוספרות, טקסט מודגש, בלוקי קוד, ואפילו טבלאות. Claude מבין Markdown במלואו ומשתמש בפורמט כדי להבין את המבנה והעדיפויות של ההוראות.
הנקודה החשובה: הוראות Skill שונות מפרומפט רגיל. בפרומפט רגיל, אתה מתכתב עם Claude ויכול לתקן תוך כדי. ב-Skill, אתה כותב "מתכון" שClaude עוקב אחריו בלי שתוכל להתערב באמצע (במיוחד ב-Fork). לכן, ההוראות צריכות להיות מושלמות — ברורות, מפורטות, ובלי הנחות.
עקרונות לכתיבת הוראות אפקטיביות
1. שלבים ממוספרים לתהליכים סדרתיים
כשה-Skill מבצע פעולות בסדר מסוים, השתמש ברשימה ממוספרת:
1. Read the config file at `.env.example`
2. Compare with `.env` to find missing variables
3. For each missing variable, suggest a default value
4. Report findings as a table: Variable | Status | Suggested Default
2. Bullet Points לבדיקות וקריטריונים
כשה-Skill צריך לבדוק מספר דברים (לא בהכרח בסדר), השתמש ב-Bullets:
Verify the following for every file changed in the last commit:
- No hardcoded secrets or API keys
- All API calls have proper error handling
- Tests exist for all public functions
- No TODO comments without associated issue numbers
3. לוגיקה מותנית
Skill חכם מתאים את עצמו לסיטואציה:
If the project uses TypeScript, run `tsc --noEmit` to check types.
If the project uses JavaScript, run `eslint .` to check style.
If neither is found, report "No JS/TS project detected" and stop.
4. הגדרת פורמט פלט
ציין בדיוק איך אתה רוצה את התוצאה. בלי הגדרה ברורה, Claude יחליט בעצמו — ותקבל פורמט שונה בכל הפעלה:
Report findings as a markdown table with these columns:
| File | Issue | Severity (high/medium/low) | Recommendation |
End with a summary: total issues found, breakdown by severity,
and estimated time to fix all issues.
5. טיפול בשגיאות
אמור ל-Claude מה לעשות כשמשהו נכשל. בלי זה, הוא עלול להמשיך הלאה ולגרום נזק:
If tests fail, STOP immediately and report the failures.
Do NOT proceed to deployment.
List each failing test with its error message.
6. הפניות לקבצים ונתיבים
הפנה ל-Claude לקבצים ספציפיים כשצריך:
Read the project's CLAUDE.md for coding standards.
Read `.github/PULL_REQUEST_TEMPLATE.md` for PR format.
Apply both when generating the pull request description.
7. קבלת קלט מהמשתמש
כש-Skill צריך מידע מהמשתמש (נושא לבלוג, שם Branch, קובץ לבדיקה), אפשר לכתוב את ההוראות כך שClaude ישאל. אבל יותר יעיל: להניח שהמשתמש כותב את הקלט מיד אחרי פקודת ה-/slash:
The user will provide a topic after the /command. Example usage:
`/write-blog-he artificial intelligence for small businesses`
If no topic is provided, ask the user to specify one before proceeding.
כך המשתמש יכול להקליד /write-blog-he שיווק דיגיטלי לעסקים קטנים ו-Claude יתחיל לעבוד מיד עם הנושא הזה — בלי שאלות מיותרות.
זו הטעות הנפוצה ביותר בכתיבת Skills: לתת ל-Claude לערוך קבצים ישר בלי לבקש אישור קודם. למה זה מפתה? כי "סומכים על Claude." למה זה מסוכן? כי Skill שעובד 95% מהזמן עדיין יכול למחוק קוד חשוב ב-5% הנותרים. מה לעשות במקום: תמיד הוסיף שלב אישור בין ניתוח לפעולה: "Step 1: Analyze. Step 2: Present plan and wait for approval. Step 3: Only after approval, execute changes."
פקודות Shell ב-Skills
אפשר לשלב פקודות Shell ישירות בהוראות. עוטפים אותן ב-Backticks ו-Claude יריץ אותן דרך כלי ה-Bash:
Run the following command to get the list of changed files:
`git diff --name-only HEAD~1`
Then review each changed file for code quality issues.
קח את ה-Skill /hello שיצרת קודם ושדרג אותו. הוסף:
- שלבים ממוספרים (3-4 שלבים)
- פורמט פלט מוגדר (Bullet Points עם אימוג'ים)
- לוגיקה מותנית ("אם הפרויקט הוא Node.js, בדוק גם את package.json")
שמור ובדוק עם /hello — שים לב להבדל באיכות הפלט לעומת הגרסה הקודמת.
User-Invoked vs Auto-Invoked — מי שולט על ההפעלה
ברגע שיש לך Skills, צריך להחליט: מי מפעיל אותם — אתה או Claude?
User-Invoked (ברירת מחדל) — invoke: user
ה-Skill רץ רק כשאתה מקליד את פקודת ה-/. אתה שולט מתי הוא מופעל. זו ברירת המחדל, וזו הדרך הבטוחה להתחיל.
מתי להשתמש:
- פקודות On-Demand כמו
/deploy,/generate-report,/audit-code - כל Skill שמשנה קבצים או מריץ פקודות מסוכנות
- Skills שצריכים קלט ממך (נושא לבלוג, שם Branch, וכו')
Auto-Invoked — invoke: auto
Claude מפעיל את ה-Skill אוטומטית כשהוא מזהה שזה רלוונטי לבקשה הנוכחית. אתה לא צריך לזכור להפעיל — Claude עושה את זה בשבילך.
מתי להשתמש:
- בדיקות רקע — למשל Skill שמוודא Import Statements בכל פעם שעורכים קובץ TypeScript
- שערי איכות — Skill שבודק Coding Standards אוטומטית
- שיפורים אוטומטיים — Skill שמוסיף JSDoc לפונקציות חדשות
Skill בשם check-imports עם invoke: auto. בכל פעם ש-Claude עורך קובץ TypeScript, הוא אוטומטית מפעיל את ה-Skill כדי לוודא שכל ה-Import Statements תקינים. אתה אף פעם לא צריך לזכור לבדוק — זה קורה ברקע.
זה מפתה — "שClaude יפעיל הכל לבד!" — אבל יותר מדי Skills עם invoke: auto מאטים כל אינטראקציה. Claude צריך להעריך עבור כל בקשה שלך אם כל Skill רלוונטי או לא. מה לעשות במקום: התחל בלי Auto-Invoke. רק אחרי שאתה סומך על Skill והוא הוכיח את עצמו ב-30+ הפעלות ידניות — שדרג אותו ל-invoke: auto. כלל אצבע: לא יותר מ-3-5 Skills עם Auto-Invoke בו-זמנית.
| שאלה | User-Invoked | Auto-Invoked |
|---|---|---|
| ה-Skill משנה קבצים? | User — תמיד אישור ידני | רק אם יש שלב אישור מובנה |
| ה-Skill הוכח ב-30+ הפעלות? | עדיין בבדיקה | Auto — מוכן לשדרוג |
| ה-Skill צורך הרבה tokens? | User — הפעלה מודעת לעלות | רק עם fork: true |
| ה-Skill בודק איכות/Standards? | בהתחלה | Auto — מושלם לבדיקות רקע |
כלל אצבע: התחל תמיד כ-User-Invoked. שדרג ל-Auto-Invoked רק כשסומכים על ה-Skill ואחרי שהוכח ב-30+ הפעלות ידניות.
נקודה טכנית חשובה: Skills עם Auto-Invoke תמיד רצים ב-Forked Context (הקשר מבודד). זה מונע זיהום לא צפוי של ההקשר שלך.
דוגמה מעשית: המסע מ-User-Invoked ל-Auto-Invoked
נגיד שיש לך Skill שמוודא שכל קובץ TypeScript שנערך כולל Type Annotations תקינים. ככה נראה המסע:
- שבוע 1: יוצר את ה-Skill כ-
invoke: user. מפעיל ידנית אחרי כל שינוי ב-TS:/check-types. - שבוע 2: ה-Skill עובד מצוין, בודק כל פעם 5-10 קבצים ומוצא 2-3 בעיות. אתה מרוצה מהתוצאות.
- שבוע 3: שוכח להפעיל פעמיים. מגלה בעיות Types רק ב-PR Review. מחליט לשדרג.
- שבוע 4: משנה ל-
invoke: auto. עכשיו כל פעם שClaude עורך קובץ TS — ה-Skill רץ אוטומטית ברקע. אתה לא צריך לזכור שום דבר.
זהו הדפוס הנכון: תמיד להתחיל כ-User-Invoked, ולשדרג רק אחרי שהוכחת שה-Skill אמין ושימושי.
צור Skill בשם check-todos.md בתיקיית .claude/commands/:
---
name: check-todos
description: Scans recently changed files for TODO comments without issue numbers
invoke: user
effort: low
model: sonnet
---
1. Run `git diff --name-only HEAD~3` to find recently changed files
2. Scan each file for TODO, FIXME, HACK comments
3. Flag any TODO without an issue number (e.g., TODO(#123) is OK, bare TODO is not)
4. Report as a table: File | Line | Comment | Status (OK/Missing Issue)
הפעל עם /check-todos. אם זה עובד טוב — שקול לשנות ל-invoke: auto בהמשך.
Forked Context — הפעלה בהקשר מבודד
כשאתה מפעיל Skill עם fork: true, הוא רץ בחלון הקשר נפרד — כמו Sub-Agent שמופעל על ידי מערכת ה-Skills. ה-Fork מתחיל נקי: יש לו את ההוראות של ה-Skill, גישה לקבצים, אבל לא את היסטוריית השיחה שלך.
כשה-Skill מסיים, רק התוצאה הסופית / הסיכום חוזרים לסשן הראשי. כל החקירה והביניים נשארים ב-Fork ולא צורכים מההקשר שלך.
למה זה חשוב?
בלי Forked Context, כל Skill שרץ צורך Tokens מחלון ההקשר הראשי שלך. Skill שקורא 20 קבצים, מריץ 5 פקודות Shell, ומייצר דוח ארוך — יכול לתפוס 30-40% מההקשר שלך. עם Fork, רק הדוח הסופי (אולי 5% מכל העבודה) חוזר אליך.
מהעבודה של Skill ב-Fork נשארת "מאחורי הקלעים". אם Skill קורא 15 קבצים, מריץ 4 פקודות, ומייצר דוח של 500 מילים — כל הקריאות וההרצות צורכות ~19,000 טוקנים ב-Fork, אבל רק ~1,000 טוקנים (הדוח הסופי) חוזרים לשיחה הראשית. ב-Opus 4.6 עם חלון הקשר של 200K טוקנים (או מיליון למנויי Max), זו ההבדל בין לרוקן את ההקשר אחרי 3 Skills לבין להריץ 20+ Skills בסשן אחד.
| מצב | fork: false (ברירת מחדל) | fork: true |
|---|---|---|
| צריכת הקשר | כל שלב נכנס לשיחה הראשית | רק התוצאה הסופית חוזרת |
| גישה להיסטוריית שיחה | מלאה — רואה מה דיברתם | אין — מתחיל נקי |
| השפעת כישלון | שגיאות מזהמות את השיחה | שגיאות נשארות ב-Fork |
| מתאים ל- | Skills שצריכים הקשר מהשיחה | Skills עם חקירה כבדה |
מתי להשתמש ב-Fork ומתי לא
כן Fork:
- Skills שקוראים הרבה קבצים (ניתוח ארכיטקטורה, Code Review מקיף)
- Skills שמריצים פקודות רבות (Test Suite, Build Pipeline)
- Skills שמייצרים פלט ארוך (דוחות, תיעוד)
- Skills שעלולים להיכשל (ניסויים, חקירות)
לא Fork:
- Skills שצריכים הקשר מהשיחה — "סכם את מה שדיברנו" (ה-Fork לא רואה את השיחה)
- Skills מהירים שמחזירים שורה אחת — התקורה של Fork לא משתלמת
- Skills אינטראקטיביים שצריכים לשאול שאלות באמצע
| מאפיין ה-Skill | fork: false | fork: true |
|---|---|---|
| קורא 5+ קבצים או מריץ 3+ פקודות | ימלא את ההקשר | Fork — רק סיכום חוזר |
| צריך לדעת מה דיברתם עד עכשיו | No Fork — חייב הקשר | ה-Fork לא יראה את השיחה |
| עלול להיכשל (ניסויי/חקירתי) | שגיאות יזהמו את השיחה | Fork — שגיאות נשארות מבודדות |
| מחזיר שורה אחת / תוצאה קצרה | No Fork — מיותר | תקורה מיותרת |
כלל אצבע: אם ה-Skill מייצר יותר פלט ממה שאתה רוצה לראות — Fork. אם הוא צריך הקשר מהשיחה — No Fork.
איך Fork עובד מאחורי הקלעים
כשמפעילים Skill עם fork: true, Claude Code יוצר מעין "חלון שיחה וירטואלי" נפרד. ה-Fork מקבל:
- את ההוראות של ה-Skill (מגוף ה-Markdown)
- גישה מלאה לקבצים ולכלים (Read, Write, Bash, וכו')
- את ה-CLAUDE.md של הפרויקט (כי זה מידע פרויקטלי)
מה ה-Fork לא מקבל:
- היסטוריית השיחה שלך — הוא לא יודע מה דיברתם עד עכשיו
- הקשר מ-Skills אחרים שרצו לפני כן
- תוצאות של כלים שהפעלת בשיחה הראשית
כשה-Fork מסיים, רק הסיכום הסופי חוזר לשיחה הראשית. כל הביניים — קבצים שנקראו, פקודות שרצו, שגיאות שתוקנו — נשארים ב-Fork ונעלמים. ההקשר שלך נשאר נקי כמו שהיה לפני ההפעלה, פלוס הסיכום.
אם Skill צריך גם גישה להקשר מהשיחה וגם חקירה כבדה — פצל אותו. צור Skill לא-מפורק שמחלץ את ההקשר הנדרש, ואז מפעיל Forked Agent למשימה הכבדה. כך אתה מקבל את הטוב משני העולמות.
חזור ל-Skill check-todos שיצרת, והוסף fork: true ל-YAML. הפעל שוב. שים לב להבדל: הפעם תקבל רק את הסיכום הסופי, בלי לראות את כל השלבים הביניים. ההקשר שלך נשאר נקי.
תיקיית commands/ — פקודות Slash מותאמות אישית
תיקיית .claude/commands/ היא הבית של פקודות ה-/slash המותאמות שלך. כל קובץ .md בתיקייה הופך אוטומטית לפקודה. שם הקובץ (בלי סיומת) = שם הפקודה:
| קובץ | פקודה |
|---|---|
.claude/commands/deploy.md |
/deploy |
.claude/commands/write-blog.md |
/write-blog |
.claude/commands/audit.md |
/audit |
.claude/commands/content/blog.md |
/content-blog |
שימו לב לשורה האחרונה: תתי-תיקיות יוצרים פקודות עם Namespace. התיקייה content/ עם הקובץ blog.md הופכת לפקודה /content-blog. זה מעולה לארגון — אפשר ליצור תיקיות לפי תחום: deploy/, content/, quality/.
Project-Level vs Global Commands
יש שתי רמות:
.claude/commands/(Project-Level) — זמינות רק בפרויקט הנוכחי. שמור כאן Skills ספציפיים לפרויקט:/deploy-staging,/run-tests,/update-schema.~/.claude/commands/(Global) — זמינות בכל פרויקט. שמור כאן כלים אישיים שאתה משתמש בהם בכל מקום:/write-blog-he,/quick-review,/git-cleanup.
מאז גרסה 2.1.0, תיקיית commands/ ומערכת ה-Skills מאוחדות. קובץ Command הוא קובץ Skill. אתה יכול להשתמש ב-YAML Frontmatter מלא בקבצי Command — כולל model, fork, invoke ושאר השדות. אם אתה רואה "Skill" ו-"Custom Command" במקומות שונים — מדובר באותו דבר בדיוק.
כלל אצבע לחלוקה בין Project ל-Global:
- Project-Level (ב-
.claude/commands/): כל מה שקשור לפרויקט הספציפי. Deploy, Tests, Database Migrations, PR Templates. אלה נכנסים ל-Git ומשותפים עם הצוות. - Global (ב-
~/.claude/commands/): כלים אישיים שאתה משתמש בהם בכל פרויקט. למשל:/write-blog-he(כתיבת בלוגים — לא קשור לפרויקט ספציפי),/quick-explain(הסבר קוד מהיר),/git-cleanup(ניקוי Branches ישנים). אלה לא נכנסים ל-Git של אף פרויקט.
שיתוף Skills עם הצוות
כי Skills הם קבצי Markdown רגילים בתיקיית .claude/commands/, הם חלק מה-Git Repository. כשאתה מוסיף Skill חדש ועושה Commit + Push — כל הצוות מקבל אותו. זה אחד היתרונות הגדולים של הארכיטקטורה: Skills הם Infrastructure as Code — כמו הגדרות CI/CD או Docker Compose, אבל עבור זרימת העבודה של ה-AI.
דוגמה מעשית: ב-Sprint Planning, הצוות מחליט על Coding Standards חדשים. ה-Tech Lead כותב Skill בשם /pr-check שבודק את הסטנדרטים האלה. עושה Commit. מהרגע הזה, כל חבר צוות שמושך את ה-Branch יכול להפעיל /pr-check לפני שפותח PR. כולם משתמשים בדיוק באותן בדיקות — עקביות מלאה.
ארגון תיקיית Commands מומלץ
.claude/commands/
deploy/
staging.md # /deploy-staging
production.md # /deploy-production
content/
blog-he.md # /content-blog-he
release-notes.md # /content-release-notes
quality/
security-check.md # /quality-security-check
lint-fix.md # /quality-lint-fix
check-todos.md # /check-todos
hello.md # /hello
צור את מבנה התיקיות הבסיסי:
mkdir -p .claude/commands/deploymkdir -p .claude/commands/contentmkdir -p .claude/commands/quality
העבר את hello.md ו-check-todos.md לשם אם הם לא שם כבר. הקלד /help ב-Claude Code וודא שכל הפקודות מופיעות.
Hot Reload ואיטרציה מהירה
אחד הדברים הכי נוחים ב-Skills: אתה לא צריך לאתחל את Claude Code כשמעדכנים Skill. ערוך את קובץ ה-.md, שמור, וההפעלה הבאה כבר תשתמש בגרסה המעודכנת. זה נקרא Hot Reload.
לולאת האיטרציה נראית ככה:
- הפעל
/my-skill - בדוק את הפלט — מה טוב? מה חסר?
- ערוך את
.claude/commands/my-skill.md - שמור
- הפעל
/my-skillשוב - חזור לשלב 2 עד שהתוצאה מושלמת
לא צריך לסגור את Claude Code. לא צריך להתחבר מחדש. לא צריך לחכות. פשוט עורכים ומפעילים.
פתח שני חלונות זה לצד זה: בחלון אחד — עורך טקסט עם קובץ ה-Skill. בחלון שני — Claude Code. ערוך, שמור, הפעל, חזור על זה. תוך 10 דקות של איטרציות תקבל Skill מושלם.
ההשלכה המעשית: אל תנסה לכתוב את ה-Skill המושלם מההתחלה. כתוב גרסה ראשונה מינימלית, בדוק, שפר. כל Skill טוב עובר 3-5 סבבי שיפור לפני שהוא מגיע לגרסה הסופית.
סבבי איטרציה ממוצעים לפני ש-Skill מגיע לגרסה יציבה. סבב = עריכה + שמירה + הפעלה + בדיקת פלט. עם Hot Reload, כל סבב לוקח 2-3 דקות. סך הכל: 10-15 דקות לפיתוח Skill מלוטש — השקעה שמחזירה את עצמה תוך 3 הפעלות.
טיפ מתקדם: כשאתה מפתח Skill חדש, שמור "לוג פיתוח" — רשום מה שינית בכל סבב ולמה. זה עוזר כשחוזרים ל-Skill אחרי חודשיים ושוכחים למה הוראה מסוימת נוספה. אפשר להוסיף את הלוג כהערת HTML בתוך הקובץ:
<!-- Changelog:
v1 - Basic review with 3 checks
v2 - Added TypeScript-specific checks after false positive on .js files
v3 - Added output format table (was inconsistent in v1-v2)
v4 - Added error handling for empty git diff
-->
פתח את /hello Skill, שנה את ההוראה — במקום "fun fact" בקש "security observation" (תצפית אבטחה). שמור והפעל /hello שוב. וודא שהפלט השתנה בלי שהיית צריך לאתחל שום דבר.
Skills מובנים — מה מגיע עם Claude Code
Claude Code מגיע עם מספר Skills מובנים שזמינים בכל סשן בלי שתצטרך להתקין שום דבר. חשוב להכיר אותם — הם חוסכים המצאה מחדש של הגלגל.
לפני שאתה ממציא את הגלגל ויוצר Skill חדש, בדוק אם כבר קיים Skill מובנה שעושה את מה שאתה צריך. ה-Skills המובנים עברו שיפור מתמשך לאורך חודשים ומשתמשים בהם אלפי מפתחים — הם מלוטשים ויעילים.
עדכונים שוחררו ל-Claude Code ב-2025 לבד. בין ינואר למרץ 2026 הגענו לגרסה 2.1.81 — עם יותר מ-80 גרסאות נוספות. Skills מובנים חדשים מתווספים בקביעות, ו-Skills קיימים משתפרים. כדאי לבדוק /help לפחות פעם בשבוע כדי לגלות מה חדש.
/simplify — ביקורת קוד עם 3 סוכנים מקבילים
הושק בפברואר 2026. כשאתה מפעיל /simplify, הוא בודק קבצים שהשתנו לאחרונה באמצעות 3 סוכנים מקבילים. כל סוכן בודק היבט אחר:
- Code Reuse Agent — מחפש קוד כפול ומציע מיזוג
- Code Quality Agent — בודק קריאות, שמות משתנים, מבנה
- Efficiency Agent — מזהה בעיות ביצועים ומציע שיפורים
אחרי הניתוח, /simplify מתקן אוטומטית את הבעיות שזוהו. זה חזק אבל יקר — 3 סוכנים מקבילים פירושם 3x עלות.
/batch — המפלצת של Claude Code
הושק בפברואר 2026. זהו ה-Skill הכי חזק שמגיע עם Claude Code. /batch מנתח את ה-Codebase, מפרק עבודה ל-עד 30 יחידות עצמאיות, ומשגר סוכן אחד לכל יחידה — כל אחד ב-Git Worktree מבודד. כל סוכן מיישם את היחידה שלו, מריץ בדיקות, ופותח Pull Request.
מתי להשתמש: רפקטורינג גדול (למשל: "שנה את כל ה-API Endpoints מ-REST ל-GraphQL"), מיגרציות קוד (מ-JavaScript ל-TypeScript), שינויים בסיטונאות ("הוסף Error Handling לכל 50 ה-Controllers"). מתי לא: שינויים קטנים או ממוקדים — התקורה של 30 סוכנים לא מצדיקה שינוי של 3 קבצים.
זה מפתה — /batch נשמע מרשים ואפשר לעשות הכל במכה אחת. אבל הפעלה אחת שמשגרת 15 סוכנים יכולה לעלות $5-15 בטוקנים. לשינוי של 3-5 קבצים? זה בזבוז. מה לעשות במקום: השתמש ב-/review או עבוד ידנית על משימות קטנות. שמור את /batch למשימות של 10+ קבצים עם שינויים חוזרים — שם ה-ROI מצדיק את העלות.
/debug — פותר בעיות סשן
/debug קורא את לוגי ה-Debug של Claude Code ומנתח התנהגות לא צפויה. כש-Claude "מתנהג מוזר" — זו הפקודה הראשונה להפעלה.
/loop — Cron קל בתוך הסשן
הושק במרץ 2026. /loop מריץ Prompt חוזר במרווחים קבועים. למשל: /loop 5m check the deploy status — כל 5 דקות, Claude בודק סטטוס Deploy. זה כמו Cron Job קליל שרץ בתוך הסשן.
דוגמאות שימוש:
/loop 10m check if the build passed on GitHub— ניטור CI/CD/loop 30m summarize new error logs— ניטור Production/loop 1h check disk space— ניטור תשתית
שימו לב: /loop פעיל רק כל עוד הסשן פתוח. אם סוגרים את Claude Code, ה-Loop נעצר. לניטור שצריך לרוץ 24/7 — השתמשו ב-Cron Job אמיתי (או ב-Hooks).
/claude-api — עוזר לפיתוח עם Anthropic SDK
הושק במרץ 2026. אם אתה בונה אפליקציה שמשתמשת ב-Claude API, /claude-api נותן לך הקשר על מתודות SDK, Best Practices, ודוגמאות קוד עדכניות.
/review — ביקורת קוד ממוקדת
ביקורת קוד עם אפשרות להגדיר תחומי פוקוס. מפנה אותו לקובץ או תיקייה ומקבל Feedback מובנה.
/btw — הערת אגב מהירה
Skill קל שמאפשר להוסיף הערה בלי להפריע ל-Workflow הנוכחי.
Framework: ספקטרום העלויות של Skills מובנים
| Skill | עלות | סוכנים | מתי להשתמש |
|---|---|---|---|
/btw |
זול מאוד | 0 (Single Call) | הערות צד מהירות |
/debug |
זול | 0 (Single Call) | דיבוג סשן לא תקין |
/loop |
משתנה | 0 (חוזר) | ניטור מתמשך |
/review |
בינוני | ניתוח ממוקד | Code Review לפני PR |
/claude-api |
בינוני | ניתוח ממוקד | פיתוח עם Claude SDK |
/simplify |
יקר | 3 מקבילים | שיפור איכות קוד לאחר שינויים |
/batch |
יקר מאוד | עד 30 מקבילים | רפקטורינג גדול / מיגרציות |
נסה את /review על קובץ בפרויקט שלך. הקלד: /review src/main.ts (או קובץ אחר שקיים אצלך). בדוק את הפידבק שמתקבל. אחר כך נסה /debug — גם אם אין בעיה, תראה מה הוא מספר על מצב הסשן שלך.
בניית Skill שלם: מחולל בלוגים בעברית
הגיע הזמן לבנות Skill אמיתי ומלא — מתחילתו ועד סופו. נבנה מחולל פוסטים לבלוג בעברית שמייצר תוכן עקבי ואיכותי בכל הפעלה.
שלב 1: הגדרת ה-YAML Frontmatter
---
name: write-blog-he
description: Generate a Hebrew blog post with English technical terms, SEO-optimized
model: sonnet
effort: medium
fork: true
---
למה הבחירות האלה?
- model: sonnet — מאוזן בין איכות למחיר. Opus יהיה טוב יותר אבל יקר פי 3-5 על כל פוסט
- effort: medium — כתיבת בלוג דורשת חשיבה בינונית, לא צריך Deep Reasoning
- fork: true — הפוסט ייכתב ב-Fork כדי לא לצרוך מההקשר הראשי. אם התוצאה לא טובה, ההקשר שלך נקי
שלב 2: כתיבת ההוראות
# Hebrew Blog Post Generator
You are writing a professional Hebrew blog post. The user will provide a topic.
## Process
1. **Research**: Use WebSearch to find 3-5 relevant sources on the topic.
Extract key data points, statistics, and current trends.
2. **Outline**: Create an outline with:
- Title (H1) -- catchy, includes the primary keyword
- 4-6 subheadings (H2) that cover the topic comprehensively
- Key points under each H2
3. **Write the post** following these rules:
- Language: Hebrew. Technical terms in English on first mention,
then Hebrew explanation in parentheses
- Minimum 1,500 words
- Short paragraphs (2-4 sentences)
- Include at least 2 practical examples using Israeli businesses
- Prices/costs in ILS
- Conversational tone -- like a mentor, not a textbook
- End each section with an actionable takeaway
4. **SEO Meta**: Generate a meta description (150-155 chars, Hebrew)
5. **Internal Linking**: Suggest 3-5 related topics for internal links
6. **CTA**: End with a clear call-to-action in Hebrew
## Output Format
Deliver the final post as clean HTML (no full page, just the article body).
Use semantic HTML: h1, h2, h3, p, ul, ol, strong, em.
Add a comment at the top: <!-- SEO: meta description here -->
Add a comment at the end: <!-- Internal links: topic1, topic2, topic3 -->
## Quality Gate
Before delivering, verify:
- [ ] Minimum 1,500 words
- [ ] All H2 sections have at least 2 paragraphs
- [ ] At least 2 Israeli business examples
- [ ] Meta description is 150-155 characters
- [ ] CTA is present and clear
If any check fails, fix it before delivering.
שלב 3: שמירה ובדיקה
- שמור את הקובץ ב-
.claude/commands/write-blog-he.md(או ב-~/.claude/commands/אם אתה רוצה אותו גלובלי) - ב-Claude Code הקלד:
/write-blog-he - כשנשאל, כתוב נושא: "שיווק דיגיטלי לעסקים קטנים ב-2026"
- בדוק את הפלט — האם עומד בכל הקריטריונים?
שלב 4: איטרציה — הלב של פיתוח Skills
סביר שהגרסה הראשונה לא תהיה מושלמת. אולי הפוסט קצר מדי, או שאין מספיק דוגמאות ישראליות, או שה-CTA חלש. הנה רשימת בעיות נפוצות ואיך לתקן אותן בהוראות:
| בעיה בפלט | מה לתקן בהוראות |
|---|---|
| פוסט קצר מדי (פחות מ-1,500 מילים) | הוסף "Each H2 section MUST have at least 300 words. Expand with examples and data." |
| אין דוגמאות ישראליות | הוסף "REQUIRED: At least 2 examples using Israeli businesses. Use ILS for all prices." |
| CTA חלש או חסר | הוסף "The CTA must include a specific next step, not just 'contact us'. Example: 'Schedule a free 15-minute consultation.'" |
| יותר מדי אנגלית, מעט עברית | הוסף "Write 90%+ in Hebrew. English terms ONLY for technical concepts, always with Hebrew explanation." |
| פורמט HTML לא נקי | הדגש "NO inline styles. NO class attributes. Only semantic HTML tags." |
כל בעיה שמוצאים בפלט = שורה נוספת בהוראות. אחרי 3-5 סבבים של עריכה → שמירה → הפעלה → בדיקה — יש לך Skill שמייצר פוסטים באיכות גבוהה באופן עקבי.
שלב 5: הוספת הערת עלות
הוסף בסוף הקובץ:
<!-- Cost: ~$0.15-0.40 per blog post (Sonnet with WebSearch) -->
ה-Skill הזה, עם model: sonnet ו-Fork, עולה בערך $0.15-0.40 לפוסט. עם model: opus זה יעלה $0.80-1.50 — שלוש פעמים יותר, עם שיפור קטן באיכות לרוב הנושאים. מתי שווה Opus? כשהנושא טכני מאוד או דורש ניתוח מעמיק.
צור את הקובץ .claude/commands/write-blog-he.md עם הקוד שלמעלה. הפעל אותו עם נושא שרלוונטי לפרויקט שלך. בדוק את התוצאה מול רשימת הבדיקות (Quality Gate). תקן את ההוראות לפחות פעם אחת ובדוק שוב.
דוגמאות מייצגות: מ-Skill פשוט ל-Skill מלוטש
בואו נראה איך Skill מתפתח ממשהו בסיסי למשהו מקצועי. ניקח Skill שבודק איכות תיעוד (Documentation Quality):
גרסה 1 — הניסוי הראשון:
---
name: check-docs
description: Check documentation quality
---
Check if the documentation is good.
בעיה: ההוראה "check if the documentation is good" מעורפלת מדי. Claude לא יודע מה "good" אומר — ויבדוק משהו אחר בכל הפעלה.
גרסה 2 — אחרי הפעלה ראשונה:
---
name: check-docs
description: Audit JSDoc coverage and README completeness
model: sonnet
fork: true
---
1. Find all exported functions in `src/`
2. Check each function for JSDoc comments
3. Verify README.md has: installation, usage, API reference sections
4. Report: Function | Has JSDoc | JSDoc Quality (good/partial/missing)
שיפור: עכשיו Claude יודע בדיוק מה לבדוק ואיך לדווח. הוספנו מודל (sonnet) ו-Fork (true) כי הבדיקה קוראת הרבה קבצים.
גרסה 3 — אחרי שבוע של שימוש:
---
name: check-docs
description: Audit JSDoc coverage, README completeness, and CHANGELOG freshness
model: sonnet
effort: medium
fork: true
---
# Documentation Quality Audit
## Step 1: JSDoc Coverage
Find all exported functions/classes in `src/`. For each:
- Has JSDoc? (yes/no)
- If yes: has @param, @returns, @example? (partial/complete)
- If no: flag as "MISSING"
## Step 2: README Check
Verify README.md contains these required sections:
- [ ] Installation instructions
- [ ] Quick start / usage example
- [ ] API reference or link to docs
- [ ] Contributing guidelines
- [ ] License
## Step 3: CHANGELOG Freshness
Check if CHANGELOG.md was updated in the last 5 commits.
If not, flag as "STALE".
## Output Format
Report as three tables:
1. JSDoc Coverage: Function | Status | Details
2. README Sections: Section | Present? | Notes
3. Summary: Total coverage %, critical gaps, action items
## Error Handling
- If no `src/` directory exists, check `lib/` and `app/` instead.
- If no README.md exists, report "CRITICAL: No README found" as first item.
- If the project has 0 exported functions, skip JSDoc check and note it.
הגרסה השלישית היא Skill מקצועי: מכסה מקרי קצה, מגדיר פורמט פלט ברור, ומחולק לשלבים לוגיים. נדרשו 3 סבבי איטרציה — פחות מ-15 דקות סה"כ — כדי להגיע לכאן.
- צור Skill בשם
release-notes - ה-Skill צריך לקרוא את ה-commits האחרונים (
git log --oneline -20) - לקטלג כל commit לקטגוריה: Feature, Fix, Refactor, Docs, Other
- לייצר Release Notes בפורמט: כותרת עם מספר גרסה, רשימה ממוינת לפי קטגוריה, סיכום של השינויים החשובים בהתחלה
- הגדר
model: sonnet,effort: low,fork: true - בדוק שהפלט קריא ומדויק
Shell Commands ב-Skills — הזרקת נתונים דינמיים
Skills יכולים לכלול פקודות Shell שרצות לפני ש-Claude מעבד את ההוראות. הפלט של הפקודה מחליף את הפקודה בטקסט, כך ש-Claude רואה את התוצאה כאילו מישהו כתב אותה ידנית בהוראות.
זה הופך Skills מסטטיים לדינמיים: במקום הוראות קבועות, ה-Skill מתאים את עצמו למצב הנוכחי של הפרויקט.
דוגמה בסיסית: הזרקת Git Status
בגוף ההוראות כתוב:
Review the following changed files:
`git diff --name-only HEAD~1`
For each file, check for:
- Security vulnerabilities
- Missing error handling
- Unused imports
כש-Claude מעבד את ה-Skill, הפקודה git diff --name-only HEAD~1 רצה קודם, והפלט (רשימת קבצים שהשתנו) מוחלף לתוך ההוראות. Claude רואה את רשימת הקבצים ממש כאילו הקלדת אותה.
שימושים מתקדמים
הזרקת נתונים דינמיים פותחת אפשרויות עצומות:
| שימוש | פקודת Shell | מה Claude מקבל |
|---|---|---|
| תאריך נוכחי | `date +%Y-%m-%d` |
2026-03-23 |
| משתני סביבה | `echo $NODE_ENV` |
production / development |
| מצב דיסק | `df -h / | tail -1` |
שורת מידע על שטח פנוי |
| שירותים פעילים | `docker ps --format "table {{.Names}}\t{{.Status}}"` |
טבלת קונטיינרים ומצבם |
| סטטוס API | `curl -s https://api.example.com/health | jq .status` |
"healthy" או "degraded" |
| Branch נוכחי | `git branch --show-current` |
שם ה-Branch |
זה מפתה — "הSkill צריך את ה-API Key כדי לעבוד." אבל כל נתון שמוזרק דרך Shell Command נכנס לתוך ההקשר של Claude ונשלח ל-API של Anthropic. זה אומר שהסיסמה שלך עוברת דרך שרתים חיצוניים. מה לעשות במקום: הזרק רק מידע לא רגיש — `echo $NODE_ENV` (מותר), `echo $API_KEY` (אסור). כלל אצבע: אם אתה לא מוכן לפרסם את הפלט של הפקודה — אל תזריק אותו.
שילוב הוראות סטטיות ודינמיות
הכוח האמיתי הוא בשילוב: הוראות קבועות (סטטיות) + נתונים חיים (דינמיים) = Skill שמתאים את עצמו למצב. חשוב על זה כתבנית עם חורים שמתמלאים בנתונים אמיתיים בכל הפעלה:
---
name: project-status
description: Generate a project status report with live data
fork: true
---
# Project Status Report
Generate a status report based on the following live data:
## Current Branch
`git branch --show-current`
## Recent Changes (last 7 days)
`git log --oneline --since="7 days ago"`
## Open Issues
`git log --oneline --all --grep="TODO\|FIXME" | head -10`
## Test Status
`npm test 2>&1 | tail -5`
Based on this data, write a concise project status report. Include:
1. Summary (2-3 sentences)
2. Key changes this week
3. Risks or concerns
4. Recommended next steps
מתי לא להשתמש ב-Shell Commands דינמיים
לא כל Skill צריך נתונים דינמיים. הנה המצבים שבהם הוראות סטטיות עדיפות:
- כשהקלט מגיע מהמשתמש: אם המשתמש מספק את הנושא/קובץ/Branch — אין צורך להזריק. למשל
/write-blog-heמקבל נושא מהמשתמש, לא מפקודת Shell. - כשה-Skill עצמו יכול לבצע את הפקודה: הוראה כמו "Run
git statusand analyze the output" עובדת מצוין בלי הזרקה — Claude מריץ את הפקודה כחלק מביצוע ההוראות. - כשהפלט ארוך מאוד: אם פקודת Shell מחזירה 500 שורות, זה ייכנס להקשר ויבזבז טוקנים. עדיף ש-Claude יריץ את הפקודה בעצמו ויעבד את הפלט בהדרגה.
הכלל: השתמש ב-Dynamic Data Injection כשצריך "לכוון" את ה-Skill לנתונים ספציפיים לפני שמתחיל. אם ה-Skill יכול למצוא את הנתונים בעצמו — תן לו.
צור Skill בשם daily-review.md שמשלב נתונים דינמיים:
- מזריק
`git log --oneline --since="1 day ago"`— השינויים של היום - מזריק
`git diff --stat HEAD~5`— סטטיסטיקת שינויים אחרונים - מבקש מ-Claude לסכם: מה נעשה היום, מה נשאר לעשות, ומה דורש תשומת לב
הפעל את /daily-review ובדוק שהנתונים הדינמיים מוזרקים נכון.
Best Practices — כללי זהב ל-Skills
אחרי שלמדת את הטכניקה, הנה הכללים שיהפכו Skills טובים ל-Skills מעולים.
1. Skill אחד, מטרה אחת
Skill צריך לעשות דבר אחד היטב. אל תיצור Mega-Skill שמבצע Deploy, בודק Tests, כותב Release Notes, ומעדכן Docs — בו-זמנית. פצל למספר Skills קטנים שכל אחד ממוקד.
Framework: "Single Responsibility Skill" — אם אתה צריך יותר ממשפט אחד כדי לתאר מה ה-Skill עושה, הוא כנראה עושה יותר מדי. פצל.
2. שמות ברורים
שם הפקודה צריך לספר לכל אחד בצוות בדיוק מה היא עושה. /deploy-staging טוב. /ds רע. /do-everything גרוע.
3. טיפול בשגיאות בהוראות
תמיד אמור ל-Claude מה לעשות כשמשהו נכשל. "If tests fail, STOP and report." בלי זה, Claude ימשיך הלאה — ואתה תגלה את הבעיה רק בסוף.
4. הגדרת פורמט פלט
ציין את הפורמט הרצוי בהוראות: "Report as a markdown table", "Output as JSON", "Write a bullet list with emojis." בלי זה, תקבל פורמט שונה בכל הפעלה.
5. גרסאות ב-Git — Skills כחלק מהקוד
שמור את ה-Skills ב-Git יחד עם הקוד. כשהפרויקט מתפתח, ה-Skills מתפתחים איתו. אם שינית את פרוטוקול ה-Deploy, עדכן גם את /deploy. פתח PR נפרד לשינויי Skills משמעותיים — זה נותן לצוות הזדמנות לעבור על השינויים ולתת פידבק.
גישה מומלצת: תייג כל Skill עם גרסה בהערת HTML. כשצריך לעשות Debug — אפשר לראות באיזו גרסה של ה-Skill הבעיה התחילה:
<!-- Version: 2.1 | Last updated: 2026-03-20 | Author: Team Lead -->
6. בדיקה עם מקרי קצה
הרץ את ה-Skill על קלט לא שגרתי: פרויקט ריק, קובץ שבור, Branch ללא commits. ודא שההוראות מטפלות בכל מצב. הנה מקרי קצה שכדאי לבדוק:
- אין שינויים — מה קורה ל-
/daily-reviewכשאין commits מאתמול? - קבצים בינאריים — מה קורה ל-
/smart-reviewכש-git diff כולל תמונות? - קלט ריק — מה קורה ל-
/write-blog-heכשלא מספקים נושא? - שגיאת רשת — מה קורה ל-Skill עם WebSearch כשאין חיבור אינטרנט?
לכל מקרה קצה, הוסף הוראה מתאימה: "If no commits found, report 'No changes since yesterday' and suggest reviewing backlog items instead."
7. הערות עלות
הוסף הערת HTML בקובץ ה-Skill עם הערכת עלות:
<!-- Cost: ~$0.10-0.30 per invocation -->
זה עוזר לך ולצוות להחליט אם להפעיל את ה-Skill או לעשות את המשימה ידנית.
8. Skill Naming Convention לצוותים
כשעובדים בצוות, הסכימו על Convention לשמות. הנה הצעה שעובדת היטב:
- פועל-שם:
check-types,deploy-staging,write-blog,review-security - Namespace לפי תחום:
qa-lint,qa-test,deploy-staging,deploy-production - תחילית אישית ל-Global Skills:
my-review,my-notes(מפריד בין Skills אישיים לפרויקטליים)
9. טעויות נפוצות שחשוב להימנע מהן
| טעות | תוצאה | פתרון |
|---|---|---|
| הוראות מעורפלות: "בדוק את הקוד" | Claude בודק משהו אחר כל פעם | פרט בדיוק מה לבדוק, עם קריטריונים ופורמט פלט |
| אין שלב אישור לפני שינויים | Claude עורך קבצים בלי לשאול | הוסף "Show plan BEFORE making changes. Wait for approval." |
| יותר מדי Auto-Invoked Skills | כל אינטראקציה נהיית איטית | הגבל ל-2-3 Auto-Invoked. השאר User-Invoked |
| Fork ל-Skill שצריך הקשר | ה-Skill לא רואה את מה שדיברתם | השתמש ב-fork: false ל-Skills שצריכים היסטוריית שיחה |
| אין הערת עלות | חבר צוות מפעיל Skill יקר 50 פעם ביום | תמיד הוסף <!-- Cost: ... --> |
10. Debugging — כש-Skill לא עובד כמצופה
לפעמים Skill לא מייצר את הפלט הצפוי. לפני שמתחילים לשנות הוראות באקראי, הנה תהליך Debug מסודר:
- בדוק YAML Syntax: שגיאת YAML (מרחב חסר, נקודתיים כפולות) גורמת לכל ה-Frontmatter להתעלם. ודא שיש
---בהתחלה ובסוף, שכל שדה כתוב נכון. - הרץ בלי Fork: אם יש
fork: true, שנה זמנית ל-falseכדי לראות את כל שלבי הביניים. ככה תזהה איפה הבעיה. - פשט את ההוראות: מחק את כל ההוראות חוץ מהשלב הראשון. אם שלב 1 עובד — הוסף שלב 2. כך תמצא את השלב הבעייתי.
- בדוק Shell Commands: אם יש פקודות Shell דינמיות, הרץ אותן ידנית בטרמינל וודא שהפלט תקין.
- השתמש ב-
/debug: הפעל/debugאחרי ש-Skill נכשל — הוא יקרא את לוגי ה-Debug ויזהה בעיות.
הבעיה הכי נפוצה ב-Skills: ה-YAML Frontmatter לא מפורסר כי חסר --- בסוף, או שיש Tab במקום רווחים. YAML מאוד רגיש לפורמט. אם Skill לא עובד בכלל — התחל בלבדוק את ה-YAML.
טבלת Troubleshooting — "Skill לא עובד, מה עושים?"
| סימפטום | סיבה אפשרית | פתרון |
|---|---|---|
הפקודה /my-skill לא מוכרת |
שם הקובץ לא תואם, או שהקובץ לא ב-.claude/commands/ |
וודא: my-skill.md קיים בתיקייה הנכונה. בדוק שאין שגיאת YAML שמונעת פרסור של השדה name |
| Skill רץ אבל מתעלם מחלק מההוראות | ההוראות ארוכות מדי או לא ברורות מספיק | פשט: קצר ל-3-5 שלבים ברורים. השתמש בכותרות Markdown (#, ##) כדי לחלק. הוסף "IMPORTANT:" לפני הוראות קריטיות |
| Skill מחזיר תוצאה ריקה (Fork) | ה-Fork נכשל או שלא מצא מה לעשות | שנה ל-fork: false זמנית כדי לראות שגיאות. הוסף הוראת "If you cannot complete the task, explain why" בסוף |
| Shell Commands דינמיים מחזירים ריק | הפקודה לא מוצאת נתונים (למשל git log בפרויקט בלי commits) |
הוסף fallback: `git log --oneline -10 2>/dev/null || echo "No commits found"` |
| Skill רץ עם המודל הלא-נכון | שדה model לא מוגדר או שגוי |
ודא שכתבת model: sonnet (לא Model: Sonnet). YAML הוא Case-Sensitive. בדוק שאין רווח לפני הנקודתיים |
| Auto-Invoke לא מופעל | ה-description לא ברור מספיק ל-Claude |
שכתב את ה-description כך שיהיה ספציפי: במקום "check code" כתוב "check TypeScript files for missing type annotations" |
עבור על כל ה-Skills שיצרת עד עכשיו בפרק הזה. לכל אחד, בדוק: (1) יש name ו-description ברורים? (2) יש הערת עלות? (3) הוראות כוללות טיפול בשגיאות? (4) פורמט פלט מוגדר? (5) YAML Syntax תקין (--- בהתחלה ובסוף)? תקן מה שחסר.
| מצב | כלי נכון | למה |
|---|---|---|
| בדיקה אוטומטית על כל שינוי קובץ | Hook | Hook רץ אוטומטית על אירועים, בלי שצריך להפעיל |
| תהליך מורכב שמפעילים לפי בקשה | Skill (User-Invoked) | Skill מארז הוראות מורכבות לפקודה אחת |
| בדיקת איכות שתמיד צריכה לרוץ | Skill (Auto-Invoked) | Claude מפעיל בעצמו כשרלוונטי |
| שאלה חד-פעמית שלא תחזור | Prompt רגיל | לא שווה ליצור Skill למשהו שרץ פעם אחת |
| פורמט קבוע לכל פרויקט | CLAUDE.md / Rules | כללי עיצוב וסטנדרטים — לא צריכים הפעלה |
עץ החלטה: Fork or Not Fork
שאלה 1: האם ה-Skill צריך לראות מה דיברנו בשיחה?
→ כן: fork: false
→ לא: המשך לשאלה 2
שאלה 2: האם ה-Skill קורא הרבה קבצים או מריץ פקודות רבות?
→ כן: fork: true
→ לא: המשך לשאלה 3
שאלה 3: האם ה-Skill עלול להיכשל ואתה רוצה לנסות בלי לזהם את ההקשר?
→ כן: fork: true
→ לא: fork: false (ברירת המחדל)
- קח את הרשימה של 3 משימות חוזרות שרשמת בתחילת הפרק
- כתוב Skill לכל אחת. לכל Skill הגדר: name, description, model, effort, fork
- בכל Skill כלול: שלבים ממוספרים, הגדרת פורמט פלט, טיפול בשגיאות
- בדוק כל Skill לפחות פעמיים — פעם עם קלט רגיל ופעם עם מקרה קצה
- הוסף הערת עלות (
<!-- Cost: ... -->) לכל קובץ - ארגן את ה-Skills בתיקיות לפי תחום
- צור Skill בשם
smart-reviewשמבצע ביקורת קוד דינמית - ה-Skill צריך להזריק
`git diff --cached --name-only`— קבצים ב-Staging - אם הקבצים הם TypeScript — בדוק Types ו-Lint
- אם הקבצים הם Python — בדוק PEP8 ו-Type Hints
- אם הקבצים כוללים
package.json— בדוק שאין Dependencies שלא בשימוש - הגדר
fork: trueכי הביקורת קוראת הרבה קבצים - הפלט: טבלת Markdown עם File, Issue, Severity, Fix Suggestion
- צור Skill מותאם בשם
my-reviewשמבוסס על/reviewאבל עם הכללים שלך - הוסף להוראות את ה-Coding Standards הספציפיים של הפרויקט שלך (קרא אותם מ-CLAUDE.md)
- הגדר פורמט פלט שמתאים לתהליך ה-PR שלך
- הוסף בדיקות ספציפיות לפרויקט (למשל: "Check that all API endpoints return standard error format")
- בדוק: האם
/my-reviewנותן תוצאה טובה יותר מ-/reviewהגנרי על הקוד שלך?
Skill Composition — שרשור ושילוב Skills
Skill בודד חזק. אבל שרשרת של Skills — זו מערכת אוטומציה שלמה. Composition (הרכבה) הוא הרעיון שSkill אחד יכול "לקרוא" ל-Skill אחר, או שתבנה Pipeline שמפעיל מספר Skills ברצף לפי תוצאות.
ב-Claude Code, אין תמיכה ישירה ב-"Skill calls Skill" (Skill לא יכול להפעיל /another-skill ישירות). אבל יש שלוש גישות פרקטיות לשרשור:
גישה 1: Orchestrator Skill — "מנצח" שמפעיל שלבים
Skill אחד שמכיל את כל השלבים ברצף. במקום 3 Skills נפרדים, Skill אחד גדול שמכסה את כל ה-Pipeline:
---
name: full-pr-pipeline
description: Complete PR preparation: lint, test, review, and PR creation
model: opus
effort: high
fork: true
---
# Full PR Pipeline
Execute these steps in order. Stop at any step that fails.
## Step 1: Lint & Format
Run linting and formatting on all changed files.
Fix any auto-fixable issues.
## Step 2: Run Tests
Execute the test suite. If any test fails, STOP and report the failure.
Do NOT proceed to Step 3.
## Step 3: Security Check
Scan changed files for hardcoded secrets, SQL injection patterns,
and missing input validation. Report any findings.
## Step 4: Generate PR Description
Based on git diff and commit messages, write a detailed PR description
following the template in .github/PULL_REQUEST_TEMPLATE.md.
## Step 5: Final Report
Summarize: tests passed, issues found, PR ready / not ready.
יתרון: פשוט, הכל במקום אחד, קל לתחזוקה. חיסרון: אם צריך רק Step 3 (Security Check), חייבים להריץ את כל ה-Pipeline.
גישה 2: Agent + Sub-Skills — סוכן שמפעיל Skills
צור Custom Agent שיודע על ה-Skills שלך ויכול להפעיל אותם לפי הצורך. בהוראות של ה-Agent, ציין את ה-Skills הקיימים ומתי להשתמש בכל אחד:
---
name: dev-assistant
description: Development assistant that orchestrates project workflows
model: opus
---
You are a development assistant. You have access to these workflows:
1. **Lint Check**: Run eslint on changed files and fix issues
2. **Security Scan**: Check for secrets and vulnerabilities
3. **PR Prep**: Generate PR description from git history
Based on the user's request, decide which workflows to run and in what order.
Always report results between steps so the user can intervene if needed.
גישה 3: Headless Chaining — שרשור ב-CLI
הגישה הכי גמישה: שרשור ב-Shell Script שמפעיל Claude Code ב-Headless Mode (-p flag) מספר פעמים ברצף. כל הפעלה מריצה Skill אחר:
#!/bin/bash
# pipeline.sh — Chain multiple Skills
echo "Step 1: Lint..."
claude -p "/lint-fix" --bare
echo "Step 2: Security..."
result=$(claude -p "/security-audit" --bare)
if echo "$result" | grep -q "CRITICAL"; then
echo "Security issues found! Aborting."
exit 1
fi
echo "Step 3: PR..."
claude -p "/generate-pr" --bare
echo "Pipeline complete!"
שימו לב לדגל --bare — הוא מדלג על Hooks, LSP, ו-Plugin Sync, מה שמזרז את ההפעלה משמעותית. דגל זה הושק במרץ 2026 (גרסה 2.1.81) ומיועד בדיוק לתרחישים של CI/CD ואוטומציה.
שלוש הגישות לשרשור Skills מתאימות לתרחישים שונים. Orchestrator Skill הוא הפשוט ביותר (קובץ אחד, אפס תלויות חיצוניות). Agent + Sub-Skills הוא הגמיש ביותר (Claude מחליט מה להפעיל). Headless Chaining הוא הכי מתאים ל-CI/CD (רץ בלי אינטראקציה, עם קודי יציאה לבקרת זרימה).
חשוב על Pipeline בזרימת העבודה שלך שמורכב מ-2-3 שלבים. צור Orchestrator Skill שמבצע את כל השלבים ברצף עם נקודות עצירה (Stop Points) בין שלבים. הפעל ובדוק שהעצירה עובדת כשאחד השלבים נכשל.
ספריית Templates — Skills מוכנים לשימוש
אחד הדברים שמעכבים אנשים מליצור Skills הוא השאלה "מאיפה מתחילים?" הנה 5 Templates מוכנים שאפשר להעתיק, להתאים, ולהשתמש מיד. כל Template כולל את ה-YAML המלא ואת ההוראות — פשוט תעתיק, תשנה את הפרטים הספציפיים, ותשמור.
Template 1: Code Review לפי סטנדרטים
---
name: our-review
description: Code review using our team's specific standards
model: sonnet
effort: medium
fork: true
---
# Team Code Review
Review files changed in the current branch compared to main:
`git diff main --name-only`
## Checklist
For each changed file, verify:
- [ ] All functions have JSDoc with @param and @returns
- [ ] No hardcoded secrets or API keys
- [ ] Error handling exists for all async operations
- [ ] Imports are sorted alphabetically
- [ ] No console.log statements (use logger instead)
- [ ] Tests exist for new public functions
## Output
Report as: File | Issue | Line | Severity (critical/warning/info) | Fix
End with: Total issues, breakdown by severity, estimated fix time.
## Error Handling
If no files changed vs main, report "No changes to review" and stop.
If a file is binary (image, etc.), skip it and note "Skipped binary file."
Template 2: Changelog Generator
---
name: changelog
description: Generate CHANGELOG entry from recent commits
model: sonnet
effort: low
fork: true
---
# Changelog Generator
Read recent commits:
`git log --oneline --since="last tag" 2>/dev/null || git log --oneline -20`
Categorize each commit: Added, Changed, Fixed, Removed, Security.
Output as Keep a Changelog format (https://keepachangelog.com):
## [Version] - `date +%Y-%m-%d`
### Added
### Changed
### Fixed
If a category has no entries, omit it.
Write the version as "[Unreleased]" unless user specifies a version number.
Template 3: Environment Health Check
---
name: health-check
description: Check project health — dependencies, configs, and environment
model: haiku
effort: low
fork: true
---
# Project Health Check
## 1. Dependencies
If package.json exists: check for outdated packages (major versions behind).
If requirements.txt exists: verify all packages are pinned to specific versions.
## 2. Configuration
Compare .env.example with .env (if both exist). Flag missing variables.
## 3. Git Status
Report: current branch, uncommitted changes, unpushed commits.
## 4. Disk & Size
Report: node_modules size (if exists), .git size, total project size.
Output as a quick dashboard:
Dependencies: OK/WARN (N outdated)
Config: OK/WARN (N missing vars)
Git: Clean/Dirty (N uncommitted)
Size: X MB total
Template 4: Meeting Notes Generator
---
name: meeting-notes
description: Generate structured meeting notes from raw text or voice transcript
model: sonnet
effort: medium
fork: true
---
# Meeting Notes Generator
The user will paste raw meeting notes or voice transcript after the command.
Transform into structured format:
## [Meeting Title] - `date +%Y-%m-%d`
### Attendees
(Extract names mentioned)
### Key Decisions
(Bullet list of decisions made)
### Action Items
(Table: Task | Owner | Deadline)
### Discussion Summary
(3-5 paragraphs covering main topics)
### Open Questions
(Items that need follow-up)
Write in Hebrew. Names and technical terms in English.
If no text is provided, ask the user to paste the raw notes.
Template 5: Database Migration Generator
---
name: gen-migration
description: Generate a database migration from schema changes
model: opus
effort: high
fork: true
---
# Migration Generator
1. Read the current schema file (look for schema.prisma, schema.sql, or models/)
2. Read recent git diff for schema changes
3. Generate an UP migration that applies the changes
4. Generate a DOWN migration that reverses them
5. Add data migration logic if columns are renamed or types changed
## Safety Rules
- NEVER generate DROP TABLE without explicit user confirmation
- Always wrap in transaction (BEGIN/COMMIT)
- Add IF EXISTS / IF NOT EXISTS guards
- Include a comment header: migration name, date, description
## Output
Write migration files to the appropriate directory:
- Prisma: generate prisma migration SQL
- Knex: generate knex migration JS
- Raw SQL: generate .sql file
Show plan BEFORE writing files. Wait for approval.
חמשת ה-Templates האלה הם נקודת ההתחלה. אחרי שתתאים כל אחד לצרכים שלך, כל Template יגדל: /our-review יקבל בדיקות ספציפיות לפרויקט, /changelog יקבל פורמט מותאם, /health-check יקבל בדיקות ספציפיות לסביבה שלך. תוך חודש תהיה לך ספרייה של 10-15 Skills מותאמים שחוסכים שעות.
בחר Template אחד מהרשימה למעלה — את הרלוונטי ביותר לעבודה שלך. העתיק אותו לתוך .claude/commands/, התאם את הפרטים (Checklist, פורמט פלט, שם), ובדוק עם הפעלה אחת. אחר כך עשה לפחות סבב אחד של איטרציה (ערוך, שמור, הפעל).
ROI Calculator — מדידת ההחזר על ההשקעה
Skills עולים כסף — כל הפעלה צורכת טוקנים. אבל Skills גם חוסכים כסף — זמן מפתח, עקביות, הפחתת טעויות. כדי להחליט אם Skill שווה את ההשקעה, צריך לחשב ROI (החזר על ההשקעה).
הנוסחה הבסיסית
ROI = (זמן שנחסך × שכר לשעה) - (עלות Skill × מספר הפעלות)
דוגמת חישוב: /our-review
| פרמטר | ערך |
|---|---|
| זמן Code Review ידני | 15 דקות = 0.25 שעה |
| זמן עם Skill | 3 דקות (הפעלה + קריאת דוח) = 0.05 שעה |
| חיסכון לכל הפעלה | 12 דקות = 0.2 שעה |
| שכר מפתח ממוצע בישראל | ~160 ₪ לשעה (עלות מעסיק) |
| ערך חיסכון לכל הפעלה | 0.2 × 160 = 32 ₪ |
| עלות Skill (Sonnet, Fork) | ~$0.10-0.25 = ~0.40-1.00 ₪ |
| הפעלות ביום (צוות של 4) | ~10 |
| ROI יומי | (32 × 10) - (0.70 × 10) = 313 ₪ ליום |
| ROI חודשי (22 ימי עבודה) | ~6,886 ₪ חיסכון נטו |
כן, אתה קורא נכון. Skill אחד שחוסך 12 דקות לכל Code Review, עם צוות של 4 מפתחים שפותחים 2-3 PRs ביום כל אחד, מייצר חיסכון של כמעט 7,000 ₪ בחודש. העלות: פחות מ-200 ₪ בחודש בטוקנים. זה ROI של פי 35.
ROI ממוצע של Skill שחוסך 12 דקות, 10 הפעלות ביום, עם צוות ישראלי. גם Skill שחוסך רק 5 דקות לכל הפעלה עדיין מניב ROI חיובי מההפעלה הראשונה — עלות הטוקנים זניחה לעומת עלות זמן מפתח.
מתי Skill לא שווה את ההשקעה?
- משימה חד-פעמית: אם תשתמש ב-Skill פעם אחת בלבד — חבל על זמן הפיתוח (15-30 דקות). פשוט כתוב Prompt רגיל
- משימה שדורשת שיקול דעת אנושי מלא: Code Review של ארכיטקטורה מורכבת — Skill יכול לעזור אבל לא להחליף לגמרי
- Skill יקר שרץ לעיתים רחוקות:
/batchשעולה $10 ורץ פעם בחודש — עדיין שווה אם הוא חוסך 4 שעות עבודה. אבל/batchשרץ על 3 קבצים — לא שווה
Framework: "3-Use Rule" — אם תשתמש בתהליך 3 פעמים או יותר, צור לו Skill. פחות מ-3 פעמים — Prompt רגיל מספיק. זה הסף המינימלי שבו ההשקעה בכתיבת Skill מתחילה להחזיר את עצמה.
קח Skill אחד שכבר יצרת. חשב: כמה זמן הוא חוסך בכל הפעלה? כמה פעמים ביום/שבוע תפעיל אותו? מה העלות לכל הפעלה (בדוק את הערת העלות)? חשב ROI חודשי. הוסף את התוצאה כהערה בקובץ ה-Skill.
שגרת עבודה עם Skills
בנוסף לשגרת ה-Hooks מפרק 1 ולשגרת ה-Agents מפרק 2 ולשגרת תחזוקת ה-MCP מפרק 3, הנה השגרה הייעודית ל-Skills:
| מתי | מה לעשות | זמן |
|---|---|---|
| יומי | הפעל /daily-review בתחילת יום העבודה. השתמש ב-/check-todos לפני Commit. אם Skill לא עובד טוב — עדכן מיד עם Hot Reload |
5 דקות |
| יומי | הפעל /pre-pr לפני כל Pull Request — בדיקת איכות אחרונה |
3 דקות |
| שבועי | סקור את ספריית ה-Skills: האם יש משימה חוזרת שעדיין אין לה Skill? בדוק הערות עלות — אפשר להוריד מודל? | 10 דקות |
| שבועי | שתף Skills חדשים עם הצוות ב-PR. בדוק אם חברי צוות יצרו Skills שגם אתה יכול להשתמש בהם | 5 דקות |
| חודשי | רביזיה מלאה: מחק Skills שלא השתמשת בהם חודש. בדוק Bundled Skills חדשים. שקול Auto-Invoke על מוכחים (30+ הפעלות) | 20 דקות |
| חודשי | חשב ROI: כמה זמן חסכת? כמה עלה? האם המאזן חיובי? | 10 דקות |
מהמפתחים שמשתמשים ב-Skills באופן קבוע מדווחים על שיפור בעקביות הפלטים מ-Claude Code, ועל חיסכון ממוצע של שעה ביום במשימות חוזרות. (דוגמאות מייצגות, בהתבסס על משוב משתמשים בקהילות מפתחים, 2026)
צור Skill אחד היום. לא מחר, לא בסוף השבוע — היום. קח את המשימה שאתה עושה הכי הרבה ב-Claude Code, כתוב אותה כ-Skill עם הוראות ברורות, ושמור ב-.claude/commands/. לא צריך שיהיה מושלם — כתוב גרסה ראשונה ושפר עם Hot Reload. מהרגע שיש לך Skill אחד שעובד ושומר לך 5 דקות בכל שימוש, תרצה ליצור עוד. וספריית Skills מותאמת שגדלה = זרימת עבודה שמשתפרת כל שבוע. תוך חודש יהיו לך 10+ Skills שחוסכים שעה ביום.
ענה על 5 השאלות הבאות בלי לגלול למעלה. אם עונים נכון על 4 מתוך 5 — סיימת את הפרק בהצלחה.
- למה שדה ה-name ב-YAML Frontmatter כל כך חשוב ואיך הוא מתחבר לפקודות /slash? (רמז: ה-name הופך ישירות לפקודה —
name: deploy=/deploy) - מה הסכנה בלהגדיר יותר מדי Skills כ-Auto-Invoke ומה הפתרון? (רמז: Claude צריך להעריך כל Skill בכל בקשה. הפתרון: מקסימום 3-5, רק אחרי 30+ הפעלות ידניות)
- למה Forked Context חוסך ~95% מצריכת ה-tokens ומתי הוא דווקא לא מתאים? (רמז: רק הסיכום חוזר. לא מתאים כשצריכים הקשר מהשיחה)
- איך Shell Commands מזריקים נתונים דינמיים ל-Skill ומה הסכנה הגדולה? (רמז: Backticks מריצים פקודה לפני שClaude מעבד. הסכנה: הזרקת API Keys שנשלחים ל-API)
- מתי להשתמש ב-Skill, מתי ב-Hook, ומתי ב-CLAUDE.md — ומה עקרון ההבדל? (רמז: Skill = תהליך לפי בקשה, Hook = אוטומטי על אירוע, CLAUDE.md = כללים קבועים תמיד-פעילים)
Skills הם השלב שבו Claude Code מפסיק להיות כלי שצריך להסביר לו מה לעשות בכל פעם — ומתחיל להיות מערכת אוטומציה אמיתית. התובנה המרכזית היא שכל תהליך חוזר ב-Claude Code הוא מועמד ל-Skill, וברגע שאתה כותב הוראות פעם אחת ומארז אותן כפקודה — אתה חוסך זמן בכל הפעלה עתידית ומקבל תוצאות עקביות. בשילוב עם Hooks (פרק 1), Custom Agents (פרק 2), ו-MCP (פרק 3), Skills מאפשרים לבנות Pipelines מורכבים שמתאימים את עצמם למצב הפרויקט דרך Shell Commands דינמיים. בפרק הבא נעבור ל-Plugins — שם נלמד לארוז Skills, Agents, Hooks ו-MCP Servers ביחד כחבילה שלמה שאפשר לשתף דרך המארקטפלייס.
צ'קליסט — סיום פרק 4
- ☐ אני מבין מה זה Skill ואיך הוא שונה מ-Prompt רגיל
- ☐ אני יודע לכתוב YAML Frontmatter עם כל השדות: name, description, model, effort, invoke, fork, agent, hooks, tools
- ☐ אני יודע לכתוב הוראות Markdown אפקטיביות: שלבים, לוגיקה מותנית, פורמט פלט, טיפול בשגיאות
- ☐ יצרתי לפחות Skill אחד שעובד ב-
.claude/commands/ - ☐ אני מבין את ההבדל בין User-Invoked לבין Auto-Invoked ומתי להשתמש בכל אחד
- ☐ אני מבין מתי להשתמש ב-Forked Context ומתי לא
- ☐ אני מכיר את ה-Skills המובנים: /simplify, /batch, /debug, /loop, /review
- ☐ ארגנתי את תיקיית
.claude/commands/עם מבנה ברור - ☐ אני יודע להזריק נתונים דינמיים עם Shell Commands ב-Skills
- ☐ בניתי Skill מלא (
/write-blog-heאו דומה) עם Quality Gate - ☐ כל Skill שיצרתי כולל הערת עלות
- ☐ ביצעתי לפחות 2 תרגילים מתוך 4
- ☐ אני יודע ליישם Hot Reload — לערוך Skill ולהפעיל מיד בלי Restart
- ☐ אני מבין את עץ ההחלטה: Skill vs Prompt vs Hook vs CLAUDE.md
- ☐ אני יודע להגדיר Custom Agent עם maxTurns ו-disallowedTools
- ☐ אני יודע לשרשר Skills: Orchestrator, Agent Composition, Headless Chaining
- ☐ יש לי לפחות Template אחד מותאם מספריית ה-Starter Kit
- ☐ חישבתי ROI על Skill אחד לפחות
- ☐ אני מכיר את טבלת ה-Troubleshooting ויודע לעשות Debug ל-Skill שלא עובד