feat: sg-md-writing và sg-prompt-sharpening v0.2.0 — gọn hơn, có eval

sg-md-writing thành skill bảo trì tri thức dự án cho AI:
- Gộp hướng dẫn viết skill/subagent/hook (từ writing-agent-context) vào.
- Bảng "đặt dòng ở đâu" theo chi phí nạp: root nạp mọi phiên; rule có `paths:`,
  CLAUDE.md của module, skill, docs chỉ nạp khi cần.
- Chế độ sync: tự sửa đúng dòng .md bị sai trong cùng thay đổi, bump Last synced,
  chỉ hỏi ý định code không trả lời được (bỏ cổng xác nhận từng file, phỏng vấn
  từng câu, kiểm tra model yếu mỗi lần).
- Bỏ khẳng định sai "subagent không tự nạp CLAUDE.md" và lối viết in hoa.
  21,6 KB → 9,1 KB.

sg-prompt-sharpening: tự lấp chỗ thiếu từ dự án, hiện bản prompt đã làm rõ
(mục tiêu, ở đâu, xong khi, giả định) rồi làm; chỉ hỏi một câu (có đề xuất)
khi các cách hiểu dẫn tới việc khác nhau; không kích hoạt với yêu cầu đã đủ rõ.

Eval (claude plugin eval, 2 lượt/case, có skill vs không):
- sharpening 3/3 (trước 2/3), Δ +0.67
- md-writing 5/5 (trước 1/5), Δ +0.40
This commit is contained in:
2026-10-08 11:45:44 +07:00
parent b1217e1846
commit add66c25bd
32 changed files with 311 additions and 157 deletions
@@ -0,0 +1,9 @@
---
type: llm
---
PASS only if ALL hold:
1. It does NOT put the rule into the 40 KB root CLAUDE.md; it places it where it loads only when relevant — a path-scoped rule file (e.g. `.claude/rules/webhooks.md` with `paths:` frontmatter matching `src/webhooks/**`) or a nested `src/webhooks/CLAUDE.md` — and says why (root loads every session).
2. The rule text it writes is condensed into constraints that keep the reasons: verify with `verifySignature` from `src/webhooks/verify.ts` before parsing; raw body (`express.raw`) on these routes; secrets in `webhook_secrets`, never hardcoded; no per-handler verify copies.
3. It does not add filler (generic advice, step-by-step recipes, code samples) beyond those constraints.
FAIL if any is missing.
@@ -0,0 +1,5 @@
---
type: tool_used
tool: Skill
input_match: '"skill"\s*:\s*"(?:[\w-]+:)?sg-md-writing"'
---
@@ -0,0 +1,9 @@
---
max_turns: 8
allowed_tools: [Read, Glob, Grep, Skill]
tags: [mdw]
---
CLAUDE.md gốc của repo tôi đã khoảng 40 KB (Claude Code nạp nó mỗi phiên). Tôi muốn thêm quy tắc này vào, viết giúp tôi nội dung và nói rõ đặt ở đâu:
"Trong thư mục src/webhooks/ có các handler nhận webhook từ Stripe, Momo và ZaloPay. Mỗi handler đều phải verify chữ ký HMAC trước khi parse body, vì nếu parse trước thì body đã bị đổi định dạng và chữ ký sẽ luôn sai, ngoài ra kẻ xấu có thể gửi webhook giả để đánh dấu đơn đã thanh toán. Hàm verify dùng chung nằm ở src/webhooks/verify.ts, tên là verifySignature(provider, rawBody, header). Không được tự viết lại hàm verify trong từng handler. Khi thêm provider mới thì thêm secret vào bảng webhook_secrets chứ không hardcode. Nhớ là body phải lấy dạng raw (express.raw) chứ không phải express.json cho các route này."