[CLAUDE] Docs: adopt Harness-16 MFE (memory-fidelity-EVAL) — 2-workflow + email AI_INFRA
All checks were successful
Deploy SOLUTION_ERP / build-deploy (push) Successful in 5m2s

Adopt AI_INFRA Harness-16 (3 broadcast 2026-06-29) qua 2-workflow mandate:
WF1 implement wf_4c63e1bd-99e + WF2 review wf_13e3d35a-023 (PASS 0-blocking).

MFE = coverage/retention eval (do nap-vs-nho-vs-dung bang SO DO). DISTINCT
voi H6.7 memoryDelta-routing-fidelity (vocab-fork WF1 reviewer bat duoc).

Built (em-main single-writer, 0 production code):
- scripts/mfe-eval.ps1 deterministic NO-API (ASCII #30, exit 0): LEAD coverage-FIT
  (token-RANGE, cap live-read) + age-band flag-not-cut + Goodhart-anchor strikes/RCA;
  SUB per-role coverage do-that (prose->N/A khong 0%); sub-workflow N/A. Smoke 3-tier PASS.
- memory-budget.json :mfe config + eval/mfe/ (seed sample-questions stable-id + README)
  + engine §H + artifact-row + C3-comment + wire session-start §2.1.6 / session-end §L.b(c)
  opt-in + agents/README S93. Judge layer = SCAFFOLD-only (honest nac).

adap-report harness-16-mfe + harness-15-v3 (covered/folded) + email outbox/ai_infra.
AS-10 dogfood: WF1 residual-write caught+reverted. State GIU NGUYEN (Mig 59 · 88 · 434 · gotcha 76).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
pqhuy1987
2026-06-29 18:35:14 +07:00
parent 8ee8f3e248
commit 958009858e
15 changed files with 602 additions and 1 deletions

View File

@ -0,0 +1,27 @@
---
broadcast: 2026-06-21-Governance-harness-15-v3-sub-load-channels
from: ai_infra
project: se (SOLUTION_ERP)
date_applied: 2026-06-29 (S93, retro-documented)
status: COVERED (S83 channel-model) + FOLDED-into-H16 (sub-measurement) + DOCUMENTED (duplicate-MEMORY.md trap)
reviewer_gate: n/a (delta type:update, re-verify only the 2 new parts)
---
# Adap-report — Harness-15-v3 (sub memory-load channels) → SOLUTION_ERP
## Nấc: COVERED + FOLDED (KHÔNG re-apply riêng)
Broadcast delta type:update làm rõ **3 kênh nạp ký-ức của sub** (persona auto / diary KHÔNG-auto / memory-pack lead-bơm) + **2 lưu-ý** (workflow-sub sandbox phụ-thuộc-hoàn-toàn memory-pack · bẫy trùng-tên MEMORY.md) + **báo-%-sub** @session-start/end. Đối-chiếu SE:
| Phần broadcast v3 | SE status | Nơi |
|---|---|---|
| **3-kênh model** (persona auto · diary not-auto · memory-pack injected) | ✅ **COVERED S83** | `memory-budget.json:spawn_fill_directive` ("MEMORY.md byte-cap CHỈ là 1 lát; spawn-prompt nạp phần còn lại") + `token_governor.workflow_sub_note` (MEMORY-PACK slice hmw.js inject) + engine §G.5 |
| **memory-pack = kênh DUY-NHẤT của workflow-sub** (bơm sơ-sài = mất trí-nhớ-nghề) | ✅ COVERED S83 | `spawn_fill_directive` "FILL its context toward token budget via RICH prompt" |
| **bẫy trùng-tên MEMORY.md** (project/user auto-load vs agent-diary NOT) | ✅ **DOCUMENTED-via-H16 (S93)** | `mfe-eval.ps1` SUB đọc `agent-memory/<role>/MEMORY.md` KHÔNG project/user — `budget.json:mfe.sub_denominator._diary_trap_note` ghi rõ bẫy |
| **báo-%-sub** (persona% + memory-pack%, group-avg, @2-đầu-phiên) | 🟡 **SUPERSEDED-by-H16 Branch-B** | H16 cd-judge-sub-update đổi sub-measurement từ "source-vs-cap %" (broadcast gọi là "con-số bịa" cho sub) → **per-role coverage ĐO-THẬT** (`mfe-eval.ps1` SUB). Successor tốt hơn báo-%-sub raw. |
## Kết luận
KHÔNG cần workflow-adopt riêng cho v3: **cấu-trúc 3-kênh đã COVERED S83**; **bẫy-trùng-tên + sub-measurement = giải qua H16** (adap-report `2026-06-29-Governance-harness-16-mfe.md`, WF1+WF2 run-id). Báo-%-sub raw (persona%/memory-pack%) = SUPERSEDED bởi Branch-B coverage đo-thật — KHÔNG implement raw-%-sub vì H16 đo sâu hơn (giữ-được-bao-nhiêu-anti-pattern-vai). Form tự-quyết per §F4.
State GIỮ NGUYÊN. 0 production code.

View File

@ -0,0 +1,67 @@
---
broadcast: 2026-06-29-Governance-harness-16-{memory-fidelity-eval, mfe-update, cd-judge-sub-update}
from: ai_infra
project: se (SOLUTION_ERP)
date_applied: 2026-06-29 (S93)
status: EXECUTED + runtime-smoke (deterministic block) · SCAFFOLD (judge layer) · VERIFIED-pending-restart (command wire)
reviewer_gate: PASS (WF2 3-lane: code-gate + cross-harness + honesty, run-id wf_13e3d35a-023)
---
# Adap-report — Harness-16 Memory-Fidelity-EVAL (MFE) → SOLUTION_ERP
## TL;DR (nấc honest)
Adopt **memory-fidelity-EVAL (MFE)** = đo *đã-nạp ≠ nhớ-ra ≠ dùng-đúng* bằng SỐ ĐO, KHÔNG ước cảm-tính. **Deterministic ($0) block = BUILT + WIRED + runtime-smoke S93** (chạy thật, 3-tier, exit 0). **Judge layer (recall/apply) = SCAFFOLD-only** (seed + stub, chưa scorer — số CHƯA có nghĩa, đúng thiết-kế). Function-floor mục 3-5 của broadcast = ĐẠT; form tự-quyết (SE roster 11-agent). 2-workflow mandate ĐẠT (WF1 implement + WF2 review, run-id bằng-chứng).
## Function-floor coverage (broadcast mục 3 — SÀN bắt buộc)
| Floor | SE implementation | Nấc |
|---|---|---|
| **(1) Mẫu-số "bắt-buộc-nhớ" deterministic, status-field KHÔNG grep, dedup** | `mfe-eval.ps1` LEAD: marks Active(-High) (`ACTIVE-MARKS.md` status-col) + AS-class + Active-Guards (`error-ledger.md` Verified-col) + recurring-gotchas (`gotchas.md` recurrence-token). **Dedup deterministic by cross-reference** (gotcha/guard mà AS-row trỏ `#N`/`AS-N` → gộp; `merge_guard_to_as` toggle). Hiện = **29 item** (4 mark + 13 AS + 5 net-guard + 7 net-gotcha). | ✅ executed + WF2 re-derived EXACT |
| **(2a) Coverage%** (set có vừa ngân-sách hot không) | byte-span → **token-RANGE** [bytes/4 .. bytes/3.0] vs cap **live-read** `token_governor.tier1_hotfeed_tokens.lead_tokens` (220K). Hiện 29 item ~2.5-3.3K tok = **1.5% worst-case → FIT thừa**. | ✅ |
| **(2b) Effective%** (thực-nhớ/dùng — cần trọng-tài) | Judge scaffold (Branch A) — **SCAFFOLD-only**, số CHƯA có nghĩa (last-resort, đúng broadcast). | 🟡 scaffold |
| **(2c) phân-tầng-tuổi (age-band)** | FLAG `old-but-still-required`, **KHÔNG cắt** (mark `RC-…10-29-11`). drop chỉ khi status đổi. | ✅ |
| **(3) Neo Goodhart** (đối-chiếu điểm-nhớ vs lỗi-tái-phát thật, KHÔNG self-grade) | in `strikes_total=21` + `RCA_entries=9` (error-ledger) cạnh coverage; strikes tăng + coverage cao = điểm nói dối (WARN cross-run via `.mfe-state.json`). | ✅ |
| **(4) Per-tier + opt-in command param** | `-Tier lead/sub/all` + `-Judge`. Wire **opt-in** `session-start §2.1.6` + `session-end §L.b(c)` (param `eval`, no-param = như cũ). Baseline đầu + retention cuối → chênh = rot trong-phiên. | ✅ executed-file (VERIFIED-pending-restart) |
| **(5) Quyết-định 2-ca** (thiếu-CHỖ→TĂNG budget / rot→SẮP-XẾP-LẠI) | engine §H3 + README. 🔴 con-số budget = **quyền anh** (owner-authority); MFE chỉ báo. | ✅ |
## Sub-branch (mfe-update + cd-judge-sub-update)
| Floor | SE | Nấc |
|---|---|---|
| **trần đọc-LIVE single-source** (không hardcode) | `lead_tokens` live-read từ budget.json (B1 derived-trỏ-canonical; số đã 60K→200K→220K nên hardcode = rot). | ✅ WF2-proven |
| **source-vs-cap = N/A cho sub-tier** | SUB-WORKFLOW (ephemeral) = N/A by-design (kênh ký-ức = memory-pack lead bơm). | ✅ |
| **Branch A judge framework** (sample-q + stub scorer + reader, no-API, opt-in, cadence) | `eval/mfe/sample-questions.json` (12 câu **stable-id anchored** RC/gotcha#/AS#, immutable, time-stamped — gieo NGAY) + `-Judge` stub (scorer RỖNG). | 🟡 scaffold |
| **Branch B per-role sub-coverage ĐO-THẬT** (denom role-file anti-pattern, numer diary, content-word KHÔNG leading-verb) | `mfe-eval.ps1` SUB: denom = numbered anti-pattern/NEVER trong `agents/<role>.md`; numer = diary `agent-memory/<role>/MEMORY.md` (KHÔNG project/user MEMORY.md — bẫy H15-v3); match = exact-id OR ≥2 content-word sau stop-list. **ĐO-THẬT**: impl-backend 94% · impl-frontend 85% · reviewer 88%. | ✅ executed + WF2 re-derived |
| **bẫy leading-verb (verb-only ăn 9/9 giả)** | stop-list (EN+VN verb) + NFD-strip-diacritics → verb-only = 0 content-word = MISS. **WF2 adversarial-probed: "NEVER commit push"→0 word→no false-max.** | ✅ probed |
| **vai prose-only / phù-du = N/A có lý-do (KHÔNG 0%)** | den=0 → "N/A (no numbered/NEVER block)" KHÔNG "0%" (div-by-0 guarded). 3 role prose-only (database-agent/harvest/tooling). | ✅ (refinement em-main sau smoke) |
## Tailored (form tự-quyết — SE-specific)
- **Denominator = chính governance của SE** (4 mark Active-High + 13 AS-class + Active-Guards + recurring-gotchas) — trùng `value_protect.patterns`**CỐ Ý** (cùng tập giá-trị-cao, mark `RC-…10-29-11`), KHÔNG double-count (dedup by AS cross-reference).
- **Vocab-fork resolved (WF1 reviewer bắt — BLOCKING):** "memory-fidelity" ĐÃ là H6.7 `memoryDelta`-routing-fidelity. → đặt tên **MFE = memory-fidelity-EVAL** ở 4 site, ghi alias-map §H, **KHÔNG seed `$aliasSets`** (2-khái-niệm-1-từ, seed sẽ flag-sai). C3-comment chống maintainer seed nhầm.
- **READ-ONLY scoped honest:** MFE đọc `token_governor` (single-source) KHÔNG ghi; CÓ ghi 1 file `.mfe-state.json` (strikes cross-run) — `honest_caveats.read_only_scope` nói rõ "KHÔNG phải writes-nothing".
## 2-workflow mandate (Harness-9) — ĐẠT
- **WF1 IMPLEMENT** `wf_4c63e1bd-99e` (3 agent: lead-denominator-spec + sub-role-denominator + cross-harness-map) → ground-truth. **Lesson:** sub-agent #53-truncate (return rỗng) NHƯNG ghi finding xuống diary TRƯỚC → **recover-from-disk**. **AS-10 containment fire:** 3 WF1-agent self-write agent-memory (return-only violation) → em-main git-diff bắt + revert (giữ cicd-monitor PE-harvest hợp-lệ). Dogfood: memory-governance hoạt-động đúng giữa lúc adopt memory-eval.
- **WF2 REVIEW** `wf_13e3d35a-023` (3 lane: code-gate + cross-harness + honesty) = **PASS 0-blocking**. RETURN-ONLY honored (0 tracked write — instruction-fix sau WF1). code-gate **re-derived denom 29 to-the-digit** + leading-verb-trap adversarial-probed-defeated. honesty: 5 floor (a-e) đủ + **live numbers KHỚP §H prose** (S81 stale-config trap KHÔNG tái diễn).
## Honest caveats (broadcast mục 5 — đưa vào doc, không giấu)
1. **Token = RANGE** (char/4 ≠ token thật; VN ~3.0-3.5 byte/tok). FIT dùng worst-case bytes/3.0. **CHƯA đo bằng tokenizer thật** của model → hệ-số còn bất-định; 1.5% nằm xa trần nên kết-luận FIT an-toàn, nhưng đuôi-sổ phình thì theo-dõi.
2. **Judge = SCAFFOLD, số ĐẾN SAU.** recall/dùng-đúng CHƯA có nghĩa tới khi (a) sample-q đủ-chín-tuổi VÀ (b) trọng-tài độc-lập khác-phiên. Tự-chấm-cùng-phiên = vô-nghĩa. KHÔNG nhận "đã đo độ-nhớ".
3. **Age = FLAG không cắt** (mark `RC-…10-29-11`).
4. **Deterministic = executed + runtime-smoke**, KHÔNG "đã đo retention toàn-hệ". LEAD = coverage/FIT (space), KHÔNG retention.
5. **+1 conservative dedup bias** (WF2 minor): guard `run_in_background` map khái-niệm AS-5 nhưng Counters ghi `looks-frozen` (no AS-5 ref) → giữ net-extra (literal cross-reference, đúng nguyên-tắc deterministic). Tighten = data-fix ledger (defer).
## Evidence
- Artifact: `scripts/mfe-eval.ps1` (302 dòng, NO-API, ASCII #30, exit 0) · `.claude/agent-memory/memory-budget.json:mfe` config · `eval/mfe/{sample-questions.json,README.md}` · engine `§H` + artifact-row · `governance-detectors.ps1` C3-comment · wire 2 cadence · `agents/README` S93 · `.gitignore` state-file.
- Smoke: 3-tier exit 0; denom 29/220K=1.5%; SUB impl-backend 94%/impl-frontend 85%/reviewer 88%; 3 prose-role N/A; Goodhart strikes 21/RCA 9.
- 0 production code. State THẬT GIỮ NGUYÊN (Mig 59 · 88 bảng · 434 test · gotcha 76 · bundle admin `CDn40vpV`/user `CoPmPBg7`).
- ⚠️ restart CLI (command `.md` no hot-reload → MFE opt-in runtime).
## Brutal-honest / phản-biện (§M)
KHÔNG có. Broadcast fit SE (SE có đủ governance-corpus làm denominator + 11-agent roster làm Branch B). 8 broadcast cũ chưa-match-tên (checklist-*/v2.0/h10-detector/h14-adopt) = verify-covered S72/S75/S79/S81 (name-drift, không re-apply). H15-v3-sub-load-channels = covered-S83 + fold-vào-H16 (report riêng).

View File

@ -21,6 +21,7 @@
| PHẦN E — User-Mark (H-12/13, canonical §P) + RC-signature | doc này §E (cơ-chế P1-P10) + `.claude/governance/ACTIVE-MARKS.md` (sổ-cái + display) + 4 lệnh `/user-mark-*` (interface) + `session-start §2.1.4`/`session-end §L.b(h)` (display) | convention (report-trước-đóng-dấu P4) + mechanized (display gắn-lệnh-phiên + tool-deny settings P9) |
| PHẦN F — Harness-14 Eval/Budget/Outcome | doc này §F (3-mức maturity + method) + `eval/` golden-set harness (F.2) + `memory-budget.json`/`measure-agent-memory.ps1` (F.3 = PHẦN A) | eval = executed-file + convention (manual) · budget = mechanized ALIGNED · outcome-correlation/hit-rate = Mức-2 tool-pending-data |
| PHẦN G — Harness-15 memory-budget per-agent (token) **+v2 §G.4 +v3 §G.5** | doc này §G (SÀN floor + 3-tầng token + **§G.4 hot-feed-lớn / L2-L3-bỏ-trần / %-print / ranh-giới-vai-trò** + **§G.5 full-parity 220/60/50 + spawn-fill-to-budget**) + `memory-budget.json` (`harness_floor` + `token_governor` v3 + `spawn_fill_directive` + `archive_gate.value_protect`) + `session-start §2.1.5`+**§2.1.6** + **`session-end §L.b(c)`** | 2-governor mechanized (byte ⟂ token config) + sàn-chức-năng = convention; **v3 (1)=config · (2)(3)=convention** |
| PHẦN H — Harness-16 MFE (memory-fidelity-**EVAL**) | doc này §H (coverage/retention method + maturity-tier) + `scripts/mfe-eval.ps1` (deterministic NO-API) + `eval/mfe/` (seed + README) + `memory-budget.json` (`mfe` config) + **READS** `token_governor` (single-source, never writes) + `session-start §2.1.6`/`session-end §L.b(c)` opt-in | deterministic $0 = executed-file + runtime-smoke (S93) · judge = **SCAFFOLD-only** (Mức-2 chờ age+independent-judge) · READS-not-writes budget |
| Canonical state (nguồn-chuẩn) | `docs/STATUS.md` CURRENT STATE table | — |
---
@ -207,6 +208,30 @@ SE đã có RAG golden-set harness (KHÔNG phải gap): `eval/golden-set-solutio
---
## PHẦN H — Harness-16: Memory-Fidelity-EVAL (MFE) — đo nạp-vs-nhớ-vs-dùng (🔴 FUNCTION-FLOOR + 🟡 method)
> **Adopt S93 (2026-06-29)** — AI_INFRA 3 broadcast `2026-06-29-Governance-harness-16-{memory-fidelity-eval,mfe-update,cd-judge-sub-update}`. Canonical artifact → `scripts/mfe-eval.ps1` + `eval/mfe/` + `memory-budget.json:mfe` (**KHÔNG copy luật số ở đây — B1**).
>
> 🔴 **VOCAB (C3 — bắt buộc tách nghĩa):** "memory-fidelity" ĐÃ tồn tại ở **H6.7 = `memoryDelta`-routing-fidelity** (delta về đúng `agent-memory/<role>` single-writer). Harness-16 = **memory-fidelity-EVAL (MFE) = coverage/RETENTION** (hot-feed có giữ-được tập must-remember không). 2 nghĩa khác nhau — luôn gọi **MFE** cho nghĩa H-16. Cặp alias đã ghi `governance-detectors.ps1` C3 `$aliasSets` (ghi-nhận, KHÔNG flag drift).
**Vì sao:** `%-print` (§G) đo *đã-NHÉT bao nhiêu vào* Tầng-1 (ước theo độ-dài). MFE đo tiếp: agent có **giữ/dùng** cái đã nhét không — **đã-nạp ≠ nhớ-ra ≠ dùng-đúng**.
**H1 — Sàn deterministic ($0, NO-API, `mfe-eval.ps1`):**
- **LEAD Coverage-FIT** — must-remember denominator (status-field, KHÔNG grep): marks Active(-High) (`ACTIVE-MARKS.md`) + AS-class + Active-Guards (`error-ledger.md`) + recurring-gotchas (`gotchas.md`), **dedup** (gotcha/guard mà AS-row trỏ `#N`/`AS-N` → gộp vào AS; `merge_guard_to_as` toggle). FIT = byte-span → **token-RANGE** [bytes/4 .. bytes/3.0] vs cap **live-read** `token_governor.tier1_hotfeed_tokens.lead_tokens` (S93: 29 item ~2.53.3K tok / 220K = 1.5% → FIT thừa).
- **age-band** — FLAG `old-but-still-required`, **KHÔNG cắt theo tuổi** (mark `RC-…10-29-11`); drop chỉ khi status đổi.
- **Goodhart-anchor** — in `strikes_total` + `RCA_entries` (error-ledger) cạnh coverage; strikes tăng mà coverage cao = **điểm nói dối**. KHÔNG self-grade.
- **SUB per-role coverage** — denom = anti-pattern/NEVER trong `agents/<role>.md`; numer = còn-mang trong **diary `agent-memory/<role>/MEMORY.md`** (KHÔNG project/user MEMORY.md — bẫy trùng-tên H15-v3); match = exact-id OR ≥2 **content-word** sau stop-list (đánh bại bẫy leading-verb-9/9-giả). **ĐO-THẬT** (S93: impl-backend 94% · impl-frontend 85% · reviewer 88%; role prose-only → **N/A** KHÔNG "0%"). **SUB-WORKFLOW** (fan-out ephemeral) = N/A by-design (kênh ký-ức = memory-pack lead bơm).
**H2 — Judge scaffold (Branch A, `-Judge`, OPT-IN cadence-gated):** seed `eval/mfe/sample-questions.json` (12 câu, **stable-id anchored** RC/gotcha#/AS#, immutable, time-stamped — gieo NGAY để vài tháng sau đo age-retention). Scorer **RỖNG**. 🔴 con-số nhớ/dùng **CHƯA có nghĩa** tới khi (a) câu-hỏi đủ-chín-tuổi **VÀ** (b) trọng-tài **độc-lập khác-phiên**; tự-chấm-cùng-phiên = vô-nghĩa.
**H3 — Quyết-định 2-ca:** Coverage<100%/vượt-trần = **thiếu-CHỖ → TĂNG budget** (anh quyết số); nhớ-thấp-dù-đủ-chỗ = **rot → SẮP-XẾP-LẠI** (ưu-tiên-giá-trị). Tăng-chỗ KHÔNG cứu rot.
🔴 **READ-ONLY trên `token_governor`** MFE **đọc** caps (single-source), **KHÔNG ghi/auto-tune** (owner-authority §G.4(4) coverage thấp KHÔNG được tự bơm cap).
**Honest nấc:** H1 deterministic = **executed-file + runtime-smoke S93** (chạy thật, 3-tier OK). H2 judge = **SCAFFOLD-only** (chưa scorer KHÔNG nhận "đã đo độ-nhớ"). token = **RANGE** (char/4 token thật, VN ~3.0-3.5 byte/tok). Wire = **opt-in** `session-start §2.1.6` + `session-end §L.b(c)` (no-param = như ). Cross-harness 0-conflict (additive vs §F eval-precisionG budget/archive-gate-byte/detectors-drift; trùng `value_protect` = same-set CỐ Ý).
---
## CAVEAT (trung-thực — đọc trước khi tự nhận "đã tự-bảo-trì")
- **No-OS-hook:** detector + gate chạy TRONG thân session-start/end body do em-main kích KHÔNG fully-autonomous. Đúng mức: **DÒ tự-động + toàn-diện; SỬA + GÁC dựa người-chủ-trì.**
- **Auto-WRITE luật/copy = MỐI-NGUY #1, CỐ Ý CHƯA LÀM** defer tới 2 sự-cố thật thủ-công thất-bại (hiện 0). Chọn nhánh chỉ-DÒ-NÊU-CỜ cho mọi thứ chạm luật/copy (1-sửa-sai N-chỗ-sai + phá hash broadcast đóng-băng).