<div dir="rtl" lang="he">

# תרגילים - שיעור 1.3: CLAUDE.md, Memory, Skills, Hooks, /loop, Cron scheduling

## מידע כללי
- **שיעור:** 1.3 - CLAUDE.md, Memory, Skills, Hooks, /loop, Cron
- **סוג השיעור:** מעשי (4 שעות)
- **הערה:** כל התרגילים דורשים Claude Code מותקן ומחובר (v2.1.59+). יש לפתוח תיקיית פרויקט חדשה בשם `claude-advanced-lab` לפני תחילת התרגול.

---

## תרגיל 1: עיצוב אישיות הפרויקט (קובץ טקסט - 20 דקות)
### הנחיות:
קובץ ה-`CLAUDE.md` הוא "תעודת הזהות" של הפרויקט שלכם מול קלוד. בתרגיל זה ניצור קובץ ברמת הפרויקט (Project-level) עבור סטארטאפ פינטק ישראלי פיקטיבי בשם "PayIL".

### שאלות/משימות:
1. צרו קובץ בשם `CLAUDE.md` בתיקיית השורש של הפרויקט.
2. הגדירו בקובץ את המבנה ההיררכי הבא:
   * **Project Context:** תיאור קצר של המערכת (מערכת סליקה לעסקים קטנים בישראל).
   * **Tech Stack:** הגדרת טכנולוגיות (Node.js, React, MongoDB).
   * **Coding Standards:** הנחיות ספציפיות - למשל, "השתמש תמיד בשמות משתנים באנגלית, אך הוסף הערות קוד בעברית כשמדובר בלוגיקה עסקית מקומית (כמו חישוב מע"מ)".
   * **Response Style:** בקשו מקלוד להיות תכליתי, קצר, וללא התנצלויות במקרה של שגיאה.
3. הפעילו את Claude Code בטרמינל (הקלידו `claude`) ובקשו ממנו: "כתוב פונקציה פשוטה לחישוב מחיר כולל מע"מ".
4. ודאו שקלוד מגיב בהתאם להנחיות שהגדרתם (למשל, מוסיף הערות בעברית).

---

## תרגיל 2: ניהול זיכרון אוטומטי וידני (מעשי - 30 דקות)
### הנחיות:
מערכת הזיכרון של קלוד מאפשרת לו ללמוד מהאינטראקציות שלכם. ניצור קובץ `MEMORY.md` ונאמן את קלוד להשתמש ב-4 סוגי הזיכרון.

### שאלות/משימות:
1. צרו קובץ `MEMORY.md` בתיקיית הפרויקט עם 4 כותרות: `# User Preferences`, `# Feedback`, `# Project Architecture`, `# Reference Links`.
2. פתחו את Claude Code ואמרו לו: "מעכשיו, בכל פעם שאני מבקש ממך לכתוב טסטים, השתמש ב-Jest. אנא עדכן את הזיכרון שלך".
3. בדקו את קובץ ה-`MEMORY.md` וודאו שקלוד הוסיף את ההעדפה תחת הקטגוריה הנכונה.
4. תנו לקלוד פידבק: "הפונקציה שכתבת קודם לחישוב מע"מ טובה, אבל בישראל המע"מ הוא כרגע 17%. תזכור את זה להבא ככלל פרויקט".
5. בקשו מקלוד לקרוא את הזיכרון שלו ולסכם לכם מה הוא יודע עליכם ועל הפרויקט עד כה.

---

## תרגיל 3: יצירת Skill ראשון - Slash Command (מעשי - 45 דקות)
### הנחיות:
Skills מאפשרים להרחיב את היכולות של קלוד. ניצור פקודת Slash מותאמת אישית שתבדוק תקינות של מספרי תעודת זהות ישראלית בקובץ.

### שאלות/משימות:
1. צרו תיקייה `.claude/commands/` בפרויקט שלכם.
2. צרו קובץ בשם `validate-tz.md` — שם הקובץ הופך אוטומטית לפקודה `/validate-tz`.
3. כתבו בתוך הקובץ הנחיות בפורמט Markdown רגיל (אין JSON, אין schema):
```
Scan the file provided as argument. Find all 9-digit numbers and validate each one using the Israeli ID checksum algorithm (modified Luhn). Report which are valid and which are invalid, with the line number for each.
```
4. צרו קובץ טקסט דוגמה `users.txt` עם כמה מספרי ת"ז (תקינים ושגויים).
5. ב-Claude Code, הריצו: `/validate-tz users.txt`.
6. תקנו את ה-Skill במידה וקלוד לא מזהה נכון אילו מספרים תקינים ואילו שגויים.

---

## תרגיל 4: Skill לסריקת סודות לפני Push (מעשי - 40 דקות)
### הנחיות:
ניצור Skill שסורק את הפרויקט ומדווח על secrets חשופים — מריצים אותו ידנית לפני כל Push. הפעלה אוטומטית של Skills נעשית דרך Hooks (תרגיל 5), לא דרך הגדרת Skills עצמם.

