- קובץ CLAUDE.md מותאם אישית לפרויקט שלך — כתוב, שמור, ועובד
- הבנה מלאה של ההיררכיה: Global → Project → Rules → שיחה
- תבנית מוזהבת (Golden Template) שאפשר להעתיק ולהתאים לכל סוג פרויקט
- 3 תבניות CLAUDE.md מוכנות: שיווק/תוכן, פיתוח, וניתוח נתונים
- הבנת הפקודה
/initויכולת להשתמש בה לייצר CLAUDE.md אוטומטי - ידע מעשי בתיקיית
.claude/rules/ואקטיבציה מותנית (Conditional Activation) - הכרת מערכת ה-Auto-Memory ופקודת
/memory - Framework ברור ל"מה נכנס ומה לא נכנס" ל-CLAUDE.md
- תוכלו להעריך האם CLAUDE.md קיים מספיק הקשר לפרויקט נתון — ולזהות מה חסר
- תוכלו להחליט מה שייך ל-Global, מה ל-Project, ומה ל-Rules — בלי לערבב
- תוכלו לבנות CLAUDE.md מאפס בעזרת /init + עריכה ידנית תוך 15 דקות
- תוכלו להסביר למישהו אחר בצוות למה CLAUDE.md חיוני ואיך לתחזק אותו
- פרקים קודמים: פרק 1 (מבוא) + פרק 2 (הסשן הראשון) — חובה
- כלים נדרשים: Claude Code מותקן ועובד, עורך טקסט (VS Code מומלץ), טרמינל פתוח
- הכנה: תיקיית פרויקט כלשהי עם קבצים (גם פרויקט ישן מספיק)
- זמן משוער לפרק: 60-75 דקות (כולל תרגילים מעשיים)
בפרק 2 למדת לפתוח סשן, להבין את מערכת ההרשאות, לעבוד עם ששת הכלים המרכזיים, ולהבדיל בין DO, EXPLAIN ו-PLAN. בפרק הזה תבנה את ה-CLAUDE.md — הקובץ שגורם ל-Claude להכיר את הפרויקט שלך מהשנייה הראשונה של כל סשן. בפרק 4 תשתמש ב-CLAUDE.md הזה כבסיס לפרומפטים מדויקים וחדים.
מונחים חדשים שתפגשו בפרק הזה:
| מונח | הסבר |
|---|---|
| CLAUDE.md | קובץ Markdown שמכיל הוראות לפרויקט. Claude Code קורא אותו אוטומטית בתחילת כל סשן — כמו תדריך לעובד חדש |
| Global CLAUDE.md | קובץ ברמת המשתמש (~/.claude/CLAUDE.md) שחל על כל הפרויקטים. מכיל העדפות אישיות |
| Project CLAUDE.md | קובץ ברמת הפרויקט (./CLAUDE.md) שחל רק על פרויקט ספציפי. מכיל הקשר טכני ומקצועי |
| .claude/rules/ | תיקייה שמכילה קבצי חוקים מודולריים — כל קובץ מתמקד בנושא אחד. נטענת אוטומטית |
| Frontmatter | כותרת YAML בתחילת קובץ (בין שני ---). מאפשרת הגדרות כמו אקטיבציה מותנית לפי סוג קובץ |
| /init | פקודה מובנית של Claude Code שמנתחת את מבנה הפרויקט ויוצרת CLAUDE.md אוטומטי |
| Auto-Memory | זיכרון אוטומטי — Claude לומד מההתנהגות שלכם בין סשנים ושומר הקשר שימושי |
| Context Budget | כמות הטוקנים שנצרכים מחלון ההקשר עוד לפני שהתחלתם לכתוב. CLAUDE.md גדול = פחות מקום לשיחה |
| Conditional Activation | מנגנון שבו קובץ rules נטען רק כשעובדים עם סוג קובץ ספציפי (למשל, רק עם קבצי Python) |
מה זה CLAUDE.md — ולמה זה Game Changer
בואו נתחיל מהבעיה. כל פעם שאתם פותחים סשן חדש ב-Claude Code, הוא מתחיל עם אפס הקשר על הפרויקט שלכם. הוא לא יודע מה ה-tech stack, מה הקונבנציות, מה הפקודות החשובות, ובאיזו שפה אתם רוצים שידבר. כל סשן אתם מתחילים מחדש — כמו להסביר לעובד חדש מה העסק עושה, כל בוקר מחדש.
זה מתסכל, זה בזבוז זמן, וזה גורם לתוצאות פחות טובות. אם Claude לא יודע שהפרויקט שלכם משתמש ב-TypeScript ולא JavaScript, הוא ייצור קבצי JavaScript. אם הוא לא יודע שהתיקייה src/components/ היא המקום הנכון לקומפוננטות, הוא יכתוב אותן במקום הלא נכון. אם הוא לא יודע שהדיפלוי שלכם הוא דרך Vercel, הוא יציע פתרונות שלא רלוונטיים.
CLAUDE.md פותר את הבעיה הזאת לגמרי.
CLAUDE.md הוא קובץ Markdown פשוט שאתם שמים בתיקיית הפרויקט שלכם. Claude Code קורא אותו אוטומטית בתחילת כל סשן — לפני שאתם מקלידים אפילו מילה אחת. זה כמו תדריך שאתם נותנים לעובד חדש, אלא שהעובד הזה שוכח הכל בין ימי עבודה — אז הוא קורא את התדריך מחדש כל בוקר.
אבל בניגוד לעובד אנושי שיתעצבן מלקרוא אותו דבר כל יום, Claude עושה את זה בשמחה ובמילישניות. והתוצאה? במקום 5-10 דקות של "הכנסה לעניינים" בתחילת כל סשן, אתם מתחילים לעבוד מיד. אם אתם פותחים 3-4 סשנים ביום, זה 20-40 דקות שנחסכות כל יום.
כמות הזמן שתחסכו בכל סשן עם CLAUDE.md טוב. במקום להסביר הקשר מחדש, תתחילו לעבוד מיד. אם פותחים 3-4 סשנים ביום, זה 20-40 דקות ביום. לאורך חודש — 10-20 שעות של עבודה.
השם רגיש לאותיות גדולות (case-sensitive) ב-Linux, אז חשוב שיהיה בדיוק CLAUDE.md — עם כל האותיות גדולות. ב-Mac ו-Windows זה פחות קריטי, אבל הרגל טוב הוא תמיד להשתמש בשם המדויק. הקובץ ממוקם בתיקיית השורש (root) של הפרויקט שלכם — באותו מקום שבו יש package.json או requirements.txt.
מה קורה בלי CLAUDE.md?
בלי CLAUDE.md, כל סשן מתחיל כך:
- Claude לא יודע מה הפרויקט עושה — הוא צריך לסרוק קבצים כדי לנחש
- Claude לא מכיר את ה-tech stack — הוא עלול לבחור שפה או framework לא נכונים
- Claude לא יודע את הקונבנציות שלכם — camelCase או snake_case? Tabs או spaces?
- Claude לא מכיר פקודות חשובות —
npm run devאוyarn dev? Port 3000 או 8080? - Claude לא יודע מה אסור לעשות — "לעולם אל תמחק קבצי מיגרציה" או "אל תשנה את ה-API key"
- Claude לא יודע על Gotchas — באגים ידועים, workarounds, והחלטות עיצוב מפתיעות
בעצם, בלי CLAUDE.md אתם מקבלים AI חכם שלא יודע שום דבר על ההקשר שלכם. זה כמו להזמין מומחה עולמי לפגישה — ולשכוח לספר לו על מה הפגישה. הוא עדיין מומחה, אבל הוא לא יכול לעזור ביעילות בלי הקשר.
מה קורה עם CLAUDE.md?
עם CLAUDE.md, כל סשן מתחיל כך:
- Claude כבר יודע שהפרויקט הוא "אתר שיווקי ב-Next.js 15 עם Supabase"
- Claude יודע שהסגנון הוא TypeScript + Tailwind CSS
- Claude מכיר את הפקודה
npm run devויודע שהשרת עולה על port 3000 - Claude יודע שהתוכן צריך להיות בעברית, עם מונחים מקצועיים באנגלית
- Claude יודע שאסור לשנות קבצי
.envולמחוק מיגרציות
ההבדל הוא דרמטי. במקום 5 דקות של "הסבר מי אתה", מתחילים ישר עם "תעשה לי X". וה-X הזה יהיה מדויק יותר, כי Claude מבין את ההקשר.
בלי CLAUDE.md:
אתם: "תוסיף דף צור קשר לאתר"
Claude: יוצר קובץ HTML רגיל עם inline CSS, בשפה האנגלית, בתיקייה הלא נכונה
עם CLAUDE.md:
אתם: "תוסיף דף צור קשר"
Claude: יוצר קובץ src/app/contact/page.tsx ב-TypeScript עם Tailwind CSS, בעברית, עם form שמתחבר ל-Supabase — כי הוא יודע את כל ההקשר מ-CLAUDE.md.
בלי CLAUDE.md: "כתוב 5 כותרות למודעת Google Ads לקורס שיווק דיגיטלי"
Claude כותב כותרות באנגלית, כלליות, 90 תווים (עובר את המגבלה של 30 תווים ל-headline ב-Google Ads).
עם CLAUDE.md שמציין: "Google Ads headlines: max 30 chars. All content in Hebrew. Target: small business owners 30-50 in Israel."
Claude כותב 5 כותרות בעברית, עד 30 תווים כל אחת, מותאמות לקהל יעד של בעלי עסקים קטנים ישראלים. עובד מושלם מהניסיון הראשון, בלי צורך בשום תיקון. חיסכון: 10-15 דקות של תיקונים ושכתובים, כפול כמה פעמים ביום — זה מצטבר.
פתח את הפרויקט האחרון שעבדת עליו (או תיקייה כלשהי עם קבצים). בדוק: האם יש שם קובץ CLAUDE.md? אם כן — מצוין, נשפר אותו בהמשך. אם לא — מצוין גם כן, ניצור אחד חדש בהמשך הפרק. סמן לעצמך מה הפרויקט ואיפה התיקייה — תצטרך את זה לתרגילים.
אבולוציה של CLAUDE.md — דוגמה אמיתית
כדי להבין את הערך של CLAUDE.md, בואו נראה איך הוא מתפתח עם הזמן בפרויקט אמיתי. נניח שיש לנו סוכנות שיווק דיגיטלי ישראלית שבונה אתרי Wordpress ודפי נחיתה ללקוחות:
# Digital Agency Website
## Stack
- WordPress + Elementor
- WooCommerce for shop
- Hebrew content, RTL layout
## Commands
- Dev: Local by Flywheel
- Deploy: WP Engine Git Push
7 שורות. זה הכל. אבל כבר עכשיו — Claude יודע שזה WordPress, שהתוכן בעברית, ושהדיפלוי הוא דרך WP Engine.
# Digital Agency Website
## Stack
- WordPress 6.5 + Elementor Pro 3.21
- WooCommerce 9.x for shop
- Hebrew content, RTL layout
- PHP 8.2, MySQL 8
## Commands
- Dev: Local by Flywheel (port 10008)
- Deploy: WP Engine Git Push (branch: main)
- Test: `wp theme unit-test` + manual QA
## Rules
- NEVER edit theme files directly — use child theme
- All CSS goes in child-theme/style.css, not inline
- Hebrew text: use native Hebrew, not Google Translate
- Images: always WebP, max 200KB
## Gotchas
- WooCommerce cart breaks if caching plugin is active — disable for /cart and /checkout
- Elementor widgets lose styling after import — always re-check colors
- The "שירותים" page uses a custom template — services-page.php
עכשיו יש לנו 20 שורות. כל שורה נוספה כי Claude עשה טעות: פעם אחת הוא ערך את קובץ הנושא הראשי במקום ה-child theme. פעם אחרת הוא יצר CSS inline. כל טעות הפכה לשורה ב-CLAUDE.md — וכך הקובץ "גדל" אורגנית.
זו התבנית שכדאי לעקוב אחריה: התחילו קטן, גדלו אורגנית. אל תנסו לכתוב CLAUDE.md מושלם ביום הראשון — פשוט התחילו עם הבסיס, ובכל פעם ש-Claude טועה בגלל חוסר הקשר, הוסיפו שורה. אחרי חודש יהיה לכם CLAUDE.md מצוין שנבנה מניסיון אמיתי.
אם אתם עובדים על פרויקטים בעברית, כדאי לציין ב-CLAUDE.md את ההנחיות הבאות: כיוון RTL, פורמט תאריך ישראלי (DD/MM/YYYY), מטבע (₪ / ILS), מספרי טלפון בפורמט ישראלי (050-XXX-XXXX), ושעברית היא שפת התוכן אבל מונחים טכניים נשארים באנגלית. הפרטים האלה חוסכים עשרות תיקונים.
ההיררכיה — Global, Project ו-Rules
CLAUDE.md הוא לא קובץ בודד — הוא חלק ממערכת שלמה של הגדרות, עם שלוש רמות שונות. כל רמה משרתת מטרה אחרת, וההבנה של ההיררכיה הזאת היא קריטית — כי היא קובעת מה לשים איפה. הרבה משתמשים עושים את הטעות של לדחוס הכל בקובץ אחד, ויוצרים בלגן. בואו נלמד את הדרך הנכונה.
רמה 1: Global CLAUDE.md — ההעדפות האישיות שלך
הקובץ ~/.claude/CLAUDE.md חל על כל הפרויקטים שלכם, בכל סשן. זה המקום להעדפות אישיות שלא משתנות בין פרויקטים. למשל:
- "תענה תמיד בעברית להסברים"
- "אל תמחק קבצים בלי לשאול"
- "אני מעדיף תשובות קצרות וענייניות"
- "תמיד תשתמש ב-TypeScript ולא JavaScript"
הקובץ הגלובלי לא נשמר ב-Git — הוא אישי שלכם, נשאר על המחשב שלכם בלבד. חשבו עליו כמו "פרופיל ברירת מחדל" שלכם. הוא בדרך כלל קטן (20-50 שורות) ומכיל רק העדפות שרלוונטיות לכם כאדם — לא לפרויקט מסוים. אם עובדים על כמה מחשבים, תצטרכו להעתיק את הקובץ ידנית או לנהל אותו דרך dotfiles.
רמה 2: Project CLAUDE.md — ההקשר של הפרויקט
הקובץ ./CLAUDE.md בתיקיית השורש של הפרויקט חל רק על הפרויקט הזה. זה המקום להקשר טכני ומקצועי ספציפי:
- מה הפרויקט עושה
- מה ה-tech stack (שפות, frameworks, שירותים)
- מבנה התיקיות
- פקודות חשובות (build, test, deploy)
- כללים וקונבנציות ספציפיות
- דברים שנפוץ לטעות בהם (Gotchas)
הקובץ הזה כן נשמר ב-Git — הוא חלק מהפרויקט. אם צוות עובד על אותו פרויקט עם Claude Code, כולם יקבלו את אותו CLAUDE.md. זה מבטיח שכולם עובדים לפי אותן קונבנציות — גם ה-AI. כשמישהו חדש מצטרף לצוות ומתחיל להשתמש ב-Claude Code, הוא מקבל מיד את כל ההקשר הנכון.
רמה 3: .claude/rules/ — חוקים מודולריים
תיקיית .claude/rules/ מאפשרת לכם לפצל את ההוראות לקבצים נפרדים, כל אחד מתמקד בנושא אחד. כל קבצי ה-.md בתיקייה הזו נטענים אוטומטית — בדיוק כמו CLAUDE.md, בלי שום הגדרה נוספת. זה שימושי במיוחד כשה-CLAUDE.md שלכם מתחיל להתנפח ואתם רוצים סדר. היתרון הגדול: אפשר לטעון חוקים רק כשעובדים עם סוגי קבצים מסוימים (Python rules רק כשפותחים קובץ Python, למשל). נדבר על זה בהרחבה בסעיף הייעודי.
סדר העדיפויות — מי גובר על מי?
כשיש סתירה בין הרמות, מי מנצח? הכלל הוא הספציפי גובר על הכללי, וההוראה האחרונה גוברת:
| עדיפות | מקור | מיקום | מה שמים כאן |
|---|---|---|---|
| 1 (נמוכה) | ברירות מחדל של Claude | מובנה | ההתנהגות הבסיסית של המערכת |
| 2 | Global CLAUDE.md | ~/.claude/CLAUDE.md |
העדפות אישיות, שפה, בטיחות |
| 3 | Project CLAUDE.md | ./CLAUDE.md |
Tech stack, קונבנציות, פקודות |
| 4 | .claude/rules/ | .claude/rules/*.md |
חוקים מפורטים לפי נושא |
| 5 (גבוהה) | ההודעות שלך בשיחה | הסשן הנוכחי | הוראות ספציפיות לרגע הזה |
דוגמה מעשית: ב-Global CLAUDE.md כתבתם "Always respond in Hebrew". ב-Project CLAUDE.md כתבתם "Code comments in English". ובשיחה אתם אומרים "answer this specific question in English". מה יקרה? Claude יענה לשאלה הזו באנגלית (שיחה גוברת), אבל בהמשך יחזור לעברית (Global) עם הערות בקוד באנגלית (Project). כל שכבה מטפלת בתחום שלה, ואין סתירה אמיתית.
צור את ה-Global CLAUDE.md שלך. פתח טרמינל והרץ:
mkdir -p ~/.claude && touch ~/.claude/CLAUDE.md
עכשיו פתח את הקובץ בעורך ותכתוב 3-5 העדפות אישיות. הנה דוגמה להתחלה:
# My Preferences
- Always respond in Hebrew for explanations
- Never delete files without asking first
- I prefer concise, actionable responses
- When creating code, always use TypeScript
- Show me the command before running it
שמור. זה הכל. מעכשיו כל סשן של Claude Code יתחיל עם ההעדפות האלה.
פקודת /init — הגדרה אוטומטית בשנייה
לא רוצים לכתוב CLAUDE.md מאפס? לא בטוחים מה לכלול? יש קיצור דרך מבריק: הפקודה /init.
כשאתם מריצים /init בתוך Claude Code, הוא מנתח את הפרויקט שלכם — קורא את מבנה התיקיות, בודק קבצי תצורה כמו package.json, requirements.txt, Dockerfile, קורא את ה-README אם יש, ובודק את היסטוריית Git האחרונה. מכל המידע הזה הוא בונה CLAUDE.md מותאם אישית.
/init חכם מספיק לזהות:
- סוג הפרויקט: Python, JavaScript, Go, Rust ועוד
- Frontend מול Backend מול Fullstack
- Monorepo מול שירות בודד
- כלי build ו-test (npm, pip, cargo, docker)
- פרויקטים שאינם קוד — תוכן, נתונים, שיווק
הקובץ שנוצר מ-/init הוא נקודת התחלה — לא מוצר מוגמר. הוא טוב במיוחד בזיהוי tech stack, מבנה תיקיות ופקודות build, אבל הוא לא יכול לדעת את הקונבנציות הספציפיות שלכם, ה-Gotchas, והכללים המיוחדים — אותם אתם צריכים להוסיף ידנית. תמיד עברו על הקובץ שנוצר, ערכו והתאימו.
נסה את /init על פרויקט אמיתי:
- נווט לתיקיית הפרויקט שלך (או צור תיקייה עם כמה קבצים)
- הפעל
claude - הקלד
/initולחץ Enter - חכה עד שהקובץ נוצר — זה לוקח 10-30 שניות
- קרא את הקובץ שנוצר:
cat CLAUDE.md
שאלות לבדיקה: האם הוא זיהה נכון את ה-tech stack? את מבנה התיקיות? את פקודות ה-build? מה חסר?
הדרך הטובה ביותר: הריצו /init, ואז מיד ערכו את הקובץ שנוצר. הוסיפו כללים ספציפיים, מחקו דברים לא רלוונטיים, והתאימו את השפה. ככה יש לכם נקודת התחלה מוצלחת עם 5 דקות עבודה נוספת.
מה /init מייצר — דוגמה מעשית
כדי שתבינו מה לצפות, הנה דוגמה של מה ש-/init מייצר כשמריצים אותו על פרויקט Next.js טיפוסי:
# my-shop
## Overview
E-commerce web application built with Next.js.
## Tech Stack
- Framework: Next.js 15 (App Router)
- Styling: Tailwind CSS
- Database: Supabase (PostgreSQL)
- Language: TypeScript
- Package manager: npm
## Project Structure
- src/app/ — App Router pages and layouts
- src/components/ — React components
- src/lib/ — Utility functions
- public/ — Static assets
## Development
- `npm run dev` — Start dev server (localhost:3000)
- `npm run build` — Production build
- `npm test` — Run tests
- `npm run lint` — Lint check
## Key Files
- src/app/layout.tsx — Root layout
- src/lib/supabase.ts — Supabase client
- tailwind.config.ts — Tailwind configuration
שימו לב למה /init מצא: את ה-tech stack, את מבנה התיקיות, ואת הפקודות. לא רע בכלל — זה חוסך הרבה עבודה. אבל מה חסר? כללים (Rules), מלכודות (Gotchas), הקשר עסקי (מי קהל היעד, מה המוצר), שפה מועדפת (עברית?), ותבניות עיצוב (Brand Voice). את כל אלה אתם צריכים להוסיף ידנית — וזה בדיוק ה-30% שהופכים CLAUDE.md טוב למצוין. הנה תהליך מעשי:
- הריצו
/init— קבלו את הבסיס האוטומטי - הוסיפו "What This Project Does" — 2-3 משפטים על המטרה העסקית
- הוסיפו Rules — לפחות 3-5 כללים קריטיים
- הוסיפו Gotchas — לפחות 1-2 מלכודות ידועות
- מחקו שורות לא רלוונטיות — לפעמים /init מוסיף דברים שלא צריך
התהליך הזה לוקח בדרך כלל 5-10 דקות, ונותן לכם CLAUDE.md שהוא 90%+ מדויק ושימושי.
כתיבת CLAUDE.md מושלם — התבנית המוזהבת
בין אם התחלתם מ-/init ובין אם מדף לבן, הנה המבנה שכדאי לכל CLAUDE.md לעקוב אחריו. זו "התבנית המוזהבת" (Golden Template) — מוכחת, קלה לשימוש, ועובדת לכל סוג פרויקט.
# Project Name
## What This Project Does
[2-3 sentences about the project's purpose]
## Tech Stack / Tools
- [Tool/framework 1]
- [Tool/framework 2]
- [Key services or platforms]
## Key Structure
- [Main directories and what they contain]
- [Important files and their roles]
## Common Commands
- Dev: `command here`
- Test: `command here`
- Build: `command here`
- Deploy: `command here`
## Rules
- [Critical do's and don'ts]
- [Conventions to follow]
- [Things to NEVER do]
## Gotchas
- [Non-obvious things that cause confusion]
- [Previous decisions and WHY they were made]
- [Known issues to work around]
בואו נפרק כל סעיף ונבין למה הוא חשוב:
What This Project Does — מה הפרויקט עושה
2-3 משפטים שנותנים ל-Claude את ה"תמונה הגדולה". בלי זה, Claude רואה קבצים אבל לא מבין את ההקשר העסקי. כשהוא יודע שזה "אתר חנות אופנה אונליין שפונה לנשים 25-40", הוא יכתוב קוד אחר ממה שהוא יכתוב לפרויקט "דשבורד ניהול פנימי לצוות DevOps".
Tech Stack — מה משתמשים בו
רשימה מדויקת של הכלים, השפות, ה-frameworks והשירותים. ציינו גרסאות כשזה רלוונטי — "Next.js 15" ולא רק "Next.js", כי יש הבדלים משמעותיים בין גרסאות. אם משתמשים בשירותי ענן — ציינו אותם: Vercel, Supabase, AWS וכו'.
Key Structure — מבנה התיקיות
Claude יכול לסרוק את התיקיות בעצמו, אבל לומר לו מראש חוסך זמן ומונע טעויות. במיוחד חשוב לציין תיקיות שאינן אינטואיטיביות — "הקומפוננטות המשותפות נמצאות ב-src/shared/ ולא ב-src/components/".
Common Commands — פקודות חשובות
פקודות ה-dev, test, build ו-deploy. Claude ישתמש בפקודות האלה כשהוא צריך להריץ, לבדוק, או לבנות דברים. בלי הסעיף הזה, הוא ינחש — ולפעמים ינחש לא נכון. למשל, אם אתם משתמשים ב-pnpm ולא npm, ציינו את זה כאן. אם יש פקודת lint מיוחדת, הוסיפו אותה. אם ה-deploy עובר דרך script מותאם אישית — תעדו את הפקודה המדויקת, לא "deploy to server".
Rules — כללים
זה הסעיף הקריטי ביותר — ה-"do's and don'ts" שמגדירים מה מותר, מה אסור, ומה חובה. כללים טובים הם ספציפיים ואכיפים. הנה דוגמאות לכללים אפקטיביים:
- "Always use TypeScript (.ts/.tsx), never JavaScript (.js/.jsx)"
- "Never modify existing migration files — always create new ones"
- "All user-facing text must be in Hebrew. Code comments in English"
- "Test every new component before committing. Run: npm test -- --related"
- "Use kebab-case for file names (my-component.tsx), PascalCase for React components (MyComponent)"
- "API routes must validate input with Zod schemas"
- "Never commit directly to main — always use feature branches"
שימו לב: כל כלל ברשימה הזו ספציפי, ברור, ואפשר לאכוף אותו. השוו את זה ל"כתוב קוד נקי" — שזה גנרי, לא אכיף, ובזבוז טוקנים. Claude כבר כותב קוד נקי כברירת מחדל. מה שהוא צריך מכם זה ההנחיות הספציפיות שלא יכול לנחש לבד.
Gotchas — מלכודות
הסעיף הכי מזולזל — והכי שימושי בפועל. Gotchas הם הדברים שגורמים לבעיות שוב ושוב, שאינם אינטואיטיביים, ושדורשים ידע פנימי שאי אפשר לגלות מקריאת הקוד. הם הידע השבטי של הפרויקט — הדברים שרק מי שעבד על הפרויקט חודשים יודע. כל פעם ש-Claude עושה טעות בגלל חוסר ידע — זה סימן שצריך להוסיף Gotcha ל-CLAUDE.md. למשל:
- "The API on port 3001 requires CORS headers — don't forget them"
- "We use a custom date format (DD/MM/YYYY), not the US format"
- "The 'users' table has a soft-delete — never use DELETE, use UPDATE with deleted_at"
צור CLAUDE.md לפרויקט שלך:
- העתק את התבנית המוזהבת למעלה
- מלא כל סעיף עם המידע של הפרויקט שלך
- הוסף לפחות 3 כללים בסעיף Rules
- הוסף לפחות Gotcha אחד — חשוב על טעות שקרתה בעבר
- שמור את הקובץ כ-
CLAUDE.mdבתיקיית השורש של הפרויקט
אין לך פרויקט פעיל? צור תיקייה חדשה עם שם דמיוני ותתרגל על זה. אפילו פרויקט של "דף נחיתה לעסק פיצה" עובד מצוין לתרגול.
הגודל הנכון — Sweet Spot
שאלה שעולה הרבה: כמה ארוך צריך להיות CLAUDE.md? יש sweet spot:
| גודל | שורות | הערכה |
|---|---|---|
| קצר מדי | פחות מ-50 | כנראה חסר מידע חשוב — Claude ינחש יותר מדי |
| Sweet Spot | 50-200 | מספיק מידע, לא עומס מיותר. מומלץ לרוב הפרויקטים |
| ארוך | 200-500 | מקובל לפרויקטים גדולים ומורכבים. שקלו לפצל ל-rules/ |
| ארוך מדי | מעל 500 | צורך יותר מדי טוקנים. חובה לפצל ל-.claude/rules/ |
כלל אצבע: אם אתם לא יכולים לקרוא את ה-CLAUDE.md שלכם בדקה אחת — הוא ארוך מדי. קצרו, פצלו, או העבירו חלקים ל-.claude/rules/.
אפשר לכתוב CLAUDE.md בעברית, באנגלית, או בשילוב — Claude מבין הכל. המלצה: כותרות סעיפים באנגלית (כי הן קצרות ואוניברסליות), הסברים בשפה שנוחה לכם. הקונבנציה הנפוצה ביותר היא אנגלית מלאה, כי זה מה שרוב הצוותים מכירים.
תבניות לסוגי פרויקטים שונים
התבנית המוזהבת עובדת לכל פרויקט, אבל פרויקטים שונים צריכים דגשים שונים. הנה שלוש תבניות מוכנות שאפשר להעתיק ולהתאים:
תבנית A: פרויקט שיווק ותוכן
# [Brand] Content Project
## Brand Voice
- Tone: Professional but approachable
- Avoid: Jargon, passive voice, clickbait
- Target audience: [description]
## Content Types
- Blog posts: 800-1200 words, SEO-optimized
- Social media: Short, punchy, with CTA
- Email: Personal tone, clear subject lines
## SEO Guidelines
- Primary keyword in H1 and first paragraph
- 2-3 secondary keywords naturally distributed
- Meta description: 155 characters max
## Rules
- All content in Hebrew unless specified otherwise
- Always include a call-to-action
- Never use competitor brand names
- Images should have descriptive alt text in Hebrew
שימו לב: בפרויקט שיווקי, חשוב לציין את ה-Brand Voice (טון המותג), קהל היעד, ואילוצי SEO. Claude יתאים את הסגנון למה שכתבתם כאן. אם כתבתם "professional but approachable" — התוכן יהיה שונה מ-"casual and fun".
תבנית B: פרויקט פיתוח ווב
# [App Name]
## Stack
- Frontend: Next.js 15 + Tailwind CSS
- Backend: Supabase (PostgreSQL)
- Auth: Supabase Auth
- Deploy: Vercel
## Commands
- Dev: `npm run dev` (localhost:3000)
- Test: `npm test`
- Build: `npm run build`
- Deploy: `git push origin main` (auto-deploys via Vercel)
## Structure
- src/app/ — Next.js App Router pages
- src/components/ — Reusable React components
- src/lib/ — Utility functions and Supabase client
- supabase/migrations/ — Database migration files
## Rules
- Use TypeScript, never JavaScript
- Components in src/components/, pages in src/app/
- Test every new component before committing
- Never modify existing migration files — create new ones
- All user-facing text in Hebrew
## Gotchas
- Supabase client must be initialized from src/lib/supabase.ts
- Dev server sometimes needs restart after .env changes
- Tailwind classes must use the custom color palette in tailwind.config.ts
תבנית C: פרויקט ניתוח נתונים
# Data Analysis Project
## Data Sources
- Main dataset: data/sales_2024.csv (date, product, amount, region)
- Reference: data/products.csv (product catalog)
- External: Google Sheets via API (monthly sync)
## Tools
- Python 3.11, pandas, matplotlib, seaborn
- Output format: markdown reports in reports/
- Charts saved as PNG in charts/
## Conventions
- Currency: ILS, format with 2 decimals
- Date format: DD/MM/YYYY (Israeli standard)
- Charts: Use Hebrew labels when possible
- Column names: snake_case in English
## Rules
- Never overwrite raw data files in data/
- Always create backup before transformations
- Every analysis script must have a docstring
- Save intermediate results in data/processed/
בחר את התבנית הקרובה ביותר לפרויקט שלך (שיווק, פיתוח, או נתונים) והתאם אותה. אם הפרויקט שלך שונה מהתבניות — אין בעיה, השתמש בתבנית המוזהבת מסעיף 3.4 ותתאים לפי הצורך. השלב החשוב: שמור את הקובץ.
מה לא לשים ב-CLAUDE.md
יודעים מה חשוב כמו מה כן לשים ב-CLAUDE.md? לדעת מה לא לשים שם. הנה הרשימה השחורה:
1. סודות ופרטי גישה — לעולם לא
אף פעם אל תשימו ב-CLAUDE.md: API keys, סיסמאות, tokens, connection strings, או כל מידע רגיש אחר. הסיבה פשוטה ומפחידה: CLAUDE.md נשמר ב-Git, ו-Git זוכר הכל — גם אם תמחקו את המידע בקומיט הבא, הוא נשאר בהיסטוריה לנצח. כל מי שיש לו גישה ל-repo יכול למצוא אותו בעזרת git log. השתמשו בקבצי .env (שנמצאים ב-.gitignore) או מנהל סודות (secrets manager) כמו Vault, AWS Secrets Manager, או Cloudflare KV.
מה הטעות: להכניס API keys, סיסמאות, או tokens ישירות ב-CLAUDE.md.
למה זה מפתה: כי CLAUDE.md נטען אוטומטית ונראה כמו המקום הנוח להגדיר הכל — כולל credentials שClaude צריך.
מה לעשות במקום: השתמשו בקבצי .env (שנמצאים ב-.gitignore), או במנהל סודות כמו Vault / AWS Secrets Manager. ב-CLAUDE.md כתבו רק "API keys are in .env". אם כבר עשיתם commit עם סוד — שנו את המפתח מיד.
2. לוגים ודמפים ארוכים
אל תדביקו ב-CLAUDE.md הודעות שגיאה שלמות או לוגים ארוכים. אם יש בעיה חוזרת, תמצתו אותה ל-1-2 משפטים. למשל, במקום 50 שורות של stack trace, כתבו: "Known issue: The auth middleware sometimes throws CORS errors when running locally. Fix: restart the dev server."
3. הוראות מובנות מאליהן
אל תכתבו "כתוב קוד נקי" או "היה מועיל". Claude כבר עושה את זה. הוראות גנריות מדי רק מבזבזות טוקנים. במקום זאת, היו ספציפיים: "Use early returns instead of nested if-else", "Maximum function length: 30 lines", "Every function must have JSDoc comments".
4. דוקומנטציה שלמה
CLAUDE.md הוא לא ויקי. אל תדביקו שם API documentation שלם או מדריך של 500 שורות. אם Claude צריך מידע מפורט, הפנו אותו: "See docs/api.md for the full API reference." Claude ידע לקרוא את הקובץ בעצמו כשיצטרך.
5. מידע מיושן
זה הסיכון הגדול ביותר. הוראות לא עדכניות הן גרועות יותר מאשר בלי הוראות — כי הן גורמות ל-Claude לעשות דברים לא נכונים בביטחון מלא. אם שיניתם את ה-tech stack, עדכנו את ה-CLAUDE.md. אם הפקודה השתנתה, שנו אותה. אם כלל כבר לא רלוונטי, מחקו אותו.
מה הטעות: להשאיר הוראות ישנות ב-CLAUDE.md — tech stack שהשתנה, port שעבר, פקודות שנמחקו.
למה זה מפתה: כי "זה עבד בזמנו" ואנחנו עצלנים לעדכן דוקומנטציה.
מה לעשות במקום: הכניסו שגרת תחזוקה חודשית (ראו "שגרת עבודה" בהמשך). כל מידע מיושן יגרום ל-Claude לפעול בביטחון מלא — בכיוון הלא נכון. הוראה לא עדכנית גרועה פי שניים מבלי הוראה בכלל.
מה הטעות: לכתוב CLAUDE.md של 800+ שורות עם כל הכללים, הדוגמאות, והדוקומנטציה בקובץ אחד.
למה זה מפתה: כי "הכל במקום אחד" מרגיש נוח ומסודר.
מה לעשות במקום: פצלו ל-.claude/rules/ כשעוברים 200 שורות. השתמשו ב-Conditional Activation כדי שחוקי Python לא ייטענו כשעובדים על TypeScript. הקובץ הגדול צורך טוקנים יקרים מחלון ההקשר — בלי סיבה.
6. יותר מדי טקסט
CLAUDE.md שגדול מ-500 שורות צורך יותר מדי טוקנים מחלון ההקשר. הפתרון: פצלו ל-.claude/rules/ (סעיף 3.7).
שאלו את עצמכם: "האם הייתי אומר את זה לעובד חדש ביום הראשון שלו?" אם כן — שימו את זה ב-CLAUDE.md. אם זה מידע שהעובד ילמד עם הזמן, או שהוא צריך רק במצבים ספציפיים — אל תשימו. זה יהיה ב-docs, ב-rules, או בשיחה עצמה. CLAUDE.md הוא תדריך יום ראשון, לא אנציקלופדיה.
שורה תחתונה — מה כן ומה לא
| שימו ב-CLAUDE.md | אל תשימו ב-CLAUDE.md |
|---|---|
| Tech stack עם גרסאות | API keys וסיסמאות |
| פקודות build/test/deploy | Stack traces ולוגים ארוכים |
| כללים ספציפיים ואכיפים | הוראות גנריות ("כתוב קוד נקי") |
| Gotchas ובאגים ידועים (תמצית) | דוקומנטציית API שלמה |
| מבנה תיקיות לא אינטואיטיבי | מידע מיושן מגרסה קודמת |
| הקשר עסקי (קהל יעד, שפה) | כל דבר מעל 500 שורות (פצלו!) |
דוגמה — CLAUDE.md טוב מול CLAUDE.md רע
בואו נראה שתי גרסאות של אותו סעיף "Rules" ונבין מה עובד ומה לא:
## Rules
- Write clean code
- Be helpful and thorough
- Follow best practices
- Make sure everything works
- Use good variable names
כל השורות האלה מיותרות. Claude כבר עושה את זה כברירת מחדל. שום שורה כאן לא נותנת מידע חדש. זה בזבוז טוקנים.
## Rules
- Use Hebrew for all user-facing text, English for code and comments
- Date format: DD/MM/YYYY (Israeli standard), never MM/DD/YYYY
- Currency: always ₪ (ILS), format: ₪1,234.56
- Phone validation: Israeli format (05X-XXX-XXXX or 0X-XXX-XXXX)
- Never use parseInt without radix — always parseInt(x, 10)
כל שורה כאן מונעת טעות ספציפית. בלי השורה על פורמט התאריך, Claude ישתמש בפורמט האמריקאי. בלי השורה על מטבע, הוא עשוי להציג דולרים. אלה הוראות שמשנות התנהגות.
תיקיית .claude/rules/ — הגדרות מודולריות
כשה-CLAUDE.md שלכם מתחיל לגדול, מגיע הזמן להכיר את הכלי המתקדם יותר: תיקיית .claude/rules/. במקום קובץ אחד ענק, אתם מפצלים את ההוראות לקבצים ממוקדים — כל אחד מתמקד בנושא אחד.
מבנה דוגמה
.claude/rules/
├── code-style.md # Coding conventions
├── testing.md # Testing requirements
├── security.md # Security rules
├── content-hebrew.md # Hebrew content guidelines
└── deploy.md # Deployment procedures
כל קבצי ה-.md בתיקייה הזו נטענים אוטומטית כש-Claude Code מתחיל. אין צורך בשום הגדרה נוספת — פשוט שמים את הקובץ שם, וזהו. תיקיות משנה (subdirectories) גם נתמכות.
Conditional Activation — אקטיבציה מותנית
וכאן מגיע הפיצ'ר החכם באמת. אתם יכולים להגדיר שקובץ rules ייטען רק כשעובדים עם סוגי קבצים מסוימים. זה נעשה עם YAML Frontmatter — כותרת מיוחדת בתחילת הקובץ:
---
globs: ["*.py", "**/*.py"]
---
# Python Style Rules
- Use type hints on all function signatures
- Follow PEP 8 naming conventions
- Maximum function length: 30 lines
- Use dataclasses instead of plain dicts for structured data
- Prefer list comprehensions over map/filter when readable
הקסם כאן: חוקי Python נטענים רק כשאתם עובדים עם קבצי .py. אם באותו פרויקט יש גם TypeScript, חוקי Python לא יצרכו טוקנים כשאתם עובדים על קבצי .ts. זה חכם, חסכוני, ונקי.
עוד דוגמאות של Conditional Rules
---
globs: ["*.css", "*.scss", "**/*.tsx"]
---
# Styling Rules
- Use Tailwind utility classes, avoid custom CSS
- Dark mode: always use dark: prefix
- Responsive: mobile-first (sm, md, lg, xl)
- Never use !important
---
globs: ["*.md", "content/**/*.md"]
---
# Content Guidelines
- Write in Hebrew, technical terms in English
- Every article must have: H1, intro paragraph, at least 3 H2 sections
- Include a TL;DR at the top
- Link to sources for all statistics
מתי לפצל ומתי לא?
התחילו עם CLAUDE.md אחד. כשהוא מגיע ל-200 שורות — זה הזמן לחשוב על פיצול. לא לפני. פיצול מוקדם מדי יוצר מורכבות מיותרת. הנה הכלל:
- פרויקט קטן (עד 200 שורות הוראות) → CLAUDE.md בודד, בלי rules/
- פרויקט בינוני (200-500 שורות) → CLAUDE.md + 2-3 קבצי rules/
- פרויקט גדול / Monorepo (500+ שורות) → CLAUDE.md קצר + rules/ עם conditional activation
אם ה-CLAUDE.md שלך עדיין קצר — דלג על זה ותחזור אליו כשיהיה צורך.
אם ה-CLAUDE.md שלך כבר ארוך, נסה לפצל:
- צור תיקייה:
mkdir -p .claude/rules - צור קובץ rules אחד עם frontmatter:
touch .claude/rules/code-style.md - העבר כללי coding style מ-CLAUDE.md לקובץ החדש
- הוסף frontmatter עם globs מתאימים
- בדוק שזה עובד: פתח Claude Code ושאל שאלה שקשורה לסגנון קוד
גרסאות ושיתוף צוותי
שאלה חשובה: האם לעשות commit ל-CLAUDE.md ב-Git? כן, בהחלט. CLAUDE.md ו-.claude/rules/ הם דוקומנטציה של הפרויקט — כמו README, רק שימושית יותר. הם צריכים להיות חלק מה-repo.
הכלל הפשוט
| קובץ | Git? | הסבר |
|---|---|---|
~/.claude/CLAUDE.md (גלובלי) |
לא | אישי שלך — לא חלק מהפרויקט |
./CLAUDE.md (פרויקט) |
כן | הקשר טכני שכל חברי הצוות צריכים |
.claude/rules/*.md |
כן | סטנדרטים שצריכים להיות אחידים |
.claude/settings.json |
כן | הגדרות הרשאות לפרויקט |
שיתוף צוותי
כשיש צוות שעובד עם Claude Code על אותו פרויקט, ה-CLAUDE.md המשותף מבטיח עקביות. כל חבר צוות מקבל את אותן הוראות, אותם כללים, אותן קונבנציות. זה כמו style guide שאוכף את עצמו אוטומטית.
העדפות אישיות — כמו שפת תשובה, רמת פירוט, או סגנון עבודה — נשארות ב-Global CLAUDE.md של כל אחד. ככה מבטיחים גם עקביות טכנית (Project CLAUDE.md) וגם חופש אישי (Global CLAUDE.md).
מחזור עדכון
CLAUDE.md הוא מסמך חי. הוא צריך להתעדכן כשהפרויקט משתנה. הנה הזמנים לעדכון:
- מיד: כשמשנים tech stack, כשמוסיפים כלל חשוב, כשמגלים Gotcha חדש
- חודשי: סקירה כללית — מחיקת הוראות מיושנות, הוספת לקחים חדשים
- אחרי טעות: כל פעם ש-Claude עושה טעות בגלל חוסר הקשר — עדכנו את CLAUDE.md
כל פעם שClaude עושה משהו לא נכון, שאלו את עצמכם: "האם הטעות הזאת הייתה נמנעת עם שורה נוספת ב-CLAUDE.md?" אם כן — הוסיפו את השורה הזאת עכשיו. ככה ה-CLAUDE.md שלכם משתפר אורגנית עם הזמן.
אם ה-CLAUDE.md שלך כבר מוכן, עשה commit:
git add CLAUDE.md && git commit -m "Add CLAUDE.md project instructions"
אם יש גם .claude/rules/:
git add .claude/rules/ && git commit -m "Add modular rules for Claude Code"
ודאו שה-.gitignore שלכם לא חוסם את CLAUDE.md. לפעמים יש כלל כמו *.md שחוסם קבצי Markdown — בדקו שזה לא קורה. מצד שני, כן כדאי להוסיף ל-.gitignore את קבצי ה-auto-memory (בדרך כלל בתוך .claude/) כי הם אישיים ולא צריכים להיות ב-repo. דוגמה ל-.gitignore:
# Claude Code
.claude/settings.local.json
.claude/memory/
# BUT do NOT ignore:
# CLAUDE.md
# .claude/rules/
# .claude/settings.json
תקציב ההקשר — למה גודל משנה
בפרק 1 למדנו על חלון ההקשר (Context Window) — כמות הטקסט ש-Claude יכול "לזכור" בתוך שיחה. נכון למרץ 2026, חלון ההקשר של Claude Code הוא 200K טוקנים כברירת מחדל, ו-1M טוקנים עם Opus 4.6 ו-Sonnet 4.6 (זמין לכל המשתמשים, כולל Max, Team ו-Enterprise — ללא תוספת מחיר). כל טוקן ב-CLAUDE.md צורך מקום מתוך חלון ההקשר — לפני שאתם מקלידים מילה אחת. לכן, חשוב להבין את ה"תקציב":
| גודל CLAUDE.md | טוקנים (הערכה) | אחוז מחלון 200K | אחוז מחלון 1M (Opus/Sonnet 4.6) | הערכה |
|---|---|---|---|---|
| 50 שורות | ~500-800 | 0.3-0.4% | 0.05-0.08% | זניח — אין מה לדאוג |
| 200 שורות | ~2,000-3,000 | 1-1.5% | 0.2-0.3% | אידיאלי לרוב הפרויקטים |
| 500 שורות | ~6,000-8,000 | 3-4% | 0.6-0.8% | מקובל לפרויקטים גדולים |
| 2,000 שורות | ~25,000 | 12.5% | 2.5% | יותר מדי — חובה לקצץ |
כלל הזהב: שאפו לפחות מ-5,000 טוקנים סך הכל עבור CLAUDE.md + כל קבצי rules. עם Conditional Activation (מהסעיף הקודם), רק חוקים רלוונטיים נטענים — וזה חוסך עוד יותר. חוקרים מעריכים שמודלים מתקדמים כמו Claude יכולים לעקוב באופן אמין אחרי כ-150-200 הוראות בו-זמנית, וה-system prompt של Claude Code כבר צורך כ-50 מהן — אז כדאי לשמור את CLAUDE.md ממוקד.
איך לבדוק את הצריכה?
הפקודה /context מראה את מצב חלון ההקשר הנוכחי — כולל כמה טוקנים CLAUDE.md צורך. הריצו אותה מיד אחרי פתיחת סשן חדש כדי לראות את ה-baseline. אם CLAUDE.md + rules צורכים יותר מ-5% — הגיע הזמן לקצץ.
סף המקסימום המומלץ ל-CLAUDE.md + rules מתוך חלון ההקשר. מעל זה — אתם מקריבים מקום שיכול לשמש לשיחה ולקבצים.
בדוק את צריכת הטוקנים:
- פתח Claude Code בתיקיית הפרויקט שלך
- הקלד
/context - רשום לעצמך: כמה טוקנים CLAUDE.md צורך? כמה אחוז מחלון ההקשר?
אם מעל 5% — חזור לסעיף 3.6 (מה לא לשים) ולסעיף 3.7 (rules עם conditional activation) ותקצץ.
Auto-Memory — Claude זוכר בשבילך
מעבר ל-CLAUDE.md שאתם כותבים ידנית, יש מנגנון נוסף: Auto-Memory (זיכרון אוטומטי). זה מנגנון שבו Claude Code לומד מההתנהגות שלכם לאורך זמן ושומר הקשר שימושי אוטומטית.
איך זה עובד?
כש-Claude Code מזהה דפוס חוזר או העדפה ברורה, הוא שומר את זה בקובץ זיכרון. למשל:
- "המשתמש מעדיף TypeScript על JavaScript" (אחרי כמה פעמים שביקשתם TypeScript)
- "הפרויקט הזה משתמש ב-port 3001 לשרת הפיתוח" (אחרי שראה את זה)
- "המשתמש רוצה הסברים בעברית" (אחרי כמה שיחות בעברית)
ניהול Auto-Memory
הפקודה /memory מאפשרת לכם לראות, לערוך, ולמחוק זכרונות אוטומטיים. חשוב לבדוק את הזיכרון האוטומטי מדי פעם, כי לפעמים Claude זוכר דברים שכבר לא נכונים. אם שיניתם port או החלפתם framework — הזיכרון האוטומטי עשוי עדיין להפנות לישן.
ההגדרה autoMemoryDirectory מאפשרת לכם לבחור איפה קבצי הזיכרון נשמרים. כברירת מחדל הם נשמרים בתוך .claude/, אבל אפשר לשנות את המיקום.
CLAUDE.md מול Auto-Memory — מה ההבדל?
| מאפיין | CLAUDE.md | Auto-Memory |
|---|---|---|
| מי כותב? | אתם — ידנית | Claude — אוטומטית |
| מה נכלל? | הוראות, כללים, הקשר מכוון | דפוסים שClaude זיהה מההתנהגות שלכם |
| שליטה | מלאה — אתם קובעים כל מילה | חלקית — Claude בוחר מה לשמור |
| עדכון | ידני — אתם עורכים את הקובץ | אוטומטי — מתעדכן בין סשנים |
| Git? | כן (Project) / לא (Global) | בדרך כלל לא |
חשבו על זה כך: CLAUDE.md הוא מה שאתם מלמדים את Claude מראש. Auto-Memory הוא מה שClaude לומד לבד מההתנהגות שלכם. שניהם חשובים ומשלימים.
דוגמה מעשית — auto-memory בפעולה
נניח שעבדתם שבועיים על פרויקט Python, וב-5 סשנים שונים ביקשתם מ-Claude לכתוב type hints. אחרי כמה סשנים, auto-memory שומר: "User prefers type hints on all Python functions." מעכשיו, גם בלי שתבקשו, Claude יוסיף type hints. זה נוח — אבל מה קורה אם עברתם לפרויקט אחר שלא צריך type hints? Auto-memory עשוי עדיין להשפיע. לכן, ניקוי תקופתי חשוב.
דוגמה נוספת: עבדתם על פרויקט עם port 3001. עברתם לפרויקט חדש עם port 3000. Auto-memory עשוי עדיין "לזכור" 3001 ולגרום לבלבול. זו הסיבה ש-CLAUDE.md (ידני) עדיף תמיד על auto-memory — כי אתם שולטים בו ויכולים לוודא שהמידע מדויק ורלוונטי לפרויקט הנוכחי.
בדוק מה Claude זוכר עליך:
- פתח Claude Code בתיקיית פרויקט כלשהי
- הקלד
/memory - קרא את הזכרונות — האם הם עדיין נכונים ורלוונטיים?
- אם יש מידע מיושן (tech stack ישן, port שהשתנה, הגדרה שנמחקה) — מחק אותו
Frameworks להחלטות
אחת ההחלטות הנפוצות ביותר: "לשים את זה ב-Global, ב-Project, או ב-Rules?" הנה העץ:
| השאלה | אם כן | אם לא |
|---|---|---|
| זה רלוונטי לכל הפרויקטים שלך? | → Global CLAUDE.md | ↓ המשך |
| זה רלוונטי לפרויקט ספציפי, לכל סוגי הקבצים? | → Project CLAUDE.md | ↓ המשך |
| זה רלוונטי רק לסוג קובץ מסוים? | → .claude/rules/ עם frontmatter | ↓ המשך |
| זה רלוונטי רק לסשן הנוכחי? | → אמור את זה בשיחה | כנראה לא צריך את זה בכלל |
| הסיטואציה | ההמלצה |
|---|---|
| פרויקט חדש שלא הכרתי מעולם | /init + עריכה ידנית |
| פרויקט שאני מכיר היטב | כתיבה ידנית מהתבנית המוזהבת |
| פרויקט של מישהו אחר שצריך ללמוד | /init ואז לקרוא מה Claude הבין |
| כבר יש CLAUDE.md מיושן | עריכה ידנית — לא /init (שידרוס את הקיים) |
| מצב | פעולה |
|---|---|
| CLAUDE.md עד 200 שורות | הכל בסדר, אין צורך לפצל |
| 200-500 שורות, נושא דומיננטי אחד | חלץ את הנושא הדומיננטי ל-.claude/rules/ |
| 500+ שורות, מגוון נושאים | השאר בCLAUDE.md רק סיכום + פצל לרבה קבצי rules |
| הרבה rules ספציפיים לשפה | השתמש ב-Conditional Activation עם frontmatter |
שגרת עבודה — תחזוקת CLAUDE.md
CLAUDE.md אפקטיבי רק אם הוא מעודכן. מידע מיושן גרוע יותר מבלי מידע בכלל — כי Claude יפעל בביטחון מלא לפי ההוראות הלא-נכונות, ואתם תבזבזו זמן יקר על Debug של בעיה שהמקור שלה הוא שורה ישנה ב-CLAUDE.md. הנה שגרת התחזוקה שתשמור אותו חד ורלוונטי:
| תדירות | פעולה | זמן |
|---|---|---|
| בזמן אמת | אחרי כל טעות של Claude בגלל חוסר הקשר — הוסף שורה ל-CLAUDE.md | 30 שניות |
| שבועי | בדוק auto-memory (/memory) — מחק מידע מיושן |
2 דקות |
| חודשי | סקירה מלאה: קרא את כל ה-CLAUDE.md, מחק מיושן, הוסף חדש | 10 דקות |
| אחרי שינוי גדול | עדכון tech stack, פקודות, ומבנה אחרי שדרוג/מיגרציה/refactor | 15 דקות |
| בתחילת פרויקט חדש | הרץ /init → ערוך → commit |
15 דקות |
הוסיפו ל-CLAUDE.md את ההוראה הבאה: "If you encounter something that should be in CLAUDE.md but isn't, suggest adding it at the end of the session." ככה Claude עצמו יתזכר אתכם לעדכן את הקובץ כשהוא נתקל בחוסר. Meta, נכון?
תרחיש אמיתי — CLAUDE.md בעבודה יומית
בואו נראה תרחיש מלא: דנה היא מנהלת שיווק דיגיטלי בחברת סטארטאפ ישראלית. היא משתמשת ב-Claude Code לעבודה יומית על אתר החברה, קמפיינים, ותוכן. הנה איך CLAUDE.md משנה את חוויית העבודה שלה:
בוקר רגיל — בלי CLAUDE.md
דנה פותחת Claude Code ורוצה לכתוב פוסט לבלוג על מוצר חדש. היא צריכה:
- "הפרויקט שלנו הוא אתר Next.js, התוכן בעברית..."
- "אנחנו משתמשים ב-Tailwind CSS לעיצוב..."
- "הפוסטים נשמרים ב-content/blog/..."
- "ה-SEO שלנו דורש H1 עם המילה המפתח..."
- "הטון שלנו הוא מקצועי אבל נגיש..."
5 דקות של הסבר — לפני שהיא מתחילה לעבוד. ומחר בבוקר? שוב אותו הסבר.
בוקר רגיל — עם CLAUDE.md
דנה פותחת Claude Code. הקובץ CLAUDE.md כבר נטען אוטומטית. היא כותבת:
"תכתוב פוסט בלוג על המוצר החדש שלנו — SmartWidget Pro. נושא: חיסכון בזמן לצוותי שיווק."
Claude כבר יודע הכל: את ה-tech stack, את תיקיית התוכן, את כללי ה-SEO, את הטון, ואת השפה. הוא מייצר פוסט מוכן תוך 30 שניות — בעברית, עם SEO מדויק, בפורמט הנכון, בתיקייה הנכונה. דנה בודקת, מתקנת משפט אחד, ומפרסמת.
ההבדל: 5 דקות הסבר מול 0 דקות הסבר. חודש של עבודה יומית = 2+ שעות שנחסכו. ומעבר לזמן — האיכות טובה יותר כי Claude מבין את ההקשר מהרגע הראשון.
CLAUDE.md של דנה
# SmartWidget Marketing Site
## What This Project Does
Marketing website + blog for SmartWidget, an Israeli B2B SaaS
for marketing teams. Target audience: marketing managers 28-45.
## Stack
- Next.js 15 + Tailwind CSS
- Content: MDX files in content/blog/
- CMS: Contentlayer for MDX processing
- Deploy: Vercel (auto from main branch)
## Content Rules
- ALL content in Hebrew, tech terms in English
- Tone: Professional but approachable (not academic)
- Blog posts: 800-1500 words, must include H1 with keyword
- Meta description: max 155 chars, include primary keyword
- Date format: DD/MM/YYYY
- Currency: ₪ (ILS)
## SEO
- Primary keyword in H1 and first 100 words
- 2-3 secondary keywords naturally distributed
- Internal links: at least 2 per blog post
- Image alt text in Hebrew
## Rules
- Never publish without meta description
- CTA at bottom of every blog post
- Mobile-first: test on 375px width before publishing
- Images: WebP format, max 150KB per image
## Gotchas
- MDX files need frontmatter with exact date format
- The blog RSS feed breaks if slug contains Hebrew
- Vercel preview URLs expire after 30 days
שימו לב כמה הקובץ הזה ספציפי. כל שורה פותרת בעיה אמיתית שדנה נתקלה בה. זה לא קובץ תיאורטי — זה מסמך שנבנה מניסיון.
Walkthrough מלא — בניית CLAUDE.md מ-/init ועד commit
בואו נעבור על תהליך מלא, צעד אחר צעד, של בניית CLAUDE.md לפרויקט אמיתי. נשתמש בדוגמה של סוכנות שיווק דיגיטלי ישראלית שמנהלת אתר תוכן ובלוג.
שלב 1: ניתוח אוטומטי עם /init
פותחים את הפרויקט בטרמינל ומפעילים Claude Code. מריצים /init. Claude Code סורק את הפרויקט ומוצא: package.json עם Next.js, תיקיית content/ עם קבצי Markdown, tailwind.config.ts, ותיקיית public/images/. הוא יוצר CLAUDE.md שנראה ככה:
# Digital Marketing Blog
## Stack
- Next.js 15 with App Router
- Tailwind CSS
- MDX for content
## Structure
- content/ — Blog posts in MDX format
- src/app/ — Next.js pages
- public/images/ — Static images
## Commands
- Dev: npm run dev
- Build: npm run build
לא רע בכלל. אבל חסרים כמה דברים קריטיים. הנה מה שנוסיף:
שלב 2: הוספה ידנית — מה ש-/init פספס
# Digital Marketing Blog — nVision Agency
## What This Project Does
Content marketing blog for nVision, a digital marketing agency
in Tel Aviv. Hebrew content targeting Israeli small businesses.
Published 3-4 articles per week. SEO-optimized for Google IL.
## Stack
- Next.js 15 with App Router + TypeScript
- Tailwind CSS with custom brand colors
- MDX for content (content/ directory)
- Vercel for deployment (auto-deploy on push to main)
- Google Analytics 4 via next/script
## Structure
- content/blog/ — Blog posts in MDX (filename = slug)
- content/guides/ — Long-form guides (2000+ words)
- src/app/ — Next.js pages (don't create new routes without asking)
- src/components/ — Reusable React components
- public/images/blog/ — Blog post images (WebP format, max 200KB)
## Commands
- Dev: `npm run dev` (localhost:3000)
- Build: `npm run build`
- Deploy: `git push origin main` (auto-deploys)
- New post: create MDX file in content/blog/ with frontmatter
## SEO Rules
- Every post MUST have: title, description, keywords in frontmatter
- H1 from title, first H2 within 200 words
- Meta description: 145-155 chars, include primary keyword
- Images: descriptive alt text in Hebrew, WebP format
- Internal links: at least 2 per article
## Content Rules
- ALL content in Hebrew
- Technical terms in English with Hebrew explanation on first use
- Tone: Professional, friendly, practical — like a smart colleague
- Short paragraphs: 2-4 sentences max
- Every article ends with a CTA (call-to-action)
- Never mention competitor agency names
## Gotchas
- MDX frontmatter MUST include 'date' in YYYY-MM-DD format
- Images in WebP only — PNG/JPG will fail the build
- The sitemap auto-generates from content/ — don't edit manually
- Hebrew slug in URL: use transliterated English, not Hebrew chars
- GA4 tracking breaks if next/script strategy isn't "afterInteractive"
שלב 3: בדיקה וcommit
עכשיו פותחים סשן חדש של Claude Code ובודקים. שואלים: "מה הפרויקט עושה?" — Claude עונה בדיוק. שואלים: "צריך להוסיף מאמר חדש על SEO מקומי" — Claude יוצר קובץ MDX בתיקייה הנכונה, עם frontmatter מלא, בעברית, עם CTA בסוף, ועם internal links. הכל בפעם הראשונה, בלי תיקונים.
עושים commit:
git add CLAUDE.md && git commit -m "Add CLAUDE.md with content and SEO guidelines"
סה"כ זמן: 2 דקות ל-/init, 10 דקות עריכה, 1 דקה commit. 13 דקות שיחסכו לכם שעות לאורך השבועות הבאים.
עקוב אחרי אותו התהליך על הפרויקט שלך:
- הרץ
/init(2 דקות) - קרא את הקובץ שנוצר — סמן מה חסר (2 דקות)
- הוסף: Rules, Gotchas, SEO/Content guidelines אם רלוונטי (8 דקות)
- פתח סשן חדש ובדוק עם שאלה — "מה ה-tech stack?" (1 דקה)
- עשה commit (1 דקה)
תרגילים מעשיים
תרגיל 1: בנה CLAUDE.md מאפס לעסק ישראלי
התרחיש: אתם בונים אתר חנות אונליין למכירת בגדי ילדים. הטכנולוגיה: Next.js + Supabase. התוכן בעברית. תקציב שיווק: 3,000 ש"ח בחודש.
- צרו תיקיית פרויקט:
mkdir ~/kids-shop && cd ~/kids-shop - צרו מספר קבצי דמה:
touch package.json README.md - פתחו Claude Code והריצו
/init - קראו את הקובץ שנוצר — מה Claude זיהה?
- ערכו את הקובץ: הוסיפו brand voice, SEO guidelines, ו-3 כללים ספציפיים
- שמרו ובדקו: שאלו את Claude "מה ה-tech stack שלנו?" — האם הוא עונה נכון?
קריטריון הצלחה: Claude עונה נכון על שאלות על הפרויקט בלי שתצטרכו להסביר.
תרגיל 2: הפוך CLAUDE.md בינוני למודולרי
התרחיש: יש לכם CLAUDE.md ארוך (או תצרו אחד כדוגמה) ותפצלו אותו.
- צרו CLAUDE.md עם 4 סעיפים: tech stack, coding style, testing rules, content guidelines
- צרו את תיקיית rules:
mkdir -p .claude/rules - חלצו "coding style" ל-
.claude/rules/code-style.mdעםglobs: ["*.ts", "*.tsx"] - חלצו "testing rules" ל-
.claude/rules/testing.mdעםglobs: ["*.test.*", "*.spec.*"] - חלצו "content guidelines" ל-
.claude/rules/content.mdעםglobs: ["*.md", "content/**"] - השאירו ב-CLAUDE.md רק את tech stack וסיכום כללי
- פתחו Claude Code ובדקו עם
/context— כמה טוקנים נצרכים?
קריטריון הצלחה: CLAUDE.md קצר, קבצי rules ממוקדים, ו-Claude עדיין יודע את כל הכללים.
תרגיל 3: CLAUDE.md קבוצתי
התרחיש: אתם מובילים צוות של 3 אנשים שעובדים על אותו פרויקט עם Claude Code. צריך CLAUDE.md שיתאים לכולם.
- כתבו Project CLAUDE.md עם סטנדרטים טכניים שכולם חייבים לעקוב אחריהם
- כתבו Global CLAUDE.md לדוגמה עם העדפות אישיות (שפה, סגנון)
- הסבירו (בכתב, או ב-comment בקוד) מה הולך ב-Project ומה ב-Global
- עשו commit ל-Project CLAUDE.md ול-
.claude/rules/ - כתבו הודעה קצרה (2-3 משפטים) לצוות שמסבירה איך להשתמש ב-CLAUDE.md
קריטריון הצלחה: הפרדה ברורה בין סטנדרטים צוותיים (Project) להעדפות אישיות (Global).
אם אתה עושה רק דבר אחד
פתח את הפרויקט הכי פעיל שלך. צור קובץ CLAUDE.md בתיקיית השורש. כתוב בו 5 שורות בלבד:
- שורה אחת: מה הפרויקט עושה
- שורה אחת: מה ה-tech stack
- שורה אחת: הפקודה הכי חשובה (
npm run dev/python manage.py runserverוכו') - שורה אחת: כלל אחד קריטי ("Always use TypeScript" / "Content in Hebrew")
- שורה אחת: Gotcha אחד ("Dev server runs on port 3001, not 3000")
5 שורות. 2 דקות. שינוי של 100% באיכות העבודה עם Claude Code. אפילו CLAUDE.md מינימלי הוא אלף פעם עדיף מבלי CLAUDE.md בכלל.
בדוק את עצמך — האם עברת את פרק 3?
ענו על 5 השאלות האלה. אם אתם יכולים לענות על 4 מתוך 5 — אתם מוכנים לפרק הבא.
- מה ההבדל בין Global CLAUDE.md לבין Project CLAUDE.md? תן דוגמה למה ששייך לכל אחד.
- יש לך API key ב-CLAUDE.md ועשית commit. מה הסיכון ומה הפתרון?
- ה-CLAUDE.md שלך עלה ל-600 שורות. מה 3 הצעדים שתעשה?
- מהו Conditional Activation ב-
.claude/rules/? תן דוגמה של frontmatter. - מה ההבדל בין CLAUDE.md (ידני) לבין Auto-Memory (אוטומטי)? מתי כל אחד שימושי?
תשובות מצופות (בקצרה):
- Global = העדפות אישיות (שפה, סגנון) לכל הפרויקטים. Project = הקשר טכני לפרויקט ספציפי (tech stack, commands).
- הסיכון: המפתח בהיסטוריית Git לנצח. הפתרון: שנו את ה-API key מיד + מחקו מ-CLAUDE.md.
- (א) פצל ל-.claude/rules/ עם conditional activation. (ב) מחק הוראות מיושנות. (ג) מחק הוראות גנריות מדי.
- YAML frontmatter עם globs שגורם לקובץ להיטען רק כשעובדים עם סוגי קבצים מסוימים. דוגמה:
globs: ["*.py"]. - CLAUDE.md = אתם מלמדים את Claude מראש, שליטה מלאה. Auto-Memory = Claude לומד לבד מדפוסים, אוטומטי אבל פחות מדויק.
צ'קליסט סיום פרק
לפני שממשיכים לפרק 4, ודאו שביצעתם את כל הפריטים ברשימה:
- מבין/ה מה זה CLAUDE.md ולמה הוא חיוני לכל פרויקט
- מבין/ה את ההיררכיה: Global → Project → Rules → שיחה
- ניסיתי את הפקודה
/initעל פרויקט אמיתי - יצרתי Global CLAUDE.md ב-
~/.claude/CLAUDE.mdעם העדפות אישיות - יצרתי Project CLAUDE.md לפרויקט אמיתי עם התבנית המוזהבת
- ה-CLAUDE.md שלי כולל: תיאור פרויקט, tech stack, פקודות, כללים, ו-Gotchas
- מבין/ה מה לא לשים ב-CLAUDE.md (סודות, לוגים, מידע מיושן)
- מכיר/ה את תיקיית
.claude/rules/ו-Conditional Activation - מבין/ה את תקציב ההקשר — בדקתי עם
/context - מכיר/ה את Auto-Memory ובדקתי עם
/memory - עשיתי commit ל-CLAUDE.md ול-.claude/rules/ (אם יש)
- בדקתי: שאלתי את Claude שאלה על הפרויקט — והוא ענה נכון בלי הסבר נוסף
סיכום הפרק
התובנה המרכזית של הפרק הזה היא ש-CLAUDE.md הוא לא "עוד קובץ תצורה" — הוא השיחה שאתם מנהלים עם Claude לפני שהשיחה מתחילה. הבנתם שההיררכיה (Global, Project, Rules) מאפשרת להפריד בין מי אתם כמשתמש, מה הפרויקט שלכם, ומה הכללים הספציפיים — בלי לערבב. למדתם שהתחלה קטנה (5 שורות) עם צמיחה אורגנית (שורה אחרי כל טעות של Claude) היא הגישה הנכונה, ושמידע מיושן גרוע מבלי מידע בכלל.
בפרק הבא נעבור ליסודות הפרומפטינג — ה-CLAUDE.md שבניתם כאן הוא ההקשר הקבוע, ועכשיו נלמד לכתוב את ההוראות הדינמיות שיפיקו מ-Claude Code את המקסימום.
שורה תחתונה: CLAUDE.md הוא כנראה הפיצ'ר עם ההשפעה הגדולה ביותר על חוויית העבודה היומית שלכם עם Claude Code. לא חשוב כמה טוב אתם בפרומפטינג, כמה ניסיון יש לכם, או כמה מתקדם ה-AI — בלי CLAUDE.md, כל סשן מתחיל מאפס. עם CLAUDE.md, כל סשן מתחיל עם שותף שכבר מכיר את הפרויקט, את הקונבנציות, את המלכודות, ואת הכללים.
זכרו: CLAUDE.md הוא מסמך חי שמשתפר עם הזמן. התחילו עם 5 שורות, והוסיפו עם כל טעות שClaude עושה, עם כל Gotcha שמגלים, עם כל כלל שנולד מניסיון. אחרי חודש של עבודה, ה-CLAUDE.md שלכם יהיה נכס מקצועי שמייצג את כל הידע שצברתם על הפרויקט — ידע שנשאר גם כשאתם לא שם.
ואם לקחתם רק דבר אחד מהפרק הזה: 5 שורות. 2 דקות. CLAUDE.md. עשו את זה עכשיו, לפני שתמשיכו לפרק הבא.