ตรวจงาน AI agent ให้เป็น: เทียบ plan–git–tracker ใน 1 นาที

ตรวจงาน AI agent ให้เป็น: เทียบ plan–git–tracker ใน 1 นาที

TL;DR — AI agent รายงานว่า “เสร็จแล้วครับ” ได้เสมอ — คำถามคือคุณพิสูจน์ได้ไหมโดยไม่ต้องเชื่อคำพูด. คำตอบคือออกแบบให้งานทิ้ง บันทึกอิสระ 3 ชุด เสมอ: PLAN = สัญญา · git = สิ่งที่ทำจริง · tracker = สรุปฉบับคนอ่าน แล้วเทียบสามทางใน 1 นาที — บันทึกไหนขัดกัน = มีอะไรผิด.

ก่อนหน้านี้ในซีรีส์เราสร้างระบบ handoff ให้ AI ทำงานยาว ๆ โดยไม่หลงทาง. ตอนปิดซีรีส์นี้ตอบคำถามที่เหลือ: แล้วมนุษย์จะตรวจได้ยังไงว่ามันทำครบจริง — โดยเฉพาะคนที่ไม่ได้นั่งดูแชททั้งวัน หรือไม่ใช่ dev ที่อ่าน git คล่อง.

ปัญหา: “เสร็จแล้วครับ” เป็นแค่ประโยค

เชื่อรายงานในแชทอย่างเดียวมีจุดตายสามจุด: แชทหายได้ (/clear, session ใหม่) · AI เล่าเกินจริงได้ (บอกทำแล้วแต่ยังไม่ commit) · และต่อให้มันซื่อสัตย์ คนมาทีหลัง ไม่มีทางรู้ว่าตอนนั้นคุยอะไรกัน. ทางแก้ไม่ใช่ “อ่านแชทย้อน” แต่คือบังคับให้งานทิ้งหลักฐาน ที่ตรวจย้อนได้เสมอ.

หลัก: บันทึกอิสระ 3 ชุด

ชุดตอบคำถามอยู่ที่ใครเขียน/เมื่อไหร่
สัญญาควรทำอะไรบ้างPLAN-<งาน>.md (หัวข้อ “ขอบเขต” + “verify ก่อนจบ”)ตอนวางแผน — user เคาะ
หลักฐานจริงทำจริงอะไรบ้างgit — commit ทีละ step บน feature branchอัตโนมัติระหว่างทำ
สรุปฉบับคนปิดงานด้วยผลอะไรtracker (PROGRESS) — บรรทัด item ที่ปิดตอนปิดงาน — เขียนครั้งเดียว

จุดสำคัญคือคำว่า อิสระ: สามชุดนี้เขียนคนละเวลา คนละกลไก — ใคร(หรือ AI) จะ “แต่งเรื่อง” ให้เนียนได้ต้องแก้ให้ตรงกันทั้งสามที่ ซึ่งยากกว่าแก้ที่เดียวมาก. แก้ git history? สรุปในไฟล์จะขัดทันที. แต่งสรุปให้สวย? commit ไม่มีของ.

กติกา 2 ข้อที่ทำให้ระบบนี้ตรวจได้จริง

ข้อ 1 — commit ทีละ step: ทุกขั้นย่อยของงาน = 1 commit. ผลพลอยได้ที่หลายคนมองข้าม: “ขั้นย่อย” ของงานไม่ต้องจดลง tracker เลย (ไฟล์ไม่รก) เพราะ git คือบันทึกขั้นย่อยที่ถาวรอยู่แล้ว และมันจำกัดความเสียหายตอน session ตายกลางคัน: หายมากสุดแค่ step เดียวที่ยังไม่ commit.

ข้อ 2 — บรรทัดสรุปตอนปิด ต้อง “ก๊อปหัว commit มาตรง ๆ”: ตอนปิดงาน AI เขียนบรรทัดสรุปใต้ item โดย 1 ชิ้น = 1 commit ใช้ถ้อยคำเดียวกัน ห้าม paraphrase + แปะ merge hash:

## เสร็จแล้ว
- [x] Google login — 2026-07-14 · planned: login · delivered: login + logout · merge: 9f3e21c → PLAN-login.md
      สิ่งที่ทำ: feat(auth): google callback route · feat(token): refresh rotation · feat(auth): logout endpoint · test(e2e): login flow 11 checks
git log:                                          จับคู่กับบรรทัดสรุป:
*   9f3e21c Merge 'feature/google-login'  ◄────── ชื่อ item + merge: 9f3e21c      (ก้อน ↔ ก้อน)
| * 8d1c4a2 test(e2e): login flow 11 checks ◄──── ชิ้นที่ 4                        (ชิ้น ↔ commit)
| * 71b09e3 feat(auth): logout endpoint    ◄───── ชิ้นที่ 3
| * 5c22f10 feat(token): refresh rotation  ◄───── ชิ้นที่ 2
| * a1b2c3d feat(auth): google callback route ◄── ชิ้นที่ 1

