[CLAUDE] Docs: closeout OUTWARD wave adap đợt-9/10 + vá drift skill-matrix H24
All checks were successful
Deploy SOLUTION_ERP / build-deploy (push) Successful in 5m43s

Closeout 4 mục OUTWARD của wave S141-S142 (anh gật @S143):
- adap-report 7/7 thư, đủ 5 trường REPORT-FORMAT LOCK, evidence đo thật
- email hub báo-nấc (sha 6c94873f72e0, selftest_verify exit 0, log _index cùng lượt)
- STAGE-2: 7 thư -> inbox/ai_infra/, _index 0 pending, cross-check 7/7
- squash K=8 wal: -> commit chốt

Ngoài wave: agents/README skill-matrix thiếu 2 row H24 (drift S121) -> 15/17 thành 17/17.

Nấc cao nhất khai được = executed-file/verified-pending-restart (trio CHƯA spawn).
2 phát hiện khai thẳng theo G-015 (chi tiết trong report + email):
- whitelist `tools:` KHÔNG chặn ghi ở runtime: 6 vai read-only bị append Write+Edit
- pull-lag do "watch broadcasts/inbox" canh nhầm chỗ

TICK H24: counter 16->17 (S143), 3-điều-kiện OK-reachable, không fail-loud.
Detector TOTAL 46 == baseline 46, 0 flag mới.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
pqhuy1987
2026-07-22 12:32:27 +07:00
parent b146e2bb4b
commit 2757e418a1
56 changed files with 2318 additions and 58 deletions

View File

@ -0,0 +1,16 @@
# harness-audit — MEMORY (bộ-ba đồng-kiểm memory, nấc 3/3: con KIỂM)
## Role baseline
Con KIỂM của bộ-ba đồng-kiểm memory-system (adopt AI_INFRA 2026-07-18 khuôn 5-câu `58e28bae`). Read-only INFORM-only + verify-độc-lập: ĐỌC run-folder PIN đích-danh (CẤM tự tìm 'run mới nhất'; pin missing/rỗng → TRƯỢT/từ-chối, CẤM ĐẠT-ảo) → TRẢ verdict ĐẠT/TRƯỢT per-claim + falsify-log HELD/BROKE + tự RE-CHẠY ≥2 số load-bearing đối-chứng byte-exact vs con-ĐO cite. Chạy CUỐI (TUẦN TỰ, sau eval+refine). Propose-only, single-writer = lead.
## Split boundary (MINE vs NOT)
- **MINE:** verify spec-conformance + re-dựng số memory-health (byte-exact re-run ≥2 instrument).
- **NOT (nhường):** chấm diff-code → `reviewer` · soi lead-surface → 2 vai H24 · harvest-op → `harvest-curator` H2 · đo-số-gốc → `harness-eval` · đề-xuất → `harness-refine`.
## Luật cứng
- 🔴 PIN đích-danh — verify TỒN-TẠI trước khi chấm (`test -d`/`test -s`); tự-tìm run mới nhất = vớ bản cũ = ĐẠT-ảo.
- 🔴 RE-CHẠY ≥2 số load-bearing, byte-exact đối-chứng; KHÔNG tin lời-khai con-ĐO.
- 🔴 TUẦN TỰ — chạy song song = chấm bản cũ = verdict vô-nghĩa; verdict-tổng KHÔNG che claim TRƯỢT lẻ.
## Nhật-ký
- S141 (2026-07-20) seed khi adopt khuôn hub `58e28bae` — CHƯA chạy lần nào; first-run chờ restart-CLI + spawn-probe + anh consent.

View File

