ข้ามไปยังเนื้อหา

ใช้รีวิวด้วย AI

คู่มือนี้แสดงวิธีให้เอเจนต์รีวิวเวอร์รีวิว pull request และวิธีเผยแพร่ผลลัพธ์ ไปยัง GitHub

  1. เปิด PR แล้วไปที่แท็บ ภาพรวม ของมัน
  2. เปิดเมนู ⋯ ในแถวการกระทำ แล้วเลือก ถาม AI

รายการนี้ปรากฏเฉพาะขณะที่ PR ยังเปิดอยู่ — มันเป็นการกระทำก่อนการรวม ปุ่มเดียวกันนี้ ปรากฏเป็น ถาม AI บนสถานะว่างของแท็บ รีวิว ก่อนที่รีวิวใด ๆ จะมีอยู่

Control Center จะเริ่มไปป์ไลน์ pr_review ที่มาพร้อมระบบ และเปิดแท็บ รีวิว ของ PR ให้คุณเฝ้าดู ไปป์ไลน์จะ:

  1. เปิดสเปซรีวิวของ PR นั้นเอง ซึ่ง worktree ที่แยกโดดของมันมี PR ถูกเช็คเอาท์ไว้ที่ head ref ของมัน
  2. กระจายรีวิวเวอร์ออกไปตามระดับรีวิวของเวิร์กสเปซ — ค่าเริ่มต้นคือสามตัว (เอเจนต์ qa, architect และ engineer ที่มาพร้อมระบบ ทำงานขนานกัน) ไม่มีการตรวจจับภาษาหรือโดเมน
  3. ให้เอเจนต์หัวหน้า (CEO) รวบรวมข้อค้นพบของพวกมันเป็นคำอธิบายแบบพาไล่ดู
  4. สรุปผล: จัดกลุ่มข้อค้นพบตามฉันทามติและคำนวณคำตัดสิน เมื่อความเชื่อมโยงมาถึง awaiting approval ปุ่ม เผยแพร่ไปยัง GitHub จะปรากฏบนแท็บรีวิว

ความลึกของรีวิวคือระดับรีวิวของเวิร์กสเปซ — light (รีวิวเวอร์หนึ่งตัว), balanced (สามตัว ซึ่งเป็นค่าเริ่มต้น) หรือ thorough (ทั้งห้าตัว โดยเพิ่ม ผู้เชี่ยวชาญด้านความปลอดภัยและประสิทธิภาพ) — ตั้งค่าได้ที่ การตั้งค่า → เวิร์กสเปซ → ทั่วไป บนการ์ด นโยบายเวิร์กสเปซ ระดับที่เบากว่า บันทึกข้อค้นพบมากเท่ากัน เพียงแต่นำมาแสดงเด่นน้อยกว่า

รีวิวเวอร์ทุกตัวโพสต์ลงสเปซรีวิวเดียวของ PR ซึ่งเป็นสิ่งที่ทำให้ข้อค้นพบของพวกมัน เปรียบเทียบกันได้ ดู รีวิวด้วย AI สำหรับวิธีที่ชิ้นส่วนต่าง ๆ ประกอบเข้าด้วยกัน

pr_review มาพร้อมทริกเกอร์แบบสั่งด้วยตนเองเท่านั้น หากต้องการให้มันทำงานทุกครั้งที่ มีการเผยแพร่ PR ให้เพิ่มทริกเกอร์ด้วยตัวคุณเอง — ดู สั่งงานเอเจนต์รีวิวเวอร์ คุณยังเริ่มรีวิว จาก GitHub เองได้ด้วย โดยไม่ต้องใช้ทริกเกอร์ไปป์ไลน์: กล่าวถึงบอตของเซิร์ฟเวอร์บน PR หรือเพิ่มเลเบล ai-review — ดู คุยกับ Control Center จาก GitHub PR

หากข้อความแจ้งเตือนบอกว่ารีวิวกำลังรันอยู่แล้วสำหรับ pull request นี้ ก็หมายความว่า มีรีวิวกำลังดำเนินอยู่ ให้อยู่ที่แท็บ รีวิว หรือเปิด ไปป์ไลน์ เพื่อค้นหามัน

รีวิวเวอร์บันทึกข้อค้นพบเป็นโหนดรีวิวในสเปซรีวิว แต่ละโหนดบรรจุ:

ฟิลด์ คำอธิบาย
ชนิด bug, suggestion, recommendation, question หรือ ticket
ลำดับความสำคัญ P0 (วิกฤต) → P3 (เรื่องเล็กน้อย)
หมวดหมู่ security, stability, data_integrity, correctness, performance หรือ maintainability
ไฟล์และบรรทัด ตำแหน่งที่ข้อค้นพบถูกยึดไว้
โค้ดเดิม โค้ดที่ข้อค้นพบกล่าวถึง
โค้ดที่แนะนำ วิธีแก้ไขที่เสนอ
ความมั่นใจ รีวิวเวอร์มั่นใจแค่ไหน
สถานะ open → consensus-ready → resolved หรือ dismissed

ข้อค้นพบจะไปถึง consensus-ready ก็ต่อเมื่อมีรีวิวเวอร์_เพื่อนร่วมงาน_ยืนยันมัน เอเจนต์ไม่สามารถยืนยันข้อค้นพบของตัวเองได้ ความเห็นของรีวิวเวอร์เพียงตัวเดียวจึงไม่เคย เลื่อนขั้นด้วยตัวเอง

