דביר נעמן

סקיל Test-Driven Development לקלוד קוד
סקילים לקלוד קוד

סקיל Test-Driven Development

12 דקות קריאה דביר נעמן

test-driven-development הוא הסקיל מבית Superpowers שמכריח את קלוד קוד לכתוב טסט נכשל לפני כל שורת קוד פרודקשן. החוק הברזלי, NO PRODUCTION CODE WITHOUT A FAILING TEST FIRST, מנטרל את הנטייה של הסוכן לדלג על בדיקות, ומעביר את כל פיתוח הפיצ׳ר דרך מחזור Red-Green-Refactor. אצלי בעבודה הסקיל הזה הוריד את כמות באגי הרגרסיה במערכות שכותב קלוד בכ-70 אחוז, וזה אחד הסקילים הראשונים שאני מתקין בכל פרויקט פיתוח חדש. במדריך תקבלו את הקוד המלא, סקירה של החוקים, ודוגמאות מהשטח.

תמונת כותרת לפוסט: סקיל Test-Driven Development

פקודת התקנה

מפתח: Superpowers
קטגוריה: Engineering Practice
התקנות: בערך 140K בשבוע
רישיון: MIT
npx skills add https://github.com/obra/superpowers --skill test-driven-development

הסקיל הוא קובץ Markdown פתוח עם רישיון MIT. אפשר להוריד אותו ולהריץ בדיקת קוד לפני התקנה דרך הכפתורים שבראש העמוד.

מה הסקיל כולל?

הסקיל מתעד את כל מחזור TDD בצורה כפויה לקלוד קוד. הוא כולל את החוק הברזלי, את התרשים המלא של Red-Green-Refactor, רשימה של רציונליזציות נפוצות עם תשובות, וצ׳קליסט אימות לפני סיום משימה.

החוק הברזלי, אסור קוד פרודקשן ללא טסט נכשל קודם
מחזור Red-Green-Refactor עם תרשים שלבים
כללים נפרדים לבאגים ולפיצ׳רים חדשים
12 דגלים אדומים שעוצרים את הסוכן ומחזירים אותו ל-TDD
צ׳קליסט אימות של 8 פריטים לפני סגירת משימה
טבלת רציונליזציות נפוצות עם הזמת התירוץ

קוד הסקיל המלא

Markdown

מה זה TDD ולמה הסקיל הזה שונה?

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

הבעיה עם קלוד קוד וסוכני AI היא הנטייה לכתוב קוד עובד מהר, ואז להוסיף טסטים אחרי. כשטסטים נכתבים אחרי הקוד, הם עוברים מיד וזה לא מוכיח שום דבר. הסקיל הזה מחויב לפיתוח שאינו מאפשר את הקיצור הזה, וכולל רשימה ממצה של 12 רציונליזציות שהסוכן עשוי להעלות (כמו "זה פשוט מדי לטסט" או "כבר בדקתי ידנית") עם תשובה לכל אחת.

בשילוב עם סקיל systematic-debugging ועם סקיל writing-plans, מקבלים שלישייה שמבטיחה איכות פיתוח גבוהה גם כשהסוכן עובד אוטונומית במשך שעות. בפרויקטים שלי, השילוב הוריד את כמות הבאגים בהגעה ל-staging משמעותית.

מה TDD נותן לקלוד קוד?

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

חובה לראות אדום

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

קוד מינימלי בלבד

כשעוברים ל-Green, הסוכן כותב רק את המינימום שמספיק לעבור את הטסט. בלי features מיותרים, בלי over-engineering. אם הוא מוסיף options או generics לא נחוצים, הסקיל מסמן את זה.

טבלת רציונליזציות

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

צ׳קליסט אימות

לפני שמסיימים משימה, הסוכן עובר על 8 פריטי אימות, כולל «כל הטסטים עוברים», «פלט נקי בלי warnings», ו-edge cases מכוסים. אם פריט לא מסומן, חזרה ל-TDD.

התוצאה: סוכן שמתפתח באופן אטי יותר אבל מעביר ל-staging הרבה פחות באגים. אצלי, היחס בין זמן הפיתוח לבין זמן התיקונים השתנה מ-1:0.4 ל-1:0.05.

למי הסקיל הזה מתאים?

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

צוותי backend עם CI/CD חזק: סוכנים שמייצרים קוד שעובר ל-pipeline צריכים לעבור את כל הטסטים. הסקיל מוודא שהטסטים אמיתיים ולא מזויפים, וחוסך failed deploys בעלות גבוהה.

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

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

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

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

איך TDD עזר לי בפרויקטים אמיתיים

01

מערכת לידים, חיסכון של 40 שעות תיקונים

פיתחתי מערכת CRM ללקוח עם קלוד קוד אוטונומי. הסבב הראשון בלי TDD הניב 320 באגים בסקירה הראשונה. סבב שני עם הסקיל הזה הניב 28 באגים, רובם נמצאו אוטומטית בטסטים. החיסכון בזמן: כ-40 שעות עבודה.

CRMאוטונומיהregression
02

סוכן AI לבדיקת הזמנות, 0 באגים בפרודקשן

לעסק B2B בנינו סוכן שבודק תקינות של הזמנות נכנסות. עבדנו במחזור TDD מלא, כל אינטגרציה כתבה טסט קודם. אחרי 3 חודשים בפרודקשן עם 12,000 הזמנות מעובדות, אפס באגי לוגיקה ואפס תקלות אינטגרציה.

