מדריך קלוד קוד בעברית

תיעוד 49

שמירה על קלוד בעבודה לקראת יעד

הגדר תנאי סיום באמצעות /goal וקלוד ימשיך לעבוד עד שהתנאי יתקיים, מודל יקבע שהוא בלתי אפשרי, או שגיאה שעליך לתקן תנקה את היעד.

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

השתמש ביעד לעבודה משמעותית עם מצב סיום שניתן לאימות:

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

#השוואת דרכים להשאיר הפעלה פועלת

שלוש גישות מאפשרות להשאיר את ההפעלה הנוכחית פועלת בין הנחיות. בחר בהתאם למה שאמור להתחיל את התור הבא:

גישההתור הבא מתחיל כאשרנעצר כאשר
/goalהתור הקודם מסתיים, או, בהפעלה אינטראקטיבית, מגיע מועד בדיקת מצב בחוסר פעילות או ניסיון חוזר אוטומטימודל מאשר שהתנאי מתקיים או קובע שהוא בלתי אפשרי, או שתור נכשל בגלל שגיאה שעליך לתקן, או שאתה מריץ /goal clear
/loopמרווח זמן חולףאתה עוצר את זה, או שקלוד מחליט שהעבודה הושלמה
Stop hookהתור הקודם מסתייםסקריפט משלך או הנחיה מחליטים

הפקודה /goal ו-Stop hook פועלים שניהם אחרי כל תור. /goal הוא קיצור דרך ברמת ההפעלה: אתה מקליד תנאי והוא פעיל להפעלה הנוכחית בלבד. Stop hook נמצא בקובץ ההגדרות שלך, חל על כל הפעלה בטווח שלו, ויכול להריץ סקריפט לבדיקות דטרמיניסטיות או הנחיה לבדיקות המוערכות על ידי מודל.

מצב אוטומטי (Auto mode) כשלעצמו מאשר קריאות לכלים בתוך תור יחיד, אך אינו מתחיל תור חדש. קלוד עוצר כאשר הוא קובע שהעבודה הושלמה. הפקודה /goal מוסיפה מעריך נפרד שבודק את התנאי שלך אחרי כל תור, כך שההשלמה נקבעת על ידי מודל רענן ולא על ידי המודל שמבצע את העבודה. השניים משלימים זה את זה: מצב אוטומטי מבטל הנחיות ברמת הכלי, ו-/goal מבטל הנחיות ברמת התור.

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

#שימוש ב-/goal

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

#הגדרת יעד

הרץ /goal ולאחריו התנאי שאתה רוצה שיתקיים. אם יעד כבר פעיל, החדש מחליף אותו.

/goal all tests in test/auth pass and the lint step is clean

הגדרת יעד מתחילה תור באופן מיידי, כאשר התנאי עצמו משמש כהנחיה. אין צורך לשלוח הנחיה נפרדת. בזמן שהיעד פעיל, מחוון ◎ /goal active מציג כמה זמן היעד רץ.

יעד אינו משנה את מצב ההרשאות שלך. כדי לאפשר לתורות היעד לרוץ ללא השגחה, הרץ את /goal ב-מצב אוטומטי. ב-מצב ידני (Manual mode), קלוד עדיין מבקש אישור לפני קריאות לכלים שההגדרות שלך אינן מאפשרות מראש, כגון פקודת הבדיקה שלמעלה.

בזמן שהיעד פעיל, התמליל מציג כל פסיקה שהמעריך מחזיר, ובאפשרותך ללחוץ על Ctrl+O כדי לראות את הסיבה שמאחוריה. תצוגת המצב מציגה גם את הסיבה האחרונה, כך שתוכל לראות לקראת מה קלוד עובד כעת.

#כתיבת תנאי יעיל

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

