diff --git a/.claude/sessions/session-10/_context-s-10.md b/.claude/sessions/session-10/_context-s-10.md new file mode 100644 index 0000000..5d2c9a9 --- /dev/null +++ b/.claude/sessions/session-10/_context-s-10.md @@ -0,0 +1,57 @@ +# _context-s-10 — SESSION-MODEL narrative durable + + + +> **sID (LOGIC-session) = 10.** 1 phiên-logic (bootstrap → work → sweep) trải nhiều window vật-lý nối bằng `/pause`+`/tiep`. Window = 0-ID governance; **sID = đơn-vị LOGIC**. Folder pin: `.claude/sessions/session-10/`. +> ts-mốc khởi-tạo = **2026-08-01T20:38:23+07:00** (nguồn: `git log -1 --format=%cI @ HEAD 4b1905d`) — mốc git-committer, KHÔNG phải wall-clock tuỳ-tiện. +> +> 🔴 **CẤM rewrite / tự-tóm block FLOW** (chống self-summary lossy). FLOW = append-only @`/pause`-only; vượt cap `session_ctx_kb` → distill SECTION CŨ thành pointer/gist, TUYỆT ĐỐI KHÔNG sửa entry verbatim đã ghi. + +--- + +## (a) STOCK-map — reference-not-copy + +> Bảng pointer tới nguồn durable. **KHÔNG copy nội-dung** (chống drift). Điền @bootstrap; row session-specific append dưới các row stable. + +| Tên | Path | 1-dòng | +|---|---|---| +| WAL | `.claude/WAL.md` | mạch-việc-dở máy-state (H-22) — nối bằng `/tiep` | +| AI-context | `CLAUDE.md` | AI agent context SOLUTION_ERP (scope + quick-rules) | +| Trạng-thái | `docs/STATUS.md` | canonical mọi con-số (mig · bảng · test · roster) | +| Bàn-giao | `docs/HANDOFF.md` | brief 5 phút + bảng số chờ-anh + carry | +| Sổ đếm H24 | `.claude/governance/.session-counter.json` | counter + nhịp lead-self-audit | +| Thư cross-project | `broadcasts/_index.md` | INBOUND directed (`outbox/se`) — fan-out `outbox/all` KHÔNG vào đây | +| _(session-specific)_ | _(path)_ | _(1-dòng — append @bootstrap phiên này)_ | + +--- + +## (b) FLOW — append-only @pause-only + +> 🔴 **CẤM rewrite FLOW.** Mỗi `/pause` APPEND đúng 1 entry theo SCHEMA dưới (đặt DƯỚI dòng `FLOW-START`). Entry cũ = immutable. FLOW = SOURCE durable của "đang-đến-đâu"; bảng-đầu-việc = VIEW derive từ đây (single-source). + + + + + +_(chưa có PAUSE — entry đầu append @`/pause` đầu tiên của phiên)_ + +--- + +## (c) STOCK-touched — máy-derive + +> Bảng file-đã-đụng trong phiên, **máy-derive** từ `git diff --name-only ..HEAD` @pause/snapshot. KHÔNG điền tay. + +| File | Δ | Ghi-chú | +|---|---|---| +| _(máy-derive @pause/snapshot)_ | | | diff --git a/.claude/workflows/runs/2026-08-01-S169-bookend-open/run.md b/.claude/workflows/runs/2026-08-01-S169-bookend-open/run.md new file mode 100644 index 0000000..31ba0d5 --- /dev/null +++ b/.claude/workflows/runs/2026-08-01-S169-bookend-open/run.md @@ -0,0 +1,42 @@ +# run — S169 bookend @open (5 vòng) — phiên-LOGIC **L10** window-1 + +- **run-id:** `2026-08-01-S169-bookend-open` +- **phiên:** S169 (cửa-sổ vật-lý) = phiên-LOGIC **L10**, window 1 +- **mode:** RUN-TRACE (≥3 task) — mỗi vai ghi full-detail vào CHỈ `sub--open-S169.md` của mình +- **HEAD lúc mở:** `4b1905d` · counter **43** (tick S168→S169 clean, 42→43) +- **lead model:** Opus 5 (default) · HMW-mode **ON** + +## Uỷ quyền + +- Anh gõ `/session-start` → Sàn-3 KÊU (① orphan ×3) → anh chốt **"OK bootstrap"** = nhánh (1) bootstrap tiếp, bỏ mạch; 3 orphan ghi vào work-state thành **nợ harvest**. +- 5 vòng bookend = nghi-thức AUTO, 0 cổng consent (owner @S151 trio · @S152 "vòng 1→5 auto"); xung đột *nghi-thức-AUTO ⟂ guidance-cấm-AgentTool* anh đã chốt nhánh AUTO @S159. + +## Bối cảnh vào phiên (đo TƯƠI, không chép) + +| Trục | Số | +|---|---| +| Migration | **71** · **97 bảng** | +| Test | **644 PASS** (45D+599I) | +| gotcha | **86** · roster **23** | +| counter H24 | **43** · light **3/6** · deep **3/15** — chưa OVERDUE | +| detectors | **TOTAL 48** + INFORM **14** (S168 là 50+10 ⇒ −2 TOTAL, +4 INFORM) | +| shard-probe | `pending=17 \| nguong=15` ⇒ **KÊU** ⇒ V4 sleep AUTO | +| H17 | GAP **HCV:MED** — run S168-bookend-close 7 sub-md / **0 synthesis** | +| nhip-no | `tran-bo-nho 0 over-cap · l2idx 0 over · run-chua-gom 3 · pull-cach 10 ngay` | +| thư cross-project | se **0** · all **1 mới** (`2026-07-28-day-wake-probe-first-resume`, kéo + verify 2 tuyến OK) | +| Sàn-3 | **1/5 MẠNH kêu** — ① orphan ×3 (2 = carry `synthesis-roll-s159-s160` + `harvest-orphan-s159-tongquan`; 1 mới = `S168-bookend-close`) | + +🔴 **Monthly drift-audit DUE hôm nay 2026-08-01** (session đầu-tháng; lần trước S96 chạy 07-01). + +## Stages + +- [ ] V1 tooling/harvest — `tooling-auditor` + `harvest-curator` → `ring1-audit` +- [ ] V2 soi-lead H24 — `lead-stale-auditor` + `lead-gap-auditor` → `ring2-audit` +- [ ] V3 trio-memory — `harness-eval` → `harness-refine` → `harness-audit` (TUẦN TỰ) +- [ ] V4 nén-ngủ — `/sleep-recovery-memory-l2 all` → `ring4-audit` +- [ ] V5 floor/detector — ✅ đã chạy (governance-detectors 48+14 · H17 GAP HCV:MED) +- [ ] Phase 3.5 — `_mind-s-10.md` block-0 + `mind-check` + `ctx-audit` @open + +## Synthesis + +(chờ — sẽ ghi `bookend-open-synthesis.md` phẳng cùng cấp, dạng-1) diff --git a/.claude/workflows/runs/2026-08-01-S169-bookend-open/sub-harvest-curator-open-S169.md b/.claude/workflows/runs/2026-08-01-S169-bookend-open/sub-harvest-curator-open-S169.md new file mode 100644 index 0000000..61f106f --- /dev/null +++ b/.claude/workflows/runs/2026-08-01-S169-bookend-open/sub-harvest-curator-open-S169.md @@ -0,0 +1,48 @@ +# sub-harvest-curator @open S169 (phiên-LOGIC L10 window-1) — 2026-08-01 + +> Vai: **harvest-curator** (H2 harvest-MD integrity, read-only · propose-only). +> Nhiệm vụ: harvest-MD MỚI kể từ S168 · delta mồ-côi · 5-trục · orphan-scan `runs/*/`. +> **Ghi liên tục trong lúc làm** (chống #53). Mọi claim dán LỆNH (anti-pattern #2). + +--- + +## A. ORPHAN SCAN — xác nhận độc lập con số 3 (nhiệm vụ (a)) + +### A.1 Lệnh đã chạy (dán nguyên văn, tái-lập được) + +```bash +cd .claude/workflows/runs +# universe +find . -mindepth 1 -maxdepth 1 -type d | wc -l # -> 80 +find . -mindepth 1 -maxdepth 1 -type d | while read d; do [ -f "$d/run.md" ] && echo "$d"; done | wc -l # -> 77 +# orphan: có run.md AND 0 file *synthesis* non-empty (substring, KHÔNG neo đuôi) +find . -mindepth 1 -maxdepth 1 -type d | sort | while read d; do + if [ -f "$d/run.md" ]; then + syn=$(find "$d" -type f -name "*synthesis*" -size +0c | wc -l) + [ "$syn" -eq 0 ] && echo "ORPHAN|$d" + fi +done +``` + +🔴 **Thước dùng `-name "*synthesis*"` (substring 2 đầu), KHÔNG `*-synthesis.md` (neo đuôi)** — bài S162: glob neo-đuôi bỏ sót `…-synthesis-clone-s160.md`. Đây là lần đầu áp thước đã sửa trên toàn universe. + +### A.2 Kết quả thô — 4 hit + +| # | Folder | synth-file (mọi kích cỡ) | Phán | +|---|---|---|---| +| 1 | `2026-07-29-S159-bookend-open` | 0 | **ORPHAN THẬT** (nợ ngủ, có carry) | +| 2 | `2026-07-29-S159-tong-quan-pipeline-menu` | 0 | **ORPHAN THẬT** (nợ ngủ, có carry) | +| 3 | `2026-08-01-S168-bookend-close` | 0 | **ORPHAN THẬT — MỚI, chưa carry** | +| 4 | `2026-08-01-S169-bookend-open` | 0 | **KHÔNG orphan — IN-PROGRESS** (chính phiên này; `run.md` mtime 21:19 hôm nay, mới có 1 sub-file) | + +⇒ **XÁC NHẬN 3/3 con số lead đưa. KHÔNG có cái thứ 4.** Hit #4 là folder của chính lượt đang chạy (ghi nhận theo anti-pattern #3: in-progress phải ghi nhận, không flag). + +### A.3 Universe hygiene — 3 dir KHÔNG có `run.md` (đã kiểm ruột, không cái nào là orphan giấu) + +| Dir | Ruột | Phán | +|---|---|---| +| `2026-07-14-S117-pe-approve-minmax-range` | 1 file `spec-…md` 4.202 B | spec-only, không phải run — dual-accept (đã chốt S117/S153) | +| `2026-07-14-S117-pe-luyke-finalize` | 1 file `spec-…md` 5.828 B | spec-only | +| `2026-07-22-S144-bootstrap` | `bootstrap-synthesis.md` 1.239 B + 2 sub | **CÓ synthesis** ⇒ không orphan (ca tự-trượt @S151, đã đóng @S153) | + +Mẫu-số công bố: **80 dir / 77 có `run.md` / 3 orphan xác nhận / 1 in-progress**. (m#12: mẫu-số đo lúc 2026-08-01 ~21:2x, sau khi folder S169 đã tồn tại.) diff --git a/.claude/workflows/runs/2026-08-01-S169-bookend-open/sub-lead-gap-open-S169.md b/.claude/workflows/runs/2026-08-01-S169-bookend-open/sub-lead-gap-open-S169.md new file mode 100644 index 0000000..bb8741f --- /dev/null +++ b/.claude/workflows/runs/2026-08-01-S169-bookend-open/sub-lead-gap-open-S169.md @@ -0,0 +1,43 @@ +# sub-lead-gap-auditor — bookend @open S169 (phiên-LOGIC L10 window-1) + +- **run-id:** `2026-08-01-S169-bookend-open` +- **vai:** `lead-gap-auditor` (H24 §2(1) trục GAP — soi **CÁI KHÔNG CÓ**) +- **nhịp:** light 3/6 · counter 43 · **chưa OVERDUE** ⇒ light = stats-only, không cổng bắn; nhưng hình-B @S149 = spawn VÔ-ĐIỀU-KIỆN mỗi bookend ⇒ vẫn soi đủ 6 class +- **mode:** propose-only. KHÔNG Write/Edit ngoài file này. KHÔNG RAG-write. +- **ghi liên-tục** (chống #53) — mỗi mục đóng ngay khi đo xong. + +--- + +## §0. Enum ĐÓNG (đọc từ canonical, KHÔNG chép từ trí nhớ) + +Nguồn: `.claude/agent-memory/memory-budget.json` → `lead_self_audit.flag_classes` (dòng 176-188). +6 class trục GAP: `gap-carry-dropped` · `gap-carry-aged` · `gap-owner-specifics` · `gap-decision-sunk` · `gap-underfill` · `gap-incident-unrecorded`. + +--- + +## §1. Dựng tập KỲ-VỌNG TRƯỚC (bài: "cái không có thì không tự hiện ra") + +### 1.1 Nguồn cam-kết A — `.claude/sessions/session-9/_end` (chốt-kết L9, 1187 B, mtime 2026-08-01 20:38) + +**carry (dòng 3) — đếm tay = 11 slug:** + +| # | slug | ghi-chú | +|---|---|---| +| 1 | `ctx-t9-dogfood` | | +| 2 | `ring5-audit-gap` | | +| 3 | `hmw-width-vs-roster` | | +| 4 | `hmw-subfile-index-collision` | | +| 5 | `ctx-verifier-no-self-append` | | +| 6 | `synthesis-roll-s159-s160` | = orphan ①-a của Sàn-3 phiên này | +| 7 | `harvest-orphan-s159-tongquan` | = orphan ①-b | +| 8 | `endline-sub-md` | | +| 9 | `tra-bui-relogin` | | +| 10 | `bookend-3-vai-chet-S168` | **MỚI @S168** | +| 11 | `measured-resync-17-23` | **MỚI @S168** | + +**pending-anh (dòng 4) — đếm tay = 16 khoản:** +(64) Designer 2 user TEST · (65) nhắn team ZZTEST **[hạn 2026-08-01 = HÔM NAY]** · (66) dọn 2 HĐ ZZTEST · (42)(43)(44)(46)(47)(48)(39)(40)(41)(60)(61)(62) cũ · "luật fixture-TEST chưa stamp mark". + +**h24-tick:** counter=42 (khớp run.md khai tick 42→43 ✓). + +_(đo tiếp §1.2 …)_ diff --git a/.claude/workflows/runs/2026-08-01-S169-bookend-open/sub-lead-stale-open-S169.md b/.claude/workflows/runs/2026-08-01-S169-bookend-open/sub-lead-stale-open-S169.md new file mode 100644 index 0000000..b4df2cf --- /dev/null +++ b/.claude/workflows/runs/2026-08-01-S169-bookend-open/sub-lead-stale-open-S169.md @@ -0,0 +1,46 @@ +# sub-lead-stale-open-S169 — H24 §2(1) vai-STALE, bookend @open phiên S169 (L10 window-1) + +> **Nhịp:** hình-B vô-điều-kiện @`session-start §2.1.8(e)`. counter **43**, light 3/6 (KHÔNG phải cổng — light_every = STATS-ONLY từ S149), deep 3/15. +> **Enum ĐÓNG đọc từ** `.claude/agent-memory/memory-budget.json` → `lead_self_audit.flag_classes` (5 view-*): `view-stale-count` · `view-stale-status` · `view-stale-header` · `view-stale-role-desc` · `view-residual-asym`. +> **Ghi LIÊN TỤC trong lúc làm** (chống #53 — S159 chết giữa chừng ở 5/8 nhóm ⇒ "5 FLAG" thành SÀN). + +## Tập-đo (8 nhóm bề-mặt tự khai) — trạng thái cập-nhật liên tục + +| # | Nhóm bề-mặt | Trạng thái | +|---|---|---| +| N1 | `docs/STATUS.md` dòng CURRENT `:6` + bảng CURRENT STATE `:461-482` | ✅ CHẠM | +| N2 | `docs/HANDOFF.md` slot (64)(65)(66) + "Slot cũ còn treo" + lineage-block S162 | ✅ CHẠM | +| N3 | `.claude/agents/*.md` 23 persona (số-học) | ⏳ | +| N4 | `.claude/commands/session-start.md` + `session-end.md` (dư-lượng FLAG-1 @S159) | ⏳ | +| N5 | `CLAUDE.md` root (Modules + danh-sách mig) | ⏳ | +| N6 | Dư-lượng bất-đối-xứng @S168 (GĐ3-D · K8 dry-run · số phiếu 003→004) | ⏳ | +| N7 | `.claude/skills/*/SKILL.md` + `.claude/agents/README.md` | ⏳ | +| N8 | `tiep_reload.sources` khác (WAL · ACTIVE-MARKS · `_context-s-*` · migration-todos · gotchas) | ⏳ | + +## Nền MÁY (đọc, KHÔNG chạy lại) +`governance-detectors.ps1` TOTAL **48** + INFORM **14** · self-match 0 · 6 path self-exclusion. +`nhip-no-probe.ps1`: light 3/6 deep 3/15 ok · trần-bộ-nhớ 0 over-cap · l2idx 0 over · run-chưa-gom 3 · pull-cách 10 ngày. +`distill-shard-probe.ps1`: pending=17 | ngưỡng=15 ⇒ KÊU. `memory-selfimprove-audit.ps1`: GAP HCV:MED. + +## Số TƯƠI làm thước (nguồn = canonical `docs/STATUS.md` CURRENT STATE, đối chiếu đĩa) +Mig **71** (`:465`) · SQL tables **97** (`:466`) · Policies **452** (`:470`) · Menu keys **113** (`:471`) · Tests **644** = 45D+599I (`:472`) · Gotchas **86** (`:473`) · Sub-agents **23** (`:476`) · bundle admin `DLRf9TeA` / eoffice `C7TGA4Kn` (`:479`) · counter **43** (đĩa `.session-counter.json`) · roster đĩa = 24 file `.claude/agents/*.md` − README = **23** KHỚP. + +### Đo tươi phụ-trợ (dùng cho các FLAG dưới) +- `.claude/agent-memory/cicd-monitor/archive/_INDEX.md` = **9.682 B** / cap 20.480 = **47,3%** (sau split `628132c` @S167); `_INDEX-2026-H1.md` = 13.906 B (rotated, no-cap theo `split_rule_S167`). +- `.claude/agent-memory/harvest-curator/MEMORY.md` = **18.781 B**. +- `.claude/sessions/session-9/` = có `_end` (1.187 B) ⇒ **L9 ĐÃ ĐÓNG**; `_mind-s-9.md` = **43.411 B** (= 88,3% trần MỚI 49.152 B). +- `.claude/sessions/session-10/` = CHỈ có `_context-s-10.md` (2.942 B) — chưa có `_mind-s-10.md`. +- `.claude/agents/ring5-audit.md` = **KHÔNG tồn tại** (slot (41) còn treo ĐÚNG). + +--- + +## FLAG (ghi dần — số thứ tự ổn định, không đánh lại) + +### FLAG-1 — `view-stale-status` — **HIGH** +- **view:** `docs/HANDOFF.md:24` — dòng LIVE "**Slot cũ còn treo:**" (khối @S168, tức khối SỐNG) liệt `(47) \`_INDEX\` cap` trong danh sách các slot **còn chờ anh**. +- **source:** `docs/HANDOFF.md:22` cùng file — `(57) split \`_INDEX\` **THI-HÀNH** @S167 \`628132c\` (A7 427/427 PASS lần-đầu + fault-inject 2-chiều; luật \`split_rule_S167\` → key \`memory-budget.json\`)`; và `.claude/agent-memory/memory-budget.json:64` `split_rule_S167` (đã land, owner 'auto' 2026-08-01); đo đĩa `_INDEX.md` = 9.682 B / 20.480 = **47,3%**. +- **lệch:** view nói câu-hỏi-cap-`_INDEX` **CÒN TREO**; source nói nó **ĐÃ THI-HÀNH** (split) và số đo tươi cho thấy cap không còn áp lực (47,3% thay vì 99,18% lúc mở slot). Hai dòng **cách nhau 2 dòng trong cùng một file** nói ngược nhau ⇒ bác được không cần ra ngoài file. +- **resolve:** gỡ `(47)` khỏi danh sách treo `:24` (hoặc ghi rõ `(47) ✅ ĐÓNG @S167 cùng (57)` nếu muốn giữ lineage). + +--- +*(ghi tiếp bên dưới — file đang mở)* diff --git a/.claude/workflows/runs/2026-08-01-S169-bookend-open/sub-tooling-auditor-open-S169.md b/.claude/workflows/runs/2026-08-01-S169-bookend-open/sub-tooling-auditor-open-S169.md new file mode 100644 index 0000000..ef23f84 --- /dev/null +++ b/.claude/workflows/runs/2026-08-01-S169-bookend-open/sub-tooling-auditor-open-S169.md @@ -0,0 +1,83 @@ +# sub-tooling-auditor — @open S169 (phiên-LOGIC L10 window-1) + +- **Vai:** tooling-auditor (H1) — audit 4-mặt freshness tooling/docs. Read-only + propose-only. +- **Ngày:** 2026-08-01 · repo `D:/Dropbox/CONG_VIEC/SOLUTION/SOLUTION_ERP` · branch main +- **Nhiệm vụ đặc-biệt phiên này:** monthly drift-audit 2026-08-01 DUE (lần trước S96 @2026-07-01) + 4 điểm treo từ NEXT-em @S168. +- **Ghi liên tục** (chống #53). Mỗi mục có bằng-chứng path:line / count / lệnh. + +--- + +## 0. Ground-truth inventory (đo đĩa TRƯỚC, không tin trí nhớ) + +| Bề mặt | Lệnh đo | Kết quả | +|---|---|---| +| agents/*.md | `ls .claude/agents/*.md \| wc -l` | **24 file** — trừ `README.md` ⇒ **23 persona** ✅ khớp brief | +| skills project | `ls .claude/skills/` | 6 dir + README.md ⇒ **6 skill** ✅ | +| commands | `ls .claude/commands/*.md \| wc -l` | **19** (S150 đo 7 M / S153-era 18) — DELTA +1 vs baseline L1 (18) → soi mục ① | + +| user-global skills | `ls ~/.claude/skills/` | **23** (algorithmic-art…xlsx) — IDENTICAL S153/S162 baseline | +| plugin | `~/.claude/settings.json:17-36` | **18 registered / 15 enabled / 3 disabled** (`pr-review-toolkit`:20 · `code-modernization`:22 · `hookify`:27) — **0-delta** | +| marketplace | `ls ~/.claude/plugins/marketplaces/claude-plugins-official/plugins` | **37** — 0-delta vs S153 | +| lead model | `~/.claude/settings.json:11` | `claude-opus-5[1m]` + `:37 effortLevel xhigh` — 0-delta | +| agent-memory dir | `ls -d .claude/agent-memory/*/` | **23** = roster 23 ✅ | + +--- + +## ② ROSTER — PASS (khớp 5 bề-mặt) + +| Bề mặt | Số | Nguồn | +|---|---|---| +| đĩa `.claude/agents/*.md` | 24 file − `README.md` = **23** | `ls \| wc -l` | +| `hmw.js VALID_ROLES` | **23** phần-tử (đếm PHẦN-TỬ, anchor `^]` — bẫy S153 `]` trong comment) | `hmw.js:22-43` | +| `agents/README.md:242` | **23 tên** liệt kê (grep -o tên trong backtick, sort -u) | `README.md:242` | +| `agents/README.md:242` số khai | "13 monitor + 10 worker = roster 23" | idem | +| `.claude/agent-memory/*/` | **23 dir** | `ls -d` | +| `docs/STATUS.md:6` | "roster 23" | STATUS:6 | + +**Tập TÊN đĩa vs VALID_ROLES: IDENTICAL** (23/23, không thừa/thiếu). + +✅ **ĐIỂM TREO #2 CỦA BRIEF = ĐÃ VÁ.** `agents/README.md:242` trước đây liệt 20 tên / khai "10 monitor"; nay liệt **đủ 23 tên** (thêm `ctx-curator`+`ctx-verifier`+`ctx-audit` với ghi-chú `+S153 OWNER-VETO hub-form 3-vai 0df10df4`) và khai **"13 monitor … 13 + 10 worker = roster 23"**. Kiểm chéo phân-loại: 13 monitor = tooling/harvest + 2 H24 + 3 harness + 3 ring + 3 ctx ✅; 10 worker = inv×2 + impl×2 + test + reviewer + cicd + fe-designer + database + office ✅. **KHÔNG có drift.** + +--- + +## ④.a CLAUDE.md — danh-sách mig (ĐIỂM TREO #4) = PASS + +- `CLAUDE.md:62` CÓ **Mig 70** `AddContractCatalogEntries` + **Mig 71** `AddKhkkApprovalGroupCatalogAndFinalizeRuntime` (S164/S165), giữ 69/68/67 lineage. +- `CLAUDE.md:69` (row PurchaseEvaluation) có Mig 68 · `:70` (row ContractSigningPlans) có Mig 69 + **71**. +- B1 tôn-trọng: `:62` mở đầu bằng "Số migration · bảng hiện tại → docs/STATUS.md (canonical — KHÔNG copy số)". Số `96→97` / `89→96` trong ngoặc = **delta-mô-tả của chính mig đó** (lineage frozen), KHÔNG phải chép canonical ⇒ hợp lệ. + +--- + +## ③ PLUGIN — PASS (4 nấc KHÔNG conflate) + +- **installed/registered:** 18 khoá trong `~/.claude/settings.json:17-36`; marketplace catalog **37** plugin sẵn có (`~/.claude/plugins/marketplaces/claude-plugins-official/plugins`) ⇒ 19 plugin marketplace **CHƯA registered**. +- **enabled:** **15** (`true`) · **disabled:** **3** (`pr-review-toolkit@:20` · `code-modernization@:22` · `hookify@:27` = `false`). +- **assigned:** skill-matrix `agents/README.md` — không có plugin nào MỚI ⇒ 0 việc phân-bổ mới (xem NEW-ALLOC dưới). +- **used:** KHÔNG đo được từ cwd (không có telemetry per-plugin trong repo) ⇒ **KHÔNG khai**. Nấc `enabled` ⟂ `used` là 2 tập-đo riêng (bài S153). +- **Delta vs S162/S153:** 0. Cùng 18/15/3, cùng 3 tên disabled, marketplace vẫn 37. + +--- + +## ①-bis COMMAND-tier — delta +1 GIẢI-THÍCH (không phải drift mới) + +- Đĩa: **19** file `.claude/commands/*.md`. L1-baseline của tôi ghi **18** (S111-era). +- Đo lịch-sử: `git ls-tree -r --name-only .claude/commands/ | wc -l` = **18**; `git ls-tree … 11db5ef (S153)` = **19** ⇒ +1 xảy ra trong khoảng S111→S153, **KHÔNG phải phiên này**. Last-touch nội-dung: `11db5ef` (2026-07-26, S153 RENAME hub-form). ⇒ **baseline L1 của tôi stale, không phải đĩa drift.** (Ghi nhận để sửa diary @close.) +- 19 = adap×3 · check-email · fable-clone · fable-real · pause · send-email · session-end · session-start · sleep-recovery-memory-l2 · snapshot · tiep · ultra-off · ultra-on · user-mark×4. + +--- + +## ③-bis Nhóm-7 PERSONA SWEEP — số cứng trên 23 file `.claude/agents/*.md` (ĐIỂM TREO #3) + +Lệnh: `grep -n "roster ?[0-9]+|[0-9]+ vai|[0-9]+ sub|[0-9]+ monitor|[0-9]+ persona|[0-9]+ agent" .claude/agents/*.md` (loại README). + +**Kết quả phân-loại (KHÔNG vá-cho-vừa-detector — bài Goodhart S152):** + +| # | Site | Nội dung | Phán | +|---|---|---|---| +| A | `office-document.md:47` | "KHÔNG: deploy (cicd-monitor) · session-lifecycle audit (**2 monitor**) · schema/UX decision" | 🔴 **DRIFT THẬT — MED.** Đây là **định-tuyến SỐNG** (routing boundary), không phải lineage. "2 monitor" đúng ở S107 (roster 12), nay **13 monitor**. Người đọc theo dòng này sẽ route sai. Đề-xuất: bỏ số → "(nhóm monitor — H1/H2)" | +| B | `office-document.md:37` | "8 màu standard đã hết — precedent database-agent/**2 monitor**" | 🟡 **LOW.** Câu kể **precedent lịch-sử** lúc quyết OMIT color (S107) ⇒ frozen-record, sửa = giả-mạo lý-do quyết-định. GIỮ. (Chỉ nêu để không bị đếm sót ở lượt sau.) | +| C | `database-agent.md:36` | "8 màu … đã dùng hết bởi **8 product/quality sub**" | 🟡 **LOW — cần đo.** Xem đo `color:` bên dưới | +| D | `lead-stale-auditor.md:48` | ví-dụ class `view-stale-role-desc`: "`agents/README` ghi **12** sub khi roster = **14**" | ⚪ **DƯƠNG-GIẢ, GIỮ.** Đây là **cột VÍ-DỤ minh-hoạ** của bảng định-nghĩa class (use ⟂ mention — citation-trap). Sửa số = làm hỏng ví-dụ. KHÔNG đề-xuất vá | +| E | `harness-eval.md:39`, `harness-audit.md:35`, `ring*/ctx*` "≥2 số", "3 chiều", "5 khoản", "4 khoản", "13 monitor" | ⚪ **KHÔNG phải count-roster** — là hằng-số spec nội-tại (số khoản kiểm). GIỮ | + +(đang bổ sung...)