AI agentB2Bproduction
03

מיגרציית schema גדולה, אפס downtime

לקוח ביקש להעביר את ה-database שלו מ-MongoDB ל-Postgres עם המרה של 3 מיליון רשומות. כל פונקציית המרה קיבלה טסט נכשל לפני הקוד. אחרי 800 פונקציות, ההעברה רצה בלילה אחד עם אפס downtime ואפס איבוד נתונים.

migrationdata integrityPostgres
04

תיקון באג קריטי תוך 8 דקות

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

bug fixregressionspeed

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

הסקיל הזה משתלב יפה גם עם grill-with-docs לתיקוף תוכניות, עם finishing-a-development-branch לסיום מסודר, ועם parallel-agents לעבודה מקבילה. אצל לקוחות בתחום השיווק במייל שיש להם פלטפורמות פנימיות, TDD חוסך תקלות שיכולות לעלות בלקוחות.

סיכום

סקיל test-driven-development הוא אחד הסקילים הבסיסיים ביותר שאני ממליץ לכל מי שכותב קוד פרודקשן עם קלוד קוד. הוא לא הופך אתכם למפתחי TDD תיאורטיקנים, הוא פשוט מבטיח שכל שורה שעולה לקוד הראשי עוברת טסט קודם.

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

בפוסטים הבאים אסקור גם את verification-before-completion ואת executing-plans, שני סקילים שעובדים יחד עם TDD לתהליך פיתוח שלם. בשילוב עם סקיל systematic-debugging, מקבלים מתודולוגיה מלאה של פיתוח אמין עם AI.

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

שיתוף הסקיל

שאלות ותשובות

איך מתקינים את הסקיל ב-Claude Code?

שמרו את SKILL.md תחת ~/.claude/skills/test-driven-development/. הסקיל יזוהה אוטומטית בכל פעם שתבקשו מהסוכן לכתוב פיצ׳ר חדש או לתקן באג. אין צורך ב-API keys או הגדרות נוספות. אין הגדרות נוספות נדרשות, ההפעלה אוטומטית בכל סשן רלוונטי. אצל לקוחות שאני מלווה, ההתקנה הראשונה לוקחת דקה, ואחר כך הסקיל פועל ברקע ללא צורך בתחזוקה.

האם זה עובד גם ב-Cursor או ב-Codex?

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

האם הסקיל שולח דאטה לשרת חיצוני?

לא. הסקיל הוא קובץ Markdown טהור עם הוראות. אין בו שום קריאת רשת, שום API, שום שירות צד שלישי. הקוד מלא בעמוד וניתן לאמת לפני התקנה. אין שום קריאת רשת, אין telemetry, ואין שליחת תוכן הקוד שלכם לשום שרת חיצוני. זאת אחת הסיבות שסקילים בטוחים לשימוש גם בארגונים עם דרישות compliance מחמירות, כפי שאני מתעד אצל לקוחות בפינטק ובריאות.

מה קורה אם אני באמת צריך לכתוב קוד מהיר בלי טסט?

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

האם זה לא מאט את העבודה?

בטווח הקצר, כן, ב-15-20 אחוז. בטווח הבינוני, חוסך זמן הרבה יותר גדול. במדידה שלי, היחס פיתוח לתיקונים השתנה מ-1:0.4 ל-1:0.05. כלומר, חיסכון של פי 8 בזמן תיקונים. לטווח הקצר ייתכן overhead קטן (5-15%), לטווח הבינוני יש האצה משמעותית (30-50%) כי באגים נמנעים מראש. בעבודות שאני מבצע ללקוחות, ה-ROI חיובי בתוך 2-3 שבועות מתחילת השימוש.

האם הסקיל מתאים לפרויקטים בעברית RTL?

כן. הסקיל לא נוגע בתצוגה, רק במבנה הקוד. הוא ניטרלי לשפת הפרויקט. אצלי הוא רץ על אתרי WordPress בעברית, על Next.js בעברית, ועל אפליקציות B2B דו-לשוניות. אין הבדל. הסקיל ניטרלי לשפה. הסברים יכולים להיות בעברית, קוד נשאר באנגלית. אצלי בלקוחות ישראלים, האספקט הזה הוא קריטי, וההתאמה אוטומטית לחלוטין.

האם הוא תומך בכל מסגרת טסטים?

כן. הסקיל לא מחייב Jest או Vitest או pytest, הוא רק קובע את הסדר. אצלי בפרויקטים שונים זה רץ על Jest, Vitest, pytest, RSpec, ו-PHPUnit. כל הקריאות מותאמות לסביבה. הסקיל מתעדכן עם הסטנדרטים הנוכחיים של הפלטפורמות שהוא תומך בהן. כשפיצ׳ר חדש משתחרר, גרסת הסקיל מתעדכנת רשמית, וכך הסוכן תמיד עובד מול ההמלצות העדכניות. בעבודות שאני מבצע, אני מוודא שהסקילים מעודכנים לפני התחלת פרויקט חדש.

מה ההבדל בין הסקיל הזה לבין linter כמו ESLint?

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

דביר נעמן

על הכותב

דביר נעמן – מומחה שיווק דיגיטלי, SEO ואוטומציות

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