Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
16 KiB
Tooling-Auditor Agent — Persistent Memory
Persistent diary cross-session. Auto-injected first ~200 lines at spawn (L1 HOT). Update BEFORE every stop. Tiered Memory v1: L1 HOT (hook hard-limit <17KB) · L2
archive/2026-06.mdverbatim on-demand · L3 RAGsearch_memory. Keep entry ≤ 1.5K chars. NEW agent 2026-06-07 (adopt AI_INFRA Harness 1 — H1 tooling-freshness; TÁCH khỏi harvest-curator H2 per anh-mandate "H1/H2 hay quên+nhầm → riêng-biệt"). Compacted S99 2026-07-02 (19.6KB→~9KB, 12 entry 06-xx → archive NGUYÊN VĂN) · S105 2026-07-07 (19.4→~16KB, S98-S100 →archive/2026-07.md) · S106 2026-07-07 (19.7→14.9KB, S102-S104 @start →archive/2026-07.md; byte-verified md5×3 @S107) · S107 2026-07-10 @end (17.8→16.2KB, S101+S105 @start → archive md5×2).
🎯 Role baseline
H1 tooling-freshness auditor SOLUTION_ERP-self. Read-only + propose-only (em main = single-writer; NGOẠI LỆ duy nhất: diary/archive của chính mình). Tools: Read/Grep/Glob/Bash + 4 RAG-read. NO store_memory. Audit 4-mặt mỗi session: skill · sub-role · plugin · docs — đầy-đủ + kịp-thời. @session-start báo state + diff-vs-last; @session-end chốt + new-alloc audit. 🔴 Final message = VERDICT trực tiếp, KHÔNG narrative memory-curation (#53 return-garble ×4).
🚫 Split boundary
- ✅ MINE: tooling/docs freshness (4-mặt) + roster-drift + skill/plugin new-alloc — SOLUTION_ERP-self
- ❌ NOT: harvest-memory/5-trục → harvest-curator (H2) · corpus/RAG/deploy → cicd-monitor · code/SQL audit → investigator-codebase · write/decide → em main
📋 Baseline state (re-ground 2026-07-02 S99 — VERIFY mỗi session, đừng tin số cũ)
- Roster: 12 sub (S107 +office-document 📄 Office WRITE, anh giao), 12/12
model: inherit(Harness-8 all-inherit, runtime-verified S98 — Fable 5 RESTORED, inherit-chain self-reportclaude-fable-5). 10 product/quality (investigator-codebase/api · implementer-backend/frontend · test-specialist · reviewer · cicd-monitor · frontend-designer · database-agent read-advisory · office-document Office S107 ✅ verified-runtime cùng-phiên [hot-reload agent-MỚI ăn thật — S27 lesson chỉ còn EDIT-agent/command]) + 2 monitor INFORM-only (tooling-auditor · harvest-curator). VALID_ROLES hmw.js = 10 product-only by-design. - Skills: 6 project (
.claude/skills/) + 23 standalone (~/.claude/skills/) + 16 command-file (S101 +fable-real/clone) (.claude/commands/— hmw = scriptworkflows/hmw.js, KHÔNG phải slash-command). - Plugins: 18 registered (15 enabled / 3 disabled: pr-review-toolkit · code-modernization · hookify) user-global
~/.claude/settings.json:17-35· marketplace 35 · settingsmodel: claude-fable-5[1m]+effortLevel: xhigh. - Docs canonical:
CLAUDE.md(root+docs) ·docs/STATUS.md(số canonical B1) ·docs/HANDOFF.md·.claude/agents/README.md·docs/governance/.
⚠️ Anti-patterns
❌ Tự sửa config/doc/enable-plugin (propose-only) · ❌ conflate plugin "enabled"="used" (installed≠enabled≠assigned≠used) · ❌ tick-checkbox no-evidence · ❌ đụng harvest-memory (harvest-curator) · ❌ G-015 overclaim "read-only enforced" (Bash residual = write-channel mở).
🧭 Method distilled (S50-S98 — chi tiết verbatim archive/2026-06.md)
- Ground-truth MỌI count từ disk:
settings.json enabledPlugins= authoritative plugin# ·skills/README.md≠ SKILL.md frontmatter (drift độc lập) · Migrations ởInfrastructure/Persistence/Migrations(KHÔNGInfrastructure/Migrations). - Test count: KHÔNG attr-count
[Fact]/[Theory](Theory expand runtime) — tin session-log/test-run/STATUS. - Bundle-hash: KHÔNG tin 1-source — triangulate (cicd-MEMORY = provenance giàu nhất Run#+sha+rotate); anh-cite chưa verify được → flag "unverified", KHÔNG copy.
- gotcha format: entry =
### N.KHÔNG#N— verify format trước khi claim missing. - commands/*.md + ultra-on.md = trong radar: roster-grep (S57 catch) + count-grep (S99 catch "(68)") — lớp file hay bị monthly-audit bỏ sót; index/README files cũng vậy (S50).
- Drift born-SAU-monthly-CÙNG-NGÀY = lớp riêng (S97/S98) — per-session monitor bù lớp monthly không thấy.
- system-reminder claudeMd header = pre-session snapshot → re-Read line thật trên disk, KHÔNG tin context-injection. Brief "chưa flush" cũng = snapshot lúc spawn → re-ground disk hiện tại (S58).
- Backlog/coords trong HANDOFF phải re-verify trước khi tin (stale-contradiction S57-resume).
- Model spawn-test: frontmatter no hot-reload — pin/inherit ăn SAU restart CLI; self-report nguyên văn = bằng chứng runtime (H4 S57bis · H8 S98).
- Tool-gotchas: Bash nuốt
$PS-inline →powershell -NoProfile -Commandescape\$· PSGet-Content -Raw+-TotalCountmutually exclusive → dùng Grep tool^model:. - Return-cut giữa emit (S58) = finding chính vẫn salvageable từ partial return; emit finding chính SỚM trong report.
📅 Recent activity (FIFO — older → archive/2026-06.md verbatim)
- 2026-06 (12 entry S50→S66 → archive): CREATED+first-run verified-runtime (S50 3-drift: plugin 15→18 · ef-core 31→43 · gotcha 49→57) · S51 new-alloc database-agent STRONG-FIT/codebase-agent SKIP · S57×2 (ultra-on+session-start roster catch; VALID_ROLES 9) · H4 demote spawn-test ×2 (pin ăn post-restart, demote-watch #1 OK) · post-S57bis count-drift top-5 · S58 return-cut-partial · S59×2 ALL-FRESH (bundle triangulate 4-src; SearchableSelect=code KHÔNG skill) · S63 H5 opus-collapse confirm + ef-residual · S66 H8 all-inherit flip (7 pin→inherit). →
archive/2026-06.md. - 2026-07-02 (3 entry S98/S99/S100 →
archive/2026-07.mdverbatim, compact S105): S98 Fable-restore-evidence + ef-core stuck-59 + post-audit-drift (archive giữ bản verbatim-superset pre-curate) · S99 F1 s98-flip-miss + F2 SendMessage-stale + F3 command-count-catch "(68)" · S100 ALL-PASS F1/F3 fixed-verified + methodgit log -- .claude/skills/last-touch shortcut. - 2026-07-03 (S101 @start →
archive/2026-07.mdverbatim, compact S107): ALL-4 PASS + 🔴 MODEL-DRIFT first-catch (inherit-chain data-point #4 DIVERGENT Opus, H5-fallback tự-kích) — lesson gốc “inherit-chain self-report = per-session availability probe, đừng tin last-session model claim”. - 2026-07-03 (S101 @closeout →
archive/2026-07.mdverbatim, compact S105): command 14→16 (+fable-real/clone H19 = COMMAND-tier ≠ skill, đừng conflate; 0 catalog-drift) · data-point #5 Opus DIVERGENT · new-alloc 0 · F-H19a LOW DEFER (note khi Fable-về) · F-H19b em-main fixed. - 2026-07-06 (S102/S103/S104 @start →
archive/2026-07.mdverbatim, compact S106): S102 ALL-PASS Fable-restore-2nd (data-point #6) + model-note-reconcile-3 propose · S103 ①②③ PASS, ④ FLAG-M-LOW model-note S102-Fable thiếu S103-O data-point (#7 divergent) · S104 = Mig-62 ship docs-lag (product commit778fc98chưa reconcile): D1-HIGH STATUS:14 Mig 61→62 + D2-skill ef-core header/row-lag + D3-MED closeout-blurb-missing + D4-LOW migration-todos-tick; ⚠️ table 89 GIỮ (18 AddColumn/0 CreateTable count-invariant); methodgit show --stat= xác-nhận-nhanh commit-scope (#8 divergent Opus). - 2026-07-07 (S105 @start →
archive/2026-07.mdverbatim, compact S107): ①②③ PASS ④ 2-flag LOW (skills/README:20 Mig-61-stale [fixed S105-end] + model-note 2-of-3 lag [FLAG-M closed S105-end]); Fable-về lần 3 flip-6 data-point #9; L1 compact S105 19.4→16KB md5-verified. - 2026-07-07 (S105 @closeout CHỐT — ALL-4 PASS, 0 sót): 4 patch em-main LANDED verify direct-Read (skills/README:20 Mig62/S104 · agents/README:3 + session-start:37 chain→S105-Fable flip-6 · session-end:113 trailer Fable 5). Residual-sweep skills+commands+agents: 3 hit = valid-history (SKILL:82 xref "xem Mig 61" · ss:123/se:48 "adap S103" provenance), 0 stale. FLAG-M CLOSED 3/3 (STATUS:24 +S105 grep-hit). ②11=11=11 inherit ③18/15/3+m35+cmd16 identical, new-alloc 0. ④STATUS/HANDOFF dirty mid-audit = em-main flush S105 concurrent (HEAD vẫn
95f5555; STATUS:34 In-Progress S105 · HANDOFF:5 S105-Fable). 🔴 Method-gotcha: Grep tool brace-glob{a,b}/**trên setup này match 0-FILE → sweep VOID tưởng clean — re-run per-dir path; luôn phân-biệt "0-match" vs "0-file-searched". ERD root/docs CLAUDE "…-61" known-debt giữ (SKILL:86 đã 62). Tag[s105-end, all-pass, flag-m-closed, brace-glob-void]. - 2026-07-07 (S106 @start RE-REPORT — ①②③ PASS, ④ 2-FLAG [1 bundle-hash-live-stale MED + 1 model-note-flip LOW]; FABLE OUTAGE lại → flip-7 Opus, inherit-chain data-point #10 DIVERGENT): HEAD
41f8061(KHÔNG phải S105-closeout0f16c00như brief-baseline gợi — 2 commit SAU closeout:54a2c72S105-harvest +41f8061S105-refine-all;git show --statcả 2 = memory/docs-only, 0 skill/agent/plugin/product → ①②③ baseline vẫn == S105-end; ⚠️41f8061touch CHÍNH diary tao +2 dòng → in-context copy tao STALE-dài, disk-file thật = 48 dòng compacted). tree CLEAN. Model: spawn self-reportclaude-opus-4-8(brief env-confirm) = Fable OUTAGE (chuỗi S98F→S101O→S102F→S103O→S104O→S105F→S106O, flip-7, per-session probe tái-xác-nhận — "Fable VỀ S105" = point-in-time KHÔNG steady-state, đúng lesson S101). ①SKILL PASS 6+23+16 identical; last-touch skills/ =0f16c00S105 (skills/README:20 flush Mig62 ✓ LANDED-verified); ef-core SKILL:3/:19/:84-row-62/:86"Mig 51-62"/§16+ 27-62 tất khớp Mig 62 disk; residual-sweep Mig-61-straggler = 1 hit:82= valid xref (Mig 60 "xem Mig 61" — KHÔNG stale). ②ROSTER PASS 11 file(−README)=11=11, 11/11model: inheritline-5 (grep-verified), README header "11-agent"/"11 sub", VALID_ROLES 9 product-by-design; last-touch agents/ =0f16c00S105 docs-flush, 0 agent THÊM/XÓA. ③PLUGIN PASS 18/15/3 (3 disabled pr-review-toolkit/code-modernization/hookify, settings:17-35) + marketplace 35 + xhigh +claude-fable-5[1m]:11 identical, 0 new-alloc. ④DOCS 2-FLAG: 🔴 (D-BUNDLE MED, on-behalf APPEND — đây LÀ bundle-hash-question brief hỏi):STATUS:27"Bundle hash live (prod): adminmEGqlNWc/userDnrp4PU1Run #484" = STALE 4-run — cicd MEMORY:55+:73 authoritative = live thậtChSNAJBK/Bn2w1znHRun #488 Mig 62 (S104-ship, rotate-real-srcmEGqlNWc→#488, markerofficeAddress/legalRepresentativegrep-HIT prod-verified). ⚠️ NUANCE: STATUS:14 [Mig row] ĐÃ carry đúngChSNAJBK/Bn2w1znH#488 → data tồn tại in-doc, chỉ con-trỏ "live" chuyên-dụng :27 thiếu-hoist (1 deploy-chain behind). → em-main hoist :27 lên #488 hashes + prepend prev-chain (giữ #484 làm history). 🔴 (D-MODEL LOW, on-behalf APPEND): 3 model-note (STATUS:24 · agents/README:3 · session-start:37 BƯỚC 0.6) + trailer session-end:113 tất carry S105-Fable = latest nhưng phiên này S106-Opus → stale-by-one-flip (KHÔNG drift-sai: đúng-tại-S105 + note-self "per-session KHÔNG steady-state"; chỉ thiếu data-point S106-O). Brief đã lường "flip-churn inherent BƯỚC-0.6 probe mỗi phiên" → đề xuất APPEND S106-O caveat SAU em-main confirm lead-runtime (G-015 1-spawn probe, chưa xác nhận sub khác). ⚠️ Cân-nhắc CADENCE (không tự-quyết): model-note-flush mỗi flip = churn 7-lần/8-phiên — có thể đề xuất anh: giữ chain-tóm-tắt 1 dòng + "runtime probe mỗi phiên KHÔNG steady-state" thay vì append-từng-flip (giảm derived-touch). Counts khớp disk: Mig 62 · gotcha 79 (grep^### N.) · menu 54 (MenuKeys.csconst) · 89 bảng (STATUS:15 đúng — Mig 62 = 18 AddColumn/0 CreateTable count-invariant, cicd:73 sys.tables=89 confirm) · test 440. ERD-range root CLAUDE:131 "32-61" + docs/CLAUDE:70 "27-61" chưa nới→62 (SKILL:86 đã) = known-ERD-debt LOW carry (KHÔNG new). Method S106: (a) ĐỪNG tin brief-baseline HEAD —git logdisk thật bắt 2 post-closeout commit brief bỏ sót → luôn re-ground HEAD +git show --statmỗi commit-mới; (b) bundle-hash "live" phải triangulate cicd-MEMORY (provenance giàu nhất Run#+sha+rotate+marker) KHÔNG tin STATUS-line đơn-độc — STATUS:14 vs :27 lệch nhau = 2-source-trong-cùng-doc cũng cần cross-check. Tag[s106-start, 4-mat, flip-7-opus, data-point-10-divergent, d-bundle-live-stale-run484, d-model-note-flip, head-past-closeout-2commit]. - 2026-07-10 (S107 @start RE-REPORT — ALL-4 PASS, 0 flag mới; FABLE VỀ lần 4 = flip-8, data-point #11; self-compact-S106 byte-verified): HEAD
41f8061+ tree 7-M uncommitted = ĐÚNG brief-list S106 micro-session 7/7 file, 0 file lạ (em-main commit reconcile S107). Model: spawn self-reportclaude-fable-5(chuỗi …S105F→S106O→S107F, flip-8). ①SKILL PASS 6+23+16 identical, last-touch skills/0f16c00S105, README:20 fresh Mig62/S104. ②ROSTER PASS 11=11=11, 11/11^model: inheritgrep, README:3 gộp-pointer→canonical. ③PLUGIN PASS 18/15/3 + m35 + xhigh + fable[1m]:11 identical, 0 new-alloc. ④DOCS PASS: D-BUNDLE FIXED-verified (STATUS:27 hoistedChSNAJBK/Bn2w1znH#488 + lag-note) · D-MODEL FIXED-verified (STATUS:24 +S106-O flip-7 + 🔴 stamp "§Sub-agents = CANONICAL single-owner flip-chain, S106 gộp per anh-confirm"; 3 derived agents/README:3 + ss:37 + se:113 = pointer-only; residual-enumerate sweep agents/+commands/+docs/ = 0 stale [chỉ canonical :6/:24 + 1 session-log history]) · CADENCE-proposal S106 tao = ADOPTED (anh-confirm gộp 1-chain, chống churn 4-file/flip) · counts khớp Mig62/89/440/79/54 · ERD-debt carry (root:131 "32-61" + docs:70 "27-61", KHÔNG mới) · HANDOFF:5 S105 = expected micro-session. Self-compact-S106 verify (tự-kiểm): PASS byte-level — md5×3 identical HEAD-blob-L1 vs archive (S1021760f27a· S103a6c8c75f· S104e12e5377= moved-not-cut LOSSLESS), L1 14.9KB<17KB, FIFO :43 đúng, archive :13 compact-header FROZEN-additive; self-fix header :5 +compact-S106 note (sót lúc compact). Tag[s107-start, 4-mat, all-pass, flip-8-fable, self-compact-byte-verified, d-bundle-d-model-closed, cadence-adopted]. - 2026-07-10 (S107 @end CHỐT — ①③ PASS · ② PASS-DELTA roster 12 · ④ 1-FLAG D-BUNDLE lặp; new-alloc PASS; residual 0-sót): HEAD
86a34d5tree CLEAN (7-M S106 committed1eea51b). ② 11→12 +office-document 📄 OD1-OD10model: inherit:5, 3 commit1eea51b/21387cd/86a34d5— VERIFIED-RUNTIME CÙNG-PHIÊN (registry hot-reload agent-MỚI; S27 lesson thu-hẹp còn EDIT-agent/command). New-alloc 5-skill PASS ×3-chỗ: agent §SKILL:27-32 (docx/xlsx/pptx/pdf standalone + form-engine project, verify-present :52) · README matrix-row :165 · VALID_ROLES 10 (hmw.js:27 + README:208); skills/README no-agent-column by-design KHÔNG thiếu; budget.json:132 seeded 3323B. Residual-grep độc-lập 0-sót: live-claims đều 12/10 (README:3/:24/:217 · STATUS:24/:39 · ss:56 · se:83); hits còn = history-valid (README:12/:16 upgrade-log S66/S79 · ACTIVE-MARKS:15/:18 stamped-S79 FROZEN · README:247 S38-snapshot); STATUS:112 “11/11 có tools:” = point-in-time S100, OD có tools → invariant giữ (INFO). Wire =git show 21387cd --statđúng 14-file. 🔴 D-BUNDLE-LẶP (MED): STATUS:27 live-pointer kẹt #488ChSNAJBK/Bn2w1znHnhưng cicd:55/:73 = live thật #489BVyH-FY7/EDsZebvn(JS rotate-benign governance-only 0-fe-src, #69 two-mode, ship-proof LM-in-window + real-size; STATUS:39 đã carry đúng — chỉ :27 lag 1-run đúng pattern S106) → propose hoist :27 → #489 + prepend #488 prev-chain; cân-nhắc cadence :27 nếu benign-rotate lặp thường. Diary: :17 em-main flushed 12-sub ✓ · self-fix :18 14→16 cmd · compact S101@start→archive md512612234✓. Tag[s107-end, roster-12, new-alloc-pass, d-bundle-489-repeat, residual-0].