| name | debug |
| description | ไล่บั๊กอย่างเป็นระบบ ใช้เมื่อมี error โปรแกรมพัง throw exception หรือผลลัพธ์ผิดจากที่ควรเป็น |
Skill: debug
อย่าเดาแล้วแก้มั่ว — ไล่ตามนี้:
- Reproduce: ทำให้บั๊กเกิดซ้ำได้ก่อน หา input/ขั้นตอนที่เล็กที่สุดที่ทำให้พัง (minimal repro)
- อ่าน error เต็มๆ: stack trace อ่านจากล่างขึ้นบน หาบรรทัดในโค้ดเราที่ใกล้จุดพังสุด อ่าน error message ตามตัวอักษร
- ตั้งสมมติฐาน: คิดว่าอะไรน่าจะเป็นสาเหตุ (1-2 ข้อ)
- พิสูจน์: ใส่ print/log หรือรันเฉพาะส่วน เพื่อยืนยัน/ตัดสมมติฐาน — ดูค่าจริง ไม่ใช่ค่าที่คิดว่าเป็น
- แก้ที่ราก (root cause) ไม่ใช่กลบอาการ
- กันซ้ำ: เพิ่มเทสต์ที่ reproduce บั๊กนี้ (ดู skill write-tests)
- ยืนยัน: รันใหม่ว่าหายจริง และไม่พังที่อื่น
ถ้าติดนาน: ตัดปัญหาครึ่งต่อครึ่ง (bisect) — comment โค้ดออกทีละส่วนจนเหลือจุดที่พัง