สวัสดีครับ ผมเป็นนักพัฒนาที่ใช้ Claude Code ทุกวัน มีอยู่ 2 อย่างที่คอยติดใจมากขึ้นเรื่อย ๆ เมื่อ CLAUDE.md ใหญ่ขึ้น

  1. กฎทั้งหมดถูกโหลดเข้ามาตั้งแต่เริ่มเซสชัน (t=0) ทั้งก้อน แต่ช่วงเวลาที่ต้องใช้กฎนั้นจริง ๆ มักจะเกิดขึ้นอีกหลายสิบเทิร์นถัดไป พอคอนเท็กซ์สะสมและผ่านการคอมแพ็กชันไปครั้งหนึ่ง กฎที่ระบุไว้อย่างชัดเจนก็ถูกลดบทบาทเหลือเป็นฉากหลังที่เลือนราง
  2. เอกสารอ้างอิงอย่าง @docs/pr-rules.md ต้องจ่ายค่าโทเค็นล่วงหน้าทุกเซสชัน ทั้งที่เซสชันที่สร้าง PR จริง ๆ มีเพียงบางส่วน

ดังนั้นผมจึงสร้างปลั๊กอินที่คอมไพล์กฎให้ไม่ใช่ "คำประกาศที่ส่วนบนของเซสชัน" แต่เป็น "อีเวนต์ลิสต์เนอร์ที่ผูกกับแอ็กชัน"

/nunchi:compile จะดึงกฎจาก CLAUDE.md และเอกสารอ้างอิง แล้วสร้างเป็นไฟล์กฎที่ผูกทริกเกอร์ (เครื่องมือ + regex) ไว้ จากนั้นฮุก PreToolUse จะอ่านเอกสารต้นฉบับ ณ จุดนั้นทันทีและส่งมอบก่อนแอ็กชันอย่าง gh pr create เมื่อผ่านการคอมแพ็กชันไปแล้ว ฮุก SessionStart จะรีเซ็ตสถานะการส่งมอบเพื่อให้ส่งซ้ำอีกครั้งเมื่อมีทริกเกอร์ครั้งถัดไป (วัดการส่งซ้ำได้จริง 5/5) การส่งมอบทั้งหมดจะถูกบันทึกเป็น JSONL และดูได้ผ่าน /nunchi:report ว่า "กฎไหนถูกเรียกใช้เมื่อไร และช่วยประหยัดอะไรไปบ้าง"

ตัวเลขทั้งหมดเปิดเผยไว้ในรีโพด้วยการทดลองแบบ preregistered

  • โทเค็นตอนเริ่มเซสชัน: เมื่อตัดเอกสารกฎ 8 ไฟล์ (~76KB) ออกจาก @import จำนวนลดจาก 79,683 → 45,808 (−42.5%, ~34k โทเค็น) ค่าใช้จ่ายของเอกสารถูกจ่ายเฉพาะในเซสชันที่แอ็กชันนั้นถูกเรียกใช้จริงเท่านั้น
  • การละเมิดกฎหลังคอมแพ็กชัน: baseline (ใช้เฉพาะ CLAUDE.md) พบ 1 ครั้งจาก 3 รัน และเป็นการละเมิดครั้งแรกที่สังเกตได้ตลอดการทดลองทั้งหมด — โดยจุดนั้นตรงกับ "กฎในเอกสาร @อ้างอิงที่ถูกคอมแพ็กชันทิ้งไป" พอดี อย่างไรก็ตาม เนื่องจากยังไม่ผ่าน preregistered gate จึงไม่ได้อ้างว่า "JIT มีอัตราการทำตามกฎสูงกว่า" — เรื่องนี้ยังไม่ได้รับการยืนยัน และใน README ก็ระบุไว้แบบนั้นเช่นกัน
  • คุณภาพการคอมไพล์: จาก CLAUDE.md จริง 12 ชุด (airflow, next.js, supabase ฯลฯ รวม 166KB) รูปแบบถูกต้อง 100%, หลอนไม่มีเลย recall ต่ำที่ 35% เมื่อเทียบกับ gold แบบ adversarial ซึ่งก็ไม่ได้ปิดบัง และกำลังติดตามเป็น issue อยู่
  • รองรับเอกสารภาษาเกาหลี: จาก CLAUDE.md ภาษาเกาหลีจริง 4 ชุด (รวม pinpoint) ไม่พบการผิดรูปแบบ การดึงเกิน หรือการหลอนเลย และการตัดสินความเข้มของข้อความห้าม ("จะไม่คอมมิตโดยตรงเด็ดขาด") ได้ 88% นอกจากนี้ยังมีคู่มือการเขียนสำหรับผู้ที่เขียน CLAUDE.md เป็นภาษาเกาหลีด้วย

ความต่างจากแนวทางเดิม: path-scoped rules ใช้ทริกเกอร์แบบ "อ่านไฟล์" ส่วน nunchi ใช้ทริกเกอร์แบบ "แอ็กชัน" (ทั้งสองแบบถูกออกแบบให้อยู่ร่วมกันได้) ส่วนแนว Context Mode/RTK เป็นเครื่องมือที่บีบอัดเอาต์พุตที่เข้ามาเป็นคอนเท็กซ์ ขณะที่ nunchi ไม่ได้บีบอัด แต่จัดตารางเวลาในการส่งมอบ จุดที่ได้ประหยัดโทเค็นเป็นเพียงผลพลอยได้ แก่นสำคัญคือ กฎจะอยู่ในคอนเท็กซ์อย่างแน่นอนก่อนแอ็กชันทันที และสามารถพิสูจน์เรื่องนี้ได้ด้วยล็อก

ตอนนี้ผู้ใช้จริงมีแค่ผมคนเดียว จึงต้องการข้อมูลว่ามันทำงานอย่างไรในเวิร์กโฟลว์อื่น ๆ (โมโนรีโพ ทีมหลายภาษา CLAUDE.md ขนาดใหญ่) การติดตั้งมีแค่สองบรรทัด:

/plugin marketplace add seob717/nunchi  
/plugin install nunchi@nunchi-marketplace  

ไม่ว่าจะเป็นจุดที่การอนุมานทริกเกอร์ผิด ประเภทกฎที่ regex จับไม่ได้ หรือสิ่งที่อยากเห็นเพิ่มในรายงาน — ผมยินดีรับทุกความคิดเห็นครับ

ยังไม่มีความคิดเห็น

ยังไม่มีความคิดเห็น