תנאי שמחזיק מעמד לאורך תורות רבים כולל בדרך כלל:

  • מצב סיום מדיד אחד: תוצאת בדיקה, קוד יציאה של בנייה, ספירת קבצים, תור ריק
  • בדיקה מוגדרת: כיצד קלוד צריך להוכיח זאת, כגון "npm test מסתיים ב-0" או "git status נקי"
  • אילוצים בעלי חשיבות: כל דבר שאסור שישתנה בדרך לשם, כגון "אף קובץ בדיקה אחר אינו משתנה"

התנאי יכול להכיל עד 4,000 תווים.

כדי להגביל את משך הריצה של היעד, כלול בתנאי פסוקית של תורות או זמן, כגון or stop after 20 turns. קלוד מדווח על התקדמות ביחס לאותה פסוקית בכל תור, והמעריך שופט זאת מתוך השיחה.

#בדיקת מצב

הרץ /goal ללא ארגומנטים כדי לראות את המצב הנוכחי.

/goal

אם יעד פעיל, המצב מציג:

  • את התנאי
  • כמה זמן הוא רץ
  • כמה תורות הוערכו
  • את צריכת האסימונים הנוכחית
  • את הסיבה האחרונה של המעריך

ספירת התורות והסיבה האחרונה מופיעות לאחר שההערכה הראשונה רצה.

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

#ניקוי יעד

הרץ /goal clear כדי להסיר יעד פעיל לפני שהוא מסתיים.

/goal clear

קלוד מדפיס Goal cleared: ולאחריו התנאי כדי לאשר, או No goal set אם שום דבר לא היה פעיל.

המילים stop, off, reset, none ו-cancel מתקבלות ככינויים (aliases) עבור clear. הרצת /clear כדי להתחיל שיחה חדשה מסירה גם היא כל יעד פעיל.

#חידוש עם יעד פעיל

כאשר אתה מחדש הפעלה, Claude Code משחזר יעד שהיה עדיין פעיל כשההפעלה הסתיימה. Claude Code משחזר אותו בכל נתיב חידוש: --continue, --resume עם מזהה הפעלה, שם, או נתיב קובץ תמליל, וב-בורר ההפעלות. לפני גרסה v2.1.239, Claude Code שחזר את היעד בכל נתיב למעט הבורר של claude --resume.

Claude Code מעביר את התנאי הלאה אך מאפס את ספירת התורות, הטיימר וקו הבסיס של צריכת האסימונים. הוא אינו משחזר יעד שכבר הושג או נוקה.

#הרצה באופן לא אינטראקטיבי

הפקודה /goal פועלת ב-מצב לא אינטראקטיבי, ב-אפליקציית שולחן העבודה, ובאמצעות שלט רחוק (Remote Control). הגדרת יעד עם -p מריצה את הלולאה עד להשלמתה בהפעלה בודדת:

claude -p "/goal CHANGELOG.md has an entry for every PR merged this week"

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

הפסק את התהליך באמצעות Ctrl+C כדי לעצור יעד לא אינטראקטיבי לפני שהוא מסתיים.

#כיצד פועלת ההערכה

הפקודה /goal היא מעטפת סביב Stop hook מבוסס הנחיה ברמת ההפעלה. בכל פעם שקלוד מסיים תור, Claude Code שולח את התנאי ואת השיחה עד כה אל המודל הקטן והמהיר שהוגדר אצלך, שברירת המחדל שלו היא Haiku ב-Claude API. בספק צד שלישי, בדוק ב-דף הספק שלך את ברירת המחדל של הפלטפורמה. המודל מחזיר אחת משלוש פסיקות, כל אחת עם סיבה קצרה:

  • Not yet met: קלוד ממשיך לעבוד ולוקח את הסיבה כהנחיה לתור הבא.
  • Met: Claude Code מנקה את היעד ורושם רשומת השגה בתמליל.
  • Impossible: המעריך קבע שאי אפשר לספק את התנאי לעולם. Claude Code מנקה את היעד ורושם רשומת כישלון בתמליל יחד עם הסיבה. אין צורך שתנקה אותו בעצמך.

