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

# תרגילים - שיעור 3.7: Code Review עם AI, Sub-Agents, Claude Code Security

## מידע כללי
- **שיעור:** 3.7 - Code Review עם AI, Sub-Agents, Claude Code Security
- **סוג השיעור:** מעשי (2 שעות אקדמיות)
- **הערה:** כל התרגילים מחייבים Claude Code מותקן ופרויקט קוד אמיתי (ניתן להשתמש ב-Task Manager מהשיעורים הקודמים, או ליצור פרויקטי-דמי קטנים לטובת התרגול).

---

## תרגיל 1: Code Review בסיסי לפונקציונליות ליבה (Hands-on - 15 דקות)
### הנחיות:
סטארטאפ ישראלי המפתח אפליקציית משלוחים (בסגנון Wolt) כתב מודול חדש לחישוב עלויות משלוח מבוסס מרחק ושעות עומס (`delivery_calculator`). 
1. צרו קובץ פייתון/JS פשוט שמחשב עלות משלוח, אך הכניסו בו בכוונה קוד לא יעיל (למשל, לולאות מיותרות, שמות משתנים לא ברורים, או היעדר טיפול בשגיאות).
2. פתחו את Claude Code והריצו את הפקודה `/review` על הקובץ.
3. בקשו מ-Claude ליישם את ההערות הטובות ביותר ישירות בקוד באמצעות הפקודה `/commit` (אם רלוונטי) או על ידי אישור השינויים.

### שאלות:
1. אילו בעיות קוד (Code Smells) זיהה ה-AI שלא חשבתם עליהן?
2. האם ה-AI הציע שינויים לוגיים באלגוריתם או רק שינויים סגנוניים (Refactoring)?

---

## תרגיל 2: זיהוי חולשות אבטחה ו-OWASP Top 10 (Hands-on - 20 דקות)
### הנחיות:
חברת FinTech מתל אביב מכינה גרסה חדשה לשירות התשלומים שלה. עליכם לוודא שאין דליפת מידע רגיש או חולשות הזרקה.
1. צרו קובץ בשם `payment_gateway` (באחת משפות התכנות).
2. שתלו בקובץ שתי חולשות מכוונות:
   - Hardcoded Secret (למשל, מפתח API מזויף של חברת אשראי: `API_KEY = "sk_live_123456789"`).
   - חולשת SQL Injection בסיסית (שרשור מחרוזות ישיר לשאילתת SQL במקום Parameterized Queries).
3. הריצו את הפקודה `/security-review` על הקובץ.

### שאלות:
1. לאילו קטגוריות מתוך ה-OWASP Top 10 שייכות החולשות שזיהה ה-AI?
2. האם ה-AI זיהה את ה-Secret באופן מיידי? כיצד הוא הציע לתקן זאת (למשל, שימוש ב-Environment Variables)?

---

## תרגיל 3: היכרות עם ארכיטקטורת Sub-Agents ו-Worktrees (סימולציה - 15 דקות)
### הנחיות:
במערכות גדולות, הרצת AI על כל ה-Codebase היא איטית ויקרה. כאן נכנסים ה-Sub-Agents המשתמשים ב-Worktrees (סביבות עבודה נפרדות של Git).
1. במערכת שלכם, בקשו מ-Claude Code לפצל משימת בדיקה גדולה: "Analyze the frontend and backend of this project concurrently".
2. עקבו אחר האופן שבו ה-Orchestrator מקצה את העבודה:
   - צפייה ביצירת ה-Worktrees (ספריות זמניות).
   - שליחת פרומפטים נפרדים לכל Worker.

### שאלות:
1. מהו היתרון המרכזי של שימוש ב-Worktrees כאשר מפעילים Sub-Agents?
2. תארו במילים שלכם את תפקיד ה-Orchestrator לעומת ה-Worker בתהליך הבדיקה.

---

## תרגיל 4: הרצה מקבילית על אינטגרציית SaaS (Hands-on מורכב - 25 דקות)
### הנחיות:
צוות הפיתוח כותב אינטגרציה רשמית ל-monday.com עבור האפליקציה שלכם. יש צורך לבדוק גם את שכבת ה-API (Backend) וגם את רכיבי ה-UI (Frontend) במהירות.
1. הכינו שני קבצים בפרויקט: `monday_api_client` ו-`monday_dashboard_ui`.
2. השתמשו ב-Claude Code וכתבו פרומפט המורה לו לבצע Code Review במקביל תוך שימוש ב-Sub-Agents מפורש (לדוגמה: "Spin up sub-agents to review the UI and API files concurrently, then summarize the findings").
3. המתינו לסיום הפעולה המקבילית וצפו בסיכום שאוסף ה-Orchestrator.

