# adap-report — 2026-07-21-Governance-eval-quality-audit-ra-thuoc-eval-cua-eval

## 1. id-broadcast

`2026-07-21-Governance-eval-quality-audit-ra-thuoc-eval-cua-eval`
Nguồn: `AI_INFRA/broadcasts/outbox/all/2026-07-21-Governance-eval-quality-audit-ra-thuoc-eval-cua-eval.md` (55 dòng · `content_sha256: c04d39dbc8f50a1c0ce0865fe2347a930cbdc8f1e43723d852cec5eee1dbe046` · `reviewer_gate: PASS-W-FIXES 0C/1M/3m`). Đọc TRỌN @S149 2026-07-25.

## 2. nấc G-011 — **executed-partial**

| Khoản của thư | Nấc | Vì sao |
|---|---|---|
| Khoản 1 — áp KHUNG 4 câu cho TỪNG thước | **executed** | Bảng 18 dòng (7 script độc-lập + 11 check trong detector-suite) đã dựng, mỗi dòng đủ 4 câu + verdict |
| Verdict {GIỮ/SỬA/BỎ/THÊM} | **executed** | GIỮ 13 · SỬA 4 · BỎ 0 · THÊM 1-đề-xuất |
| 2 cột thẩm-quyền {owner-SỐ · owner-LUẬT} | **verified-pending (owner)** | 🔒 **ĐỂ TRỐNG có chủ-đích** — thư `:24` verbatim *"AI không tự quyết hai cột sau"*. Chờ anh điền |
| Phép thử nhanh #2 (bịa input sai → có ĐỎ không?) | **executed** | Fault-inject 3-arm trên `mfe-eval.ps1`, PASS 3/3 (chi tiết §3) |
| Phép thử nhanh #1 (3 thước "xanh liên tục" trả lời được lần bắt gần nhất trong 2 phút?) | **executed** | Cột Q1 toàn bảng; 4 thước phải khai thẳng **"chưa từng bắt"** |
| Phép thử nhanh #3 (đếm ca tầng-kiểm lật tầng-đo 3 phiên gần nhất) | **n-a lượt này** | Chưa đo — khai thẳng, không suy từ số hub |
| Khoản 3 — 6 chỗ vá "AI-tự-sửa" của hub | **n-a** | Đó là việc hub làm trên máy hub; SE áp KHUNG rồi tự đo, KHÔNG chép số/chép vá (thư `:55`) |

🔴 **KHÔNG claim `verified`** — `verified` do AI_INFRA `/adap-audit` chấm cross-repo.

## 3. evidence (đo THẬT)

**Artifact chính — bảng eval-của-eval:**
`.claude/workflows/runs/2026-07-25-S149-adap-backlog/sub-apply-L5-evalcuaeval.md` (**18.426 B**) — bảng đầy đủ nằm ở đó, report này trỏ sang (tránh nhân đôi nội dung).

**Bộ thước đã rà — 18 dòng:** `mfe-eval` · `applied-eval-nokey` · `spawn-model-audit` · `nhip-no-probe` · `distill-shard-probe` · `measure-agent-memory` · `closeout-sentinel` + C1-gotcha · C1-wikilink · C2/B3 · C3 · C4 · C5 · C6 · C9 · C10 · C11 · H24-2 (trong `scripts/governance-detectors.ps1`, HEAD `72d2d1b`).

**Số đo live 2026-07-25** (`scripts/governance-detectors.ps1`, TOTAL = 46) — kể bằng THÀNH-PHẦN, không bằng tổng:

```
46 = 24 C1-wikilink + 15 C2-derived-stale + 3 H24-2-carry + 3 C3-vocab-fork + 1 H24-1-title
```

**Fault-inject THẬT — `mfe-eval.ps1` (commit `295c70c`), 3 arm trên cây tạm qua `-RepoRoot`:**

| ARM | Bơm | FIT | GOODHART-WARN | Kết |
|---|---|---|---|---|
| 0 negative-control | — (bản sao sạch) | PASS | no-warn | ✅ im đúng lúc sạch |
| A | `.mfe-state.json.strikes_total` 23 → 3 | PASS | **FIRED** | ✅ ĐỎ đúng |
| B | `token_governor…lead_tokens` 380000 → 100 | **OVER** | no-warn | ✅ ĐỎ đúng |