אם קלוד ממשיך לענות למעריך בלי להתקדם (ללא שימוש בכלים במשך מספר תורות ברצף), Claude Code עוצר את הלולאה, מדפיס אזהרה, ומחזיר אליך את השליטה כשהיעד עדיין מוגדר. ההערכה מתחדשת לאחר ההנחיה הבאה שלך. ה-מדריך בנושא hooks מסביר את המנגנון שביסוד הדבר.

#כאשר תור נכשל

כאשר תור נכשל, Claude Code מנקה את היעד אם השגיאה היא כזו שעליך לתקן. לאחר כל שגיאה אחרת היעד נשאר מוגדר.

#שגיאות שעליך לתקן מנקות את היעד

אם תור נכשל בגלל שגיאה שלא תיעלם עד שתתקן אותה, Claude Code מנקה את היעד ומדפיס אזהרה המציינת את הסיבה. האזהרה מתחילה ב-Goal cleared after an unrecoverable error ומסתיימת ב-Run /goal again to continue. תקן את הגורם, ולאחר מכן הגדר את היעד שוב באמצעות /goal <condition>. ארבעה סוגי כשלים מנקים את היעד:

  • כשל אימות, כאשר Claude Code מנהל את פרטי ההזדהות שלו בעצמו. כאשר מארח מנהל אותם עבורך, כגון אפליקציית שולחן העבודה, הרחבת VS Code או הפעלת ענן, Claude Code משאיר את היעד פעיל מכיוון שהמארח משחזר את הגישה בכוחות עצמו.
  • יתרת נקודות זכות שאזלה
  • גלישת הקשר ש-דחיסה אוטומטית (auto-compaction) לא הצליחה לנקות
  • מודל שאינו זמין

#שגיאות אחרות מנסות שוב או משהות את היעד

לאחר כל כשל אחר היעד נשאר מוגדר. בהפעלה אינטראקטיבית ב-Claude Code בגרסה v2.1.269 ואילך, Claude Code מדפיס גם שורה המציינת את הסיבה, ומנסה שוב בעצמו או ממתין לך:

  • Retry: לאחר כשל שנוטה להיפתר מעצמו, כגון שרת עמוס או חיבור שנותק, הודעה המתחילה ב-Goal still active מציגה את זמן ההמתנה לפני הניסיון הבא. לאחר שלושה ניסיונות חוזרים אוטומטיים, היעד מושהה במקום זאת.
  • Pause: לאחר כשל שניסיון חוזר רק ישחזר אותו, כגון מגבלת קצב של API, מגבלת שימוש ב-claude.ai, או hook שסיים את התור, הודעה המתחילה ב-Goal paused מציינת את הסיבה. אם ההפעלה ממתינה להמשיך אוטומטית כאשר מגבלת שימוש מתאפסת, קלוד יחדש את העבודה לקראת היעד אז.

שלח הודעה בכל עת כדי להתחיל את התור הבא באופן מיידי. כדי לכבות ניסיונות חוזרים אוטומטיים, הגדר את CLAUDE_CODE_GOAL_CHECKIN_MINUTES ל-0, מה שמכבה גם בדיקות מצב.

#עבודה ברקע דוחה את ההערכה

אם תת סוכן או פקודת מעטפת (shell) ברקע עדיין פועלים כשתור מסתיים, Claude Code מדלג על ההערכה עבור אותו תור. הוא מעריך בסוף התור הבא שמסתיים ללא עבודה ברקע שפועלת. כאשר העבודה ברקע מסתיימת, Claude Code מוסר את התוצאה לקלוד כתור חדש, כך שאינך צריך להזין הנחיה.

