Rules ที่กัน AI โกหก
AI โกหกเพราะ default คือตอบให้จบ ผมแจก 5 rules ใน CLAUDE.md ที่บังคับให้มันบอก assumption, มีหลักฐานก่อนบอกว่าเสร็จ, เถียงก่อนลงมือ, จับ scope creep และแยกระดับ R0/R1/R2
AI โกหก
ไม่ใช่เพราะมันชั่ว ไม่ใช่เพราะ model แย่ แต่เพราะเราไม่เคยบอกมันว่าห้ามโกหก และไม่เคยบอกว่าจะเช็คยังไง
ผมใช้ Claude Code ทุกวัน ทำตั้งแต่ morning brief ยัน deploy production ปัญหาที่เจอบ่อยที่สุดไม่ใช่ code ผิด แต่คือ AI "เดา" สิ่งที่ไม่รู้ แล้วพูดเหมือนมั่นใจ
CLAUDE.md ของผมมี rules หลายข้อที่ออกแบบมาเพื่อกันเรื่องนี้โดยเฉพาะ วันนี้แจก 5 ข้อที่ใช้ได้เลย
𝟭. NO MAGIC — ห้ามเดา
All assumptions explicit.
If context is missing, state assumptions.
Don't hallucinate hidden infra
or invent unspecified services.
ถ้า AI ไม่รู้ว่า infra ของเราหน้าตาเป็นยังไง มันจะ "แต่ง" ขึ้นมา สร้าง service ที่ไม่มีอยู่ อ้าง API ที่ไม่เคยเขียน
rule นี้บังคับให้ AI บอกว่า "ผมสมมติว่า X" แทนที่จะทำเป็นรู้
ตัวอย่างจริง: ถ้าผมบอก "แก้ bug ตรง payment" แล้ว AI ไม่รู้ว่า payment service อยู่ไฟล์ไหน มันต้องถามก่อน ไม่ใช่เดาว่าอยู่ที่ /services/payment.ts
𝟮. VERIFY BEFORE DONE — ห้ามบอกว่าเสร็จถ้ายังไม่เช็ค
Never claim a change is complete
without running verification.
"I edited the file" is not done.
"I edited the file and here's the output"
is done.
No "should work now."
Evidence before assertions, always.
rule ที่สำคัญที่สุดในไฟล์ทั้งหมด
AI ชอบบอก "เสร็จแล้วครับ น่าจะทำงานได้" โดยไม่ได้รัน ไม่ได้ test ไม่ได้เปิดดูด้วยซ้ำว่า file เปลี่ยนจริงรึเปล่า
rule นี้บังคับให้ AI รัน command ดูผลลัพธ์ แล้วค่อยบอกว่าเสร็จ ถ้ายังไม่มีหลักฐาน ห้ามพูดคำว่า "done"
𝟯. DISSENT — ต้องเถียงก่อน commit
Before any major change, surface concerns:
- What's the blast radius if this goes wrong?
- What assumptions are we making?
- What's the reversibility path?
- What are we NOT seeing because of momentum?
AI มี bias ที่จะเห็นด้วยกับเรา ถ้าเราบอก "ทำแบบนี้" มันจะทำเลย ไม่ค่อยเถียง
rule นี้บังคับให้ AI หาจุดอ่อนของแผนเราก่อนจะลงมือ ไม่ใช่เพราะมันฉลาดกว่า แต่เพราะ second pair of eyes ที่กล้าเถียงมีค่ามากกว่า second pair of eyes ที่พยักหน้า
𝟰. SCOPE DRIFT DETECTION — จับ scope creep
Track stated goals vs actual execution.
Flag when:
- "Just one more thing" accumulates
- Nice-to-haves get treated as must-haves
- The ask was "fix bug X" but we're now
"refactoring the entire module"
โกหกที่แยบยลที่สุดของ AI คือ "ผมทำเพิ่มให้นิดนึงนะครับ" แล้ว refactor ครึ่ง codebase
มันไม่ได้ตั้งใจโกหก มันแค่ optimize สิ่งที่เห็น ถ้าไม่มี rule กัน มันจะค่อยๆ ขยาย scope จนสิ่งที่ได้ไม่ตรงกับสิ่งที่ขอ
𝟱. R0 / R1 / R2 — แบ่งระดับความถอยกลับได้
R0 (irreversible) — STOP. Ask before proceeding.
R1 (costly to reverse) — Do it, but tell me why.
R2 (easily reversed) — Just do it. No permission needed.
ไม่ใช่ทุก decision ต้องถาม ไม่ใช่ทุก decision ทำได้เลย
AI ที่ไม่มี rule นี้จะทำ 2 แบบ: ถามทุกอย่าง (ช้า) หรือทำทุกอย่างเลย (อันตราย) R0/R1/R2 ให้ framework ที่ AI รู้ว่าเมื่อไหร่ต้องหยุด เมื่อไหร่วิ่งได้
ตัวอย่าง:
- deploy contract (R0) → ต้องถาม ถอยไม่ได้
- เปลี่ยน API contract (R1) → ทำได้ แต่ต้องบอก
- แก้ UI สี (R2) → ทำเลย ไม่ต้องรอ
5 rules นี้ไม่ได้ทำให้ AI ฉลาดขึ้น แต่ทำให้มันซื่อสัตย์ขึ้น
AI ไม่ได้โกหกเพราะเจตนา มันโกหกเพราะ default behavior คือ "ตอบให้จบ" ถ้าเราไม่บอกว่า "ห้ามเดา ห้ามบอกว่าเสร็จถ้ายังไม่เช็ค ต้องเถียงก่อนทำ" มันก็จะไม่ทำ
ใส่ใน CLAUDE.md วันนี้ ใช้ได้เลย
โพสต์ที่แล้ว: Copilot OS #1 (35 cron jobs) + #2 (Morning Brief prompt จริง)