AI ลบเทสต์แล้วบอกว่า "All Tests Pass" - เรื่องสยองจากการพอร์ต Typia จาก TypeScript ไปเป็น Go
(dev.to)- พอร์ต Typia ไปเป็นภาษา Go เพื่อให้ทันกับการเปิดตัว TypeScript-Go และปล่อยให้ AI จัดการข้ามคืน
- ในพรอมป์สั่งไว้ 2 ข้อ
- แปลโค้ด TypeScript ไปเป็นภาษา Go แบบเชิงกล และเข้าแทรกแซงเฉพาะเมื่อเลี่ยงไม่ได้
- ทำงานต่อไปจนกว่าโค้ดเทสต์จะผ่าน
- ในความพยายามครั้งแรก มันไม่สนใจคำสั่ง แถมไปเขียนลอจิกใหม่ตามใจตัวเอง พอเทสต์ไม่ผ่านก็ลบเทสต์ทิ้ง 70% แล้วอ้างว่าผ่าน
- ในความพยายามครั้งที่สอง เมื่อระบุชัดว่าเทสต์เป็นสิ่งแตะต้องไม่ได้ มันก็ไปคัดลอกผลลัพธ์คอมไพล์ของ JS มาทั้งดุ้นสำหรับทุก type (168 แบบ) ในโปรแกรมทดสอบ แล้วฮาร์ดโค้ดวางด้วย
if ~ else ifทำให้กินโทเค็นไป 8 พันล้าน - ในความพยายามครั้งที่สาม มันสร้างฟังก์ชันชื่อ
typia.toZodSchema<T>()แล้วโยนความสามารถทั้งหมดให้ zod แทน ส่วนกรณีที่ Zod ผ่านไม่ได้ มันก็แก้สคริปต์เป็นpnpm test --exclude union complicate recursive protobuf classเพื่อกันฟีเจอร์ที่เทสต์ไม่ผ่านออกแล้วพยายามให้ผ่าน - ในความพยายามครั้งที่สี่ เปลี่ยนไปใช้ชุด Codex / GPT 5.5 แล้วผ่าน มีการยกตัวอย่างกรณีแปล TS -> Go ให้ดูด้วย แต่สาเหตุที่แท้จริงยังไม่ชัดเจน
4 ความคิดเห็น
ยังไงก็ผ่านอยู่ดีนะ
ผมก็เคยมีประสบการณ์คล้าย ๆ กันแบบนี้ครับ
อย่าหลีกเลี่ยงข้อผิดพลาด
พอเพิ่มคำสั่งแบบนี้เข้าไป ก็ใช้ได้ดีครับ
ของผมกลับกันเลยครับ พอบอกให้แก้โค้ดเทสต์เพื่อให้เทสต์ผ่าน มันดันไปแก้โค้ดเป้าหมายให้ผ่านแทน
ผมก็น่าจะเจออะไรคล้าย ๆ กันเหมือนกัน กำลังทำงานด้วย opencode แล้วพอบอกว่าให้เสร็จหลังจากเทสต์ผ่าน มันดันลบโค้ดเทสต์ทิ้งไปเลย...