§L.a RCA: - E-012 + AS-16 NEW "bằng-chứng-tự-huỷ-sau-squash": outward artifact cite sha chưa-push / stamp trước khi git status sạch. Root = tiêu-chí verify chọn theo cái MÌNH đo được, không theo cái NGƯỜI NHẬN sẽ đo (cùng lớp E-010). Đối chứng: wave trước cite commit đích -> sống hết. §L.b: - (c) memory-triple: do exit 0 · de-xuat A7 251/251 · kiem reviewer FAIL 1C/4M/4m/1nit · do-record TOTAL 47 + nhip-no 4-vế. sleep-check 4d < 7d -> không INFORM. - (d)(f) harvest-curator GATE-PASS-5, 5-trục PASS, Fidelity on-behalf PASS STRONG 0-fabrication, C5 dạng-1 đủ, orphan 0/40, Sàn-5 khớp. Spawn-record 5 sub. - (g) tooling-auditor DRIFT-FOUND(4) -> vá hết: F-A doc "3-vế" vs script 4-vế (7 site prescriptive; giữ 15 file frozen) · F-B ghost-enum HIGH (mở enum 10->11 mà quên chính vai dùng nó + 2 site số) · F-C lead-model pin chưa ghi sổ (thêm dòng Lead row S143; cell canonical để owner quyết) · F-D marketplace. - (j) H24: class_repeat cập theo 2 vai · last_audit light/deep = 17 · history +S143 (khai rõ force-fire SỚM 1 nhịp theo lệnh owner, KHÔNG tới-hạn tự-nhiên). - (k) trio SKIP có vết (cần restart CLI) -> ghi CẢ session-log vì §6.4 reset WAL. Sửa-một-phía bắt được 4 lần trong phiên (tool-grant · enum · sổ đếm garble · _note counter) -> bài: đổi một con số thì grep con số đó repo-wide trước khi đóng. #53: 5/5 sub garble, 0 mất dữ-liệu nhờ ghi-đĩa. Tally ×20 -> ×25, +path-4 lead-on-behalf khi resume không cứu được diary. Test 528 kế-thừa (0 file src/fe/tests bị đụng, verify bằng diff). Bundle FROZEN. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
14 KiB
sub-tooling-4 — H1 tooling/docs freshness CHỐT @session-end S143 (2026-07-22)
Ghi-đĩa TRONG-lúc-làm (chống #53). Propose-only. Lead = single-writer. HEAD
c4903dd. Wave S143 = 5 commit2757e41 3f4310f 36cefcc 39cc060 c4903dd(baseb146e2b).
Ground-truth disk (đo lúc chạy)
.claude/agents/*.md= 18 file = 17 persona + README.md ✓ (roster 17 khớp yêu-cầu "giữ 17 vai")- cicd-monitor · database-agent · frontend-designer · harness-audit · harness-eval · harness-refine · harvest-curator · implementer-backend · implementer-frontend · investigator-api · investigator-codebase · lead-omission-auditor · lead-view-auditor · office-document · reviewer · test-specialist · tooling-auditor
.claude/skills/= 6 project skill + README.md (0 đổi;git log -- .claude/skills/last-touch =a09dcae, TRƯỚC wave S143)~/.claude/skills/= 23 standalone.claude/commands/*.md= 18
VERDICT: DRIFT-FOUND (4) — ①PASS(+1 LOW carry) · ②PASS · ③DELTA-2 · ④DRIFT-2
| Mặt | Trạng-thái | Cần-update |
|---|---|---|
| ① skill | PASS | 0 đổi S143. 1 LOW carry monthly-lane (ef-core :307 Mig-66→67) |
| ② sub-role | PASS | 0 — 17=17=17=17 khớp 4 nguồn, 4 site vá S143 verified-landed |
| ③ plugin/config | DELTA-2 | F-C settings model pin flip chưa ghi sổ · F-D marketplace 35→37 |
| ④ docs | DRIFT-2 | F-A dòng-nợ 3→4 vế (7 site) · F-B enum 10→11 (3 site, 1 FUNCTIONAL) |
① SKILL — PASS
.claude/skills/6 project (contract-workflow · form-engine · permission-matrix · dependency-audit-erp · ef-core-migration · iis-deploy-runbook) + README.md.git diff b146e2b..HEAD -- .claude/skills/= RỖNG ⇒ 0 skill đụng trong wave S143.- SKILL.md mtime: contract-workflow 24452B (05-08) · dependency-audit-erp 5551B (06-18) · ef-core-migration 32914B (07-14) · form-engine 5450B (04-30) · iis-deploy-runbook 14688B (06-25) · permission-matrix 7864B (07-15).
~/.claude/skills/= 23 standalone (algorithmic-art…xlsx) — IDENTICAL baseline S140, 0 mới.- Map-vai:
agents/README.md:179-185skill-matrix có đủ 17 row (vá S1432757e41"skill-matrix 15→17" — verified: 3 row trio:183-185+ 2 row H24:181-182present) ✓ - 🔸 LOW (carry, monthly-lane):
.claude/skills/ef-core-migration/SKILL.md:307còn "§16+ Mig 27-66 detail pending" trong khi canonical = Mig 67 (S133, 2026-07-17). Owner = audit đầu-thángCLAUDE.md:1132026-08-01, KHÔNG phải drift-mới của S143.
② SUB-ROLE — PASS (17 khớp 4/4 nguồn)
| Nguồn | Số | Bằng-chứng |
|---|---|---|
| disk | 17 | ls .claude/agents/*.md = 18 file − README.md |
docs/STATUS.md:450 |
17 | cột giữa row Sub-agents (canonical B1) |
hmw.js:22-40 VALID_ROLES |
17 | 17 chuỗi role, +3 trio :36 |
.claude/agent-memory/ |
17 folder | 18 entry − memory-budget.json; khớp README:237 "17 folder" |
- 4 site vá S143 VERIFIED-LANDED:
README:27(Roster THẬT nay liệt đủ 12 tên + trỏ canonical, KHÔNG số) ·README:225(VALID_ROLES + "7 monitor") ·README:190+STATUS:450(đã reword "NO Write/Edit" = tuyên-bố ý-định, containment thật = single-writer + git-diff) ✓ - Trio frontmatter đồng-nhất
model: opus+effort: max+memory: project+maxTurns: 18+ 8 tool read-only (3/3 file:5-9) — khớp mô-tảSTATUS:450. - Nấc trio:
STATUS:450+HANDOFF:5+:7(1)đều khai "CHƯA spawn lần nào / verified-pending-restart" — KHÔNG có site nào lỡ khai đã-chạy/verified-runtime (grepverified-runtime|đã chạy|spawn-probetrên commands/ + agents/README + STATUS + HANDOFF: 0 hit gán cho trio) ✓ - 0 vai thừa/idle/scope-drift: 7 monitor đều có ranh khai tường-minh (H1⟂H2⟂H24×2⟂trio×3)
README:227+:129-133.
③ PLUGIN/CONFIG — 18/15/3 PASS nhưng 2 DELTA config chưa ghi sổ
~/.claude/settings.jsonenabledPlugins= 18 registered / 15 enabled / 3 disabled (pr-review-toolkit·code-modernization·hookify) — IDENTICAL baseline S125→S140, 0 đổi.- Nấc báo đúng: installed 18 → enabled 15 → assigned (bảng
README:199+ skill-matrix) → used (per-session). KHÔNG conflate. pull_warn_daysKHÔNG ghost-wire ✓: script:187-192ĐỌC key ($cad.pull_warn_days), key CỐ Ý vắng trongmemory-budget.json⇒ degrade INFORM đúng thiết kế; khớpHANDOFF:7(2)carry chờ anh đặt số.- → xem F-C (model pin) + F-D (marketplace 35→37).
④ DOCS — DRIFT-2 (F-A + F-B), phần còn lại PASS
CLAUDE.md:105/:113/:136"6 skill" + audit kế 2026-08-01 ✓ khớp disk.STATUS.md:462+HANDOFF.md:5(row S141–S143) mô-tả wave: roster 14→17 ✓ · vế-4pull-cach✓ ·flag_classes10→11 ✓ · trio chưa-spawn ✓ · 5 commit ✓ — phản-ánh ĐÚNG + KỊP.agents/README.md:190/:225G-015 wording ✓ (đã hạ "read-only enforced" xuống "ý-định").- Drift còn lại = F-A (dòng-nợ) + F-B (enum) dưới.
FINDING sống (cập-nhật dần)
F-A [dòng-nợ 3-vế → 4-vế] — script đã 4 vế, doc prescriptive còn "3-vế"
Script scripts/nhip-no-probe.ps1:201 in 4 đoạn:
NHIP-NO: kiem {0} | {1} | {2} | {3} với vế-4 = pull-cach N ngay (:162-198), header :22 khai đủ 4 vế.
Site PRESCRIPTIVE (mô-tả hành-vi SỐNG) còn "3-vế" — ứng-viên DRIFT:
.claude/commands/pause.md:44.claude/commands/session-end.md:57,:63(khuôn do-record),:101.claude/commands/session-start.md:213.claude/commands/tiep.md:112docs/governance/session-model-se-draft.md:34(bảng "NHIP-NO probe 3-vế") Site FROZEN-IN-TIME (KHÔNG drift — record lịch-sử):runs/2026-07-17-*,spec-adap-*,adap-reports/*,docs/changelog/sessions/*,STATUS.md:482(mục lịch-sử S135-S136),HANDOFF.md:13(Prev-block).- error-ledger carve-out
:49nói "dòng-nợ read-only vẫn IN ở MỌI điểm dừng" — KHÔNG khai số vế ⇒ KHÔNG stale ✓ docs/governance/harness-11-engine.md— grepnhip-no|dòng-nợ|vế= 0 match ⇒ KHÔNG stale ✓
F-B [enum flag_classes 10→11] — doc-sync CHƯA xong, 1 site FUNCTIONAL 🔴 HIGH
Live: memory-budget.json:129 = 11 class = 5 view-* + 6 gap-* (view-stale-count/status/header/role-desc · view-residual-asym · gap-carry-dropped/aged/owner-specifics/decision-sunk/underfill · gap-incident-unrecorded mới).
git show --stat 36cefcc (commit MỞ enum) đụng memory-budget.json + agents/README.md + STATUS + HANDOFF — KHÔNG đụng .claude/agents/lead-omission-auditor.md.
🔴 B-1 FUNCTIONAL (HIGH) — .claude/agents/lead-omission-auditor.md = ĐÚNG cái vai phải DÙNG class mới, mà bản-sao-cục-bộ của enum vẫn 5:
:29heading## 5 class của mày — enum ĐÓNG:35-39bảng chỉ 5 row —gap-incident-unrecordedVẮNG MẶT hoàn toàn (grep tên class trên toàn.claude/agents/: 0 hit):41"broadcast liệt 5 dấu-hiệu, enum có 5 class" ⇒ ghost-enum kiểu H18 "defined-but-unread": class có trong JSON nhưng consumer duy-nhất không thấy. Vai lại bị luật "CẤM tự chế class" ⇒ lần tới gặp ca incident-unrecorded nó sẽ escalate lại đúng thứ vừa được duyệt, hoặc ép vào class sai. Bản-sao-cục-bộ (có cột ngữ-nghĩa + cột nơi-soi) THẮNG con-trỏ:31trong thực-dụng — nên đây KHÔNG phải nit trình-bày.- ⚠️ ăn thẳng vào chính vụ vừa xảy ra:
WAL:29INFORM-3 ghi "sub xin anh MỞ ENUM… nó KHÔNG tự bịa" — cơ-chế escalate chạy đúng, nhưng vòng lặp chưa khép vì bước ghi-lại-vào-persona bị bỏ.
B-2 (MED) docs/STATUS.md:450 — 2 chỗ trong CÙNG row canonical:
- "
lead-omission-auditor= cái BỊ THIẾU (5 classgap-*)" → phải 6 - "flag_classes … (10 class = 5+5, vai CẤM tự chế)" → phải 11 = 5+6
B-3 (MED) .claude/workflows/hmw.js:33 (comment cạnh VALID_ROLES) — "flag_classes (10 class: 5 view-* + 5 gap-*)".
Sạch ✓ (đã trỏ key, KHÔNG chép số — B1 đúng): session-start.md:117 · :211 · session-end.md:103 · ultra-on.md:25 · agents/README.md:227 · docs/governance/harness-11-engine.md (0 match) · scripts/*.ps1 (0 match) · lead-view-auditor.md:39/:41 ("5 class" vẫn ĐÚNG — nhánh view-* không đổi; KHÔNG được "sửa" thành 11, nó chỉ nói phần của nó).
F-C [lead-model pin flip KHÔNG ghi sổ] — MED, mặt ③→④
~/.claude/settings.json:11="model": "claude-opus-4-8[1m]"(:37effortLevel: xhighgiữ). mtime = 2026-07-20 13:38:37, size 1615B. Baseline mọi phiên trước (S125→S140 diary +STATUS:345+STATUS:374) =claude-fable-5[1m].- ⇒ pin owner-choice, KHÔNG outage:
.claude/WAL.md:9phiên nàywf: fable-real gate … model=claude-fable-5⇒ Fable VẪN resolve được qua spawn-param. Đúng khuôn MTv3 "owner-chọn-hạng-hai ≠ outage → 0 caveat / 0 revert". - 🔴 Nhưng nghĩa-vụ ghi-sổ chưa làm (
session-start.md:39"đổi giữa phiên OK, ghi 1 dòng session-record" +:47"Flip-record gắn nhãn {owner-choice|outage}"):STATUS.md:462row S141–S143 = row DUY NHẤT không có dòngLead <model>— so:468(S140 "Lead Fable 5 (owner-choice flip mới, MTv3 0-caveat)") ·:489·:503·:515·:532·:543·:554đều có.STATUS:450canonical §Sub-agents còn câu hiện-hành "Lead = frontier-class owner-choice per-session: em main Fable 5 (1M) Max" — mâu-thuẫn settings hiện-tại.session-start.md:43outage-path còn hardcode lỗi"Model isn't available — claude-fable-5[1m]"→ fallback/model claude-opus-4-8[1m]= bảo đổi sang đúng cái đang pin ⇒ recipe hồi-phục thành no-op.
- Đề-xuất (quyền anh): (a) +1 dòng flip-record vào row S141–S143
{owner-choice}— nhãn nào là quyền anh, đừng đoán; (b)STATUS:450đổi câu hiện-hành thành trỏ-runtime-probe thay vì tên model cứng; (c)session-start.md:43viết outage-path đối-xứng 2 chiều (down model nào → sang model kia) thay vì cứng 1 hướng.
F-D [marketplace 35 → 37] — LOW, lớp-đo bị bỏ sót
~/.claude/plugins/marketplaces/claude-plugins-official/plugins= 37 dir (baseline diary S125 = 35). 18 registered ⊂ 37 (REGISTERED-NOT-IN-MK= rỗng ⇒ 0 plugin mồ-côi).- 19 available-not-registered:
agent-sdk-devclangd-lspcode-simplifiercwc-makersexample-plugingopls-lspjdtls-lspkotlin-lsplua-lspmath-olympiadmcp-tunnelsphp-lspproject-artifactpyright-lspralph-loopruby-lsprust-analyzer-lspsecurity-guidanceswift-lsp. - KHÔNG quy được "2 cái nào mới": toàn bộ 37 dir cùng mtime
2026-07-17 13:51:45= refresh/re-clone cả cây ⇒ mtime mất giá-trị phân-biệt. - 🔴 Tự-soi: các phiên trước (gồm chính tôi @S140 "③PLUGIN PASS 18/15/3 IDENTICAL") chỉ đo lớp registered/enabled, KHÔNG đo lớp marketplace-inventory ⇒ +2 sống ≥5 ngày không ai thấy. Cùng họ với bài
commands/*.mdblind-spot (S57/S99/S126): sweep liệt consumer thiếu MỘT LỚP thì miss tái-sinh.
🔌 NEW-ALLOC audit (skill/plugin mới chưa phân-bổ)
- Skill: 0 mới (6 project + 23 standalone identical) ⇒ 0 alloc-action.
- Plugin enabled: 0 mới (18/15/3 identical) ⇒ 0 alloc-action trên lớp enabled.
- Marketplace available (F-D) — 3 ứng-viên đáng cân-nhắc, 16 SKIP:
Plugin Đề-xuất Lý-do security-guidanceCÂN-NHẮC — gán reviewer(+cicd-monitorlớp commit)"injection, XSS, SSRF, hardcoded secrets" — trùng lane authz/secret mà S118 #82 ( feedback_permission_grant_two_layers) vừa cho thấy em-main-solo hay sót; ⚠️ nó có hook Stop + edit-time warning ⇒ đụng.claude/settings.jsonhooks (đang chỉ cówal-flush.ps1) ⇒ anh quyết, KHÔNG tự bậtcode-simplifierSKIP (yếu) trùng lane reviewer+implementer-*; SE đã có luật rules.md, thêm agent = phình roster (floor H3 "gộp-vai KHÔNG phình")project-artifactSKIP status-page generator — SE đã có STATUS.md/HANDOFF.md+session-reportplugin đang enabled16 còn lại SKIP 9 LSP ngôn-ngữ ngoài stack (.NET/TS đã có csharp-lsp+typescript-lspenabled) ·example-plugin/math-olympiad/cwc-makers/ralph-loop/mcp-tunnels/agent-sdk-dev= ngoài lãnh-địa SE - 3 vai trio
harness-{eval,refine,audit}: skill-matrixREADME:183-185đã gán ref-only đúng (đọc outputmeasure-agent-memory/mfe-eval/memory-archive-gate/crystallized-backfill/nhip-no-probe) ⇒ 0 alloc-gap.
📌 Method-note (cho lần sau)
- Đổi 1 giá-trị trong file-CONFIG ⇒ grep MỌI bản-sao-cục-bộ của enum đó trong PERSONA, không chỉ doc-tóm-tắt. Enum đóng có 2 bản: JSON (authoritative) + bảng-trong-persona (thứ vai thật-sự đọc). Sync 1 nửa = mở enum trên giấy.
- Marketplace-inventory là lớp ĐO RIÊNG với enabledPlugins — từ nay đếm cả 2 (
ls …/marketplaces/*/plugins | wc -l+ settings) mới được kết "③ PASS". - Prescriptive ⟂ frozen-in-time: chỉ vá nhóm prescriptive; sửa record lịch-sử = giả-mạo (lead đã xác nhận cách tách này đúng @S143).