| name | experiment-log |
| description | บันทึกการทดลอง ML เป็น ledger ใน repo — ทุก run ต้องมีสมมติฐานก่อนรัน เปลี่ยนทีละอย่าง วัดด้วย harness เดิม จดผลและคำตัดสิน keep/kill — เปิด session ใหม่อ่านแล้ว brief ต่อได้ทันที จบปัญหา "เมื่อวานลองอะไรไปแล้วนะ" Trigger on "จดการทดลอง", "experiment log", "บันทึกผลโมเดล", "เมื่อกี้ลองอะไรไปแล้วบ้าง", or after any training run completes. |
experiment-log — การทดลองที่ไม่ได้จด เท่ากับไม่ได้ทำ
Ledger อยู่ที่ EXPERIMENTS.md ที่ root ของ repo โปรเจกต์นั้น (อยู่กับโค้ด version ไปด้วยกัน — ไม่ใช่ ~/Documents) ถ้ายังไม่มีให้สร้างพร้อม entry แรกจากสิ่งที่รู้
Entry template
## EXP-007 — 2026-07-08
**สมมติฐาน:** เพิ่ม feature X น่าจะช่วยเพราะ <เหตุผลที่คิดก่อนรัน>
**เปลี่ยนจาก:** EXP-005 (best ปัจจุบัน) — เปลี่ยนอย่างเดียว: <diff>
**Config:** <hyperparams สำคัญ> · commit `abc123` · seed 42
**ผล:** <metric หลัก> = 0.847 (best เดิม 0.851, baseline 0.71)
**คำตัดสิน:** KILL — แพง feature engineering แต่ metric ลด · เรียนรู้: <อะไร>
กติกาที่บังคับตอนจด
- สมมติฐานมาก่อนรัน — ถ้า user จะรันโดยไม่มีเหตุผลว่าทำไมน่าจะดีขึ้น ให้ถามหนึ่งครั้ง ("คาดว่าจะดีขึ้นเพราะอะไร") ถ้าตอบว่าลองมั่วๆ ก็จดว่า
exploratory ตรงๆ — ห้ามแต่งสมมติฐานย้อนหลัง
- เปลี่ยนทีละอย่าง — ถ้า run ใหม่เปลี่ยนหลายอย่างพร้อมกัน (features + lr + โมเดล) เตือนว่าผลจะบอกไม่ได้ว่าอะไรช่วย ถ้ายืนยันก็จดว่าเปลี่ยนอะไรบ้างครบทุกตัว
- อ้าง run ก่อนหน้า — ทุก entry ระบุว่า diff จาก run ไหน ไม่ใช่ลอยๆ
- metric จาก harness เดิมเท่านั้น — เลขที่คำนวณคนละวิธีห้ามลง ledger ปนกัน (ถ้ายังไม่มี harness ชี้ไปสกิล ml-baseline ก่อน)
- คำตัดสินชัด — KEEP (best ใหม่) / KILL (ทางตัน + เรียนรู้อะไร) / INVESTIGATE (ผลแปลก ต้องขุด) — entry ที่ไม่มีคำตัดสินคือภาระคนอ่าน
พฤติกรรมอัตโนมัติ
- ก่อนรันของใหม่: scan ledger ว่าไอเดียนี้เคยลอง (และตายไป) แล้วหรือยัง — เจอให้ทัก พร้อมเหตุผลตอนนั้น
- เปิด session ใหม่: อ่าน ledger แล้ว brief ได้ใน 3 บรรทัด — best ปัจจุบันคืออะไร, ล่าสุดลองอะไร, ค้างอะไรอยู่
- ถูกถาม "สรุปหน่อย": ตาราง top-5 runs + ทิศทางที่ยังไม่ได้ลองที่มีเหตุผลรองรับ
- จด failure ให้ละเอียดเท่า success — KILL ที่จดดีคือสิ่งที่กันทีม (และตัวเองเดือนหน้า) ไม่ให้เสียเวลาซ้ำ