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

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

TypeScript
מוסיפים strict: true בתוך compilerOptions בקובץ tsconfig.json הקיים, בלי למחוק אפשרויות אחרות. המשפחה כוללת noImplicitAny ו-strictNullChecks, אבל אפשר לדרוס אפשרויות בודדות. מריצים tsc --noEmit מתוך הפרויקט בגרסת המהדר המוסכמת. מסירת שמות קבצים ישירות משנה את שימוש התצורה. תוצאה ירוקה מתייחסת לתוכנית שנכללה בפועל, לא אוטומטית לכל המאגר.
Python
רמזי הטיפוסים צריכים לתאר קלט ופלט אמיתיים. אם None אפשרי, מציינים ומטפלים בו. מריצים mypy --strict על התיקייה הרצויה. אוסף הבדיקות תלוי בגרסה, וייבוא יכול להרחיב את התחום. הרמזים אינם מאמתים אוטומטית JSON נכנס בזמן ריצה. בגבול חיצוני בודקים סכמה וערכים בנפרד.
מחזור עבודה שאפשר לבדוק
אחרי שינוי הסוכן מריץ פקודה ובדיקות, קורא שגיאות, מתקן סיבה ומריץ שוב. לא מוחקים בדיקות או מחלישים תצורה כדי לקבל ירוק. Ignore, cast או any ללא הסבר דורשים בדיקה. ביומן CI צריכים להופיע פקודה, גרסה ותוצאה. בהטמעה הדרגתית מתחילים בתחום מוגדר, שומרים בדיקות קיימות ומפרטים מה לא נבדק. שינוי הגדרות הבדיקה נבדק בנפרד משינוי המוצר. לניסוי מעבירים מספר לפרמטר str ומוודאים שהפקודה האמיתית מזהה זאת, מתקנים ומריצים שוב. זה בודק את כלי הבדיקה, לא מוכיח את כל הלוגיקה העסקית.
מקורות
- https://wurk.fun/blog/turn-on-strict-type-checks-so-your-coding-agent-s-mistakes-fail-early
- https://www.typescriptlang.org/tsconfig/#strict
- https://www.typescriptlang.org/docs/handbook/compiler-options.html
- https://mypy.readthedocs.io/en/stable/command_line.html
- https://wurk.fun/blog/add-a-ci-check-so-your-coding-agent-can-t-merge-broken-code