- เครื่องมือที่แยกสี แต่ละบรรทัดและโทเคน ภายในโค้ดที่เปลี่ยนแปลง (diff) เพื่อแสดงให้เห็นว่าควรตรวจทานมากน้อยเพียงใด
- ออกแบบมาเพื่อเน้น ‘ส่วนที่ควรกลับไปดูอีกครั้ง’ แทนการตรวจหาบั๊กแบบง่าย ๆ
- ใช้งานได้ทันทีด้วยการเปลี่ยน
github.com ใน URL ของ GitHub Pull Request เป็น 0github.com
- ภายในระบบจะ โคลนรีโพสิตอรีไปยัง VM และรัน gpt-5-codex เพื่อสร้างผลการวิเคราะห์ในรูปแบบโครงสร้าง JSON
ภาพรวม
- เครื่องมือนี้จะแสดงแต่ละส่วนของโค้ดที่เปลี่ยนแปลงระหว่างการรีวิวโค้ดในรูปแบบฮีตแมป ว่า ควรได้รับการตรวจอย่างละเอียดมากน้อยแค่ไหน
- สีถูกกำหนดตาม ระดับความจำเป็นที่มนุษย์ต้องใส่ใจ ซึ่งเป็นแนวทางที่ต่างจากการตรวจหาข้อผิดพลาดแบบตรงไปตรงมา
วิธีการทำงาน
- ผู้ใช้เข้าถึงได้โดยเปลี่ยนโดเมนใน URL ของ GitHub Pull Request จาก
github.com เป็น 0github.com
- ระบบจะโคลนรีโพสิตอรีดังกล่าวไปยัง เครื่องเสมือน (VM) และรัน โมเดล gpt-5-codex กับแต่ละ diff
- จากนั้นจะพาร์ส โครงสร้างข้อมูล JSON ที่โมเดลสร้างขึ้น แล้วแปลงเป็นฮีตแมปสี
เกณฑ์การวิเคราะห์
- ไม่ได้ดูแค่ว่า “มีบั๊กหรือไม่” แต่จะเน้นส่วนที่มนุษย์ควรกลับไปตรวจอีกครั้ง เช่น ค่าลับที่ฮาร์ดโค้ดไว้, โหมดการเข้ารหัสที่ผิดปกติ, ลอจิกที่ซับซ้อน เป็นต้น
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
ถ้าเป็นโค้ดเบสที่คุ้นเคย ก็จะคิดว่า “ขอบคุณนะ LLM แต่ฉันรู้ดีกว่าเลยไม่จำเป็น”
แต่ถ้าเป็นโค้ดที่ไม่คุ้นเคย ตั้งแต่แรกฉันก็จะไม่อนุมัติรีวิวหรือ merge อยู่แล้ว
ถึงอย่างนั้นการนำ LLM มาใช้แบบ สร้างสรรค์ ก็น่าสนใจดี
โค้ดที่ถูกลบก็ไม่แสดงเลย และกลับไฮไลต์เฉพาะบรรทัดที่ไม่ได้เปลี่ยน
เป็นความพยายามที่จริงใจ แต่ผลลัพธ์น่าผิดหวัง
สงสัยว่าทำไมถึงต้องขอสิทธิ์ให้ทำงานแทนฉันบน GitHub ด้วย
cmux-agentขอสิทธิ์เข้าถึงทั้งบัญชี GitHubพยายามจะเปิด issue แต่ในรีโปปิดฟังก์ชัน issue ไว้ เลยให้ความรู้สึก น่าสงสัยนิด ๆ
ลองทดสอบ PR ตัวอย่าง, stack-auth, tinygrad, datasette ในโหมดไม่ระบุตัวตนแล้ว ใช้งานได้ปกติ
ไม่รู้มาก่อนว่า issue ถูกปิดไว้ และตอนนี้ หน้า issue ก็กลับมาใช้งานได้แล้ว
GitHub App ติดตั้งได้เฉพาะบางรีโป แต่ก็ยังมีสิทธิ์ “ทำงานแทนผู้ใช้” รวมอยู่ด้วย
เลยเกิดป๊อปอัปที่ดูน่ากลัวแบบนั้น
แอปของฉัน codeinput.com ใช้ OAuth App เลยขอแค่อีเมล แต่หลังล็อกอินก็ต้องผ่านขั้นตอนติดตั้งอีกที ทำให้ flow การยืนยันตัวตน ซับซ้อน
ทิศทางน่าสนใจ แต่ ความคุ้มค่าเมื่อเทียบกับต้นทุน ยังไม่ชัด
ตอนนี้ LLM ยังเข้าใจบริบทของโปรเจกต์จากแค่ PR diff เดียวได้ยาก
กลับกัน heatmap แบบอิงข้อมูล ที่ดูจากบั๊กในอดีตหรือความถี่ของการเปลี่ยนแปลงน่าจะเชื่อถือได้มากกว่า
ถ้ารันด้วยคีย์ส่วนตัวได้ก็น่าจะดีกว่า
คิดว่าการทำ distillation อาจช่วยลดต้นทุนได้ แต่ยังอยู่ระหว่างทดลอง
และก็กำลังคิดด้วยว่าจะคำนวณความสัมพันธ์กับบั๊กในอดีตโดยไม่ใช้ LLM ได้ไหม
เครื่องมือแบบนี้สุดท้ายก็แก้ได้แค่ ส่วนหนึ่งของปัญหา
ตรงกันข้าม อาจเป็นบริเวณที่คนระวังกันมากกว่า
ถ้าเอาข้อมูลโอเพนซอร์สมาพิสูจน์ก็น่าจะน่าสนใจ
ดีใจที่ PR ของฉัน ขึ้น HN
อยากให้ตั้ง threshold เป็น 0% แล้วปรับ ไล่เฉดสี ได้หลากหลายกว่านี้
สงสัยด้วยว่าจะใช้เครื่องมือนี้รีวิวโค้ดที่ AI สร้างก่อนเปิด PR ได้ไหม
อยากถามความเห็นว่าถ้าทำเป็นคำสั่งสำหรับ render diff ผ่าน CLI หรือ HTML จะโอเคไหม
ชื่อโดเมน 0github.com ดูเหมือนจะใช้ยาว ๆ ได้ยาก น่าจะรีบหาโดเมนอื่นดีกว่า
น่าจะมีประโยชน์มากโดยเฉพาะกับ PR ขนาดใหญ่
แทนที่จะใช้ slider ถ้าคลิกตามสีแล้วเห็นความหมายได้ทันทีน่าจะดีกว่า
ตอนนี้ยังดูเข้าใจยากในแวบแรก แต่ถ้าใช้บ่อยก็น่าจะชิน
วางแผนจะปรับให้แสดงบนมือถือได้ด้วย ถ้ามีวิธีแสดงแบบอื่นที่ดีกว่าก็อยากรู้
ลองใช้กับ Rust PR แบบง่าย ๆ แล้วทำงานได้ค่อนข้างดี
แต่อยากให้ปรับตำแหน่งการไฮไลต์ได้ละเอียดกว่านี้หน่อย
ที่น่าประทับใจคือมันจับ typo ที่แทบมองไม่เห็นใน PR ของเพื่อนได้
ลิงก์ PR ที่ทดสอบ
โค้ดที่ถูกลบบางส่วนมีการแสดงผล แต่ส่วนใหญ่ถูกมองข้าม
เลยสงสัยว่าใช้วิธีคำนวณ ระยะห่างระหว่างโทเค็น หรือเปล่า
ตอนนี้ยังเป็นแบบ prompt ของ LLM อย่างง่าย
ต่อไปอาจพัฒนาไปเป็นวิธีตรวจจับ hallucinated token ได้ กำลังจะไปหางานวิจัยที่เกี่ยวข้องดู
ช่วงนี้มี PR ขนาดใหญ่ที่ AI สร้างเยอะขึ้น เลยรู้สึกว่าต้องการเครื่องมือแบบนี้
ถ้าเรียนรู้ สไตล์ของผู้รีวิว แล้วให้รีวิวแบบปรับตามแต่ละคนได้ก็น่าจะดี
กำลังตรวจอยู่ว่า commit นี้ ใช่หรือเปล่า
กำลังทดลองทำรีวิวอัตโนมัติที่ปรับตาม ความชอบของผู้รีวิว ด้วยระบบ DSPy
ที่จริงสิ่งสำคัญกว่าคือการทำ PR ที่มีขนาดพอดี จนไม่ต้องพึ่งเครื่องมือแบบนี้
ทุกวันนี้ต้องรีวิว PR ที่ AI เขียน และถึงขั้นมี AI มาตอบคอมเมนต์ของฉันอีก
สุดท้ายก็ดูเหมือนว่าเรากำลังจะเข้าสู่ยุคที่ผู้รีวิวเองก็ถูกแทนที่ด้วย AI
คลิก PR ตัวอย่างแล้วมีแต่โหลดค้าง ดูเหมือนต้องมี caching