Agent Dev Thai Academyprinciples · patterns · architecture

AI ไม่ได้โกหก เราแค่ไม่เคยบอกให้มันพิสูจน์

สั่ง AI รีวิวโค้ดแล้วได้สี่สิบข้อจริงสามข้อ เพราะเราไม่ได้บอกว่าอะไรนับเป็นบั๊ก ใส่สี่ข้อใน CLAUDE.md ลากเส้นให้ได้ ไล่ของที่กันไว้แล้ว ชี้ที่ที่ทำถูก ส่วนละไม่เกินสองข้อ

ลองสั่ง AI ว่า "ช่วยรีวิวโค้ดหน่อย" ดู

มันจะได้มาสี่สิบข้อ

จริงอยู่สามข้อ

อีกสามสิบเจ็ดข้อเรานั่งไล่ทีละอัน แล้วพบว่าไม่มีอะไร

พอโดนแบบนี้สองรอบ เราก็เลิกอ่าน report แล้วก็กลับไปเหมือนเดิม


มันไม่ได้โกหกเรานะครับ

เราแค่ไม่เคยบอกว่าอะไรถึงจะนับว่าเป็นบั๊ก

มันเลยเดาให้ทุกอย่างที่ดูน่าสงสัย เพราะเราไม่ได้ตั้งเกณฑ์ไว้


สี่ข้อนี้เอาไปใส่ CLAUDE.md ได้เลย

หนึ่ง ไม่เชื่อจนกว่าจะลากเส้นได้

ทุกข้อต้องลากให้เห็นว่า ค่าที่ผู้ใช้ส่งเข้ามา ผ่านตรงไหน แล้วไปโดนบรรทัดที่ตัดเงินหรือแก้ข้อมูลตรงไหน

ลากไม่ได้ก็ตัดทิ้ง ไม่ต้องเดาให้

สอง บอกมาด้วยว่าอะไรน่าจะกันไว้แล้ว

ก่อนจะบอกว่าเจอบั๊ก ให้ไล่ก่อนว่ามีอะไรที่น่าจะกันไว้อยู่แล้วมั้ย

validate ข้างหน้า สิทธิ์ผู้ใช้ constraint ที่ฐานข้อมูล

แล้วบอกว่าไล่ยังไงถึงรู้ว่าไม่มี

สาม ชี้ที่เดิมในโค้ดที่ทำถูก

อันนี้ดีที่สุด ถ้าตรงนี้ลืมเช็ค แต่อีกไฟล์นึงเช็คอยู่ ให้ชี้มาเลยว่าอยู่ไหน

เพราะเราเถียงกับ "มันน่าจะพัง" ได้ แต่เถียงกับ "อีกที่นึงในโค้ดเราทำถูกอยู่แล้ว" ไม่ได้

สี่ ไม่เกินสองข้อต่อหนึ่งส่วน

ถ้าไม่มีอะไรถึงเกณฑ์ ให้ตอบว่าไม่มี

และห้ามเสนอเรื่องจัดระเบียบโค้ดให้สวย หรือเผื่ออนาคต หรือลดจำนวนบรรทัด


เวลารีวิวโค้ด ให้ทำตามนี้
- ทุกข้อต้องลาก input -> จุดที่ขาดการเช็ค -> บรรทัดที่แก้เงินหรือ state
  ลากไม่ได้ให้ทิ้ง
- ไล่ก่อนว่ามีอะไรกันไว้แล้วมั้ย แล้วบอกว่าไล่ยังไง
- ถ้ามีที่อื่นในโค้ดที่ทำถูก ให้ชี้มาด้วย
- ส่วนละไม่เกินสองข้อ ไม่มีก็บอกว่าไม่มี
- ห้ามเสนอเรื่องความสวยงามหรือเผื่ออนาคต

<!-- RESTORE ONLY ON EXPLICIT PERMISSION — cut from the shipping version 2026-08-29. เอาไปลองกับ repo ระบบ POS ของเพื่อนมา มันขึ้นมาสี่สิบสองข้อ ผ่านเกณฑ์เหลือสามสิบเอ็ด ตัดซ้ำแล้วเหลือยี่สิบหก END RESTORE -->

เอาไปลองกับโปรเจกต์จริงมา

ข้อที่ชอบที่สุดคือโปรโมชั่นหมดอายุเร็วไปสิบเจ็ดชั่วโมง

new Date("2026-08-25") มันอ่านเป็นเที่ยงคืน UTC ซึ่งบ้านเราคือเจ็ดโมงเช้า

โปรที่ควรอยู่ถึงเที่ยงคืน ตายตั้งแต่เช้า

ที่เจ็บกว่านั้นคือ อีกไฟล์นึงในโปรเจกต์เดียวกันแก้เรื่องนี้ไว้แล้ว

มี comment อธิบายไว้ด้วยว่าทำไมต้องแก้

แค่ไฟล์ที่สร้างโปรไม่ได้แก้ตาม


นั่นแหละคือข้อสาม

ไม่ต้องเถียงว่าเป็นบั๊กจริงมั้ย เพราะโค้ดตัวเองตอบไปแล้ว


AI หาบั๊กเก่งมาก

แต่มันเก่งกว่าตรงที่มโนบั๊กขึ้นมาให้เราไล่

ต่างกันแค่ว่าเราตั้งเกณฑ์ไว้ให้มันรึเปล่า