[CLAUDE] Docs+Skill: chốt session 6 — 3 skill refresh + 2 rule audit định kỳ
Pure docs work — 0 thay đổi code/test. 77 test vẫn pass (Domain 54 + Infra 23). 3 skill refresh stale (audit định kỳ §6.4 + §9.4 phát hiện): - form-engine: "Phase 2 MVP missing PDF + form builder" → "Tier 3 feature-complete" + bỏ section duplicate "Gen mã HĐ chưa implement" (đã DONE Phase 3+6) - permission-matrix: 12 menu cũ → ~60 menu key (Bg_*/Pe_*/PeWf_*/Catalogs) + inheritance roots 4 group + Budgets KHÔNG inherit (gotcha #35) - ef-core-migration: "24 DbSet" → "52 bảng (15 migration)" 2 rule mới chốt: - rules.md §6.4 — Audit + compact MD định kỳ (cadence + checklist + anti-pattern) Triết lý: KHÔNG rewrite toàn bộ. Compact + patch drift. Cron solution-erp-skill-audit-monthly mở rộng scope (skill + doc drift combined) - rules.md §9.4 mở rộng cross-ref §6.4 Update STATUS Session 7+ priority + HANDOFF cảnh báo session 7 + migration-todos Phase 9 Session 6 done sub. Cron 2026-05-01 fire mai → combined audit theo checklist §6.4 + §9.4. Session log đầy đủ: docs/changelog/sessions/2026-04-30-chot-session-6-md-audit-compact.md Commit MD-only → CI skip (path filter gotcha #41). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@ -270,6 +270,41 @@ Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
||||
- Thêm pattern → update skill tương ứng ở `.claude/skills/`
|
||||
- Phase đổi → update [`STATUS.md`](STATUS.md) + [`HANDOFF.md`](HANDOFF.md) + [`changelog/migration-todos.md`](changelog/migration-todos.md)
|
||||
|
||||
### 6.4 Audit + compact MD định kỳ
|
||||
|
||||
**Triết lý:** KHÔNG rewrite toàn bộ. Chỉ **compact + patch drift** định kỳ. Test/code là source of truth, MD theo sau.
|
||||
|
||||
**Cadence + trigger:**
|
||||
|
||||
| Tần suất | Action | Effort | Trigger |
|
||||
|---|---|---|---|
|
||||
| **Cuối session** (đã làm tự động) | Update STATUS Recently Done + HANDOFF cảnh báo session tiếp | ~10 phút | Mỗi session có code commit |
|
||||
| **Cuối phase** (~1 tháng) | Compact STATUS Recently Done > 30 row → `changelog/recently-done-archive-{YYYY-MM}.md`. Collapse migration-todos Phase done thành 1 paragraph cross-ref session log | ~30 phút | Phase đóng |
|
||||
| **Đầu mỗi tháng** (cron `solution-erp-skill-audit-monthly`) | Audit skill + doc drift + count consistency. Patch stale qua Edit (KHÔNG rewrite). Log kết quả | ~45 phút | 9:00 ngày 1 mỗi tháng |
|
||||
| **Khi trigger riêng** | Selective rewrite 1 file (skill drift > 30%, architecture redesign, phase major) | 1-2 giờ | Quantitative trigger |
|
||||
| **KHÔNG BAO GIỜ** | Rewrite toàn bộ docs | — | — |
|
||||
|
||||
**Doc audit checklist (mở rộng từ §9.4 skill audit, chạy cùng cron):**
|
||||
|
||||
```
|
||||
1. dotnet test SolutionErp.slnx → verify count khớp STATUS/CLAUDE/HANDOFF
|
||||
2. ls migrations/ → verify count khớp ef-core-migration skill + database-guide
|
||||
3. grep '#[0-9]\+' gotchas.md → verify khớp count claim trong HANDOFF/STATUS
|
||||
4. ls .claude/skills/ → verify khớp count trong rules §9 + skills/README
|
||||
5. STATUS Recently Done > 30 row? → đề xuất archive cũ
|
||||
6. HANDOFF có section duplicate file khác (PROJECT-MAP/workflow/git log)? → đề xuất bỏ
|
||||
7. Skill SKILL.md mention "Phase N MVP" mà N <= phase hiện tại? → stale, refresh
|
||||
8. Output report stale items + suggest patches → human review
|
||||
9. Log vào docs/changelog/skill-audit-{YYYY-MM}.md (1 page max)
|
||||
```
|
||||
|
||||
**Anti-pattern (đã trải nghiệm):**
|
||||
- ❌ Rewrite toàn bộ MD định kỳ — mất context, paraphrase mất nuance, ROI thấp
|
||||
- ❌ Bulk-clone 3rd party docs — đã từ chối ở Skill governance §9.5
|
||||
- ❌ Skip audit "vì sắp UAT/sắp deploy" — drift tích lũy → onboard agent mới sai
|
||||
|
||||
**Trigger override:** User nói "audit MD", "kiểm tra docs", "định kỳ kiểm tra", "compact docs" → chạy doc audit ngay không đợi cron.
|
||||
|
||||
## 7. Testing (Phase 8 active — 77 test pass + CI gate live)
|
||||
|
||||
### Stack đã apply
|
||||
@ -410,37 +445,37 @@ when-to-use:
|
||||
## Related (dẫn chiếu gotcha #N, docs/...)
|
||||
```
|
||||
|
||||
### 9.4 Audit định kỳ — mỗi 4 tuần
|
||||
### 9.4 Audit định kỳ — mỗi đầu tháng (chạy chung với doc audit §6.4)
|
||||
|
||||
**Cadence:** Mỗi đầu tháng (hoặc thứ Hai tuần đầu tháng), chạy audit skill list:
|
||||
**Cadence:** Đầu mỗi tháng, cron `solution-erp-skill-audit-monthly` fire 9:00 ngày 1 → chạy combined audit (skill + doc drift theo §6.4 checklist).
|
||||
|
||||
**Skill audit phần riêng (mỗi skill SKILL.md):**
|
||||
|
||||
```
|
||||
1. Đọc .claude/skills/README.md — list 6 skill hiện có
|
||||
2. Cross-check với:
|
||||
- docs/STATUS.md "Recently Done" — feature mới nào chưa có skill cover?
|
||||
- docs/gotchas.md — gotcha mới (>3 dòng) nào nên gom thành skill mới?
|
||||
- migration-todos.md "In Progress" / "Next up" — task lớn sắp tới có cần skill?
|
||||
3. Check repo nguồn skill 3rd party có gì mới:
|
||||
- https://github.com/alirezarezvani/claude-skills (default-branch)
|
||||
- Anthropic skills built-in (xem system reminder skill list)
|
||||
4. Đánh giá staleness:
|
||||
- Mỗi skill: SKILL.md có còn match code thực tế không?
|
||||
- Trigger phrases có còn hiệu quả?
|
||||
- Code pointers có còn đúng path?
|
||||
5. Hành động:
|
||||
- Skill stale → update SKILL.md + commit `[CLAUDE] Skill: refresh <name>`
|
||||
2. Cross-check stale:
|
||||
- SKILL.md mention "Phase N MVP" mà N < phase hiện tại → stale
|
||||
- Code pointers paths có còn tồn tại không (Glob check)
|
||||
- Count claim (vd "24 DbSet", "13 migration") khớp thực tế không
|
||||
- Trigger phrases có còn hiệu quả không
|
||||
3. Cross-check feature gap:
|
||||
- docs/STATUS.md Recently Done — feature mới nào chưa có skill cover?
|
||||
- docs/gotchas.md — gotcha mới (>3 dòng / cluster) nào nên gom thành skill?
|
||||
- migration-todos.md — task lớn sắp tới có cần skill mới?
|
||||
4. Hành động:
|
||||
- Skill stale → Edit SKILL.md (KHÔNG rewrite) + commit `[CLAUDE] Skill: refresh <name>`
|
||||
- Skill cần thêm → tạo theo §9.2 §9.3 + commit `[CLAUDE] Skill: add <name>`
|
||||
- Skill không còn cần → archive vào .claude/skills/_archived/ + commit
|
||||
6. Update bảng §9.1 trong rules.md + .claude/skills/README.md + docs/CLAUDE.md count
|
||||
7. Log vào docs/changelog/skill-audit-{YYYY-MM}.md (1 page max)
|
||||
5. Update bảng §9.1 trong rules.md + .claude/skills/README.md + docs/CLAUDE.md count
|
||||
6. Log skill + doc drift report vào docs/changelog/skill-audit-{YYYY-MM}.md (1 page max)
|
||||
```
|
||||
|
||||
**Trigger:** Khi user nói "audit skill", "check skill list", "skill staleness", "định kỳ kiểm tra skill" → chạy workflow này.
|
||||
**Trigger:** User nói "audit skill", "check skill list", "skill staleness", "audit MD", "kiểm tra docs", "định kỳ kiểm tra" → chạy combined audit (§6.4 + §9.4) ngay không đợi cron.
|
||||
|
||||
**Lịch chính thức:**
|
||||
- Tháng 1, 2, 3, ... — đầu tháng audit (1 buổi sáng)
|
||||
- Hoặc khi bắt đầu Phase mới (vd Phase 6) → audit ngay trước phase
|
||||
- Hoặc khi `docs/gotchas.md` vượt mốc (cứ +5 gotcha thì xem có gom thành skill được không)
|
||||
**Threshold trigger ngoài cron:**
|
||||
- `gotchas.md` +5 gotcha mới → audit (xem có gom thành skill mới được không)
|
||||
- Phase mới đóng → audit ngay (track stale từ feature mới)
|
||||
- Skill drift > 30% (count check, path broken, mention phase cũ) → selective rewrite
|
||||
|
||||
### 9.5 Anti-patterns
|
||||
|
||||
|
||||
Reference in New Issue
Block a user