1 điểm bởi seob717 4 giờ trước | Chưa có bình luận nào. | Chia sẻ qua WhatsApp

Xin chào, tôi là một lập trình viên dùng Claude Code hằng ngày. Khi CLAUDE.md ngày càng lớn, có hai điều liên tục khiến tôi khó chịu.

  1. Các quy tắc được nạp nguyên khối khi bắt đầu phiên (t=0), trong khi thời điểm thật sự cần đến chúng lại là hàng chục lượt sau đó. Khi context tích tụ và một lần compaction đã diễn ra, các quy tắc tường minh bị hạ xuống thành nền mờ nhạt.
  2. Các tài liệu tham chiếu như @docs/pr-rules.md phải trả trước token cho mọi phiên, trong khi chỉ một số phiên mới thật sự tạo PR.

Vì vậy, tôi đã tạo một plugin "biên dịch" các quy tắc không phải thành "khai báo ở đầu phiên", mà thành "event listener gắn với hành động".

/nunchi:compile trích xuất quy tắc từ CLAUDE.md và các tài liệu tham chiếu, tạo thành file rule có gắn trigger (công cụ + regex), rồi hook PreToolUse sẽ đọc và chuyển giao tài liệu gốc ngay tại thời điểm trước các hành động như gh pr create. Khi compaction xảy ra, hook SessionStart đặt lại trạng thái đã chuyển giao để lần trigger tiếp theo sẽ chuyển giao lại (đo thực tế chuyển giao lại 5/5). Mọi lần chuyển giao đều được ghi bằng JSONL, và có thể dùng /nunchi:report để xem "quy tắc nào đã kích hoạt khi nào và đã tiết kiệm được gì".

Toàn bộ số liệu đều được công khai trong repo dưới dạng thí nghiệm đăng ký trước.

  • Token lúc bắt đầu phiên: khi loại 8 tài liệu quy tắc (~76KB) khỏi @import, giảm từ 79.683 xuống 45.808 (−42,5%, ~34k token). Chi phí tài liệu chỉ được trả trong những phiên mà hành động tương ứng thật sự kích hoạt.
  • Vi phạm quy tắc sau compaction: baseline (chỉ CLAUDE.md) có 1 lần trong 3 lượt chạy; đó là vi phạm đầu tiên quan sát được trong toàn bộ thí nghiệm — và điểm đó chính xác là "quy tắc nằm trong tài liệu @tham chiếu đã bị compaction loại bỏ". Tuy nhiên, vì không vượt qua gate đăng ký trước, tôi không tuyên bố rằng "JIT có tỷ lệ tuân thủ cao hơn" — điều này vẫn chưa được kiểm chứng và README cũng ghi như vậy.
  • Chất lượng biên dịch: với 12 CLAUDE.md thực tế ngoài tự nhiên (airflow, next.js, supabase, v.v., 166KB), định dạng hợp lệ 100%, bịa đặt 0. Recall thấp, 35% so với gold đối kháng, và tôi cũng không che giấu điều này mà đang theo dõi bằng issue.
  • Tương thích tài liệu tiếng Hàn: với 4 CLAUDE.md tiếng Hàn ngoài tự nhiên (bao gồm pinpoint), không có vi phạm định dạng, trích xuất quá mức hay bịa đặt; đánh giá cường độ của biểu thức cấm ("tuyệt đối không commit trực tiếp") đạt 88%. Cũng có hướng dẫn viết dành cho những ai dùng CLAUDE.md bằng tiếng Hàn.

Điểm khác so với các cách tiếp cận hiện có: path-scoped rules là trigger theo "đọc file", còn nunchi là trigger theo "hành động" (hai cơ chế được thiết kế để cùng tồn tại). Các công cụ kiểu Context Mode/RTK là công cụ nén đầu ra được đưa vào context, còn nunchi không nén mà lên lịch thời điểm chuyển giao. Tiết kiệm token là hệ quả phụ; cốt lõi là quy tắc chắc chắn có trong context ngay trước hành động và có thể chứng minh điều đó bằng log.

Hiện người dùng thực tế chỉ có mình tôi, nên tôi cần dữ liệu về cách nó hoạt động trong các workflow khác (monorepo, nhóm dùng ngôn ngữ khác, CLAUDE.md lớn). Cài đặt chỉ gồm hai dòng:

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

Tôi rất biết ơn mọi phản hồi — những điểm suy luận trigger sai, các loại quy tắc regex không bắt được, hay những thứ bạn muốn thấy thêm trong report.

Chưa có bình luận nào.

Chưa có bình luận nào.