⇒ `mfe-eval` **có RĂNG 2/2 nhánh**, không phải "xanh-vì-mù". Đây là thước **chưa từng bị fault-inject** (hit gần nhất `adap-reports/2026-06-30-…harness-17-memory-self-improvement.md:49` chỉ chứng `exit-0 KHÔNG vỡ` = happy-path).

**2 khiếm-khuyết bắt được trong chính đợt rà:**

1. 🔴 **Dạng tự-nói-chuyện THỨ 5 — "thước tự ăn nhân-chứng của mình"** (ngoài 4 dạng hub liệt).
   `scripts/mfe-eval.ps1:193` đọc `$lastStrikes` từ state → `:205-209` `WriteAllText` **ghi đè ngay** state. ⇒ sau bất kỳ lần chạy nào, `last == current` ⇒ **GOODHART-WARN không thể nổ** nữa. Ai chạy MFE "chỉ để xem" là **đốt mất cửa-sổ cảnh-báo** của lần chạy chính-thức kế tiếp.
   Bằng chứng sống, do chính lượt này gây ra: lần chạy baseline làm `git status` hiện ` M .claude/agent-memory/.mfe-state.json` (`"at": 2026-07-22→2026-07-25`, `"rca_entries": 12→14`) — **đã `git checkout --` hoàn nguyên**. Cũng lật một tự-khai: `:16` ghi *"a measure-and-report tool"* nhưng write-ops = **2** (script DUY NHẤT ghi trong 8 thước đọc-only đã quét).

2. 🔴 **H24-2 carry-age — dạng (d) chú-thích-tự-mâu-thuẫn, xác nhận trong code.**
   `governance-detectors.ps1:909` phát cờ bằng `Write-Flag` ⇒ **tính vào TOTAL**, trong khi nội-dung cờ ghi `[INFORM]` + `"INFORM-only - no action forced"`, section-title `:820` ghi `(INFORM-only)`, docstring `:24` ghi INFORM-only — còn roster INFORM-ONLY ở `:1818` (`C6 + H24-4 + H24-5 + C9 + C11`) **không có H24-2**. Chính-sách `:65-73` nói sink INFORM sinh ra để *"must not move the audited TOTAL"*.
   Ảnh hưởng: **3/46 = 6,5%** TOTAL là cờ tự-nhận không-ép; và acceptance của chính wave này (*"detector TOTAL không tăng"*) sẽ đọc một `[carry:]` **owner cố ý giữ** thành hồi-quy.

**Fact-0 — giải LỆCH 2 nguồn về trio (yêu-cầu tiền-đề của lượt):** trio **ĐÃ chạy thật** first-run @S144 2026-07-22 — `runs/2026-07-22-S144-trio-first-run/` có 3 return-file (10.907 / 14.321 / 11.251 B) + `trio-synthesis.md:7` chốt `verified-runtime`, commit **`8b6df0a`** 2026-07-23. Hai chỗ ghi "pending" là **văn-bản STALE**, không phải sự-thật khác: `memory-budget.json:186-188` **và** (nguồn thứ 3, tự tìm thêm) chính diary trio `agent-memory/harness-refine/MEMORY.md:16`. Lý do đã tự khai ở `trio-synthesis.md:35` — harvest-gate bị `/pause` cắt.
Tách nghĩa cho đúng: trio **chạy task** = RỒI ✔ · trio **ghi diary** = CHƯA ✔ (eval 1.547 B · audit 1.513 B, mtime cùng đứng **2026-07-20** = ngày seed; 3 vai *"khai không có Write/Edit"* — `run.md:9`). Con số `l1_hot` trong budget.json **vẫn khớp đĩa**; chỉ ô văn xuôi `rollout` sai. Drift phụ: `harness-refine` 1.611 B ≠ 1.616 B ghi trong config (−5 B) — truy `git log -p` ra commit `9abc2e1`, là **đổi tên vai** `lead-omission-auditor`→`lead-gap-auditor`, không phải entry first-run.

## 4. tailored-gì + skip-gì-vì-sao

**Giữ FUNCTION-floor** (thư `:13` — *"Khung = sàn chức năng; hình thức tổ chức = mỗi nhà tự quyết"*): 4 câu áp cho TỪNG thước · verdict 4 giá-trị · 3 cột thẩm-quyền với 2 cột sau owner-gated · phép thử "bịa input sai → có ĐỎ không".

