דילוג לתוכן הראשי

כלל ממוקד-נתיב בקלוד קוד נטען עכשיו גם כשקלוד כותב קובץ חדש

מאת ירון דויטשר עודכן לאחרונה:

כלל ממוקד-נתיב הוא הדרך להוציא מ-CLAUDE.md אילוץ שחל רק על פינה אחת בקוד: קובץ ב-‎.claude/rules/‎ עם שדה ‎paths‎, שנכנס לקונטקסט רק כשקלוד עובד על קבצים תואמים. כתבנו עליו ביולי, ואמרנו שם שהוא נטען “כשקלוד קורא קובץ שתואם לתבנית”. בפועל, זה בדיוק מה שקרה, וזו הייתה הבעיה.

גרסה 2.1.288, שיצאה ב-2 באוקטובר 2026, מתקנת את זה. לפי יומן השינויים, כללים ממוקדי-נתיב וקבצי CLAUDE.md מקוננים לא נטענו כש-Write או Edit יצרו או שינו קובץ בתחום שלהם, ורק Read טען אותם. מעכשיו גם כתיבה מפעילה אותם.

הכלל: אילוץ שחייב לחול על קבצים חדשים צריך לעבור דרך Read, Write או Edit. בגרסה 2.1.288 ומעלה זה קורה מעצמו, וכל עוד לא שדרגתם, קובץ חדש עלול להיכתב בלי הכלל.

איפה זה פגע בפועל?

בדיוק במקום שבשבילו כותבים כלל כזה. נניח כלל שחל על ‎src/api/**/*.ts‎ ודורש שכל endpoint יאמת קלט עם Zod. מבקשים מקלוד endpoint חדש. הוא יוצר ‎src/api/orders.ts‎ מאפס, ואם לא קרא קודם אף קובץ אחר בתיקייה, הכלל מעולם לא נכנס לקונטקסט. ה-endpoint יוצא בלי אימות, ושום דבר לא מתריע.

עריכה של קובץ קיים נפגעה פחות, כי בדרך כלל קלוד קורא קובץ לפני שהוא עורך אותו, והקריאה טענה את הכלל. הנפגע העיקרי הוא קובץ חדש, שאין מה לקרוא לפניו. ומי שבנה את כל ההנחיות לתיקיית ה-API על כללים כאלה, קיבל אותן בדיוק בעבודה על קבצים קיימים, ופספס אותן כשהוסיף קבצים.

מה עדיין לא מפעיל כלל?

תיעוד הזיכרון מנסח את זה במדויק: כלל ממוקד-נתיב מופעל כשקלוד משתמש בכלי Read, Write או Edit על קובץ תואם, “not on every tool use”. שלושה מקרים שנשארים מחוץ לתמונה:

  • קובץ שנוצר מפקודת Bash: סקריפט שמייצר קוד, ‎sed -i‎, או ‎cat >‎ אינם אחד משלושת הכלים. לפי הניסוח הזה, הכלל לא נטען גם אחרי השדרוג. קריאה דרך Bash כבר כן: מגרסה 2.1.293 (7 באוקטובר), כשקלוד מציג קובץ יחיד עם ‎cat‎, ‎head‎, ‎tail‎, ‎sed -n‎ או ‎grep‎, הכלל נטען כאילו השתמש ב-Read. היצירה מ-Bash נשארה מחוץ לתמונה
  • אחרי דחיסת קונטקסט: CLAUDE.md שבשורש הפרויקט נטען מחדש מהדיסק, אבל כלל ממוקד-נתיב חוזר רק כשקלוד קורא שוב קובץ שהוא חל עליו
  • frontmatter שלא מתפרש: שגיאת YAML לא מפילה שום דבר. קלוד קוד מתעלם מה-frontmatter וטוען את הכלל בכל סשן, כאילו לא היה לו ‎paths‎ בכלל. לכן עוטפים כל תבנית במרכאות, כמו בדוגמאות שבתיעוד

המקרה השלישי הפוך מהשניים הראשונים. שם הכלל חסר, וכאן הוא נמצא תמיד, ועולה טוקנים בשיחות שאין לו שום קשר אליהן. ‎claude --debug‎ מציג את שגיאת הפענוח. ותבנית עם סוגר מרובע פתוח שלא נסגר כהלכה, כמו ‎photos [2024/**‎, פשוט לא תואמת אף קובץ, בעוד שאר התבניות של אותו כלל ממשיכות לעבוד.

איך יודעים שהכלל באמת נטען?

hook מסוג ‎InstructionsLoaded‎ רץ בכל פעם שקובץ CLAUDE.md או כלל נכנס לקונטקסט, ו-תיעוד ה-hooks מעביר לו שדה ‎load_reason‎. הערך ‎path_glob_match‎ מסמן כלל ממוקד-נתיב, ו-‎trigger_file_path‎ אומר איזה קובץ הפעיל אותו. הגדרה כזו ב-‎settings.json‎ רושמת כל טעינה כזו לקובץ (דורש ‎jq‎):

{
  "hooks": {
    "InstructionsLoaded": [
      {
        "matcher": "path_glob_match",
        "hooks": [
          {
            "type": "command",
            "command": "jq -c '{file_path, trigger_file_path}' >> ~/.claude/rules-log.jsonl"
          }
        ]
      }
    ]
  }
}

אחרי שקלוד יוצר קובץ חדש בתיקייה שיש לה כלל, אמורה להופיע שורה עם הנתיב של הקובץ החדש. אין שורה? הגרסה ישנה, או שהקובץ נכתב מ-Bash. ה-hook הזה רק צופה: הוא לא יכול לחסום ולא לשנות את הטעינה.

מה עושים עכשיו?

  • משדרגים ל-2.1.288 ומעלה. ‎claude --version‎ מראה איפה אתם
  • אילוץ שאסור לפספס בשום מקרה, כמו כלל אבטחה, שייך ל-CLAUDE.md בשורש או ל-hook שאוכף אותו, לא לכלל ממוקד-נתיב. כלל הוא קונטקסט, והוא לא מבטיח כלום
  • סקריפט שמייצר קבצים בתיקייה עם כלל: אחרי שהוא רץ, מבקשים מקלוד לפתוח את אחד הקבצים שנוצרו לפני שממשיכים לעבוד עליהם

שורה תחתונה

כלל ממוקד-נתיב היה אמין בדיוק בחצי מהעבודה: בקבצים שכבר קיימים. 2.1.288 סוגרת את החצי השני, ומשאירה את Bash ואת הדחיסה כמו שהיו. מי שמשתמש בכללים כאלה בתיקייה שמתווספים אליה קבצים כל הזמן צריך לשדרג היום, ולבדוק פעם אחת עם ה-hook שהכלל באמת נטען.

מתי CLAUDE.md, מתי כלל ומתי hook: לכוון את קלוד קוד. מה נטען בכל שיחה ומה רק לפי הצורך: המדריך ל-CLAUDE.md. ומקרה דומה של קובץ הנחיות שלא נטען בלי שום אזהרה: AGENTS.md בקלוד קוד.

הניוזלטר: מה חדש בקלוד, בעברית ובחינם

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

מעדיפים ללמוד את זה בקורס או בסדנה?

רוצים שאנחנו נבנה לכם עוזר AI או אוטומציה בקלוד?