ברגע שעבודה ברקע השאירה את היעד בהמתנה במשך 30 דקות, מגיע מועד בדיקת מצב (check-in). בבדיקת המצב, Claude Code מציג את רשימת המשימות הפועלות ומבקש מקלוד לקרוא את הפלט שלהן, להמשיך להמתין אם הן מתקדמות, ולתקן או לעצור משימות שנתקעו. לאחר בדיקת המצב הראשונה, Claude Code ממתין זמן כפול לפני כל בדיקת מצב מאוחרת יותר, עד לפי ארבעה ממרווח הזמן הראשון: עם ברירת המחדל, שעה אחת לאחר בדיקת המצב הראשונה, ולאחר מכן כל שעתיים. Claude Code מוסר בדיקת מצב שהגיע מועדה, כולל הראשונה, באחת משתי דרכים:

  • כאשר תור מסתיים: Claude Code מוסר את בדיקת המצב בסוף התור הבא שמסתיים כשהעבודה עדיין פועלת. בהפעלה לא אינטראקטיבית, כגון הפעלה שהתחילה עם -p, זוהי הדרך היחידה שבה Claude Code מוסר בדיקות מצב.
  • בזמן שההפעלה במצב חוסר פעילות: בהפעלה אינטראקטיבית, Claude Code גם מתחיל תור בכוחות עצמו כדי למסור את בדיקת המצב במקום להמתין להנחיה הבאה שלך. אם העבודה ברקע נעצרה בלי לדווח על תוצאה, Claude Code מבקש מקלוד להמשיך לקראת היעד. Claude Code מתחיל לכל היותר שלוש בדיקות מצב בחוסר פעילות לכל יעד בין ההנחיות שלך. בבדיקת המצב השלישית בחוסר פעילות, Claude Code מציין שבדיקות מצב בחוסר פעילות מושהות עד שתשלח הנחיה נוספת. לפני גרסה v2.1.246, בדיקות מצב בחוסר פעילות היו ללא הגבלה. בדיקות מצב בחוסר פעילות דורשות את Claude Code בגרסה v2.1.236 ואילך.

לפני גרסה v2.1.239, רק בדיקות מצב בחוסר פעילות פעלו בהשהיה הדרגתית (backed off) כזו: בדיקת מצב שנמסרה בסיום תור חזרה על עצמה לפי מרווח הזמן הראשון.

כדי לשנות את מרווח הזמן הראשון, הגדר את CLAUDE_CODE_GOAL_CHECKIN_MINUTES. Claude Code משתמש בערך שלך במקום במרווח של 30 דקות ומדרג את המרווחים המאוחרים יותר בהתאם. הגדר אותו ל-0 כדי לכבות בדיקות מצב ו-ניסיונות חוזרים אוטומטיים.

בדיקות מצב דורשות את Claude Code בגרסה v2.1.234 ואילך.

#מודל הערכה ועלות

כדי לבצע הערכה באמצעות מודל אחר, הגדר את ANTHROPIC_DEFAULT_HAIKU_MODEL.

אזהרה: Claude Code קורא את ANTHROPIC_DEFAULT_HAIKU_MODEL בכל מקום שבו הוא משתמש במודל הקטן והמהיר, לא רק לצורך הערכת /goal. כאשר אתה מגדיר אותו, Claude Code גם פותר את הכינוי haiku אל אותו מודל ומריץ עליו פונקציונליות רקע, כגון סיכום שיחה.

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

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

#דרישות

Claude Code מנגיש את /goal תחת אותו כלל מהימנות סביבת עבודה כמו hooks בקובצי הגדרות, מכיוון שהמעריך הוא חלק ממערכת ה-hooks. הפקודה /goal אינה זמינה גם כאשר disableAllHooks מוגדר כ-true לאחר החלת קדימות ההגדרות, או כאשר allowManagedHooksOnly מוגדר בהגדרות מנוהלות. בכל אחד מהמקרים, הפקודה מודיעה לך מדוע במקום לא לעשות דבר בשקט.

#ראה גם