**Tailored (FORM đổi, floor giữ):**
- **Chia 2 bảng** — 7 script độc-lập ⟂ 11 check nằm trong một script (`governance-detectors.ps1`). Bộ thước SE là *một suite + vài script rời*, khác topology hub; gộp một bảng sẽ giấu mất chuyện 11 check dùng CHUNG một `FlagCount` — mà đó chính là chỗ đẻ ra khiếm-khuyết H24-2.
- **Thêm dòng "kể bằng THÀNH-PHẦN"** (46 = 24+15+3+3+1) — không có trong khuôn hub; thêm vì bài `feedback_goodhart_leave_measurement_set` của SE: số tổng che mất ai đang nói. Hoá ra cần thật — 52% TOTAL là **một** lớp lỗi duy nhất (hyphen⟂underscore).
- **Artifact tách khỏi report** — bảng ở sub-MD run-folder, report trỏ sang. Giữ report đúng 5 trường cho `/adap-audit` parse.

**Skip / n-a:**
- **Khoản 3 (6 chỗ vá của hub)** = n-a — vá trên máy hub, không phải nghĩa-vụ SE; thư `:55` dặn *"đừng chép số hub làm chuẩn"*.
- **Khoản 4 (quy-trình fan-out + cổng kiểm độc-lập)** = **đã có sẵn**, không áp lại: SE chạy đúng khuôn này (wave fan-out + review-workflow mandate H9) — lượt này là 1 lane trong wave 6 lane, cổng review chạy sau.
- **Phép thử nhanh #3** = n-a lượt này (chưa đo tỉ-lệ lật đo⟂kiểm).
- **2 cột thẩm-quyền** = KHÔNG điền (owner-gated, không phải skip).

## 5. honest-caveat

1. 🔒 **2 cột thẩm-quyền còn TRỐNG** ⇒ nấc trần của khoản này là `verified-pending (owner)`. Report **không** được đọc thành "đã rà xong".
2. **Fault-inject mới phủ 1/17 thước.** 16 thước còn lại **chưa có fixture đông-lạnh** — đúng lớp hub cảnh báo (`thư:31`: 17/18 check của hub thiếu positive-control). **Không** suy ra "cả bộ có răng".
3. **`closeout-sentinel` chưa chạy được** (`-Commit` mandatory) ⇒ verdict GIỮ của nó là **suy từ đọc code**, không từ chạy.
4. **6 check H24-1/3/4/5 + H25-1/2 bị gộp 1 dòng**, chưa rà 4 câu từng cái — thiếu-sót có chủ-đích do trần lượt. Ghi ra để **không** ai đọc bảng thành "đã phủ hết" (bài `feedback_meta_count_selfcoverage_blindspot`: bảng từng dòng thay số tổng).
5. **Q1 của 4 thước dựa trên vắng-mặt bằng-chứng** (grep sổ ra 0 ca) — vắng-mặt ≠ chứng-minh chưa từng bắt.
6. ⚠️ **Vá H24-2 là RỜI TẬP-ĐO.** Chuyển 3 cờ sang INFORM hạ TOTAL 46→43 — *trông y hệt tiến-bộ* mà không sửa gì thật. Vì vậy **cố ý KHÔNG tự vá**; cần owner chốt baseline mới 43 hay giữ 46 chỉ đổi nhãn (→ ô 🔒 owner-LUẬT dòng B11).
7. **Lane này KHÔNG sửa script nào** — mọi verdict SỬA (A1 `mfe-eval` · A5 comment stale `distill-shard-probe:3` · B2 normalize wikilink · B11 H24-2) đều để **propose**, chưa áp. `scripts/governance-detectors.ps1` do lane khác giữ trong wave này (tránh 2 lane đụng 1 file).
8. **Cây tạm fault-inject nằm ở scratchpad NGOÀI repo** ⇒ `git diff` không thấy nó; containment chứng bằng `git status` sạch sau khi hoàn nguyên `.mfe-state.json`.
9. **Đề-xuất ngược lên hub (chờ anh duyệt, chưa gửi):** (a) đưa **dạng-5 "tự-ăn-nhân-chứng"** vào câu-3 của khung (4 dạng → 5); (b) thước đo *"bề-mặt-đo có được cập-nhật không"* — Fact-0 cho thấy việc chạy xong 3 ngày mà 2 chỗ văn-bản vẫn ghi "pending" và **0 thước phát hiện**; họ-hàng `first-run-role-has-diary` đã gửi hub tại `error-ledger.md:118`, **đang chờ hub canonical** — SE không tự chế detector riêng.
10. **Mọi số trong report là SE tự đo trên SE hôm nay** (2026-07-25), không chép số hub — đúng dặn-dò `thư:55`.
