CCA · Foundations

review instance อิสระเหนือกว่า self-review และ per-file กับ cross-file pass

แนวคิด

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

ทางที่ดีกว่าคือใช้ review instance อิสระ คือ Claude อีกตัวที่ไม่มีบริบทการให้เหตุผลตอนสร้าง เข้ามารีวิวโค้ดใหม่ instance ที่เริ่มจากศูนย์ไม่ได้ผูกกับสมมติฐานเดิม จึงจับปัญหาละเอียดอ่อนได้ดีกว่าทั้งการสั่งให้ self-review และการเปิด extended thinking

ทำไมสำคัญ

เหตุผลเชิงหลักการคือ การรีวิวที่ดีต้องการมุมมองที่ไม่ลงทุนกับคำตอบเดิม โมเดลที่เพิ่งเขียนโค้ดมีแรงจูงใจเชิงบริบทที่จะเชื่อว่าโค้ดตัวเองถูก เหมือน developer ที่รีวิว PR ตัวเองมักมองไม่เห็นบั๊กที่คนอื่นเห็นทันที การแยก instance ที่สร้างออกจาก instance ที่รีวิว จึงตัดอคติเชิงบริบทนี้ออก และนี่เชื่อมกับหลักใน CI ที่ว่า session เดิมที่สร้างโค้ดมีประสิทธิภาพในการรีวิวการเปลี่ยนแปลงของตัวเองต่ำกว่า review instance อิสระ

มิติที่สองคือการแบ่ง review ใหญ่ออกเป็นหลาย pass เมื่อ PR แก้หลายไฟล์พร้อมกัน การรีวิวทุกไฟล์รวดเดียวทำให้ attention เจือจาง ผลคือบางไฟล์ได้ feedback ละเอียด บางไฟล์ผิวเผิน บั๊กชัด ๆ หลุด และเกิด feedback ขัดแย้งกันเอง เช่น ติง pattern หนึ่งว่าผิดในไฟล์หนึ่ง แต่อนุมัติโค้ดแบบเดียวกันในอีกไฟล์ ทางแก้คือแบ่งเป็น per-file local pass ที่วิเคราะห์แต่ละไฟล์แยกเพื่อจับปัญหาเฉพาะที่ บวกกับ cross-file integration pass แยกต่างหากที่ดูการไหลของข้อมูลข้ามไฟล์

ตัวอย่างที่ตรงกับ Sample Question ของ exam คือ PR ที่แก้ 14 ไฟล์ในโมดูลติดตามสต็อก การรีวิวรวดเดียวให้ผลไม่สม่ำเสมอ บางไฟล์ละเอียดบางไฟล์ผิวเผิน พลาดบั๊กชัด และให้ feedback ขัดกันเอง คำตอบที่ถูกคือแยกเป็น focused pass วิเคราะห์แต่ละไฟล์ทีละไฟล์สำหรับปัญหาเฉพาะที่ แล้วรัน integration pass แยกที่โฟกัสการไหลของข้อมูลข้ามไฟล์ ทางเลือกอื่นด้อยกว่า การบังคับให้คนแบ่ง PR เล็กลงเป็นการผลักภาระ การขึ้น model context ที่ใหญ่กว่าไม่แก้เรื่อง attention เจือจาง และการรันสาม pass บนทั้ง PR แล้วเอาเฉพาะที่ตรงกันสองในสามก็ยังไม่แก้ปัญหารากที่ว่าไฟล์มากเกินไปต่อหนึ่ง pass

สองหลักนี้เสริมกัน ใช้ review instance อิสระเพื่อตัดอคติ และแบ่ง pass เพื่อไม่ให้ attention เจือจาง เพื่อให้ review ทั้งลึกและครบ

ตัวอย่าง

PR แก้ 14 ไฟล์:
  self-review ใน session เดิม → เก็บบริบทเดิม มองข้ามบั๊กตัวเอง
  รีวิวรวดเดียวทั้ง 14 ไฟล์   → attention เจือจาง, feedback ขัดกันเอง

แนวทางที่ถูก:
  1) review instance อิสระ (ไม่มีบริบทตอนสร้าง)
  2) per-file local pass  → จับปัญหาเฉพาะที่ทีละไฟล์
  3) cross-file integration pass (แยก) → ดู data flow ข้ามไฟล์

เช็คความเข้าใจ

ทำไม review instance อิสระจึงจับปัญหาได้ดีกว่าการสั่งโมเดลให้ self-review

สำหรับ PR ที่แก้หลายไฟล์ ควรจัดโครงสร้าง review อย่างไร และทำไมการขึ้น context ใหญ่ขึ้นจึงไม่ใช่คำตอบ

อ่านต่อ