คนไม่ใช่ dev อ่านบรรทัด “สิ่งที่ทำ” รู้เรื่องโดยไม่แตะ git · dev จับคู่กับ git ได้บรรทัดต่อบรรทัด โดยไม่ต้องตีความ · และสังเกต delivered: login + logout — ส่งเกินแผน (logout) ต้องเห็นในสรุป ไม่ใช่เนียนเงียบ.

checklist ตรวจใน 1 นาที

ทุกครั้งที่ AI บอก “เสร็จแล้ว”:

git log --graph --oneline -10   # 1) มี merge bubble จริง? branch ถูกลบ? ตรงกับที่ tracker เล่า?
  1. เปิด tracker → item ถูกติ๊ก + มี planned: / delivered: (ต่างจากแผนต้องเขียน ไม่ใช่หาย)
  2. เทียบ “สิ่งที่ทำ” กับ commit ใน bubble — นับจำนวนตรง ถ้อยคำตรง
  3. คำพูดในแชทแบบ “เดี๋ยวค่อยทำ / ยังไม่ได้เทสต์” → ต้องกลายเป็น checkbox ที่มีเจ้าของใน tracker — caveat ที่อยู่แค่ในแชท = caveat ที่จะหาย

เคสยาก: session ตายกลางคัน (ไม่มีใครได้เขียนสรุป)

ความจริงประกอบใหม่ได้จากสามแหล่งเดิมเสมอ:

ทำแล้ว      = commit บน branch งานนั้น    → git log --oneline main..feature/<งาน>
ค้างกลางมือ  = ของที่ยังไม่ commit          → git status · git diff
เหลือ       = ขอบเขตใน PLAN − commit ที่มี

พอสั่งให้ AI ทำต่อ (resume) สรุปของมันต้องครบสี่อย่าง: ทำแล้ว (อ้าง commit ได้) · ค้างกลางมือ (ถามคุณว่าเก็บหรือทิ้ง) · เหลือ (เทียบ PLAN) · ขอปรับ tracker ให้ตรง git — อ้างว่าทำแล้วแต่ไม่มี commit = ธงแดงทันที.

🚩 Red flags — เห็นเมื่อไหร่ ผิดเมื่อนั้น

เห็นอะไรแปลว่า
AI อ้างว่าเสร็จ แต่ git ไม่มี commit/bubbleรายงานเกินจริง — เคสคลาสสิก
บรรทัดสรุป paraphrase จนจับคู่ commit ไม่ได้ตรวจไม่ได้ = เท่ากับไม่มีบันทึก
tracker เขียนสถานะ merge เอง (“รอ approve”) ขัดกับ gittracker แย่งเป็นเจ้าของสถานะที่ git คุม — ยึด git
ส่งเกิน/ขาดจากแผน แต่ delivered: ไม่พูดถึงscope เปลี่ยนแบบเงียบ
แผน/ขั้นตอนอยู่แค่ในแชท ไม่มีในไฟล์/clear เมื่อไหร่ ความจริงหายเมื่อนั้น

สรุป

  1. อย่าตรวจงาน AI จาก “คำรายงาน” — ตรวจจากบันทึกอิสระ 3 ชุด: PLAN (สัญญา) · git (ทำจริง) · tracker (สรุป)
  2. กติกาที่ทำให้ตรวจได้: commit ทีละ step + สรุปตอนปิดก๊อปหัว commit ตรง ๆ + แปะ merge hash
  3. checklist 1 นาที: git graph ↔ tracker ↔ สิ่งที่ทำ — นับตรง ถ้อยคำตรง · caveat ต้องมีเจ้าของ
  4. session ตายกลางคัน: ทำแล้ว = commits · ค้าง = uncommitted · เหลือ = PLAN − commits
  5. บันทึกสามชุดยังเป็นพยานไขว้กันเอง — แก้ history/แต่งสรุปฝั่งเดียวจะขัดกันให้เห็นทันที
Supawut Thomas

Supawut Thomas

Software Developer

มีประสบการณ์พัฒนา Software ระดับ Enterprise มากกว่า 10 ปี ผ่านงานจริงหลากหลายโปรเจกต์องค์กร — เชื่อว่าความรู้ที่ดีที่สุดคือความรู้ที่มาจากประสบการณ์จริง และอยากแบ่งปันสิ่งเหล่านั้นให้เพื่อน Developer ทุกคนได้นำไปพัฒนาตัวเองได้ดีขึ้นในทุกๆ วัน