ตรวจงาน 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 เล่า?
- เปิด tracker → item ถูกติ๊ก + มี
planned:/delivered:(ต่างจากแผนต้องเขียน ไม่ใช่หาย) - เทียบ “สิ่งที่ทำ” กับ commit ใน bubble — นับจำนวนตรง ถ้อยคำตรง
- คำพูดในแชทแบบ “เดี๋ยวค่อยทำ / ยังไม่ได้เทสต์” → ต้องกลายเป็น 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”) ขัดกับ git | tracker แย่งเป็นเจ้าของสถานะที่ git คุม — ยึด git |
ส่งเกิน/ขาดจากแผน แต่ delivered: ไม่พูดถึง | scope เปลี่ยนแบบเงียบ |
| แผน/ขั้นตอนอยู่แค่ในแชท ไม่มีในไฟล์ | /clear เมื่อไหร่ ความจริงหายเมื่อนั้น |
สรุป
- อย่าตรวจงาน AI จาก “คำรายงาน” — ตรวจจากบันทึกอิสระ 3 ชุด: PLAN (สัญญา) · git (ทำจริง) · tracker (สรุป)
- กติกาที่ทำให้ตรวจได้: commit ทีละ step + สรุปตอนปิดก๊อปหัว commit ตรง ๆ + แปะ merge hash
- checklist 1 นาที: git graph ↔ tracker ↔ สิ่งที่ทำ — นับตรง ถ้อยคำตรง · caveat ต้องมีเจ้าของ
- session ตายกลางคัน: ทำแล้ว = commits · ค้าง = uncommitted · เหลือ = PLAN − commits
- บันทึกสามชุดยังเป็นพยานไขว้กันเอง — แก้ history/แต่งสรุปฝั่งเดียวจะขัดกันให้เห็นทันที

