תנאי סף להשקה: מה חייב להתקיים קודם
אליס וה־AI הבטוח בעצמו
ביום שני בבוקר, כשאליס פתחה את אפליקציית החשבוניות שלה למאתיים משתמשים משלמים, מספרי חשבוניות של חברות אחרות הופיעו ברשימה נפתחת. ביום ראשון בלילה ה־AI אמר שכן, זה מוכן. שום דבר בתשובה הזאת לא נבדק. באותו שבוע היא כתבה עשר בדיקות, צירפה הוכחה לכל אחת, והריצה אותן לפני כל גרסה.
- launch gate הוא רשימה כתובה וקצרה של בדיקות עם הוכחה.
- כל בדיקה מציינת את הראיה שלה: פלט, צילום מסך או שורת לוג.
- בדיקה שלא הורצה נחשבת פתוחה, לעולם לא כעוברת.
- שמרו על עשר שורות והריצו אותה שוב לפני גרסאות גדולות.
בדיקות כתובות חייבות לעבור לפני הגרסה
עשה ואל תעשה
- מנו אחראי לכל בדיקה; זכרו שקוד שרץ אינו מספיק בלי הבדיקות שמתחת לקו המים.
- דרשו מה־AI להדביק פלט אמיתי.
- לקבל "נראה טוב" כהוכחה.
- לתת לרשימה לגדול מעבר לעשר שורות.
כותבים את הבדיקות לפני שמזמינים משתמשים
דמו צריך לעבוד פעם אחת, כשאתם עומדים ומסתכלים. מוצר צריך להמשיך לעבוד בשביל אנשים זרים, כשאתם לא שם. קוד שרץ הוא תנאי הכרחי, והוא לא מספיק. תכונות וממשק יושבים מעל קו המים. מתחתיו יושבים גיבויים, התראות, סודות, rollback ועלות, כלומר עבודה שה־AI שכתב את התכונה אף פעם לא הציע מעצמו. ב־Production יש כלל נוסף: אף אחד לא אומר "מוכן" בלי רשימה. תנאי סף להשקה הם קובץ קצר שנשמר ליד הקוד, עם בדיקות של כן או לא. ליד כל בדיקה כתובה ההוכחה שלה, למשל הרצת בדיקות, צילום מסך או שורת log. דוגמה: לפני הזמנות, סמנו "URL של staging נטען", "משתמש בדיקה יכול להיכנס", "webhook תשלום מדומה מסמן גישה בתשלום (entitlement=active)."
עד עשר שורות. על רשימה ארוכה מדלגים.
מה נכנס לרשימה
בחרו בדיקות שמתאימות לדרכים שבהן אפליקציות כמו שלכם נשברות. שני משתמשים לא יכולים לראות את הנתונים אחד של השני. הרשמה עובדת בדומיין האמיתי, וגם תשלום, אם האפליקציה מקבלת תשלומים. אפשר לשחזר גיבוי. התראה מגיעה לטלפון. שגיאות נוחתות במקום שבו תסתכלו עליהן. rollback, כלומר החזרת הגרסה הקודמת לאוויר, נוסה לפחות פעם אחת.
ליד כל שורה צריך להיות שם, גם אם זה רק השם שלכם.
מבקשים מה־AI להוכיח
בקשו מה־AI להריץ כל בדיקה ולהדביק את הפלט. אל תסתפקו ב"נראה טוב". אם אי אפשר להריץ בדיקה, סמנו אותה כפתוחה ולא כעברה. הריצו את הרשימה מחדש לפני כל גרסה גדולה, כי רשימה כזו מתיישנת.
צרו LAUNCH_GATE.md לאפליקציה שלי עם מה שחייב להיות נכון לפני ההשקה. כללו: בידוד בין שני משתמשים, הרשמה ותשלום בדומיין החי, גיבוי ששוחזר לסביבה זמנית, התראה שמגיעה לטלפון שלי, שגיאות במעקב, חזרה אחורה שנוסתה ב־staging, אף סוד בקוד שהדפדפן מוריד. לכל פריט אמרו איזו הוכחה יש לנו, או סמנו שחסר. שאלו אותי על כל דבר שלא החלטתי.
עשה ואל תעשה
זה מוכן להשקה?
הריצו כל שורה ב־LAUNCH_GATE.md. הדביקו לכל שורה את הפקודה ואת הפלט שלה. סמנו כל דבר שלא הצלחתם להריץ כפתוח, לא כעבר.
דוגמה
קחו את תוצאות ההרצה האחרונה של ה־launch gate שלנו והפכו אותן ללוח קצר של PASS או OPEN, עם הוכחה אחת בכל שורה, כמו מספר בדיקות או הקלטה שמורה, ועם הסיבה ששורת OPEN לא הצליחה לרוץ. אחר כך, לכל שורת OPEN, תנו לי את צעד ההכנה הקטן ביותר שמשחרר אותה, כמו יצירת מסד נתונים זמני.
הדביקו את ההנחיות לסוכן מתוך תיקיית פרויקט. כשההנחיה אומרת "הפרויקט הזה", הכוונה לאפליקציה שבונים בתרגול או לאפליקציה שכבר יש לכם. עדיין אין פרויקט? קראו עכשיו והדביקו אחר כך, בתרגול.
תכתבו launch gate של עשר שורות לאפליקציה הזו. לכל שורה תנו את הבדיקה, את ההוכחה שאני אמור לראות ואת הקובץ או הפקודה שמפיקים אותה. תתבססו על מה שהאפליקציה הזו באמת עושה.
הריצו עכשיו את ה־launch gate שב־LAUNCH_GATE.md. על כל שורה הדביקו את הפקודה המדויקת ואת הפלט שלה. אם אי אפשר להריץ שורה, סמנו אותה OPEN וכתבו מה חסר. אל תשנו קוד.
עברו על ה־launch gate שלנו וחפשו בדיקות עמומות או כאלה שאי אפשר ליפול בהן. תכתבו מחדש כל אחת עם תנאי הצלחה ברור והוכחה, ותגידו לי אילו שורות לקצץ כדי להישאר עם עשר.
🚨 בזמן תקלה בסביבת הייצור, בקשו מה־AI
השקתם ולא בטוח לכם שלא דילגתם על משהומה עושים? · הצגת ההנחיה להדבקה
אנחנו באוויר ומדאיג אותי שדילגנו על משהו. אל תשנו קוד. תשוו את האפליקציה לשער ההשקה ב־LAUNCH_GATE.md, או תנסחו אחד אם הקובץ חסר. תרשמו כל בדיקה שאין לה הוכחה, תדרגו אותן לפי הנזק שכשל בהן יגרום למשתמשים, ותגידו לי איזו לעשות קודם.