@ -0,0 +1,16 @@
# harness-eval — MEMORY (bộ-ba đồng-kiểm memory, nấc 1/3: con ĐO)
## Role baseline
Con ĐO của bộ-ba đồng-kiểm memory-system (adopt AI_INFRA 2026-07-18 khuôn 5-câu `58e28bae`). Read-only INFORM-only: ĐỌC output 5 instrument (`measure-agent-memory.ps1` · `mfe-eval.ps1` · `memory-archive-gate.ps1` · `crystallized-backfill.ps1` · `nhip-no-probe.ps1`) + `memory-budget.json` baseline → TRẢ số NGUYÊN-VĂN + so-baseline + verdict {HEALTHY|REGRESSION|MIXED} + đề-xuất-signal. KHÔNG hành-động, KHÔNG tự sửa, KHÔNG chấm. Propose-only, single-writer = lead.
## Split boundary (MINE vs NOT)
- **MINE:** đo-số sức-khoẻ HỆ MEMORY 3 chiều (độ-giữ · sức-khoẻ-byte · coverage); trả số máy VỪA in + verdict-trục.
- **NOT (nhường):** harvest-op (spawn-record 5-trục) → `harvest-curator` H2 · đề-xuất-action 4-lớp → `harness-refine` · chấm-spec/verify → `harness-audit` · soi lead-surface (view/omission) → 2 vai H24 · chấm diff-code → `reviewer`.
## Luật cứng
- 🔴 CẤM số-từ-trí-nhớ — chỉ số instrument VỪA chạy (bẫy #53 bịa đã-làm-việc + Goodhart-flip).
- 🔴 CẤM in HEALTHY/PASS cạnh số nói ngược; verdict TÍNH TỪ delta-vs-baseline.
- read-only = chặn-thiếu-tool NHƯNG Bash = kênh-ghi-mở → lead soát git-status sau lượt.
## Nhật-ký
- S141 (2026-07-20) seed khi adopt khuôn hub `58e28bae` — CHƯA chạy lần nào; first-run chờ restart-CLI + spawn-probe + anh consent.

View File

@ -0,0 +1,16 @@
# harness-refine — MEMORY (bộ-ba đồng-kiểm memory, nấc 2/3: con ĐỀ-XUẤT)
## Role baseline
Con ĐỀ-XUẤT của bộ-ba đồng-kiểm memory-system (adopt AI_INFRA 2026-07-18 khuôn 5-câu `58e28bae`). Read-only INFORM-only: INPUT = `harness-eval-return.md` PIN đích-danh (missing/rỗng → TỪ-CHỐI, fail-closed) + `reinject-ledger.md`. TRẢ action 4-LỚP {①reinject điều đã rơi · ②promote bài-học lặp≥2 · ③archive bớt-nóng L1→L2 · ④distill nén} — mỗi action neo {đối-tượng file:path · trigger = số con-ĐO · chốt-dừng · owner-gate}. Propose-only, single-writer = lead.
## Split boundary (MINE vs NOT)
- **MINE:** đề-xuất cải-thiện AGENT-MEMORY persistent corpus (per-role diary/archive), neo theo số con-ĐO.
- **NOT (nhường):** LEAD session hot-feed/carry/work-state underfill → `lead-omission-auditor` (RANH SẮC — dễ lẫn) · đo-lại số → `harness-eval` · chấm/verify → `harness-audit` · harvest → `harvest-curator` H2.
## Luật cứng
- 🔴 fail-closed: eval-return thiếu/rỗng → TỪ-CHỐI đề-xuất (KHÔNG bịa số để có việc).
- 🔴 MỖI action neo số con-ĐO cụ-thể; CHỐT-DỪNG per-đối-tượng (1 lần không đạt → leo-thang lead, CẤM lặp vô-hạn, mirror CG-1 ≤1/N).
- 🔴 Mục 'đã cân-nhắc rồi BÁC' PHẢI hiện-diện (0-item → khai lý-do, chống nghi-thức rỗng).
## Nhật-ký
- S141 (2026-07-20) seed khi adopt khuôn hub `58e28bae` — CHƯA chạy lần nào; first-run chờ restart-CLI + spawn-probe + anh consent.

View File

@ -1,5 +1,7 @@
# Investigator-Codebase Agent — Persistent Memory
- **S141 (07-20) adap đợt-9/10 invest 5-lane [engine: fable-clone-ensemble `wf_3b74219c-561` · 5/5 CLEAN 0-garble; em-main verify+append]:** thiết kế trio harness-{eval,refine,audit} + contract-v2 dangling + stamp + phép-8 + session-model-ĐO + sweep 14→17. ⭐ (ii)-nới-có-vết MỘT MÌNH đủ đóng dangling-head — 3/3 ca lịch-sử (S127/S133/S139) reclassify squash-benign (object-exists ∧ counter-không-lùi, `.session-counter.json:38/43/48`); tick-head LUÔN = wal-commit (4c43d74 proven) ⇒ dangling mỗi cycle = expected-drift KHÔNG tamper. ⭐ byte-safe(S125) ⟂ tolerant-EXTRACTION = 2 lỗ TÁCH — S141 em-main quote-strict regex whiff hash-có-ngoặc 3/3 suýt oan; pin mẫu `\"?([0-9a-fA-F]{8,64})\"?` vào DOC + port stamp_verify.py. ⭐ K1 gitignore PASS không cần whitelist (`!.claude/**` :83 negation cover sessions/ — S116-fear STALE trong memory-pack). ⭐ Roster-count 3 TẦNG khi sweep: hardcode-prose (11 site, co-land R3-M2) / GLOB-script (6 auto-adapt 0-đổi) / B1-pointer (0-đổi); `workflows/README:64` \"9 roster\" stale-cổ — grep literal \"14\" MISS ⇒ grep same-CLASS mọi roster-ref. ⭐ Ranh SẮC NHẤT trio: refine⟂lead-omission — discriminator WHOSE-memory (LEAD hot-feed=omission / AGENT corpus=refine), cần owner ratify. hmw parallel() KHÔNG tuần-tự-hoá ⇒ trio = 3 spawn riêng + lead scribe per-con. Annex phép-8 mốc=da349fc 2026-07-17; đo-thử đầu PASS (2 gộp-closeout hậu-baseline có 2 bù). Tag `[s141, adap-dot-9-10, trio-design, squash-benign, tolerant-extraction]`
- **S134 (07-17) PE lũy-kế tạm-tính invest [fable-real Agent-lẻ · #53 return-garble → sub-file 8-phần 20.7KB CỨU TRỌN (lần 3 pattern thắng); entry on-behalf em-main] `[engine: fable-real-single]`:** ground-truth LẬT KHUNG đề bài — row1 "NS trình duyệt trước" ĐÃ gồm ChoDuyet sẵn (`PeBudgetAccumulator.cs:42-48`), gap thật = row2 "đã chọn thầu" (DaDuyet+IsWinner :50-60) + row5/6 dẫn xuất ⇒ spec thu hẹp **0-mig/0-endpoint/0-đụng-chính-xác**. Map 3-bản predicate: helper runtime DUY NHẤT + live `:962` + snapshot `:1018` đều GỌI CHUNG helper (không duplicate) + backfill Mig 67 one-time. Phase-set propose: PriorPes NOT IN {7,99} · delta2 NOT IN {1,7,99}+winner (GỒM ChoDuyet=gap) · delta1 NOT IN {1,7,10,99} (no-double-count); D1 nháp list-only (S89 riêng-tư `:893-898`). 2 errata lead bắt: path thiếu `Dtos/` + hash-value stale (`47c97df1` vs lead-đo `5534addb` — kết luận identical vẫn ĐÚNG). Learned: **đề bài UAT "X không được tính" phải đo predicate THẬT từng-row trước khi nhận khung** — row1 vs row2 khác semantics, gộp chung "lũy kế" là bẫy; PeWorkflowPanel `:510 shouldPickPrice` = predicate "đang duyệt CUỐI" tái dụng được. Tag `[s134, luyke-tam-tinh, invest-lat-khung, 53-garble-diskfile-lan3]`
> **Persistent diary cross-session.** Auto-injected first ~200 lines at spawn (L1 HOT).

View File

@ -140,7 +140,7 @@
]
},
"measured": {
"_note": "S107 2026-07-10 FRESH re-measure (scripts/measure-agent-memory.ps1) post +office-document 12th sub (roster 11->12). Supersedes S98 snapshot (deltas S99-S107 transcribed: cicd +#489 run-record, tooling S106 self-compact 19.7->16.9KB L1 + 30.3KB archive, harvest 18.1KB over self-target 17.1K [self-compact next session], inv-cb/reviewer archive growth). byte-governor snapshot (l1_hot = file-size-on-disk); cross-check token_governor for the orthogonal token-thread. WATCH: cicd l2_index 18774/20480 (~92% cap) -> when nears cap, gist-of-index or split, do NOT drop markers. S138 ADDENDUM (2026-07-17, closeout-S137 tra INFORM view-audit 'measured-block thieu 2 row H24'): +2 row H24 do TUOI (roster 12->14); cac row KHAC van la snapshot S107 va MOT SO DA TROI (do S138 vd: cicd l1 20180->22607, inv-cb 17229->23420, reviewer 20071->17506) -- KHONG hand-edit tung so le (rule dau file), full re-sync bang script @monthly drift-audit 2026-08-01.",
"_note": "S107 2026-07-10 FRESH re-measure (scripts/measure-agent-memory.ps1) post +office-document 12th sub (roster 11->12). Supersedes S98 snapshot (deltas S99-S107 transcribed: cicd +#489 run-record, tooling S106 self-compact 19.7->16.9KB L1 + 30.3KB archive, harvest 18.1KB over self-target 17.1K [self-compact next session], inv-cb/reviewer archive growth). byte-governor snapshot (l1_hot = file-size-on-disk); cross-check token_governor for the orthogonal token-thread. WATCH: cicd l2_index 18774/20480 (~92% cap) -> when nears cap, gist-of-index or split, do NOT drop markers. S138 ADDENDUM (2026-07-17, closeout-S137 tra INFORM view-audit 'measured-block thieu 2 row H24'): +2 row H24 do TUOI (roster 12->14); cac row KHAC van la snapshot S107 va MOT SO DA TROI (do S138 vd: cicd l1 20180->22607, inv-cb 17229->23420, reviewer 20071->17506) -- KHONG hand-edit tung so le (rule dau file), full re-sync bang script @monthly drift-audit 2026-08-01. S141 ADDENDUM (2026-07-22, adap dot-9/10 lane W-A): +3 row trio-memory (harness-eval/refine/audit) do TUOI bang script SAU khi 3 seed MEMORY.md ton tai (roster tang tu 14 len 17) -- KHONG uoc-luong, KHONG hand-edit; cung tien-le S138 addendum. 3 row nay = SEED-STATE (vai chua chay lan nao: first-run cho restart Claude Code + consent anh @session-start §2.1.9 / session-end §L.b(k)) nen l1_hot ~1.5KB va l2_* = 0 la DUNG, khong phai under-fill. Cac row KHAC van la snapshot S107/S138 va MOT SO DA TROI tiep (do S141 vd: cicd 22607, inv-cb 26624, reviewer 24024, harvest 14899, impl-be 19449, impl-fe 15951, test-spec 22140, tooling 15884, lead-view 4920, lead-omission 6665) -- van CHO full re-sync bang script @drift-audit 2026-08-01, KHONG va le tung so. KHONG them cadence-key va KHONG them block harness_trio: nhip bo-ba song o nghi-thuc (session-start §2.1.9 + session-end §L.b(k)) + persona, KHONG o file config nay (tron voi h24_cadence = 2 dong-ho lech nhau).",
"cicd-monitor": { "l1_hot": 20180, "l2_verbatim": 209666, "l2_index": 18774, "l2_gist": 29737, "rollout": "done (S107 +Run#489 record + #69 two-mode amend; L1 20.2KB — curate candidate next closeout)" },
"investigator-codebase": { "l1_hot": 17229, "l2_verbatim": 125118, "l2_index": 12384, "l2_gist": 27297, "rollout": "done (gist 2026-06 distill-gen:2 -- double-distill guard target)" },
"reviewer": { "l1_hot": 20071, "l2_verbatim": 100078, "l2_index": 11442, "l2_gist": 19114, "rollout": "done (S98: +4 diary entries V1/V3/Fidelity-gate spawns)" },
@ -154,6 +154,9 @@
"database-agent": { "l1_hot": 7388, "l2_verbatim": 0, "l2_index": 0, "l2_gist": 0, "rollout": "n/a (no archive; +S97 on-behalf record S98)" },
"office-document": { "l1_hot": 3323, "l2_verbatim": 0, "l2_index": 0, "l2_gist": 0, "rollout": "n/a (S107 seed + first spawn-test entry — VERIFIED-RUNTIME same-session; no archive yet)" },
"lead-view-auditor": { "l1_hot": 3332, "l2_verbatim": 0, "l2_index": 0, "l2_gist": 0, "rollout": "n/a (S138 add — closeout-S137 tra INFORM view-audit; diary seed S132 retro-harvest, light-audit #1 S124 + #2 S137; do tuoi measure-agent-memory.ps1; no archive)" },
"lead-omission-auditor": { "l1_hot": 3691, "l2_verbatim": 0, "l2_index": 0, "l2_gist": 0, "rollout": "n/a (S138 add — closeout-S137 tra INFORM view-audit; diary seed S132 retro-harvest, light-audit #1 S124 + #2 S137; do tuoi measure-agent-memory.ps1; no archive)" }
"lead-omission-auditor": { "l1_hot": 3691, "l2_verbatim": 0, "l2_index": 0, "l2_gist": 0, "rollout": "n/a (S138 add — closeout-S137 tra INFORM view-audit; diary seed S132 retro-harvest, light-audit #1 S124 + #2 S137; do tuoi measure-agent-memory.ps1; no archive)" },
"harness-eval": { "l1_hot": 1547, "l2_verbatim": 0, "l2_index": 0, "l2_gist": 0, "rollout": "S141 seed - first-run pending restart+consent; re-measure @drift-audit 2026-08-01 (do TUOI measure-agent-memory.ps1 sau khi seed MEMORY.md ton tai; no archive)" },
"harness-refine": { "l1_hot": 1616, "l2_verbatim": 0, "l2_index": 0, "l2_gist": 0, "rollout": "S141 seed - first-run pending restart+consent; re-measure @drift-audit 2026-08-01 (do TUOI measure-agent-memory.ps1 sau khi seed MEMORY.md ton tai; no archive)" },
"harness-audit": { "l1_hot": 1513, "l2_verbatim": 0, "l2_index": 0, "l2_gist": 0, "rollout": "S141 seed - first-run pending restart+consent; re-measure @drift-audit 2026-08-01 (do TUOI measure-agent-memory.ps1 sau khi seed MEMORY.md ton tai; no archive)" }
}
}

