oh-my-harness - CLI สำหรับสร้าง hook สำหรับเอเจนต์เขียนโค้ด AI
(github.com/kyu1204)สวัสดีครับ ระหว่างที่ใช้ Claude Code กับ Codex ผมเจอปัญหาที่พรอมป์ตเหมือนหักหลัง(?) เลยกำลังสร้าง CLI ชื่อว่า oh-my-harness ซึ่งเป็นตัวสร้าง hook อยู่ครับ。
ตอนแรกผมแค่เพิ่มคำสั่งไว้ใน CLAUDE.md หรือ AGENTS.md แบบข้างล่างนี้
แก้เทสต์ก่อน
รันเทสต์ก่อนคอมมิต
อย่าคอมมิตลงบรাঞ্চ main
อย่าไปแตะnode_modulesหรือdist
อย่าแก้ไข.env
แต่พอใช้ไปเรื่อย ๆ ก็พบว่าเอเจนต์มักจะเมินคำสั่งแทบทั้งหมด แล้วสุดท้ายก็ไม่ทำตามอยู่ดี
โดยเฉพาะเวลาสั่งให้พัฒนาแบบ TDD แต่กลับพูดว่า
“ขออภัย ผมไม่ได้แก้เทสต์”
แบบนี้บ้าง
หรือสั่งให้เช็กก่อนว่าบรานช์ถูก merge ไปแล้วหรือยัง แต่พอ push commit ไปแล้วกลับยืนกรานว่า
“ยังไม่ใช่บรานช์ที่ merge แล้ว”
แบบนั้นบ้าง(?)
เพราะอย่างนั้นเลยทำ oh-my-harness ขึ้นมาครับ
มีทั้ง CLI สำหรับ agent และ TUI สำหรับคนใช้งาน
omh init "React app with TDD"
หรือ
omh init
จากนั้นมันจะดูโปรเจกต์แล้วสร้าง harness.yaml ขึ้นมา และใช้ไฟล์นั้นเป็นฐานในการสร้าง CLAUDE.md สำหรับ Claude Code, AGENTS.md สำหรับ Codex รวมถึงการตั้งค่า hook ของแต่ละ runtime ไปพร้อมกัน
ยกตัวอย่างเช่น ตอนนี้สามารถบล็อกหรือตรวจสอบเรื่องพวกนี้ได้
- บล็อกถ้าพยายามคอมมิตบน
mainหรือบนบรานช์ที่ merge ไปแล้ว - รันเทสต์หรือ type check ก่อนคอมมิต
- ถ้ายังไม่ได้แก้เทสต์ก่อน แต่จะไปแก้เฉพาะซอร์สโค้ด ก็จะบล็อกตามกฎ TDD
- ปกป้องไฟล์/โฟลเดอร์อย่าง
node_modules,dist,.next,.env - กรอง shell command ที่อันตราย
ทั้งหมดนี้ทำงานผ่านชุด shell script ที่ผมเรียกว่าแคตตาล็อก ซึ่งเตรียมไว้ล่วงหน้าครับ
omh init มีหน้าที่เลือกแคตตาล็อกที่เหมาะสมจากภาษาธรรมชาติที่รับเข้ามา
สำหรับผมแล้ว เวลาใช้เครื่องมือเขียนโค้ดด้วย AI การพูดว่า “ฝากด้วยนะ” ไม่สำคัญเท่ากับการมีอุปกรณ์นิรภัยที่หยุดมันได้ทันทีเมื่อทำพลาด
ยิ่งโดยเฉพาะเมื่อเอเจนต์เริ่มแก้ไฟล์มากขึ้นเรื่อย ๆ และการทำงานต่อเนื่องไปจนถึงการคอมมิตกลายเป็นเรื่องธรรมชาติ อุปกรณ์แบบนี้ก็น่าจะยิ่งจำเป็นมากขึ้น
———
ติดตั้ง: npm install -g oh-my-harness
GitHub: https://github.com/kyu1204/oh-my-harness
npm: https://www.npmjs.com/package/oh-my-harness
ตอนนี้ยังอยู่ในช่วงเริ่มต้น เลยยังมีหลายจุดที่ขาดอยู่มาก
ลองใช้งานดูแล้วช่วยส่งความคิดเห็นมาได้มาก ๆ นะครับ และยินดีรับ contribution ด้วย!
ยังไม่มีความคิดเห็น