הסרטון הזה עוסק בכתיבת קובץ ההוראות של הפרויקט, CLAUDE.md. קבצי הוראות של פרויקט שומרים הוראות זמינות מסשן לסשן. נבחר הוראות מועילות, נתעד את פקודות הבדיקה של הפרויקט, ונערוך קובץ הוראות כדי לשמור עליו ממוקד. לבסוף, נראה למה כלל שכתוב בקובץ הזה הוא רק בקשה.
קובץ ההוראות שבשורש הפרויקט נטען כשמפעילים שם את Claude Code. גם קבצי הוראות בתיקיות שמעל נטענים בהפעלה, ואילו קבצים בתת-תיקיות נטענים לפי הצורך. אלה הוראות שזמינות לאורך כל המשימות. סוכנים אחרים קוראים קובץ מאותו סוג, בשם אחר. למשל, Codex קורא את AGENTS.md. אם הרצתם את /init, כמו שעשינו בסרטון קודם, כבר יש לכם טיוטה ראשונה של קובץ ה-CLAUDE.md שלכם. הסרטון הזה עוסק במה שצריך להיכנס אליה.
הוראה ראשונה נפוצה היא "ודאו שהכול עובד". השורה הזאת לא ממש טובה. היא משאירה לסוכן לנחש באילו בדיקות הפרויקט הזה משתמש, ומתי להריץ אותן.
החליפו אותה בפקודות המדויקות, וכתבו מתי להריץ אותן. כאן, זה לפני שמדווחים שמשימה הסתיימה. הדוגמה כאן היא פרויקט Python שמוגדרים בו שלושה כלים. הוא מריץ pytest לטסטים, mypy --strict . לבדיקת טיפוסים, ו-ruff check . ללינט.
הוסיפו פקודות שכדאי להימנע מהן, מוסכמות של המאגר ומיקומים שימושיים של קבצים. שורה מצדיקה את מקומה כשהיא מתעדת עובדה על הפרויקט שאחרת הסוכן היה צריך לנחש אותה או לשאול עליה שוב בסשן אחר.
כלל בקובץ ההוראות הוא בקשה, לא הגדרה שנאכפת. הרתמה טוענת אותו כטקסט בחלון ההקשר, לצד המשימה, הקבצים שהסוכן קרא, הפלט של הכלים והתשובות שלו עצמו. כל זה מתחרה על תשומת הלב של המודל.
המודל מפרש את ההוראה יחד עם שאר ההקשר. זה הופך אותו לכלי מעורפל, כזה שהיחס שלו לאותה הוראה יכול להשתנות מסשן לסשן. הוא יכול לקיים את הכלל, אבל הוא גם יכול לפספס אותו או ליישם אותו לא נכון. הוראה כתובה לבדה לא אוכפת את הפעולה.
אז כשהסוכן מדווח שהבדיקות עוברות, חפשו את ההרצה עצמה. הסשן מציג כל פקודה שהסוכן הריץ, ואחריה את הפלט שלה.
לכן כלל שחייב להתקיים לא יכול לחיות רק בקובץ ההוראות. בזה מטפלים ה-hooks. hook הוא קוד שהרתמה מריצה בנקודות קבועות, למשל אחרי כל עריכה, כך שהבדיקה רצה בין אם המודל זוכר את הכלל ובין אם לא. נבנה hooks בסרטונים הבאים.
קבצי הוראות גדלים ככל שמוסיפים להם כללים, וכל שורה צורכת הקשר בכל סשן. ההנחיות של Claude Code מזהירות שקבצי הוראות ארוכים פוגעים בהיצמדות להוראות. הנה קובץ הוראות לדוגמה לפרויקט הזה, אחרי כמה תוספות.
שתי שורות מבקשות קוד נקי וקריא. הן חוזרות זו על זו, ובקשה כללית כזאת לא אומרת לסוכן שום דבר על הפרויקט הזה, אז שתיהן יוצאות. פקודת הטסטים לא מעודכנת. הפרויקט עבר ל-pytest, ופקודה ישנה בקובץ ההוראות שולחת את הסוכן לכלי הלא נכון. תקנו אותה.
שתי שורות נשארות. כל בנייה דורסת את התיקייה שנוצרת אוטומטית, אז עריכות שם הולכות לאיבוד. והמיקום של הטסטים הוא בחירה של הפרויקט הזה, שהסוכן לא יכול לנחש. טעות שבאמת ראיתם היא סיבה טובה להוסיף כלל או לחדד אותו. תעדו גם אילוצים ידועים של הפרויקט לפני שהם גורמים לצרות, ועברו על הקובץ מדי פעם כדי למצוא הוראות לא מעודכנות או כפולות.
שווה לכתוב את קובץ ההוראות ולשמור עליו ממוקד. תעדו את פקודות הבדיקה המדויקות ומתי להריץ אותן, ובדקו בסשן שהן אכן רצו. הוא עדיין בקשה שמופנית למודל. כלל שחייב להתקיים צריך hook, שמריץ את הבדיקה בעצמו.
בדיקות שאפשר להריץ שוב מצמצמות את מה שצריך לוודא ידנית אחרי כל שינוי. הטסטים שאתם שומרים ממשיכים לבדוק דרישות קודמות בזמן שהפרויקט גדל. זה הכול על כתיבת קבצי הוראות. נתראה בסרטון הבא.