Files
solution-erp/.claude/agent-memory/tooling-auditor/MEMORY.md
2026-08-13 04:12:37 +07:00

20 KiB
Raw Blame History

Tooling-Auditor Agent — Persistent Memory

  • Máy mồ-côi + addendum lệch vế — 2 lớp drift tái phát mặt ③/④; 3 phép đo nhà-khai + control dương (mở @S185)

  • S185 (2026-08-09/10) @close bookend L13 — TOOLING: PASS_WITH_FLAGS — 6 (+2 INFORM) [LEAD SEED ON-BEHALF]: ①②③-số PASS (skill 6+23+19 · roster 28 khớp 5/5 · plugin 18/15/3 0-delta phiên 5); ③máy+④docs DRIFT. F-2 HIGH = máy mồ-côi thứ 3 ngay phiên sau khi (k-ter) dựng để diệt bệnh đó. F-3 addendum đóng 4.2 bỏ 4.4. F-6: run.md tick 0/11 ⇒ luật ONE-SHOT vừa land mất la-bàn ngay lượt đầu. Nguồn runs/2026-08-09-S185-bookend-close/sub-tooling-auditor.md.

  • S181 (2026-08-07) @close — TOOLING: PASS_WITH_FLAGS — 6 flag [LEAD SEED ON-BEHALF]: 🔴 Cứu một con số ĐÃ ĐÓNG DẤU RC. Return bị #53 cắt, nhưng mẩu garble chứa finding: "New agents show model: opus but no effort: line". Lead đo lại: 28 vai · 28 model: opus · chỉ 26 effort: max, thiếu đúng 2 vai W4b. Mà bảng gốc TC-03 vừa ký RC ghi "26/26 pin effort"con số khẳng định phủ-đủ trong khi thủng 2. Vá cả persona lẫn số. ⇒ Bài: đọc mẩu garble TRƯỚC khi resume — nó có thể là bằng chứng duy nhất chống lại một artifact đã ký. F-1/F-4 cùng một lượt sinh vai sót 2 khoá (effort + memory: project), không phải 1. F-1 HIGH đắt nhất về cấu trúc: STATUS:478 là ô canonical mà 5 con-trỏ B1 cùng trỏ vào ⇒ 1 ô sai = 5 con-trỏ resolve ra số sai. 🔸 Tự bác 2 ứng-viên flag: naming-baseline.json "vai": 29 KHÔNG stale (tập-đo của naming-scan kể cả README, khác tập roster) · dòng "roster is 20 as of S145"bản ghi đông-lạnh có neo thời-điểm, sửa = giả mạo phép đo cũ. Tag [s181, garble-chua-finding, cuu-so-da-ky-RC, 1-luot-sinh-vai-sot-2-khoa, o-canonical-5-con-tro]

  • S179 (2026-08-07) drift-audit THÁNG quá hạn 6 ngày — TOOLING: PASS_WITH_FLAGS — 8 [LEAD SEED ON-BEHALF]: 3 mặt PASS có số: roster 26 khớp 4 bề-mặt (đĩa 27 file trừ README = 26 — bẫy glob, đừng đếm 27) · skill-map 26/26 vai (comm -23 rỗng), 3 vai STYLE trỏ skill tồn tại thật · plugin 18 registered / 15 enabled / 3 disabled, khớp README:229. R-1 = same-class residue, site THỨ 6 của lớp "claim chép nhiều site": README:234 ghi frontend-design (KHÔNG enable plugin trùng) trong khi ~/.claude/settings.json = "frontend-design@claude-plugins-official": true — lead verify đĩa CONFIRMED, vá vị-từ thành "plugin trùng ĐANG enabled, cố ý KHÔNG dùng". Đây là lần thứ 3 lớp này tái phát trong cùng file (S153 → S172 → nay). F-6 bắt đúng bẫy tự-sinh: CLAUDE.md:121 hardcode Lần kế 2026-08-01"đóng audit mà quên lật ô này thì chính lượt đóng lại đẻ neo thối mới" — lead lật ô + đóng cả cụm 3 dòng HANDOFF (không chỉ 1 dòng, đúng bài R-1). CÒN 6 chưa vá, đã vào WAL: F-2 permission-matrix cây thiếu 5 root đang sống · F-3 nó tự cấm chép số rồi chép 12 root · F-4 dải §16+ 4 giá-trị khác nhau/4 surface · F-5 PROJECT-MAP (file #3 trong 5-file-đọc-trước) 0 hit 4 module sống, control dương contract=31 · F-7 skill-mig dừng Mig 71 · F-8 schema-diagram "91 bảng" vs canonical 97. 🔴 #53 garble, resume vớt trọn. 🔸 3 item "đã cân nhắc rồi BÁC" đều đúng (Mig 71/72 = 0 CreateTable nên câu "last schema-changing Mig 70" VẪN đúng theo từ-vựng chính file). Tag [s179, drift-audit-thang, same-class-residue-site-6, dong-audit-de-neo-thoi, roster-26-bay-glob, con-6-chua-va]

  • L2 archive archive/2026-08.md (compact @S185, byte-verified VERBATIM): S168 · S172 · S153 · S150 · S151 · S152 · S159 · S162 · FIFO 2026-06/07 · S123/S125 · pointer S126/S140/S143. Nghe rut ra da hoisted len Method/Anti-pattern — doc archive khi can chi tiet phep do cu.

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,2026-07,2026-08}.md verbatim on-demand · L3 RAG search_memory. Keep entry ≤ 1.5K chars. 🔸 Compact S185 2026-08-10: 31.696 B → 14.852 B, 11 khoi → archive/2026-08.md (move-not-cut, verify block in archive = True TRUOC khi xoa khoi L1). 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) · S109 2026-07-10 @start (17.2→~13KB, S105-end+S106-start → archive md5×2) · S111 2026-07-12 @start+@end (18.35→16.9→~16.4KB, S107×2+S108-end [@start ×2-pass] + S109-start [@end pass-3] → archive fragment+size-verified) · S116 2026-07-13 @end (17.06→13.5→~15.4KB, S110 @start+@end → archive/2026-07.md verbatim sed-append +3643B-verified) · S118 2026-07-14 @start (15.7→~15.4KB, 7 pointer-entry S98→S106 gộp 1-digest — verbatim ĐÃ ở archive từ compact trước, 0 move mới) · S125 2026-07-16 @start (21.6→15.8KB, S118-end + S119 @start+META → archive/2026-07.md verbatim sed-move +6212B-verified).


