# sub-invest-5-se-do-B — Lane B: đo SE (vòng memory-trio · nén-ngủ · sàn-sự-thật · eval-phía-SỬ-DỤNG)

> Run: `2026-07-24-S149-dong-du-5-vong` · role: investigator-codebase · lane B
> Khung RỖNG ghi @lượt-1 TRƯỚC KHI ĐỌC (chống #53). Nội dung dưới = ĐO TỪ ĐĨA, 0 suy-từ-doc.

## 0. Khung / quy ước
- Repo `D:\Dropbox\CONG_VIEC\SOLUTION\SOLUTION_ERP`, đo 2026-07-24.
- **WIRED** = file có + call-site trong luật SỐNG + bằng-chứng đã fire · **GHOST-WIRE** = khai/có file nhưng 0 call-site runtime HOẶC call-site chưa từng fire · **THIẾU** = không có trên đĩa.
- 2 lệnh chạy LIVE lượt này (read-only, 0 write): `distill-shard-probe.ps1`, `applied-eval-nokey.ps1 -Selftest`.

## 1. Vòng V3 — bộ-ba trio (harness-eval / refine / audit)

| Hỏi | Đo được |
|---|---|
| File có? | ✅ `.claude/agents/harness-eval.md` 6261B · `harness-refine.md` 6012B · `harness-audit.md` 5135B (mtime 2026-07-20 18:29–18:31) |
| Call-site §2.1.9? | ✅ `session-start.md:270-284` — nghi-thức 9 khoản (a)…(i) đầy đủ |
| Call-site session-end? | ✅ `session-end.md:147` §L.b(k) + `:151` (iv) PIN fail-closed + gate-row `:174` |
| Đã chạy THẬT? | ✅ `runs/2026-07-22-S144-trio-first-run/`: `harness-eval-return.md` 10907B · `harness-refine-return.md` 14321B · `harness-audit-return.md` 11251B · `run.md` 3263B · `trio-synthesis.md` 3636B (⚠️ synthesis viết HỒI-TỐ @S146, tự khai dòng 1) |
| AUTO hay CONSENT? | 🔴 **CONSENT-GATED** — `session-start.md:274` (a) *"🔴 CONSENT-GATED — KHÔNG auto-run"*; `:265` phân-biệt rõ *"KHÁC sleep-check §2.1.2 (vẫn CONSENT) và KHÁC trio §2.1.9 (vẫn CONSENT)"* vs H24 nay AUTO (`:263`, owner chốt @S146) |

**GAP-1 (sổ vai không cập-nhật sau khi CHẠY):** 3 diary tồn tại nhưng mtime = **2026-07-20 18:31** (ngày seed S141), byte 1547/1616/1513; `git log -3 -- .claude/agent-memory/harness-eval/MEMORY.md` → commit gần nhất `2757e41` (closeout đợt-9/10, S141). ⇒ trio CHẠY THẬT @S144 (2026-07-22) mà **sổ 3 vai chưa từng ghi lại lượt đó**. Đối chiếu `session-end.md:208` phép-4 (*"dán path … + byte>0 + mtime phiên này … thiếu sổ ⇒ TRƯỢT"*) thì lượt S144 đo lại hôm nay = **TRƯỢT**. Nguyên nhân cấu-trúc: `session-start.md:276` (c) giao lead scribe vào **run-folder**, không giao ai ghi **diary vai** → 2 đích khác nhau, phép-4 soi đích thứ hai.

**GAP-2 (vết skip chưa từng nổ):** `session-start.md:284` (i)[M4] bắt ghi `trio: skipped S<nn> (<ly-do>)` vào `.claude/WAL.md` mỗi lần skip. Đo: `grep -n "trio:" .claude/WAL.md` → **0 dòng**; `git log -S "trio: skipped" -- .claude/WAL.md` → **0 commit trong toàn lịch-sử**. ⇒ luật chống-skip-im-lặng = **GHOST-WIRE** (trio không chạy S145→S148 mà 0 vết nào sinh ra).

## 2. Vòng V4 — nén-ngủ

| Hỏi | Đo được |
|---|---|
| Skill `.claude/skills/sleep-recovery-memory-l2/`? | ❌ **THIẾU với tư-cách SKILL** — `.claude/skills/` chỉ 6 dir: contract-workflow · dependency-audit-erp · ef-core-migration · form-engine · iis-deploy-runbook · permission-matrix (khớp `session-start.md:287` "2.2 Skill registry (6 skill)"). 🔸 Nó SỐNG dạng **COMMAND**: `.claude/commands/sleep-recovery-memory-l2.md` 17464B → brief gọi "skill" là **lệch danh-xưng**, không phải thiếu vật |
| `scripts/distill-shard-probe.ps1`? | ✅ 3415B (2026-07-22). **Chạy live @S149** → `SHARD-PROBE: pending=15 \| nguong=15 => IM` |
| Đọc key nào? | `distill_trigger.min_pending_shards` — `distill-shard-probe.ps1:26-29` đọc `$cfg.distill_trigger` (fail-loud nếu thiếu key, `:27`), `:19` trỏ `.claude/agent-memory/memory-budget.json`. Giá-trị live `memory-budget.json:13` = **15**. Toán-tử `-gt` KHÔNG `-ge` (`:55-60`) ⇒ 15 IM, 16+ mới KÊU. Tầng-2 cảnh-báo `bulk_note_shards`=30 (`:63` guard `$null -ne`). 🧊 `last_sleep_at` (`memory-budget.json:4` = **2026-07-18**) + luật 7-ngày = **GHI-CHÚ PHỤ, không còn quyết-định** (owner đảo @S144, `commands/sleep-recovery-memory-l2.md:52`) |
| Call-site probe | ✅ `session-start.md:182` (§2.1.2) + `session-end.md:68` (§L.b(c)) |
| Vai KIỂM `sleep-audit` có call-site? | ✅ CÓ 3 chỗ: `commands/sleep-recovery-memory-l2.md:106-108` **Phase 4.5 AUTO, KHÔNG consent** · `session-end.md:50` · gate-row `session-end.md:175` |

**Trạng thái sleep-audit = vacuous HỢP-LỆ (khác h24-audit, xem §5):** `.claude/agent-memory/sleep-audit/` **MISSING hoàn toàn** ⇒ chưa chạy lần nào. Nhưng đây KHÔNG phải TRƯỢT: lượt nén gần nhất = `last_sleep_at 2026-07-18` (S140, 5 gist Fidelity 4P/1F — thấy ở commit `2757e41` message), trong khi `.claude/agents/sleep-audit.md` mtime **2026-07-22 22:39** ⇒ **vai land SAU lượt nén cuối, chưa có input nào để soi**. Đúng ca `vacuous` theo `session-end.md:209`.

## 3. Vòng V5 — sàn-sự-thật "đã-đo"

| Vật | Đo được |
|---|---|
| Khai trong gate | `session-end.md:176`: `V5 sàn-sự-thật "đã-đo" \| measured-label-gate (**floor** — không vai riêng) \| — (floor tự-soi ở MỌI verdict) \| 1 nhãn đã-đo bị chặn/cho qua trong phiên` |
| Hiện thân DUY NHẤT trong luật sống | `.claude/agents/reviewer.md:46` — *"**Measured-label gate (sàn-sự-thật 190c11ba):** diff chứa con-số mang nhãn đo-lường (measured/empirical/calibrated/grounded/đã-đo)? → hỏi: 'phép kiểm nào khiến con số này TRƯỢT nếu nó sai?' Không trả lời được → yêu cầu 1 trong 3: phản-chứng chạy được · miễn-trừ lý-do visible · bỏ nhãn."* |
| Nấc G-011 | `commands/adap-report.md:16` + `:28` (`agreed\|executed\|verified-pending\|n-a`, crosswalk `applied≈executed`, *"verified = sau AI_INFRA audit, KHÔNG tự khai"*) · `adap-apply.md:27` · `adap-request.md:31` + `:42` (*"KHÔNG nhảy nấc"*) |
| honest-caveat | trường bắt buộc #5 của REPORT-FORMAT LOCK: `adap-report.md:19` + `:35`; `adap-request.md:32`. Hiện diện thật ở ~20 file `docs/governance/adap-reports/*.md` (mỗi file có `## 5. honest-caveat`) |
| Bằng-chứng sàn CẮN THẬT | `memory-budget.json:106` — field `measured_token_estimate` bị **RETIRED** với lý do nguyên văn *"a stored 'measured/estimate' number invites the mislabel class (san-su-that 190c11ba …); CAM dan nhan real/da-do cho mot dau dai, do NOT store-and-trust"* + `docs/STATUS.md:542` *"backfill hạ-nhãn calibrated→heuristic (C1 190c11ba)"* |

**Verdict V5:** floor **WIRED** (1 điểm chặn thật ở reviewer + đã có ca hạ-nhãn/retire-field chứng minh có răng), nhưng **0 vai KIỂM riêng theo thiết-kế** ⇒ **ô "bằng-chứng tối-thiểu" của V5 (1 nhãn bị chặn/cho qua **trong phiên**) KHÔNG có máy đếm nào sinh ra**: không script, không counter, không log. Mỗi phiên phải khai bằng tay ⇒ đây là vòng dễ ĐẠT-ảo nhất trong 5 vòng (không có artifact để đối-chứng).

## 4. EVAL PHÍA SỬ-DỤNG — trả lời "nghi SE = 0"

🔴 **Không phải 0 tuyệt-đối. Tách 3 mảnh, 2 mảnh CÓ MÁY, 1 mảnh = 0 (và SE đã tự khai là 0).**

**(4a) Nhãn `APPLIED` / `DORMANT` / chờ-judge → 0 trong luật SỐNG.**
Đã tìm ở: `.claude/commands/**` · `.claude/agents/**` · `scripts/**` · `docs/governance/*.md` (root) → **0 hit**. Toàn repo grep `DORMANT` (`--include=*.md,*.ps1,*.json,*.py`) chỉ ra 3 nhóm, KHÔNG nhóm nào là luật:
- nghĩa PE-domain (khác hẳn): `agent-memory/reviewer/project_pe_multi_ncc_perhangmuc_specreview.md:10` + `runs/2026-07-12-S114-*/…` (`Quote.IsSelected` Mig 12 DORMANT).
- **spec đợt-11 (chính chỗ hub yêu-cầu)**: `runs/2026-07-22-S144-adap-dot-11/spec-adap-dot-11-22-07-2026.md:77` *"Nhãn bắt buộc 3 loại: `APPLIED` · `DORMANT` (**≠ MISS**) · chờ judge"* + `sub-reviewer-0.md:57`.
- 🔴 **SE tự khai DEFER**: `runs/2026-07-22-S144-adap-dot-11/C14-disposition-per-khoan.md:26` — hàng `2.4 | Eval 2 phía (presence + use), DORMANT≠MISS, negative-control | **DEFER — cần máy mới** | SE hiện chỉ đo presence (MFE). Phía use cần script cross-session evidence-based. Theo chính khoản 4 goi-chot:52: mục này viết dạng DỰ-ĐỊNH, CHƯA có máy`.
⇒ **THIẾU, có chủ-đích, đã ghi vết** — không phải quên. Nhưng vết nằm trong run-folder S144, **không** trong luật sống ⇒ không ai đọc lại ở phiên sau.

**(4b) Negative-control (bơm probe-giả) → CÓ MÁY, có RĂNG, nhưng GHOST-WIRE.**
`scripts/applied-eval-nokey.ps1` 19045B (2026-07-06, S102):
- Cổng đối-kháng fail-closed: control bị **bỏ quên (score=null) → BLOCK** (`:184-187`) · control chấm **≥0.5 → BLOCK** (`:189-192`) · **0 control → BLOCK** vì *"cannot certify judge rigor"* (`:195-202`).
- Merge không bịa số: null real-question → `ExcludedNull++`, KHÔNG coerce 0 (`:230`); 0 real scored → `AppliedPct=$null` chứ không bịa 0 (`:234-239`).
- **Chạy LIVE @S149**: `-Selftest` → `CASE a-control-HIGH: PASS` · `CASE b-control-LOW: PASS (Applied%=70, RealN=2, ControlN=1)` · `CASE c-control-FORGOTTEN: PASS` · `SELFTEST: ALL 3 CASES PASS` · **EXIT=0**.
- 🔴 **GHOST-WIRE**: `grep -rn "applied-eval" .claude/commands/` → **0 hit**. Chỉ được nhắc ở `docs/governance/harness-11-engine.md:389` (§M.D). Không nghi-thức nào (`session-start`/`session-end`/`tiep`/`pause`) gọi nó ⇒ 18 ngày qua chưa từng chạy trong luồng.
- Và phần *bơm câu-hỏi bịt-đáp-án + trọng-tài khác-phiên* = block **[B] DOCUMENTED ONLY** (`:17-20`, `:30-59`), tự khai *"This file is a MECHANISM, NOT a number"* (`:27`).

**(4c) Script quét cross-session xem guard/mark có fire → CÓ MÁY, WIRED opt-in.**
`scripts/mfe-eval.ps1` 17311B:
- `:104` đọc **Source B = error-ledger Active-Guards + AS-table + RCA strikes**; `:134` đọc `recurrence_tokens` (12 token: `"tai phat","tai dien","recurrence","bug-class","whack-a-mole","class s"…` — `memory-budget.json:68`).
- `:193` đọc state cũ, `:196-199` **GOODHART-WARN**: *"strikes rose (X -> Y) while set still FITS -> coverage may LIE (set 'fits' but errors recur = not actually applied)"* — đây **đúng là** phép đo "nạp rồi có DÙNG thật không" theo trục **recurrence** (chính applied-eval-nokey `:70-75` gọi đây là *"the ONLY model-independent signal"*).
- State cross-run có thật: `.claude/agent-memory/.mfe-state.json` = `{"strikes_total":23,"at":"2026-07-22","rca_entries":12}`.
- Wire: opt-in tham-số `eval` — `session-start.md:226` + `session-end.md:68` (+ được miễn-trừ khỏi đóng-băng bề-mặt-đo, `session-end.md:68`).
- Judge corpus: `eval/mfe/sample-questions.json` 5104B `seeded_date 2026-06-29`, `"scoring_status": "SCAFFOLD - no scorer wired…"`; `mfe-eval.ps1:281-295` in `scorer = EMPTY … meaningful = FALSE`.

## 5. Bảng tổng (khuôn lane-4)

| # | Hạng-mục | Bằng-chứng file:line | Nhãn |
|---|---|---|---|
| 1 | Trio 3 file agent | `.claude/agents/harness-{eval,refine,audit}.md` (6261/6012/5135B) | **WIRED** |
| 2 | Trio call-site đầu phiên | `session-start.md:270-284` §2.1.9 (a)–(i) | **WIRED** |
| 3 | Trio call-site cuối phiên | `session-end.md:147,151,174` | **WIRED** |
| 4 | Trio đã chạy thật | `runs/2026-07-22-S144-trio-first-run/` 3 return 10907+14321+11251B | **WIRED (executed)** |
| 5 | Trio AUTO/CONSENT | `session-start.md:274` — **CONSENT**, 🔴 KHÔNG auto | **WIRED (consent)** |
| 6 | Trio diary sau khi chạy | 3 MEMORY.md mtime `2026-07-20` = seed; `git log` last `2757e41` (S141) — chạy S144 mà 0 cập-nhật | **GHOST-WIRE** |
| 7 | Trio vết-skip WAL [M4] | `session-start.md:284` bắt ghi; `grep "trio:" WAL.md`=0 · `git log -S "trio: skipped"`=0 commit | **GHOST-WIRE** |
| 8 | Sleep = SKILL | `.claude/skills/` chỉ 6 dir, không có `sleep-recovery-memory-l2/` | **THIẾU (dạng skill)** |
| 9 | Sleep = COMMAND | `.claude/commands/sleep-recovery-memory-l2.md` 17464B | **WIRED** |
| 10 | `distill-shard-probe.ps1` | 3415B; live `pending=15 \| nguong=15 => IM` | **WIRED** |
| 11 | Trigger key | `distill-shard-probe.ps1:26-29` → `distill_trigger.min_pending_shards`; `memory-budget.json:13`=15; `-gt` `:60`; bulk 30 `:63` | **WIRED** |
| 12 | Probe call-site ×2 | `session-start.md:182` + `session-end.md:68` | **WIRED** |
| 13 | `sleep-audit` call-site | `commands/sleep-recovery-memory-l2.md:106-108` (AUTO) + `session-end.md:50,175` | **WIRED** |
| 14 | `sleep-audit` đã chạy | `.claude/agent-memory/sleep-audit/` **MISSING**; nhưng vai land 07-22 > lượt nén cuối 07-18 | **vacuous HỢP-LỆ** |
| 15 | V5 floor khai | `session-end.md:176` (không vai riêng) | **WIRED (by design)** |
| 16 | V5 điểm chặn thật | `reviewer.md:46` measured-label gate 3-cửa | **WIRED** |
| 17 | V5 nấc G-011 + honest-caveat | `adap-report.md:16,19,28` · `adap-apply.md:27` · `adap-request.md:31,42` | **WIRED** |
| 18 | V5 máy đếm "1 nhãn bị chặn/phiên" | 0 script · 0 counter · 0 log — chỉ khai tay | **THIẾU** |
| 19 | Nhãn APPLIED/DORMANT/chờ-judge | 0 hit commands+agents+scripts+gov-root; chỉ `runs/…S144…/spec:77`, đã DEFER `C14-disposition:26` | **THIẾU (khai DEFER)** |
| 20 | Negative-control máy | `applied-eval-nokey.ps1:184-202` + selftest 3/3 PASS exit 0 (chạy live S149) | **WIRED (có răng)** |
| 21 | Negative-control call-site | `grep applied-eval .claude/commands/` = **0**; chỉ `harness-11-engine.md:389` | **GHOST-WIRE** |
| 22 | 2-agent probe/judge (bịt đáp-án) | `applied-eval-nokey.ps1:17-20,30-59` — DOCUMENTED ONLY | **THIẾU (runtime)** |
| 23 | Cross-session guard/mark fire | `mfe-eval.ps1:104,134,193-201` + `.mfe-state.json` strikes 23 @07-22 + `memory-budget.json:68` 12 token | **WIRED (opt-in `eval`)** |
| 24 | Judge scorer | `eval/mfe/sample-questions.json` `scoring_status: SCAFFOLD`; `mfe-eval.ps1:281-295` `meaningful = FALSE` | **THIẾU (scaffold)** |
| 25 | 🔴 **NGOÀI PHẠM-VI** `h24-audit` chạy mà 0 sổ | `runs/2026-07-24-S148-h24-force-fire/sub-h24-audit-S149.md` **25724B, 18:59 hôm nay** ⟂ `.claude/agent-memory/h24-audit/` **RỖNG** | **TRƯỢT** (hết cửa vacuous, `session-end.md:214`) |

## 6. Bất-ngờ ngoài câu hỏi
1. **`session-end.md:213` baseline đã STALE.** Nó chốt @S146 rằng cả 3 vai round-KIỂM = *"WIRED nhưng CHƯA chạy audit-round THẬT ⇒ đúng ca vacuous"*. Đo hôm nay: `h24-audit` **ĐÃ CHẠY** (sub-MD 25724B, `.claude/WAL.md:13` ghi *"W3 h24-audit — lượt-1 XONG §0-§5 (7.772B đĩa), #53 garble → SendMessage-resume làm §6-§9"*), mà `.claude/agent-memory/h24-audit/MEMORY.md` vẫn không tồn tại. Theo chính `session-end.md:214` (*"vacuous KHÔNG phải giấy phép vĩnh-viễn … vòng CHẠY mà vai-KIỂM vẫn không có sổ ⇒ TRƯỢT thật"*) ⇒ phép-4 @S149 phải ghi **TRƯỢT**, không được chép lại nhãn vacuous của baseline.
2. **Cùng một class lỗi ở 2 vai khác nhau** (mục 6 + mục 25): vai chạy thật → return được scribe vào **run-folder**, nhưng **diary vai** không ai ghi. Đây là hệ-quả cấu-trúc của luật "sub read-only KHÔNG Write → em main scribe": luật chỉ định đích run-folder (`session-start.md:276`), phép-4 lại soi đích `agent-memory/<role>/MEMORY.md` (`session-end.md:208`). **Hai đích, một người ghi, luật chỉ nhắc một** ⇒ phép-4 sẽ TRƯỢT có hệ-thống với MỌI vai read-only.
3. **`tooling-harvest-audit/` dir tồn-tại nhưng RỖNG** (mtime 07-22 18:27) — khớp baseline (spawn-PROBE cố-ý 0-ghi @S145), chưa đổi.
4. `trio-synthesis.md` tự khai dòng 1 là **viết hồi-tố @S146**, không phải bản ghi lúc chạy — trung thực, nhưng nghĩa là run-folder S144 từng là **orphan** (có run.md, thiếu synthesis) suốt 4 ngày.

## 7. KHÔNG CHẮC
- **WAL rotation làm mờ GAP-2.** `.claude/WAL.md` hiện 2891B, luật ≤40 dòng + squash `wal:` định kỳ. Tao đã bù bằng `git log -S "trio: skipped" -- .claude/WAL.md` = 0 commit toàn lịch-sử (mạnh hơn grep hiện-trạng), nhưng nếu vết từng được ghi rồi **bị squash trong CÙNG một commit** với nội dung khác thì `-S` vẫn có thể trượt. Độ tin: cao, không tuyệt đối.
- **Không xác định được trio có được ĐỀ-XUẤT (in proposal-line) ở S145–S148 hay không.** Đĩa chỉ chứng minh *không chạy* + *không có vết skip*; phần "em-main IN đề-xuất 1 dòng" (`session-start.md:274`) là hành-vi runtime trong hội-thoại, không để lại artifact ⇒ không đo được từ đĩa.
- **`tooling-harvest-audit` vacuous hay TRƯỢT: chưa kết-luận.** Cần biết H1/H2 có chốt trong phiên S148/S149 không — tao không đo vòng đó (lane khác).
- **Số `pending=15`** là ảnh chụp lúc chạy (2026-07-24 phiên này); shard mới sinh trong phiên sẽ đổi số.
- **`applied-eval-nokey.ps1` chưa từng chạy trong nghi-thức** — tao suy từ *0 call-site + 0 state-file*, không có log chạy để phủ định tuyệt đối việc ai đó từng gõ tay.
- Prod-DB **không** chạm lượt này (không liên quan phạm-vi); SSH-sqlcmd vẫn là đường chết theo S134/S148.
