Agent Dev Thai Academyprinciples · patterns · architecture

Occam Skill Drop — หยุดแก้บั๊ก 1 บรรทัด ด้วย service ใหม่ 250 บรรทัด

AI ชอบเสนอ table กับ service ใหม่ 250 บรรทัดให้บั๊กที่แก้ได้ด้วย UNIQUE constraint บรรทัดเดียว skill Occam บังคับให้ตอบ 4 คำถามก่อน แล้วเลือก fix เล็กสุดถ้าเคสพังยังไม่เคยเกิดจริง

หยุดแก้บั๊ก 1 บรรทัด ด้วย service ใหม่ 250 บรรทัด

สัปดาห์ก่อนเจอบั๊กง่ายๆ — user กดปุ่มครั้งเดียว แต่ record โผล่มา 2 แถว

แก้ได้ด้วย UNIQUE constraint บรรทัดเดียว

แต่ AI ไม่ได้เสนอแบบนั้น

AI เสนอ table ใหม่ 10 columns, service ใหม่ 3 methods, wiring 12 จุด รวม 250 บรรทัด

ถามตัวเอง: เคสพังที่โค้ด 250 บรรทัดนั้นพยายามกันไว้ — มันเคยเกิดขึ้นจริงมั้ย?

คำตอบ: ยังไม่เคย


ปัญหาไม่ใช่ AI ไม่เก่ง แต่มันชอบเสนอ solution แบบจัดเต็มเกินจำเป็น

ถาม "fix this bug" ได้ architecture ใหม่กลับมา

ยิ่งใช้ Claude Code / Copilot / Cursor เยอะ ยิ่งต้องมีตัวตรวจ: fix นี้ใหญ่กว่าบั๊กจริงรึเปล่า?


เลยแยกเป็น skill เล็กๆ ชื่อ Occam — ตั้งชื่อตาม Occam's Razor

ใส่ใน CLAUDE.md แล้วให้ Claude Code รัน audit ก่อนสรุป plan ที่เริ่มมี table/service/module ใหม่

หลักการ: บังคับให้ตอบ 4 คำถามก่อนปล่อย fix ออกไป

  1. บั๊กที่ user เห็นคืออะไร — อธิบายได้ในประโยคเดียวมั้ย?
  2. fix เล็กที่สุดที่ปิดบั๊กนั้นคืออะไร?
  3. version ที่ใหญ่กว่ากันเคสพังอะไรเพิ่ม?
  4. เคสพังพวกนั้นเกิดจริงมั้ย ใน production วันนี้?

ถ้ายังไม่เกิด หรือเกิดแล้วแก้ทีหลังได้ → ship ตัวเล็ก
ถ้าเกิดจริงแล้วเจ็บจริง → ship ตัวใหญ่


มันจะสรุปออกมาเป็น 3 ระดับ:

Minimum — ตัวเล็กสุดที่ปิดบั๊ก
Proposed — ตัวที่ AI กำลังจะทำ
Could go further — เวอร์ชันสวยหรูตามตำรา

แล้วจบด้วยข้อสรุป:

Verdict: Minimum
Reason: เคสพังที่ Proposed กันไว้ยังไม่เคยเกิดใน 30 วัน
If wrong: ถ้าเจอ pod crash ใน staging มากกว่า 1 ครั้ง → upgrade เป็น Proposed

"If wrong" คือส่วนที่สำคัญที่สุด — มันบอกว่าถ้าเลือกผิด จะรู้ได้ยังไง และต้องทำอะไร


เอาไปใช้ได้เลย ฟรี

👉 github.com/somnus0x/agt-skill-pack

วิธีลงใน Claude Code:

เปิด terminal ที่ root ของ repo แล้ว clone

git clone https://github.com/somnus0x/agt-skill-pack.git

แล้ว copy folder skills/occam/ ไปไว้ที่ .claude/skills/occam/ ในโปรเจค

จากนั้นเพิ่มใน CLAUDE.md ประโยคเดียว:

"ก่อน finalize plan ที่มี table, service, หรือ module ใหม่ — รัน Occam audit: (1) บั๊กคืออะไร ประโยคเดียว (2) fix เล็กสุด (3) version ใหญ่ป้องกันอะไรเพิ่ม (4) เคสพังนั้นเกิดจริงมั้ย วันนี้?"

หลังจากนั้น เวลา AI จะเสนอ plan ที่เริ่มบาน มันจะโดนบังคับให้ audit ก่อน


skill ไม่ได้ห้าม build ตัวใหญ่ แค่บังคับให้ตอบก่อนว่าทำไม

บางทีตัวใหญ่ถูก บางทีตัวเล็กพอ

แต่ถ้าไม่ถาม ก็ไม่มีทางรู้

🔗 Skill Drop #02 — Occamsomnus0x/agt-skill-packGitHub ↗อ่านคำอธิบาย repo นี้เป็นภาษาไทย →

เดี๋ยวจะทยอย drop skill แนวนี้เรื่อยๆ ถ้าเอาไปใช้แล้วมันช่วยกัน AI บานได้จริง มาเล่าให้ฟังหน่อย