🎯 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-08-10 S189 — VERIFY moi session, dung tin so cu)

  • Roster: 29 vai — dia ls .claude/agents/*.md = 30 tru README.md (🔸 bay glob). Khop 6/6 be-mat @S189: dia · VALID_ROLES (hmw.js, parse neo ^\]) 29 · agent-memory/*/ 29 dir · STATUS.md:480 · agents/README.md:27 (enum 7core+22, da BO SO @S188) · skill-matrix agents/README:194-231 29 row (comm 2 chieu rong — no tu S182 DA DONG). Frontmatter 29/29 ca 3 khoa model: opus/effort: max/memory: project. 🔸 Doc-lap that = dia + 4 nguon tay-nuoi (1&3 dong-bien mot phan).
  • Skills: 6 project (.claude/skills/) + 23 standalone (~/.claude/skills/) + 20 command (.claude/commands/; +day.md @S189). hmw = script workflows/hmw.js, KHONG phai slash-command.
  • Plugins: 18 registered / 15 enabled / 3 disabled (pr-review-toolkit · code-modernization · hookify) user-global ~/.claude/settings.json; marketplace 37. 0-delta phien thu 7. Lead model o file do = claude-opus-5[1m] + effortLevel: xhigh. ⚠️ project .claude/settings.json chi co hooks.Stop wal-flush.ps1 — authority ③ VAN la user-global (dung conflate 2 file settings).
  • May: scripts/*.ps1 = 37 (+day-probe.ps1; co nha khai ≥4 be-mat ⇒ KHONG mo-coi). Sub pin model: opus + effort: max (worker-tier-pin S124).
  • So canonical khac (do @S189): Migrations 72 · SQL tables 97 · Tests 680 (45D+635I) · Gotchas 88. 🔴 Dem Migrations: ls *.cs *.Designer.cs ApplicationDbContextModelSnapshot — KHONG loc theo chu "Snapshot" (migration AddPeApprovedBudgetSnapshot co chu do trong ten ⇒ ra 71 sai).
  • Docs canonical: CLAUDE.md (root+docs) · docs/STATUS.md (so 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ÔNG Infrastructure/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 -Command escape \$ · PS Get-Content -Raw+-TotalCount mutually 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.
  • May MOI sinh trong phien = ung-vien mo-coi so 1 — grep ten may o .claude/commands/ VA docs/, kem control duong (naming-scan ~9 file). Chi tiet + lop anh em addendum lech vemethod_orphan_machine_audit.md.
  • Grep-tool brace-glob {a,b}/** match 0-FILE → sweep VOID tưởng clean (S105) — re-run per-dir; phân-biệt "0-match" vs "0-file-searched".

📅 Recent activity (FIFO — older → archive/2026-06.md verbatim)

  • S182 @open (lead-seed on-behalf, C2 /pause): PASS_WITH_FLAGS — 4 — matrix agents/README:190-219 phủ 26/28 (thiếu 2 vai score W4b, control-dương 0-row-ma) · STATUS:478 "roster 23" sai-SỐ-đúng-KẾT-LUẬN · skills/README:20 residue câu đã xoá @S181 (lớp claim-chép-nhiều-site lần 4) · permission-matrix:3 "12 root" hoá ra ĐÚNG SỐ (ring1 chốt 12) — chỗ sai là CÂY :44-77 vẽ 8. #53 garble, resume cứu trọn. → runs/2026-08-07-S182-bookend-open/sub-tooling-auditor.md

  • S186 (08-10) @open L14 — PASS_WITH_FLAGS 7 [LEAD SEED ON-BEHALF; nguồn runs/2026-08-10-S186-bookend-open/sub-tooling-auditor-open.md]: HIGH duy nhất = agents/README:27 "Roster THẬT (28 vai)" + liệt 28 TÊN thiếu ring5-audit (đĩa 29) — 2 lỗi/1 dòng, và vi phạm chính luật :3 cấm chép số, trong khi :28 ngay dưới là bài S143 dạy đếm phần-tử. 🔑 SKILL-STALE-VERDICT = đóng góp đắt nhất: phần lớn cờ derived-stale trong SKILL.md là dương-giả — chúng khai về SỰ-KIỆN ĐÃ ĐÓNG trong quá khứ, vá cho tụt flag-count = Goodhart, rời tập-đo. Tiêu chí phân loại tự dựng: "dòng này khai về QUÁ KHỨ hay tự nhận là ẢNH HIỆN-TẠI?" — chỉ nhóm 2 mới là stale. Stale THẬT đúng 2: skills/README:20 chép câu đã bị bác @S181 (vị-từ sai, không phải count-token) · permission-matrix cây 8 root vs :3 khai 12. ⚠️ ring1 BÁC 1 tên trong 4 root vắng: PuroTÊN MA (6/6 hit đều trong COMMENT trỏ NAMGROUP); tên thật là HopDongCung. ⇒ bài verified-number / unverified-label: số đúng, NHÃN trôi. Neo README:2 cũng lệch, thật là :3. RING5-SYNC: 3 nơi khai roster + 3 bề-mặt máy đều khớp 29, chỉ site thứ 4 trong chính README lệch. Plugin 18/15/3 0-delta phiên thứ 6; frontmatter 29/29 sạch cả 3 trường. Tag [s186, qua-khu-vs-anh-hien-tai, puro-ten-ma, site-thu-4]

S188→S189 (2026-08-10) — [S188 lead-seed; S189 tu ghi, artifact-first]

  • S188 @close — chet non sau mat-2/mat-3. F-1 HIGH: agents/README:27 ghi roster 28 + liet thieu ring5-audit trong khi dia 29. Va @S188 bang BO SO (dung luat :3) + them ten vao enumeration.
  • S189 @open L15 — PASS_WITH_FLAGS — 7 (1H/2M/3L/1I). Nguon runs/2026-08-10-S189-bookstart-open/sub-tooling-auditor-open-S189.md 21.170 B, dong-1 = verdict (artifact-first theo lenh lead sau #53).
  • 🔴 BAI DAT NHAT (F-5) — CONG-THUC CHEP TRONG DOC CUNG LAO-HOA, va no bay CHINH MINH. STATUS:471 khai Migrations 72 kem cach do "ls Migrations/.cs tru Designer+Snapshot"*. Ap dung chu ⇒ ra 71, vi migration 20260717032812_AddPeApprovedBudgetSnapshot.cs co chu "Snapshot" trong TEN CUA CHINH NO ⇒ bo loc an nham 1 migration THAT. Em suyt bao "canonical drift 72 vs 71" = bao oan dung o canonical DUNG. Do lai dung: 145 .cs 72 *.Designer.cs 1 ApplicationDbContextModelSnapshot = 72 (+ git log --diff-filter=D = 0 file xoa, loai gia-thuyet mat-mig). ⇒ Luat moi: cong-thuc nam canh con so = derived-artifact, KHONG duoc mien-tru chi vi trong giong lenh chay duoc. Tu dung phep do, dung chep recipe trong doc. Ho lop bay glob README va --since prune im lang.
  • 🔑 Hoi "con be-mat nao cung lop?" phai khai DO-RONG CUA LOP. F-1 (CLAUDE.md:77 KHKK ghi 69, 71 thieu Mig 72): lop HEP (chuoi 69, 71) = 1 site duy nhat (grep 5 file) ⇒ de tuong "va 1 cho la xong". Nhung lop RONG (be-mat ke migration ma bo sot Mig 72) = 2 site — con lai ef-core-migration/SKILL.md:99 (bang dung Mig 71, carry S179 F-7). Va 1 trong 2 = sot dung mot nua lop.
  • Mat ② lan dau SACH TUYET DOI ke tu S179: roster 29 khop 6/6 be-mat (dia · VALID_ROLES 29 · agent-memory 29 dir · STATUS:480 · README:27 enum 7core+22 · skill-matrix 29 row, comm 2 chieu rong). Frontmatter 29/29 × 3 khoa. No dai nhat (matrix 26/28 tu S182) + no effort S181 DEU DONG. 🔸 Nhung KHONG khai "6 be-mat doc-lap" — 1&3 dong-bien mot phan; doc-lap that = dia + 4 nguon tay-nuoi (bai S180 ring1 bac).
  • Plugin 18/15/3 — 0-delta phien thu 7. Va S179 R-1 (frontend-design vi-tu) KHONG tai phat. Nac used khong do duoc ⇒ khong khai.
  • day.md + day-probe.ps1 (may MOI, command 19→20 · ps1 36→37): KHONG mo-coi — nha khai ≥4 be-mat song (CLAUDE.md · day.md · pause.md · tiep.md). Chu dong soi vi la may moi sinh.
  • 🔸 4 item "da can nhac roi BAC" (chong Goodhart): permission-matrix:3 "12 root" DUNG (ring1 S182 chot; sai la CAY) · STATUS:7 "Tests 668" = ban-ghi-dong-lanh co neo phien · ef-core SKILL:102 "last schema-changing Mig 70" VAN dung (Mig 71&72 CreateTable=0) · STATUS:10 "roster 28" ha xuong LOW vi :8 tu khai dong CURRENT lag + co neo cua-so.
  • Con treo 4 carry-over deu tu drift-audit THANG S179, song ≥4 phien: F-6 (skill mig 71) · F-7 (permission-matrix cay) · F-2 (schema-diagram 91 vs 97) · F-3 (PROJECT-MAP 0-hit 4 module, control duong contract=31).
  • Tag [s189, cong-thuc-trong-doc-lao-hoa, bao-oan-canonical-dung, lop-hep-vs-lop-rong, mat2-sach-6-be-mat, plugin-0-delta-7]

S191 (2026-08-13) @close L15 — TOOLING: PASS_WITH_FLAGS — 8 (2H/3M/2L/1I)

  • F-1 HIGH — o canonical STALE, lop S181 tai phat: STATUS:470 ghi Migrations 72 nhung dia = 73 (20260812141501_AddContractEndedByLevelFinalize, land window L15 nay). Do dung cong-thuc S189: 147 .cs 73 Designer 1 ModelSnapshot = 73. 🔴 Chinh STATUS:6 da ghi "Mig 73 prod-top" ⇒ file tu mau thuan voi o canonical cua chinh no; 5 con-tro B1 resolve ra so sai (CLAUDE.md:69 · cicd-monitor:242 · database-reviewer-style:96 · investigator-codebase:81 · ef-core SKILL:3).
  • 🔑 F-2 — BAI DAT NHAT: tien-de cua LEAD sai, va sai theo huong lam nhe van de. Lead giao ".nvmrc KHONG ton tai". Do dia: COfe-admin/.nvmrc + fe-user/.nvmrc = 20, tracked tu commit scaffold. Neu em nhan tien-de thi thuoc se la "tao lai .nvmrc" ⇒ VO ICH, vi cai hong khong phai FILE ma la CO-CHE: deploy.yml 0 hit setup-node/node-version (goi thang C:\Program Files\nodejs\npm.cmd) ⇒ khong tang nao doc .nvmrc; engines ">=20" = min khong upper; 0 .npmrc/engine-strict/packageManager ⇒ khong chan. ⇒ Luat: khi lead dua tien-de "X khong ton tai", do X TRUOC — file-vang va co-che-cam la 2 benh khac thuoc. Ghost-wire lop H18 (config declared-but-unread), 8 site song khai sai + deploy.yml:5 chinh file CI khai "Runner has Node 20" (that: v24.15.0/npm 11.12.1).
  • F-3 INFORM: va #92 moi bit NUA lo. npm ci+lockfile chan drift CAY; nua kia (node/npm runner tu troi) chua chan; GUARD-92 bat react-trung-ban, KHONG bat node-doi-ban. Cung mot truc "build-env nhiem" da no P0 2 lan.
  • 🔸 Nguoc chieu drift thuong gap: iis-deploy-runbook:300 khai npm ci trong khi CI THAT chay npm install+xoa lockfile (chung: git show 305b573f^). Doc dung, MAY troi — runbook la canh-bao-som cua #92 ma khong ai doc cheo.
  • 🔸 4 item can nhac roi BAC: ef-core mig-table dung Mig 71 ⇒ DE NGHI DONG FLAG S179-F7, :25 da khai chu-dich "bang nay SE LUON tut sau va dieu do HOP LE" · :102 "last schema-changing Mig 70" VAN dung (Mig 72&73 CreateTable=0) · runbook:117-119 NTFS-compact da phu ca ca cuu Vietreport_Master phien nay ⇒ khong stale · README.md:9 "Node 20+" dung.
  • Mat ② SACH 6/6 phien thu 2 lien tiep (29: dia · VALID_ROLES · 29 dir · STATUS:481 · README:27 enum · matrix 194-233 29 row comm-2-chieu-rong; frontmatter 29/29 × 3 khoa). Plugin 18/15/3 — 0-delta phien thu 8. Gotchas continuity 1→92, 0 gap 0 dup, STATUS:478=92 khop.
  • new-alloc: webapp-testing (user-global Playwright) CHUA co trong bang map agents/README:238-245 — dung la lo #92 (byte-match+smoke 200 do FILE, khong do CHAY) ⇒ de xuat → cicd-monitor + test-specialist.
  • Carry S179 con 3 (song ≥5 phien): schema-diagram:515 "91 bang" vs 97 · PROJECT-MAP 0-hit 3 module (control duong contract=31) · permission-matrix thieu 5 root.
  • Tag [s191, tien-de-lead-sai-lam-nhe-benh, file-vang-vs-co-che-cam, ghost-wire-node-pin, o-canonical-tu-mau-thuan, doc-dung-may-troi, plugin-0-delta-8]

S192 (2026-08-13) - bookend @open L16 - PASS_WITH_FLAGS - 7 finding (2 HIGH) [LEAD SEED ON-BEHALF]

  • F-D audit-date: rules.md:559 khai canonical=STATUS ma STATUS:848 thoi (next 2026-08-01); o DUNG o CLAUDE.md:128 lai la derived tu xung canonical => B1 lon nguoc; cite :546 = con-tro gay. F-E agents/README.md:264 liet 26/29, thieu ring5-audit/score-counter/score-count-auditor. Ky audit thang 08 DA CHAY 2026-08-07 (tre 6 ngay, KHONG qua han 12 ngay). [!] F-B cua minh bi ring1 LAT: so dung = 12 root / cay ve 8 / vang 4 (Hrm, Off, Personal, HopDongCung) - ap nguyen trang se ghi so SAI + xoa so DUNG cua S186. BAI: dung bien minh bang verdict cua chinh vai se di kiem minh (A-09b citation loop). -> .claude/workflows/runs/2026-08-13-S192-bookend-open/sub-tooling-auditor-open-S192.md