แท็บ รีวิว แสดงรายการข้อค้นพบ ซึ่งกรองได้ตามชนิดและสถานะ พร้อมสวิตช์สำหรับ ข้อค้นพบที่ปิดไปแล้ว อยู่ข้างอาร์ติแฟกต์ที่เอเจนต์ผู้รวบรวมเผยแพร่ ส่วนมุมมองที่ กำหนดแน่นอน — cohort แดชบอร์ดหลายแกน และ diff สัญญากับ diff ภาพ — คำนวณฝั่ง เซิร์ฟเวอร์แต่ไม่มีพื้นผิวในแอป ดู การคำนวณรีวิว ว่าการรันนั้นผลิตอะไรออกมา

เมื่อรีวิวเวอร์สองตัวยึดข้อค้นพบไว้ที่ไฟล์และบรรทัดเดียวกัน แต่ให้คะแนนมันต่างกันมาก — ลำดับความสำคัญห่างกันตั้งแต่สองระดับขึ้นไป หรือตัวหนึ่งเรียกว่า bug ขณะที่อีกตัว เรียกว่า suggestion — แผงความขัดแย้งจะปรากฏเหนือรายการข้อค้นพบ อ่านรายการเหล่านี้ ก่อน: นั่นคือจุดที่ความเห็นของรีวิวเวอร์แยกจากกัน และดุลยพินิจของคุณมีค่ามากที่สุด

เมื่อเอเจนต์หัวหน้าสรุปผล มันจะคำนวณคำตัดสิน:

คำตัดสิน ความหมาย
Ship ไม่พบสิ่งใดที่ขวางการรวม
Hold มีปัญหาที่ควรจัดการก่อนการรวม
Block มีปัญหาวิกฤตที่ต้องแก้ไข

คำตัดสินพกคะแนนความมั่นใจรวมและจำนวนข้อค้นพบแยกตามลำดับความสำคัญ

จากนั้นแกนรีวิวจะถูกพับเข้ามา และมันทำได้เพียงทำให้คำตัดสินรุนแรงขึ้นเท่านั้น แกนที่มีเกตและล้มเหลวบังคับให้เป็น Block แกนที่มีเกตซึ่งทำงานไม่ครบ (partial) หรือรันไม่ได้เลย (unavailable) บังคับให้เป็น Hold อย่างน้อย การไม่มีหลักฐาน ไม่เคยทำให้เกตผ่านไปได้

การเผยแพร่เป็นขั้นตอนแยกต่างหากที่ให้ผู้ใช้เป็นผู้กั้นโดยเจตนา ไปป์ไลน์ pr_review เก็บรีวิวไว้ใน Control Center; มันไม่โพสต์ไปยัง GitHub

  1. บนแท็บ รีวิว รอจนปุ่ม เผยแพร่ไปยัง GitHub ปรากฏ
  2. กด เผยแพร่ไปยัง GitHub

Control Center ส่งรีวิว GitHub หนึ่งครั้ง ข้อค้นพบที่แก้ไขหรือปิดไปแล้วจะถูกข้าม ปุ่มนี้รวมข้อค้นพบที่ยังเปิดอยู่ทั้งหมดที่เหลือ และเมื่อคำตัดสินเป็น Ship จะส่ง APPROVE (เครื่องมือ MCP publish_review_to_github ยังคงมีค่าเริ่มต้นเป็นข้อค้นพบ ที่เพื่อนยืนยันแล้วเท่านั้น และจะไม่อนุมัติเว้นแต่คุณส่ง approve_on_ship) ข้อค้นพบ ที่ยึดกับไฟล์และบรรทัดจะกลายเป็นความคิดเห็นแบบอินไลน์ ส่วนที่เหลือทั้งหมดถูกพับเข้า ไปในเนื้อหาสรุป แต่ละอันมีส่วนท้าย “— Control Center AI review” เพื่อให้ที่มา ไม่กำกวม คำตัดสิน Block ถูกส่งเป็น REQUEST_CHANGES; Hold เป็น COMMENT; Ship เป็น APPROVE จากปุ่มนี้ จากนั้นข้อความแจ้งเตือนจะระบุว่า เผยแพร่แล้ว รีวิวถูกโพสต์ภายใต้ตัวตนแอปของเซิร์ฟเวอร์

หาก GitHub ปฏิเสธจุดยึดแบบอินไลน์เพราะบรรทัดนั้นไม่ได้เป็นส่วนหนึ่งของ diff รีวิวทั้งหมดจะถูกส่งใหม่โดยพับทุกข้อค้นพบเข้าไปในเนื้อหา เพื่อไม่ให้มีสิ่งใดถูกทิ้ง อย่างเงียบ ๆ

ไปป์ไลน์ในตัวอื่น ๆ โพสต์ไปยัง GitHub โดยตรง: cross_review, pr_triage, ticket_to_pr และ pre_merge_gate ต่างจบด้วยขั้นตอนแสดงความคิดเห็น มีเพียง pr_review เท่านั้นที่กันเอาต์พุตไว้ให้คุณ

หากต้องการควบคุมว่าบทบาทใดรีวิว PR และแต่ละตัวดูไฟล์ใด ให้ใช้เครื่องมือ MCP dispatch_reviewers ภายในสเปซรีวิวที่มีอยู่ หรือเพิ่มโหนดรีวิวเวอร์ลงในไปป์ไลน์ ทั้งสองเส้นทาง พร้อมลายเซ็นที่แน่นอนของเครื่องมือ อยู่ใน สั่งงานเอเจนต์รีวิวเวอร์