### שאלות/משימות:
1. צרו `.claude/commands/scan-secrets.md`.
2. כתבו בקובץ הנחיות ל-Claude:
```
Scan all project files for exposed secrets: API keys, hardcoded passwords, connection strings, Stripe keys, AWS credentials, or any value that looks like a secret. For each finding report: filename, line number, and description. If nothing is found, confirm the project is clean.
```
3. צרו קובץ `.env.local` עם מפתח פיקטיבי `STRIPE_API_KEY=sk_test_123456789`.
4. הוסיפו גם secret מוסתר בקובץ `.js` רגיל — למשל: `const dbPass = "hunter2"`.
5. הריצו `/scan-secrets` ב-Claude Code.
6. ודאו שהוא מוצא את שניהם. האם הוא מציג את הערכים בפלט או מסתיר אותם? דונו בהשלכות.

---

## תרגיל 5: הגנת מערכת עם Hooks (מעשי - 45 דקות)
### הנחיות:
Hooks משמשים כ-Guardrails (מעקות בטיחות) כדי למנוע מקלוד לבצע פעולות הרסניות באמצעות הכלים שלו (כמו כלי ה-Bash).

### שאלות/משימות:
1. אתרו או צרו את קובץ `settings.json` של Claude Code (בדרך כלל בתיקיית ההגדרות הגלובלית או בפרויקט תחת `.claude/`).
2. הוסיפו הגדרת `PreToolUse` hook עבור הכלי `Bash`.
3. כתבו סקריפט Shell קצר (למשל `safe_bash.sh`) שמקבל את הפקודה שקלוד רוצה להריץ.
4. הסקריפט צריך לבדוק: אם הפקודה מכילה את המילים `rm -rf`, `drop table`, או `npm publish`, הסקריפט יעצור וידרוש אישור הקלדה ידני מהמשתמש (Y/N).
5. חברו את הסקריפט ל-Hook ב-`settings.json`.
6. נסו לבקש מקלוד: "מחק את כל הקבצים בתיקייה הזו בכוח". ודאו שה-Hook עוצר את הפעולה ודורש אישור.

---

## תרגיל 6: אוטומציה עם פקודת /loop (מעשי - 30 דקות)
### הנחיות:
פקודת `/loop` מאפשרת לקלוד לעבוד באופן אוטונומי על משימות שדורשות מספר שלבים או חזרות, עד להשלמתן.

### שאלות/משימות:
1. צרו קובץ `i18n-en.json` המכיל 10 מפתחות וערכים באנגלית (למשל: כפתורי התחברות, הודעות שגיאה, תפריט ניווט של אתר ישראלי).
2. צרו קובץ `i18n-he.json` ריק.
3. השתמשו בפקודת `/loop` ב-Claude Code עם ההנחיה הבאה:
   `/loop "Translate the keys from i18n-en.json to Hebrew and add them to i18n-he.json. Work in batches of 3 keys at a time. Stop the loop when all keys are translated and verified."`
4. צפו כיצד קלוד מתכנן את המשימה, מבצע אותה בחלקים, בודק את עצמו, ויוצא מהלולאה (session-scoped) כשהמשימה מסתיימת.

---

## תרגיל 7 (משימת בית): The Autonomous QA Engineer (Routines & Cron)
### הנחיות:
בתרגיל המסכם, נחבר את כל מה שלמדנו: ניצור Routine אוטומטי עם Cron scheduling שיריץ סדרת בדיקות ועדכוני זיכרון ללא התערבות.

### שאלות/משימות:
1. **יצירת Skill לבדיקת קוד:** צרו Skill חדש בשם `qa-report` שסורק את כל קבצי ה-`.js` בפרויקט, מחפש פונקציות ללא הערות, ומייצר קובץ `QA_REPORT.md`.
2. **הגדרת Cron Routine:** בתוך ה-`CLAUDE.md` (תחת סקשן `# Cloud Routines`), הגדירו רוטינה חדשה.
3. כתבו ביטוי Cron (Cron expression) שיפעיל את הרוטינה בכל יום ראשון בשעה 08:00 בבוקר (תחילת שבוע העבודה בישראל).
4. הגדירו שהרוטינה תבצע את הפעולות הבאות:
   * תפעיל את ה-Skill `qa-report`.
   * תקרא את `MEMORY.md` כדי לבדוק אם יש סטנדרטים חדשים שהתווספו השבוע.
   * תשלח הודעת סיכום לטרמינל (או ללוג ייעודי).
5. **הגשה:** העלו את קבצי ה-`CLAUDE.md`, ה-Skills שיצרתם, קובץ ה-`MEMORY.md`, וסקריפט ה-Hook לגיטהאב (Repository פרטי/פומבי) ושלחו את הלינק לבדיקה.

**הגישו עד השיעור הבא.**

---

## קריטריונים להערכה
| קריטריון | משקל בציון | פירוט |
|---|---|---|
| **הגדרת CLAUDE.md ו-Memory** | 20% | יישום נכון של היררכיה, הגדרת Context מדויק, וניהול נכון של 4 סוגי הזיכרון. |
| **פיתוח Skills (Slash & Auto)** | 30% | יצירת Skills פונקציונליים, שימוש נכון בפורמט JSON/הנחיות, וזיהוי אוטומטי תקין. |
| **יישום Hooks (Guardrails)** | 20% | כתיבת סקריפט מניעה תקין, חיבור נכון ל-`settings.json`, ועצירת פעולות מסוכנות. |
| **שימוש ב- /loop** | 10% | הצלחה בהרצת משימה אוטונומית רב-שלבית ללא התערבות משתמש. |
| **משימת בית (Routines & Cron)** | 20% | שילוב נכון של כל האלמנטים, תחביר Cron תקין, והגשה מסודרת של הפרויקט. |

</div>