### שאלות:
1. כמה זמן להערכתם נחסך בהרצה מקבילית לעומת הרצה טורית (Sequential) רגילה?
2. במקרה של קונפליקט בין המלצות ה-Backend להמלצות ה-Frontend, כיצד ה-Orchestrator מתעדף את המידע?

---

## תרגיל 5: ביקורת ארכיטקטונית בענן עם /ultrareview (Hands-on - 15 דקות)
### הנחיות:
חברת HealthTech ישראלית נדרשת לעמוד בתקני HIPAA וזקוקה לביקורת קוד מרובת-סוכנים מעמיקה שדורשת כוח חישוב רב מענן ה-AI.
1. בחרו תיקייה שלמה בפרויקט שלכם (לפחות 3-4 קבצים המקושרים זה לזה).
2. הפעילו את הפקודה `/ultrareview` על התיקייה (שימו לב: פקודה זו צורכת יותר טוקנים ויכולה לקחת קצת יותר זמן).
3. קראו את הדוח המקיף שנוצר.

### שאלות:
1. מהו ההבדל המרכזי ברמת הפירוט וההבנה ההקשרית (Contextual understanding) בין `/review` רגיל לבין `/ultrareview`?
2. האם הופקו תובנות לגבי זרימת המידע (Data Flow) בין הקבצים השונים?

---

## תרגיל 6: Risk-Based Review והתמודדות עם False Positives (דיון מונחה - 15 דקות)
### הנחיות:
מערכות AI לסריקת אבטחה נוטות לעיתים להיות "זהירות מדי" ולהציף התראות שווא (False Positives). חברות סייבר דוגלות בגישת Human-in-the-Loop.
1. סקרו את תוצאות סריקת האבטחה מתרגיל 2 (או הריצו סריקה מחודשת על קוד Legacy כלשהו).
2. חפשו הערת אבטחה של ה-AI שהיא טכנית נכונה, אך בסביבת הפיתוח או בהקשר הספציפי אינה מהווה סיכון אמיתי (למשל: שימוש בפונקציית רנדום לא קריפטוגרפית לצורך בחירת צבע אקראי ב-UI).
3. בקשו מ-Claude להתעלם מבעיה זו ולהסביר מדוע בגישת Risk-Based Review אנו מתעדפים בעיות אחרות.

### שאלות:
1. תנו דוגמה ל-False Positive שנתקלתם בו או שסביר להיתקל בו בעת הרצת `/security-review`.
2. מדוע חשוב לשלב Human-in-the-Loop ולא להסתמך על תיקון אבטחה אוטומטי (Auto-fix) לחלוטין?

---

## תרגיל 7: משימת בית – Code Review אוטומטי מלא
### הנחיות:
עליכם לבצע Security Review מקיף על פרויקט אישי שלכם (רצוי פרויקט פתוח מ-GitHub או פרויקט גמר ממכללה).
1. התקינו את סביבת הפרויקט במחשבכם.
2. הריצו את הפקודה `/security-review` (או `/ultrareview` במידה והפרויקט מורכב ויש לכם מספיק מכסה).
3. נתחו את התוצאות מול ה-OWASP Top 10.
4. יישמו תיקונים לפחות ל-2 נקודות תורפה משמעותיות שנמצאו (או ששתלתם מראש לצורך הניסוי).
5. כתבו דוח ממצאים קצר (עד עמוד אחד) הכולל:
   - אילו חולשות נמצאו (Secrets / Vulnerabilities).
   - האם היו False Positives.
   - כיצד ה-AI עזר בתיקון.

**הגישו את דוח הממצאים + קישור ל-Commit הרלוונטי עד השיעור הבא.**

---

## קריטריונים להערכה (עבור משימת הבית)
| קריטריון | ציון |
|---|---|
| הפעלת הכלים `/security-review` בצורה נכונה על פרויקט אמיתי | 20% |
| זיהוי וסיווג נכון של החולשות (בהלימה ל-OWASP Top 10) | 25% |
| יישום התיקונים בקוד בצורה מאובטחת ונקייה (Human-in-the-Loop) | 30% |
| איכות דוח הממצאים, הבנת המגבלות (False Positives) והסקת מסקנות | 25% |

</div>