From 18a4454a83bb8a4b0bb81f686a74440bfcd9e3a8 Mon Sep 17 00:00:00 2001 From: pqhuy1987 Date: Fri, 14 Aug 2026 17:21:42 +0700 Subject: [PATCH] wal: flush 20260814T1721 --- .claude/agent-memory/.mfe-state.json | 5 ++ .../harness-refine-return.md | 12 ++++ .../instrument-mfe-detail.txt | 62 +++++++++++++++++++ 3 files changed, 79 insertions(+) create mode 100644 .claude/workflows/runs/2026-08-14-S197-trio-memory/instrument-mfe-detail.txt diff --git a/.claude/agent-memory/.mfe-state.json b/.claude/agent-memory/.mfe-state.json index 2d33df53..0fc653fd 100644 --- a/.claude/agent-memory/.mfe-state.json +++ b/.claude/agent-memory/.mfe-state.json @@ -178,6 +178,11 @@ "strikes_total": 25, "rca_entries": 16, "at": "2026-08-14 16:46" + }, + { + "strikes_total": 25, + "rca_entries": 16, + "at": "2026-08-14 17:21" } ] } diff --git a/.claude/workflows/runs/2026-08-14-S197-trio-memory/harness-refine-return.md b/.claude/workflows/runs/2026-08-14-S197-trio-memory/harness-refine-return.md index 58704ad8..2ff99557 100644 --- a/.claude/workflows/runs/2026-08-14-S197-trio-memory/harness-refine-return.md +++ b/.claude/workflows/runs/2026-08-14-S197-trio-memory/harness-refine-return.md @@ -38,3 +38,15 @@ 1. read-only = thiếu tool, Bash vẫn kênh-ghi-mở — lượt này 0 lệnh ghi; backstop = lead soát git. 2. Đề-xuất ≠ đã-làm (propose-only, lead B3). 3. Tự-lợi khai: A2 ghi diary chính mình, tự buộc ≤1.502 B. 4. **Bài đắt nhất = một thất bại:** dựng gần xong cáo buộc "planner trừ lệch đơn-vị ⇒ over-drain" rồi CHÍNH phép tái dựng bác nó — nếu phát bản nháp thì đã đòi sửa đúng dòng mà việc sửa TẠO RA lỗi bị tố; đổi claim lớn SAI thành claim hẹp ĐÚNG (ES-3). 5. Số vùng-mù (16.086 · 16.008 · 10.239 · 7.037 · 466 B) = tự đọc đĩa, không phải instrument. **File liên quan:** `reinject-ledger.md` (A1) · `agent-memory/harness-refine/MEMORY.md` (A2) · `scripts/memory-archive-gate.ps1` (ES-2 `:249` · ES-3 `:114/:116/:163/:181` vs `:266-268` · ES-4 `:176`) · `commands/session-end.md:73` (ES-5) · `agent-memory/ctx-verifier/MEMORY.md` (BÁC-4/5, A2(b)). + +--- + +## 🔄 ĐÍNH-CHÍNH ES-5 (bản thay thế — vai gửi lần 2 sau khi tự bắt lỗi grep của chính nó; action/BÁC không đổi) + +**Lỗi tự khai:** bản đầu tuyên "duy nhất" trên grep giới hạn `.claude/` + lệnh nền có `| head -20` cắt ở hit 20/93 mà output không dấu hiệu bị cắt (vết sẹo S186 lặp lại). Đếm lại KHÔNG cắt: **93 hit toàn repo**, lọc file ghi-chép còn 5, chia 3 hạng: **call-site vận-hành DUY NHẤT** `session-end.md:73` · doc-home `eval/mfe/README.md:25` · 3 session-log (hạng ghi chép). + +**Chẩn đoán lật:** `:73` chạy `-Detail` "vô-điều-kiện" dưới nhãn **AUTO MỖI CLOSEOUT (owner slot (72) @S172)** — lời hứa KHÔNG bị phá. Cái vỡ = **hai đồng hồ**: `-Detail` buộc nhịp closeout ⟂ vòng AUTO giữa-2-bookend không đi qua đó ⇒ F5 mù mỗi lượt AUTO **theo thiết kế**. Lớp: *cờ phê duyệt "vô-điều-kiện" trên nhịp A, thứ cần nó chạy trên nhịp B đông hơn* — chữ "vô-điều-kiện" che mất giới hạn phạm vi, 3 lượt (S173·S192·S197) đều đọc nhầm thành "chưa ai cắm". **Địa chỉ:** lead truyền `-Detail` ở script-arm vòng AUTO, hoặc khai `① = 0 theo thiết kế`. Owner-gate: KHÔNG (slot (72) đã phủ — phạm vi thi hành). + +**✅ LEAD THI HÀNH NGAY @S197 (cùng lượt):** chạy `mfe-eval.ps1 -Detail` → `instrument-mfe-detail.txt` (exit 0) ⇒ **2 dòng MISS có TÊN**: `implementer-backend` thiếu *"Integration testing multiple components"* (= chính mục refine-A1@S185 đã archive — khớp A2(a) MFE-mù-archive-by-construction) · `implementer-frontend` thiếu *"< 30 min trivial"*. Cả hai `ledger:135-137` đã chốt **cố-ý-không-reinject** ⇒ F4 "17/18 · 12/13 đứng" = trạng-thái CHẤP NHẬN theo ledger, không phải nợ vô danh. Vòng AUTO kỳ sau: script-arm chạy `-Detail` từ đầu. + +**Ghi chú phương pháp (giữ dùng lại):** `| head -N` biến phép đếm thành MẪU mà tiêu đề vẫn đọc như phép đếm — "sự đầy đủ trông giống hệt sự đầy đủ". Phép thử rẻ: `wc -l` đếm TRƯỚC, liệt kê SAU; hai số lệch = danh sách là mẫu. diff --git a/.claude/workflows/runs/2026-08-14-S197-trio-memory/instrument-mfe-detail.txt b/.claude/workflows/runs/2026-08-14-S197-trio-memory/instrument-mfe-detail.txt new file mode 100644 index 00000000..91b69bde --- /dev/null +++ b/.claude/workflows/runs/2026-08-14-S197-trio-memory/instrument-mfe-detail.txt @@ -0,0 +1,62 @@ + +=== MFE (Memory-Fidelity-EVAL) - Harness-16 - 2026-08-14 === + (coverage/retention eval; NOT memoryDelta-routing-fidelity H6.7) + lead hot-feed cap (live) = 380000 tok | mem-sub cap = 60000 tok + +[LEAD] must-remember denominator (deduped, merge_guard_to_as=True): + marks(Active+High)=11 AS-classes=15 net-extra-guards=5 net-extra-recurring-gotchas=7 + => DENOMINATOR = 38 items (raw before dedup: marks 11 + AS 15 + guards 16 + recurring 8) + +[LEAD] Coverage-FIT (does the set FIT the hot-feed cap?): + span bytes=30945 => ~7736 - 10315 tok (RANGE, see caveat) / cap 380000 tok = 2.71% worst-case + FIT = PASS (worst-case fits; headroom huge - must-remember set is tiny vs cap) + CAVEAT: char/4 is NOT real tokens; VN-diacritic ~3.0-3.5 byte/tok => byte/4 = upper-bound headroom. + Reported as a RANGE [bytes/4 .. bytes/3.0]; FIT uses bytes/3.0 (worst). Real count inside the band. + +[LEAD] age-band (FLAG only - age=false-proxy, mark RC-...10-29-11): + marks with parseable date=11; >30d old but still Active=9 -> KEPT (status-driven, age-blind) + (guards/gotchas carry session-refs not dates -> age = status-driven only; drop on status-change, never by age) + +[LEAD] Goodhart anchor (NO self-grading - real recurring-error signal): + error-ledger: strikes_total=25 RCA_entries=16 AS-classes=15 + (rule: if strikes rise across runs while coverage stays high -> the score lies. warn-baseline=25 last_run_strikes=25) + +[SUB] per-role memory coverage (denominator = role-file anti-patterns/baseline; numerator = carried in diary): + match = exact-id OR >=2 distinct content-words after stop-list (leading-verb-only = false-max, defeated) + + back-end-reviewer-style N/A (no numbered anti-pattern / NEVER block in role-file to extract) + cicd-monitor 10/10 = 100% (MEASURED, not target-then-force) + ctx-audit 10/10 = 100% (MEASURED, not target-then-force) + ctx-curator 6/6 = 100% (MEASURED, not target-then-force) + ctx-verifier 7/7 = 100% (MEASURED, not target-then-force) + database-agent 7/7 = 100% (MEASURED, not target-then-force) + database-reviewer-style N/A (no numbered anti-pattern / NEVER block in role-file to extract) + front-end-reviewer-style N/A (no numbered anti-pattern / NEVER block in role-file to extract) + frontend-designer 2/2 = 100% (MEASURED, not target-then-force) + harness-audit 5/5 = 100% (MEASURED, not target-then-force) + harness-eval 5/5 = 100% (MEASURED, not target-then-force) + harness-refine 5/5 = 100% (MEASURED, not target-then-force) + harvest-curator 7/7 = 100% (MEASURED, not target-then-force) + MISS: ? Integration testing multiple components + implementer-backend 17/18 = 94% (MEASURED, not target-then-force) + MISS: ? < 30 min trivial + implementer-frontend 12/13 = 92% (MEASURED, not target-then-force) + investigator-api 7/7 = 100% (MEASURED, not target-then-force) + investigator-codebase 8/8 = 100% (MEASURED, not target-then-force) + lead-gap-auditor 6/6 = 100% (MEASURED, not target-then-force) + lead-stale-auditor 6/6 = 100% (MEASURED, not target-then-force) + office-document 6/6 = 100% (MEASURED, not target-then-force) + reviewer 8/8 = 100% (MEASURED, not target-then-force) + ring1-audit 5/5 = 100% (MEASURED, not target-then-force) + ring2-audit 5/5 = 100% (MEASURED, not target-then-force) + ring4-audit 5/5 = 100% (MEASURED, not target-then-force) + ring5-audit N/A (no numbered anti-pattern / NEVER block in role-file to extract) + score-count-auditor N/A (no numbered anti-pattern / NEVER block in role-file to extract) + score-counter N/A (no numbered anti-pattern / NEVER block in role-file to extract) + test-specialist 6/6 = 100% (MEASURED, not target-then-force) + tooling-auditor 8/8 = 100% (MEASURED, not target-then-force) + +[SUB-WORKFLOW] N/A by design: fan-out workflow agents (hmw.js sub--) are EPHEMERAL + (no persistent diary; their only memory channel is the lead-injected memory-pack -> source-vs-cap is meaningless). + +=== MFE done (deterministic block; READ-ONLY on budget; exit 0) ===