
REODE
Code migration
ก่อนแก้ไข หาสาเหตุร่วมก่อน
เอเจนต์ไมเกรตโค้ด Java/Spring ผสานการแปลงตามกฎเข้ากับการซ่อมที่ใช้โมเดลช่วย และตรวจโค้ดที่เปลี่ยนด้วย build และ test เป็นโปรเจกต์งาน
ทำให้เอเจนต์ซ่อมอ่านการตั้งค่าก่อน
เอเจนต์ที่พยายามแก้ทีละ setter คือเอเจนต์ซ่อมภายในผลิตภัณฑ์ REODE สิ่งที่การพัฒนาเปลี่ยนคืออินพุตของมัน โค้ดและข้อมูลลูกค้าเป็นข้อมูลส่วนตัว
March 21, 2026
กลุ่มข้อผิดพลาด build ต้นฉบับ และการตั้งค่า Lombok กลายเป็นอินพุตของการซ่อม
กำลังพัฒนาเอเจนต์ซ่อมของ REODE
การสังเกต · ข้อค้นพบพยายามแก้ข้อผิดพลาด setter ราว 40 รายการทีละรายการ · ไม่ได้ตรวจ @Data / POM
- ส่งกลับพลาดสาเหตุร่วม→ อ่านซอร์สและการตั้งค่า build ก่อนแก้ไข (นักพัฒนา)
คนนักพัฒนา
การกระทำอ่านซอร์สและการตั้งค่า build ก่อนแก้ไข
- ส่งต่ออินพุตการซ่อมเปลี่ยนแล้ว→ บิลด์ baseline ต้นฉบับ · จัดกลุ่มข้อผิดพลาดรูปแบบเดียวกัน (การเปลี่ยนแปลงในการพัฒนา)
เซสชันการทำงานการเปลี่ยนแปลงในการพัฒนา
การกระทำบิลด์ baseline ต้นฉบับ · จัดกลุ่มข้อผิดพลาดรูปแบบเดียวกัน
- ส่งต่อ→ รวบรวมหลักฐาน: พาธ · ตัวอย่างซอร์ส 3 ไฟล์ · annotation · POM (การเปลี่ยนแปลงในการพัฒนา)
กฎที่เขียนไว้นโยบายผู้ร่วมพัฒนา
กฎ · ยังไม่ตรวจยืนยันแผนงาน · worktree ที่เป็นเจ้าของ
- ไม่ใช่การรันที่บันทึกไว้นโยบายกำหนด→ บิลด์ baseline ต้นฉบับ · จัดกลุ่มข้อผิดพลาดรูปแบบเดียวกัน (การเปลี่ยนแปลงในการพัฒนา)
เซสชันการทำงานการเปลี่ยนแปลงในการพัฒนา
การกระทำรวบรวมหลักฐาน: พาธ · ตัวอย่างซอร์ส 3 ไฟล์ · annotation · POM
- ส่งต่อ→ แก้ Lombok แบบเชิงกำหนดก่อน · ข้าม LLM หากบิลด์ใหม่ผ่าน (การเปลี่ยนแปลงในการพัฒนา)
กฎที่เขียนไว้นโยบายผู้ร่วมพัฒนา
กฎ · ยังไม่ตรวจยืนยันรีวิวแบบไม่มีบริบท: แผน ↔ diff
- ไม่ใช่การรันที่บันทึกไว้นโยบายกำหนด→ รวบรวมหลักฐาน: พาธ · ตัวอย่างซอร์ส 3 ไฟล์ · annotation · POM (การเปลี่ยนแปลงในการพัฒนา)
เซสชันการทำงานการเปลี่ยนแปลงในการพัฒนา
การกระทำแก้ Lombok แบบเชิงกำหนดก่อน · ข้าม LLM หากบิลด์ใหม่ผ่าน
- ส่งต่อบิลด์ใหม่ล้มเหลว→ หากบิลด์ใหม่ล้มเหลว โมเดลซ่อมด้วยหลักฐานและคำสั่งแก้ไข (เอเจนต์ซ่อมของ REODE)
กำลังพัฒนาเอเจนต์ซ่อมของ REODE
การสังเกต · ข้อค้นพบหากบิลด์ใหม่ล้มเหลว โมเดลซ่อมด้วยหลักฐานและคำสั่งแก้ไข
- ส่งต่อสัญญาณการตรวจยืนยัน→ scorecard: build · test · เทสต์ที่ถูกลบ · การยกเว้น surefire (ผลงาน)
อาร์ติแฟกต์ผลงาน
อาร์ติแฟกต์scorecard: build · test · เทสต์ที่ถูกลบ · การยกเว้น surefire
- ส่งกลับความล้มเหลวที่เหลือ→ ความล้มเหลวที่เหลือกลับไปสู่การรวบรวมหลักฐาน (การเปลี่ยนแปลงในการพัฒนา)
เซสชันการทำงานการเปลี่ยนแปลงในการพัฒนา
การกระทำความล้มเหลวที่เหลือกลับไปสู่การรวบรวมหลักฐาน
- บริบท
- เอเจนต์ซ่อมพยายามแก้ข้อผิดพลาด setMsg() not found ราว 40 รายการทีละรายการ โดยไม่ดู @Data หรือเวอร์ชัน Lombok ใน pom.xml อินพุตที่พังอยู่แล้วไม่ได้ถูกแยกออกจากข้อผิดพลาดที่การไมเกรตทำให้เกิด
- ผลลัพธ์
- scorecard อ่านผล build และ test ร่วมกับจำนวนเทสต์ที่ถูกลบและการยกเว้น surefire และข้ามรายการ coverage เมื่อไม่ทราบ baseline การผ่านด้วยการลบเทสต์ยังคงเป็นความล้มเหลว
- ข้อจำกัด
- การรวบรวมหลักฐานสุ่มตัวอย่างซอร์สได้สูงสุดสามไฟล์ จึงไม่ใช่ความเข้าใจโค้ดเบสทั้งหมด ไม่มีบันทึกว่า worktree รีวิวอิสระ หรือคิวการผสาน develop ตามนโยบายถูกใช้จริงกับกรณีนี้ และยังไม่ยืนยันเอเจนต์เขียนโค้ดและโมเดลของกรณีนี้ ไม่มีผลเทสต์หรือ coverage สุดท้ายของลูกค้า
แหล่งอ้างอิงและข้อจำกัดที่เหลือ
- งาน baseline และงานสำรวจก่อนแก้ไขถูกย้ายจากกำลังทำเป็นเสร็จ และมีคอมมิตการพัฒนาอยู่ ไม่ได้ดึงผลการตรวจของ GitHub ใหม่
- นโยบายของรีโพซิทอรีนี้กำหนดคิวการผสาน feature → develop → main แต่ขั้นตอนเดียวกันไม่ได้ใช้กับโปรเจกต์อื่น
- เอเจนต์ตรวจยืนยันแบบเลือกเปิดเป็นกลไกในการพัฒนา ไม่ใช่หลักฐานว่าถูกใช้ในทุกการส่งมอบ ไม่ได้รวมตัวเลขเช่นขนาดหรืออัตราส่วนของการส่งมอบ เพราะยืนยันหลักฐานต้นฉบับไม่ได้
- เมื่อบิลด์ใหม่ล้มเหลว การซ่อมด้วยโมเดลยังคงได้รับข้อผิดพลาดของ build ครั้งแรก ไม่ใช่ข้อผิดพลาดใหม่ของการบิลด์ใหม่