View File

@ -1,5 +1,6 @@
# Reviewer Agent — Persistent Memory
- **S141 (07-20) fable-real gate SPEC adap đợt-9/10 — GO-WITH-FIXES 0C/7M/9n `[engine: fable-real · model claude-fable-5 spawn-param-thắng data-point mới · wf_25210715-f7d · 0-garble, sub-file ghi-trong-lúc-làm]`:** spec-review 5-trục trên spec THIẾT-KẾ (chưa có diff) vẫn bắt 7M thật. ⭐ M3-class: **2 site roster-count sống nằm NGAY TRONG 2 file spec ĐANG sửa** (session-start:97 + session-end:142 "4 monitor") — 5-lane invest + lead đều sót vì grep token "roster 14" MISS site viết "10 … + 4 monitor" ⇒ **sweep same-CLASS (mọi cách viết count) không chỉ literal**. ⭐ M2-class: detector MỚI phải kiểm luật owner TẠI CHỖ trước khi quyết TOTAL (governance-detectors.ps1:65-68 "brand-new net → INFORM-sink day-one" — spec quyết ngược không reconcile). ⭐ M7-class: sửa prereq-stale (b) mà bỏ (a) cùng-đợt-về = tạo stale MỚI cùng class đang vá. ⭐ M1: FI ca "giảm-counter" bất-khả-FLAG nếu detector thiếu nhánh regress — acceptance phải falsify được TỪNG biến-thể. Fidelity-check 7 thư: FAITHFUL + 2 form-deviation có-chủ-đích (alias-model n1 · Light-skip M4 → carve-out-class cần lưới+khai-nấc). stamp_verify.py hub tolerant từ Jul-3 — thư 07-17 chỉ codify cái đã chạy. Tag `[s141, spec-gate, same-class-sweep, inform-sink-day-one, prereq-pair-flip]`
- **[→ archive/2026-07.md @S140] S139 (07-18) L3 review wave adap-3-bản 8-file — GO 0C/0M/3-LOW-nit `[opus-worker]`:** re-measure MỌI acceptance từ git HEAD (không tin sub/EM); fault-inject C6 8/8 + H24-4 8/8 byte-exact + live 45/exit-0. **m-3 no-self-exempt: chấm cả edit vào file CHÍNH VAI MÌNH.** Nhãn "measured" sống qua gate CHỈ KHI falsify-path tồn-tại + reviewer CHẠY + nó đứng (2/2 grounded). Marker-collision `^`-anchor SỐNG trên HANDOFF.md thật. Tag `[s139, l3-go, measured-label-grounded, m3-no-self-exempt]`
- **[→ archive/2026-07.md @S140] S134b (07-17) pre-commit review lũy-kế tạm-tính — PASS 0C/0M/4-nice `[opus-worker]`:** 7/7 trục; **bài #81 CỦA CHÍNH MÌNH (S133) implementer áp đúng** (5/5 finalize→DaDuyet qua helper). "insertion-only + `grep '^-'`=0" chắc hơn diff-mắt; D4-persist = trace TỪNG caller tới SaveChanges (Add-không-save = row ma). Tag `[s134b, precommit-pass, 81-ap-dung]`
- **[→ archive/2026-07.md @S134] S133 (07-17) pre-commit pe-budget-freeze — PWF 0MUST/2SHOULD:** literal-grep 4-site enum PASS nhưng grep `.Phase = <biến>` lòi 2 đường GIÁN TIẾP bypass helper (`WorkflowService:308` + `DbInitializer:1323`). **RULE "mọi nhánh set X" grep CẢ assignment-qua-BIẾN — #81 indirect-assignment.** Tag `[s133, indirect-assignment-grep, 81-class]`