# sub-investigator-codebase-0 — S138 adap 3 bản AI_INFRA 17-07 (invest + SPEC-PROPOSAL)

> Engine: /fable-real single deep-pass (anh gán đích-danh). PROPOSE-ONLY — lead verify rồi ghi spec.
> 3 bản đọc TRỌN: đính-chính-kép `624c378d` (update) · master-checklist `cadd24ae` (new) · năm-quyết `123d8272` (new digest).
> Mọi số đếm dưới = ĐÃ chạy lệnh (lệnh ghi kèm §7). Ghi-đĩa-trong-lúc-làm (bài S123 — chống #53 garble).

---

## §1 — PROJECT-FIT per-khoản (CẢ 3 bản)

| Bản | Khoản | FIT | Nấc | 1-dòng |
|---|---|---|---|---|
| 1 đính-chính-kép | Δ1 nhãn `grounded` sót kiểm-kê | ADOPT | **cần-implement-NHỎ** | Re-grep 5-nhãn ĐÃ chạy trong invest này = 0 hằng-số `grounded` mọi bề-mặt sống; NHƯNG `.claude/agents/reviewer.md:46` câu cửa-duyệt chép đúng danh-sách 4-nhãn LỖI của hub → vá +`grounded` (1-từ) |
| 1 đính-chính-kép | Δ2 ext-filter Office | ADOPT | **already-compliant (SE-originated)** | SE CHÍNH LÀ dự-án báo 13 dương-giả (`broadcasts/outbox/ai_infra/2026-07-16-se-to-ai_infra-adap-2-errata-report.md:20`); script standing `agent-frontmatter-eol-check.ps1` KHÔNG dùng ext-filter (byte-level CR, scope .claude MD-only) → 0 chỗ sửa |
| 2 master-checklist | Sàn-1 hai tầng / 4 nhóm | ADOPT | **cần-implement** | Tầng-1 có (Plan cha/con Phase 3/4 + WAL goal); tầng-2 hiện 3-state (`🟢🟡⚪` / `[x][!][ ]`), nhóm **chờ-anh** nằm TÁCH (work-state §2.1.5-3 + HANDOFF NEXT-anh) — chưa hợp nhất 1 VIEW 4-nhóm |
| 2 master-checklist | Sàn-2 mọi cửa | ADOPT | **cần-implement (2/4 cửa)** | Mở/đóng ĐỦ; `/pause` in 5-ý (goal + `[!]` đầu — không full 2-tầng); `/tiep` in reconcile không in checklist tổng |
| 2 master-checklist | Sàn-3 VIEW ≠ SOURCE | — | **already** | Negative-verify: 0 file checklist nguồn-đôi (chỉ `docs/guides/security-checklist.md` khác nghĩa + broadcast inbox); nguồn durable = WAL/STATUS/HANDOFF/ACTIVE-MARKS/migration-todos |
| 2 master-checklist | Sàn-4 carry khép + máy đối-chiếu | — | **already** | HANDOFF re-stamp `§L.b(j)(iv)` + carry-age H24-2 (`governance-detectors.ps1:24-26`) + Sàn-3 4-tín-hiệu (`tiep.md §0`) + Sàn-5 run-vs-marker (`session-end.md:70-96`) + 5 class `gap-*` omission |
| 2 master-checklist | Sàn-5 chờ-owner đánh số | — | **already** (+1 dòng luật-hoá) | `docs/HANDOFF.md:7` NEXT anh **(1)…(6)** numbered + `[carry:]` stamps; L11 prev cũng numbered — de-facto, chưa thành câu luật |
| 3 năm-quyết | K1 đóng-băng bề-mặt-đo | ADOPT | **cần-implement-NHẸ (1-2 câu)** | 5 script đo mapped read-zones (§3.4); WAL nằm NGOÀI bề-mặt-đo cả 5 → ngoại-lệ WAL đúng như hub; exposure thấp (lead single-writer sequential) — khai thật |
| 3 năm-quyết | K2 cite 2-nấc máy kiểm | ADOPT | **cần-implement (detector C6)** | C1 hiện CHỈ gotcha-ref + wikilink (`:17-18`) — 0 resolver `path:line`; volume đo 291 occurrence (§7.4) |
| 3 năm-quyết | K3 hứa-máy phải quét thật | — | **already-by-sweep** | Sweep ĐÃ chạy: 3 hit ngoài lineage, **3/3 trace được mã thật** (§3.6) → candidate-list cho anh = RỖNG |
| 3 năm-quyết | K4 ngoại-lệ relay-attribution | ADOPT | **cần-implement-NHẸ (1 câu)** + n-a phần máy | SE có 2 luật lớp-từ tương-đương (G-011 "KHÔNG tự khai verified" + measured-label gate `:46`); practice đã attribution-cạnh-verb tự nhiên; chưa có scanner lớp-từ → ranh máy = n-a, ghi nguyên-tắc |
| 3 năm-quyết | K5 pending-flip detector | ADOPT | **cần-implement (H24-4)** | Cặp SE = {HANDOFF/STATUS token chờ ⟷ ACTIVE-MARKS RC-stamps}; ca THẬT ×2 (§3.8); hiện bắt bằng H24 mắt-người theo NHỊP — đúng giai-đoạn hub trước khi máy-hoá |
| 3 năm-quyết | K6.1 file-đo phải commit | — | **PARTIAL-already** (+2 dòng) | memory-triple 3 dòng ĐÃ commit (`sessions/2026-07-17-S135-S137…:25-28`) + mfe strikes persist `.mfe-state.json` tracked; detector-TOTAL + nhịp-nợ = narrative-only |
| 3 năm-quyết | K6.2 re-base = số SỐNG | — | **already-by-practice** (+1 câu luật) | Sleep-baseline "đo tươi Get-Item" dated · TOTAL 46→45 đo cùng commit `7760cdf` · RAG 2441 re-verify live; chưa có CÂU LUẬT tổng-quát (generalize E-010) |
| 3 năm-quyết | K7 thứ-tự đọc 4 bản | — | **already** | Khung-nhịp `3daf5ee4` + năm-vòng `f71c5b65` adopted S135-S137 (`docs/HANDOFF.md:5`); digest đứng sau = wave này |

---

## §2 — Bản 1: grounding 2 delta

### Δ1 — nhãn `grounded`
- **Chứng SE kiểm-kê thiếu grounded:** `docs/governance/adap-reports/2026-07-16-Governance-vong-tu-bao-tri-thu-nam-san-su-that-nhan-da-do.md:27` — bảng kiểm-kê transcribe grep **`calibrat|measured|empirical|đã-đo`** (đúng 4 nhãn, mirror lỗi §4 hub).
- **Re-grep `grounded` (invest này — kết quả 0 hằng-số):**
  - `scripts/` = **0 hit** · `hmw.js` = 0 · `.claude/agent-memory/memory-budget.json` = 0 (grep 4-pattern gồm grounded: các dòng match :72/:74/:83/:88/:90/:142 đều là measured/calibrat-prose đã xử S127-S129, KHÔNG dòng nào chứa `grounded`).
  - `.claude/` = 10 occ / 9 file — TOÀN archive agent-memory + workflow-runs (lineage/mention, vd `tooling-auditor/archive/2026-07.md`, run S124/S127 sub-reviewer) — không phải hằng-số sống.
  - `docs/` = 8 hit — toàn prose động-từ/lineage: "Empirical-grounded" (`docs/guides/multi-agent-setup-guide.md:5`), "recon-grounded" (`error-ledger.md:94`), "re-grounded counts" (`BROADCAST-OUT…:15`), "Ground S121 bằng đếm mã-nguồn" (`docs/STATUS.md:448` row Policies). 0 hằng-số mang nhãn.
- **🔴 LANDING-SITE THẬT (surprise):** `.claude/agents/reviewer.md:46` câu cửa-duyệt sống: `"…con-số mang nhãn đo-lường (measured/empirical/calibrated/đã-đo)?"` — **4 nhãn, THIẾU `grounded`** = SE đã CHÉP danh-sách kiểm-kê lỗi của hub vào LUẬT SỐNG. Δ1 áp thẳng: vá `:46` thêm `grounded` (1-từ). Agent `.md` no hot-reload → nấc sau vá = executed→verified-pending (mirror E3 cũ, adap-report vòng-5 `:60`).
- **Trớ-trêu đúng kiểu hub tả:** hằng-số hub sống 42 phiên tự dán "Grounded in real measurements" — SE không có hằng-số grounded, nhưng có LUẬT-4-nhãn sẽ bỏ sót đúng nhãn đó nếu mai có.

### Δ2 — ext-filter Office
- **SE-originated:** `broadcasts/outbox/ai_infra/2026-07-16-se-to-ai_infra-adap-2-errata-report.md:20` — phát-hiện-riêng #1: *"Filter mẫu lỗ #4 của erratum THIẾU docx/xlsx/pptx/dll — chạy nguyên-mẫu … trên SE cho **13 dương-giả** (12 .docx + 1 .xlsx)"*. Broadcast `:33` "một dự-án … tự bắt, tự báo, kèm số — hub xác nhận" + `:61` ghi công = chính SE.
- **Standing check KHÔNG cần sửa:** `scripts/agent-frontmatter-eol-check.ps1` scope = `.claude/{agents,commands,skills}` MD-only (`:253-257` scopeSpecs), đếm **BYTE CR 0x0D** (`:135-198 Measure-EolBytes`) — KHÔNG hề dùng ext-filter/`i/-text` → filter Office không có chỗ đứng trong script. Check lone-CR `i/-text` = one-time S129 (adap-report erratum `:12` — filter SE-tailored → 0 suspect; "giữ làm regression-guard" = nghĩa là file text mới lone-CR sẽ rơi vào `i/-text` khi CÓ AI chạy lại lệnh đó, KHÔNG phải script standing).
- **Nguyên-tắc tailor** đã ghi 2 chỗ: adap-report erratum `:12` + chính thư outbox `:20` đề-nghị hub thêm câu tailor (hub nhận → thành Δ2 tầng-2). → nấc: **already-compliant, evidence-đủ; hành-động = ghi-nhận trong adap-report mới, 0 code**.

---

## §3 — Bản 2 + 3: grounding chi-tiết

### 3.1 Bốn cửa vòng-đời — hiện in gì
| Cửa | Hiện in | Evidence |
|---|---|---|
| `/session-start` | Phase 3 REPORT: Plan cha/con/task tree 3-state (🟢🟡⚪) + agent assignment + critical signal | `session-start.md:238-260` |
| | Work-state block 4 thành-phần (roadmap · WIP · pending-decisions · recurring-bugs) | `:151-161` (§2.1.5) |
| | H24 tick + dòng-nợ 3-vế `nhip-no-probe.ps1` | `:181-207` (§2.1.8) |
| `/session-end` | Phase 4 REPORT: Plan tree 3-state + done/commit-SHA/CI verdict | `session-end.md:147-163` |
| | §L.b(a) STATUS Recently-Done 1-dòng + (j)(iv) RE-STAMP carry mọi carry mở | `:54` + `:102-105` |
| | §6.4 reset WAL template rỗng | `:253-257` |
| `/pause` | WAL ghi-đè: chain ĐẦY-ĐỦ `[x][!][ ]` + evidence + next + verify | `pause.md:23-27` |
| | Báo 5-ý: goal · `[!]` đầu · wf bỏ lại · "an-toàn thoát" · dòng-nợ | `:38-44` |
| `/tiep` | Sàn-3 4-tín-hiệu → đọc WAL → verify ground-truth thắng → nối từ `next:` | `tiep.md:27-34, :98-116` |

### 3.2 Sàn-1/2 gap cụ thể
- Tầng-2 bốn nhóm {xong · đang-dở+breakdown · **chờ-owner** · chưa-làm}: SE task-tree = 3-state; nhóm chờ-owner sống TÁCH ở work-state §2.1.5-3 (session-start only) + HANDOFF NEXT-anh (đọc thủ-công). `/pause`/`/tiep` KHÔNG in khối chờ-anh.
- Đóng-phiên "tổng-hợp chốt: arc nào đóng + mục chưa-đóng đi đâu": Phase 4 in plan-state nhưng không có câu bắt-buộc "mỗi mục chưa-đóng → chỉ đích carry-slug/WAL-line".

### 3.3 Sàn-3/4/5 — already, evidence
- **0 nguồn-đôi:** `find -iname "*checklist*.md"` → 2 hit: `docs/guides/security-checklist.md` (khác nghĩa) + broadcast inbox. KHÔNG có checklist trạng-thái-việc nguồn-đôi.
- **Máy đối-chiếu carry:** H24-2 carry-age (`governance-detectors.ps1:24-26` — streak `[carry:<slug>]` ≥M most-recent carry-lines, M từ config) + nghi-thức RE-STAMP (`session-end.md:102-105` — vá vacuous streak≡1 @S122) + Sàn-3 (`tiep.md:27-34`) + Sàn-5 (`session-end.md:70-96`).
- **Numbered:** `docs/HANDOFF.md:7` (mega-line, segment hiện-hành): "NEXT anh:** (1) UAT script lũy-kế… (2) UAT freeze-NS… (3) ⚑ D1… (4) hook-cap… (5) ⚑ DP-2… (6) ⚑ DP-5…" — mỗi khoản kèm `[carry:<slug>]`.

### 3.4 K1 — read-zones 5 script đo (bề-mặt-đo)
| Script | Vùng ĐỌC | Evidence |
|---|---|---|
| `measure-agent-memory.ps1` | `.claude/agent-memory/*/MEMORY.md` + `archive/*.md` | `:5` ($Root) + `:10-19` |
| `memory-archive-gate.ps1` | `.claude/agent-memory/**` (MEMORY.md, `memory-budget.json`, `.archive-strikes.json`, `archive/_INDEX.md`) | `:36-38, :106-111, :247-252` |
| `mfe-eval.ps1` | budget.json + `.claude/governance/ACTIVE-MARKS.md` + `docs/governance/error-ledger.md` + `docs/gotchas.md` + `.claude/agents/*.md` + `agent-memory/<role>/MEMORY.md`; **GHI** `.claude/agent-memory/.mfe-state.json` | `:42-52, :220, :241` + erratum-report lỗ#6 |
| `crystallized-backfill.ps1` | agent-memory + budget.json + hotload set {`docs/STATUS.md` · `docs/HANDOFF.md` · CLAUDE.md(?) · `docs/changelog/migration-todos.md`} | `:54-57` + default-hotload block (sed :60-110 → :15-18) |
| `nhip-no-probe.ps1` | `.claude/governance/.session-counter.json` + budget.json + `agent-memory/*/MEMORY.md` + `workflows/runs/*/run.md` | `:61-62, :107-110, :126-129` |
- **Union bề-mặt-đo:** `.claude/agent-memory/**` + `.claude/governance/{.session-counter.json, ACTIVE-MARKS.md}` + `docs/{STATUS,HANDOFF,gotchas}.md` + `docs/governance/error-ledger.md` + `docs/changelog/migration-todos.md` + `.claude/agents/*.md` + `.claude/workflows/runs/*/run.md`.
- **WAL.md KHÔNG nằm trong vùng đọc của cả 5** → ngoại-lệ WAL của hub áp thẳng, đúng bản-chất SE luôn.
- **Ca nội-tại đáng khai:** `mfe-eval.ps1` vừa ĐO vừa GHI `.mfe-state.json` vào agent-memory root (vùng script khác đo — nhưng dotfile root KHÔNG nằm trong tập đếm của measure/archive-gate [chỉ enumerate -Directory + MEMORY.md/archive] → benign; khai thành ngoại-lệ "bộ-đo tự ghi state" trong câu luật).
- **Race THẬT của SE:** thứ-tự §L.b = (c) ĐO trước → (d) flush agent-memory SAU → sequential single-writer nên không đè-giữa-lúc-đo; exposure = sub background return giữa closeout (hiếm). Bài S135 UNION-window cùng họ (detector closeout đo per-label window vì wal-flush dời delta).

### 3.5 K2 — cite `path:line` hiện-trạng + volume
- `governance-detectors.ps1:17-18` — C1 CHỈ có (a) gotcha-ref (b) dangling wikilink. **0 resolver `path:line`.** Suite hiện: C1(a,b)/C2-B3/C3/C4/H24-1/H24-2/H24-3 (+H25 fold) — `TOTAL FLAGS` print `:1122`; baseline repo = **45** (STATUS.md:465 S137 "TOTAL 46→45").
- Volume: **291 occurrence** cite-shape (lệnh §7.4) = docs/governance 276 (adap-reports **90** + rest **186**) + commands 10 + agents 5.
- Helper sẵn: `Test-Quoted` (`:598` — SHARED H24-1/H24-3, enclosure use⟂mention) + `Test-Excluded` C4 (`:113`) + fence-tracking đã có tiền-lệ trong H24 matchers.
- Honest-limit khai trước: 2-nấc bắt **GÃY-CỨNG** (file mất / line>EOF); KHÔNG bắt **TRÔI-MỀM** trong-EOF (class S108 cite-drift ±1-2 vẫn lọt — hub cùng giới-hạn).

### 3.6 K3 — sweep câu hứa-máy (ĐÃ CHẠY, kết quả RỖNG)
Grep rộng (lệnh §7.5) ngoài lineage → đúng **3 hit**, cả 3 trace mã thật:
1. `session-end.md:103` "carry-age detector đo streak" → `governance-detectors.ps1` H24-2 (`:24-26`). REAL.
2. `tiep.md:70` "máy bắt được" (dạng-1) → block bash DUAL-ACCEPT `tiep.md:41-53` + close-gate `session-end §L.b(f)`. REAL.
3. `tiep.md:73` "máy bắt được ngay" (tái-sinh dạng-3) → cùng block (dạng-3 đã gỡ ⇒ run.md-only → ORPHAN flag). REAL.
Phụ: `session-start.md:206` "H24-2 fail-loud nếu key thiếu" → real (config-key check). ⇒ **0 câu hứa-máy không mã** — candidate-list (a)implement/(b)hạ-chữ = RỖNG, trình anh đúng 1 dòng kết-quả.

### 3.7 K4 — luật lớp-từ SE hiện có
- **G-011 nấc agreed/executed/verified + "🔴 KHÔNG tự khai `verified`"** — usage khắp adap-reports (vd vòng-5 `:17` + `:100`); **surprise: 0 định-nghĩa canonical trong SE** (grep G-011 ngoài adap-reports = 0 hit; error-ledger + engine đều không có) = hub-convention import ngầm.
- **Measured-label gate** `reviewer.md:46` — hạn-chế nhãn đo-lường + 3 lối thoát.
- Practice attribution-cạnh-verb ĐÃ tự nhiên: mọi verb-durable đều kèm `anh chốt "…"` / `anh-confirm S<nn>` / `RC-…` (vd ACTIVE-MARKS `:34` "✅ RESOLVED @S130 (anh confirm qua AskUserQuestion…)"; budget `_owner_override_note` quote nguyên văn lời anh S129).
- Không có scanner lớp-từ → ranh máy-kiểm = n-a phần máy; ghi NGUYÊN-TẮC 1 câu (nếu mai port scanner → Test-Quoted BẮT BUỘC vì mọi doc mô tả luật này đều chứa verb-durable).

### 3.8 K5 — pending-flip: cặp SE + 2 ca THẬT
- **Cặp:** {token chờ trong `docs/HANDOFF.md` (+ `docs/STATUS.md`) ⟷ sổ chữ-ký `.claude/governance/ACTIVE-MARKS.md` (RC-stamps + chú-thích RESOLVED)}.
- **Ca thật #1 (mark-carry):** ACTIVE-MARKS `:33-34` — câu treo "treo cho anh quyết: mark MỚI hay chú-thích đủ?" sống S123→S129 chỉ trong history; "✅ RESOLVED @S130 … near-miss lớp-4 'trạng-thái cũ như chân-lý' — bắt @S129 bằng grep-đĩa, đóng @S130".
- **Ca thật #2 (S137):** HANDOFF "2 đề-xuất S131 CHỜ GẬT (wire tick H24 vào /tiep + light-run owner-triggered)" trong khi CẢ HAI đã actioned (tiep.md §2.5 tick ĐÃ wire + light-run ĐÃ chạy S137) — H24 `lead-view-auditor` FLAG `view-stale-status`, FIXED cùng phiên (session-log S135-S137 `:11`; STATUS `:465`). Token cũ còn ở segment lineage `HANDOFF:15/:19` (frozen Prev — minh-hoạ dương-giả nếu detector quét cả file).
- Volume token: HANDOFF = 7 dòng mang `CHỜ GẬT|CHỜ ANH|chờ anh`, STATUS = 14 dòng (đa số lineage).
- **Honest-limit:** class ca#2 (đề-xuất → landed-in-CODE, không mark) KHÔNG máy-hoá được bằng cặp này (nguồn-resolve = nội-dung file đích tuỳ-ý) → vẫn thuộc H24 mắt-người; máy chỉ ăn class ca#1 (mark-adjacent).

### 3.9 K6 — hai kỷ-luật đo
- **6.1:** memory-triple 3 dòng COMMITTED — `docs/changelog/sessions/2026-07-17-S135-S137-adap-khung-nhip-nam-vong.md:25-28` (do=measure exit 0 · de-xuat=archive-gate DRY exit 0 · kiem=mfe GOODHART-WARN 21→23). `.mfe-state.json` = tracked (strikes persist trong git — erratum lỗ#6). Detector-TOTAL + nhịp-nợ chỉ nằm narrative/commit-msg (`7760cdf` "TOTAL 46->45") — có vết de-facto nhưng KHÔNG luật.
- **6.2:** practice đúng sẵn: sleep-baseline "baseline 17-07 ≈183KB/5 file — đo TƯƠI (Get-Item).Length CẤM Get-Content (E-010)" (`session-start.md:131` + `session-end.md:56` + HANDOFF:7 số sống 183.054B) · TOTAL 46→45 đo trước-sau cùng commit · RAG 2441 re-verify live S126 (STATUS row). E-010 sẵn ở `error-ledger.md` (`:35/:57/:72` AS-14). GAP = chưa có câu luật TỔNG-QUÁT "re-base = đọc số sống lúc ghi, kể cả từ ghi-chú của chính mình".

---

## §4 — SPEC-PROPOSAL 3-mục (PROPOSE-ONLY — lead verify + ghi)

### ① Đề-bài
Adopt wave 3 bản AI_INFRA 17-07: (A) re-verify 2 delta bản đính-chính-kép — vá `grounded` vào câu cửa-duyệt `reviewer.md:46` (landing-site thật) + ghi-nhận Δ2 SE-originated, KHÔNG adopt lại 2 bản gốc; (B) nâng 4 cửa vòng-đời phiên đạt 5 điểm sàn master-checklist HAI TẦNG — VIEW derive tươi từ WAL/STATUS/HANDOFF/ACTIVE-MARKS, CẤM file nguồn mới; (C) áp 5 quyết + 2 kỷ-luật đo: 1 câu đóng-băng-bề-mặt-đo, detector C6 cite-2-nấc, sweep hứa-máy (đã chạy = 0 unbacked, chỉ ghi-nhận), 1 câu ngoại-lệ relay-attribution, detector H24-4 pending-flip (scope mark-adjacent), +2 dòng `do-record` vào memory-triple, +1 câu luật re-base-số-sống. Add-only (§F4.1); số nhịp/cadence = 0 đổi (quyền anh); 2 detector mới = INFORM-only exit-0 nhất-quán suite.

### ② Cách implement per-khoản

**(A1) Δ1 — `reviewer.md:46`:** thêm `grounded` vào ngoặc nhãn: `(measured/empirical/calibrated/grounded/đã-đo)`. 1-từ, em-main single-writer micro-edit (agent .md — restart note, nấc executed→verified-pending mirror E3). Adap-report bản-1 ghi kết-quả re-grep 5-nhãn (số ở §7.1-7.3, 0 hằng-số grounded) + Δ2 evidence SE-originated (outbox `:20`).

**(B) Master-checklist — 4 file cửa, khối "CHECKLIST 2-TẦNG" chung 1 khuôn (VIEW-derive):**
- Khuôn in (đặt tên vd `MASTER-CHECKLIST`): Tầng-1 = mỗi arc 1 dòng {đóng·đang·chưa} (nguồn: STATUS Phase-line + Plan cha/con + WAL `goal`); Tầng-2 = 4 nhóm: **xong** (WAL `[x]` + Recently-Done phiên này) · **đang-dở + breakdown** (WAL `[!]` + chain evidence: đã-xong-gì/đang-giữa-gì/còn-gì) · **chờ-anh — LUÔN ĐÁNH SỐ** (HANDOFF NEXT-anh numbered + ⚑ pending-decisions + mark treo ACTIVE-MARKS) · **chưa-làm/hẹn-cuối-phiên** (WAL `[ ]` + NEXT-em, tách từng khoản).
- `session-start.md` Phase 3: nâng template REPORT — thêm khối Tầng-2 4-nhóm (work-state §2.1.5 giữ nguyên, REPORT trỏ nó làm nguồn; nhóm chờ-anh BẮT BUỘC đánh số).
- `session-end.md` Phase 4: thêm "TỔNG-HỢP CHỐT": arc nào ĐÓNG trong phiên + MỌI mục chưa-đóng → chỉ đích nơi đổ (carry-slug HANDOFF / WAL-line / STATUS-row) — khép sàn-4 bằng câu tường-minh; +1 dòng luật-hoá sàn-5 tại §L.b(j)(iv): "khối chờ-anh trong HANDOFF LUÔN đánh số (owner trả lời bằng số)".
- `pause.md` bước 5: +ý-6 "in MASTER-CHECKLIST rút-gọn (Tầng-1 + đếm 4-nhóm + liệt chờ-anh đánh số) — derive từ WAL vừa ghi + HANDOFF, KHÔNG file mới".
- `tiep.md` §3-bis (sau ground-truth-thắng): "in MASTER-CHECKLIST cập-nhật từ WAL đã reconcile (cái vừa xong · vẫn treo · chờ-anh đánh số)".
- 🔴 CẤM tạo `checklist.md` — ghi thẳng câu cấm vào khuôn (sàn-3). FORM tự-do, giữ ngắn (WAL ≤40 dòng không đổi — khối in là OUTPUT chat, không ghi file).

**(C1) Đóng-băng bề-mặt-đo — 2 câu:** `session-end.md §L.b(c)` đầu khối: "Từ lúc chạy script đo đầu-tiên của khối (c) tới verdict cuối: KHÔNG ghi vào bề-mặt-đo (`.claude/agent-memory/**` + counter/MARKS + STATUS/HANDOFF/gotchas/error-ledger/migration-todos + `agents/*.md` + `runs/*/run.md` — union §3.4 sub-MD này); ghi phát sinh xếp hàng SAU verdict. Ngoại-lệ: `.claude/WAL.md` (ngoài bề-mặt-đo cả 5 script) + state-write của chính bộ-đo (`.mfe-state.json`)." Mirror 1 câu ngắn ở `session-start.md §2.1.2`. Text-only, 0 đổi thứ-tự khối.

**(C2) Detector C6 `cite-2-nấc` (`governance-detectors.ps1`):**
- Scope: `docs/governance/*.md` (top-level, EXCLUDE `adap-reports/` dir-level = lineage 90 occ) + `.claude/commands/*.md` + `.claude/agents/*.md`. Regex `([A-Za-z0-9_/.\-]+\.(?:md|ps1|js|cs|tsx?)):(\d+)`.
- 2 nấc: (i) resolve path (repo-rel + thử vài root quen: repo-root, `.claude/`, `docs/`) → file KHÔNG tồn tại = FLAG MED `cite-dead-file`; (ii) tồn tại → đếm line (`ReadAllLines.Length`) → line > EOF = FLAG MED `cite-line-past-eof`.
- 3 loại-trừ: (a) trong code-fence (tracker ``` state) + inline-backtick (`Test-Quoted` — matcher prose ⇒ BẮT BUỘC, luật S123); (b) dòng lineage: dir-exclude adap-reports + line có marker đóng-băng (🧊) — KHAI THẲNG phần lineage ngoài 2 proxy này chấp-nhận dương-giả đầu, tune sau first-run; (c) self-def: đăng-ký C4 `Test-Excluded` cho chính detector + file spec/sub-MD run này.
- Nấc: INFORM-only exit-0 (suite convention); first-run = báo count, KHÔNG fold TOTAL baseline cho tới sau fault-inject + triage (tránh Goodhart "flag giảm").
- Fault-inject (cây tạm `-RepoRoot`): cite gãy-file-giả → FLAG · cite đúng (file+line hợp-lệ) → IM · cite trong fence → IM · cite line>EOF file thật → FLAG · cite trong backtick → IM · anti-Goodhart: 2 cite cùng dòng (1 đúng 1 gãy) → FLAG đúng 1.
- Khai giới-hạn ngay header: KHÔNG bắt trôi-mềm trong-EOF (S108 ±1-2).

**(C3) K3:** 0 code. Adap-report bản-3 ghi bảng 3-câu-3-mã (§3.6) + verdict RỖNG. (Optional owner-gated: +1 câu cửa-duyệt reviewer "diff thêm câu hứa-máy-quét? → mã nào làm?" — trình anh, không tự thêm.)

**(C4) K4 — 1 câu nguyên-tắc,** đề-xuất nhà = `docs/rules.md §6.6` (cluster quyết-định khách-quan): "Thuật-lại quyết-định owner mang verb-durable (vĩnh-viễn/đóng-hẳn/bỏ-hẳn) = hợp-lệ KHI VÀ CHỈ KHI attribution tường-minh NGAY CẠNH verb (anh-chốt/anh-confirm/RC-mã/quote nguyên văn); verb-durable trần = tự-phán. Ranh máy-kiểm (khi nào port scanner): token-attribution cùng dòng, matcher PHẢI Test-Quoted." Alt-nhà: error-ledger Active-Guards — lead trình anh chọn.

**(C5) Detector H24-4 `pending-flip` (`governance-detectors.ps1`):**
- Nguồn A: `docs/HANDOFF.md` **segment HIỆN-HÀNH ONLY** (từ đầu file tới trước match `Prev S` đầu-tiên — L15/L19 lineage = biết-trượt case phải IM) + `docs/STATUS.md` §In-Progress.
- Token chờ (build code-point, gotcha #30): `CHỜ GẬT|CHỜ ANH` có **mã RC-`RC-pqhuy1987-…`** hoặc slug mark cạnh (cùng đoạn-logic).
- Nguồn B: `ACTIVE-MARKS.md` — mã RC đó ĐÃ stamped (row bảng Active/Active-High) hoặc có chú-thích `✅ RESOLVED` → dòng nguồn-A vẫn "CHỜ" = FLAG MED `pending-flip-stale`.
- Biết-trượt (cây tạm): hàng giả "CHỜ GẬT RC-fake…" + mark RC-fake stamped → FLAG · mark 📦 SUPERSEDED → IM · token cạnh mã RC-khác CHƯA stamp → IM · token trong backtick/fence (mô tả — chính spec này!) → IM (`Test-Quoted` BẮT BUỘC — file đề-xuất ĐANG mô tả token chờ = tự-quy-chiếu, khai trước per luật S123) · quét segment lineage → 0 flag (dir/segment-guard có răng).
- Live đầu: kỳ-vọng **0 flag** (segment hiện-hành không hàng treo mark-adjacent) — giá-trị ở phiên tới, mirror hub khoản 5.
- Khai thẳng: class S137 (đề-xuất-landed-in-code) NGOÀI tầm máy → GIỮ H24 view-audit mắt-người theo nhịp (không thay).

**(C6) K6 — 2 mảnh nhỏ:** (i) `session-end.md` Item 3-bis: +2 dòng khuôn `do-record: governance-detectors TOTAL=<n>` + `do-record: nhip-no=<dòng 3-vế>` vào cùng khối memory-triple (0 script mới, 0 file mới — session-log đã committed). (ii) +1 câu luật re-base, đề-xuất nhà = error-ledger Active-Guards (generalize E-010): "Re-base baseline = chốt số SỐNG tại lúc re-base: mọi số vào sổ đọc lại từ nguồn sống tại thời-điểm ghi (CẤM chép từ ghi-chú/phiên trước — kể cả ghi-chú của chính mình); byte = (Get-Item).Length (E-010)."

### ③ Checklist thi-công (vai + deliverable + acceptance ĐO ĐƯỢC)

| # | Vai | Deliverable | Acceptance (đo được) |
|---|---|---|---|
| L1 | worker lane-1 (4 file cửa: `session-start.md` + `session-end.md` + `pause.md` + `tiep.md`) | Khối MASTER-CHECKLIST 4 cửa + 2 câu đóng-băng + 2 dòng do-record + 1 dòng luật-số sàn-5 + câu cấm nguồn-đôi | grep anchor khối mới hiện đủ 4 file (4/4) · `find -iname "*checklist*.md"` delta = 0 file mới · dry-run đọc-khuôn: liệt được 4-nhóm từ WAL/HANDOFF THẬT hiện-tại (chờ-anh ≥1 mục có số) · 0 đổi số nhịp/cap (diff không chạm con-số config) |
| L2 | worker lane-2 (`scripts/governance-detectors.ps1` ONLY) | +C6 cite-2-nấc + H24-4 pending-flip + đăng-ký Test-Excluded + gọi Test-Quoted cả 2 matcher | fault-inject cây tạm: C6 6-ca (§②C2) đúng 6/6 · H24-4 5-ca (§②C5) đúng 5/5 · live-run: H24-4 = 0 flag / C6 = báo count first-run (KHÔNG fold baseline) · exit-code = 0 · script ASCII-only (gotcha #30) · suite cũ 0 flag mới (before/after `comm` = chỉ dòng detector mới) |
| L3 | reviewer (gate riêng — Harness-9 2-workflow) | Falsify acceptance L1/L2 + kiểm add-only-floor + kiểm Test-Quoted coverage MỌI matcher prose trong diff (luật S123) + measured-label gate trên mọi con-số mới | Re-run độc-lập fault-inject byte-exact · xác nhận 0 floor hạ · verdict GO/GO-WITH-FIXES |
| EM | em-main single-writer | `reviewer.md:46` +grounded (restart-note) · rules §6.6/error-ledger +2 câu luật (C4+C6ii — trình anh chọn nhà) · adap-reports ×3 + email hub + STATUS/HANDOFF | grep `grounded` reviewer.md:46 = 1 hit · adap-reports 3 file 5-trường · nấc G-011 đúng từng hành-động (KHÔNG tự khai verified) |

**Owner-gated (trình anh, KHÔNG tự quyết):** nhà của 2 câu luật (rules §6.6 vs error-ledger) · optional câu cửa-duyệt hứa-máy · fold C6 vào TOTAL baseline sau triage · mọi wording luật.

**Lane-estimate hmw:** ≤3 lane (L1 commands 4-file ⟂ L2 detector 1-file ⟂ L3 review) — file-disjoint hoàn-toàn; micro-edits để em-main.

---

## §5 — Surprises (ngoài câu hỏi chính)
1. **`reviewer.md:46` = bản chép LỖI-4-NHÃN của hub vào luật sống** — Δ1 không chỉ là "re-grep xong" mà có site vá thật trong SE.
2. **G-011 không có nhà canonical trong SE** — nấc-ladder dùng ở mọi adap-report nhưng 0 định-nghĩa on-disk (hub-convention import ngầm). Đáng 1 dòng trỏ trong error-ledger (owner quyết).
3. **Sweep hứa-máy = 0 unbacked** — hiếm; SE quen cite thẳng tên script thay vì hứa "máy sẽ".
4. **`mfe-eval.ps1` vừa đo vừa ghi vào vùng-họ-đo** (`.mfe-state.json` trong agent-memory) — benign vì dotfile ngoài tập đếm, nhưng đúng hình bệnh K1 → khai thành ngoại-lệ tường-minh trong câu luật.
5. **HANDOFF L15/L19 còn "CHỜ GẬT" lineage của việc đã đóng** — nếu H24-4 quét cả file thay vì current-segment = 2 dương-giả ngay ngày đầu (đưa vào biết-trượt case).

## §6 — Phân-nấc gộp
- **already-compliant:** Δ2 (SE-originated) · sàn-3/4/5 bản-2 · K3 (by-sweep) · K6.2-practice · K7.
- **cần-implement:** khối checklist 4 cửa (sàn-1/2) · C6 cite-2-nấc · H24-4 pending-flip.
- **cần-implement-NHẸ (text-only):** Δ1 reviewer:46 · K1 2-câu · K4 1-câu · K6.1 +2-dòng · K6.2 +1-câu · sàn-5 luật-hoá 1-dòng.
- **n-a:** K4 phần máy (0 scanner lớp-từ) · K5 class đề-xuất-landed-in-code (ngoài tầm máy — giữ H24 mắt-người) · bản-2 n-a-clause (SE CÓ phiên/carry) · Δ2 phần sửa-lệnh (0 standing check dùng ext-filter).

## §7 — Lệnh + số đã chạy (checklist-evidence)
1. `Grep grounded scripts/` = **0** · `Grep grounded .claude/` = **10 occ / 9 file** (toàn archive+runs lineage) · `Grep grounded docs/` = **8** (toàn prose/verb) · budget.json + hmw.js = **0**.
2. `grep -n "measured" .claude/agents/reviewer.md` → `:46` = `(measured/empirical/calibrated/đã-đo)` — **4 nhãn, thiếu grounded**.
3. Δ2: outbox `2026-07-16-se-to-ai_infra-adap-2-errata-report.md:20` = "**13 dương-giả** (12 .docx + 1 .xlsx)"; `agent-frontmatter-eol-check.ps1:253-257` scope 3-glob MD, `:135+` byte-CR — 0 ext-filter.
4. Cite volume: `grep -rEo '[A-Za-z0-9_/.-]+\.(md|ps1|js|cs|tsx?):[0-9]+' <dir> | wc -l` → docs/governance=**276** (adap-reports=**90**, rest=**186**) · commands=**10** · agents=**5** → tổng **291**.
5. Promise-sweep: grep rộng `máy (sẽ|tự)?(quét|bắt|so|kiểm|…)` 3 dir ngoài lineage → **3 hit / 3 traced** (session-end:103 · tiep:70 · tiep:73).
6. memory-triple: `grep -rn memory-triple docs/changelog/sessions/` → **3 dòng** tại `2026-07-17-S135-S137…:26-28` (committed).
7. Pending-token: `grep -c "CHỜ GẬT\|CHỜ ANH\|chờ anh"` → HANDOFF=**7 dòng** · STATUS=**14 dòng** (đa lineage); perl-window xác nhận L15/L19 = "2 đề-xuất S131 CHỜ GẬT" (đã-actioned — ca S137).
8. Nguồn-đôi: `find -iname "*checklist*.md"` → **2 hit**, 0 nguồn-đôi trạng-thái-việc.
9. NEXT-anh numbered: perl-window HANDOFF L7 → **(1)…(6)** + `[carry:]` mỗi khoản; L11 numbered tương-tự.
10. Detector inventory: `governance-detectors.ps1:14-26` = C2/C1(a,b)/C3/C4/H24-1/2/3; `:1122` TOTAL print; baseline **45** (STATUS:465 "TOTAL 46→45" S137). `Test-Quoted :598` · `Test-Excluded :113`.
11. Read-zones 5 script: file:line ở §3.4.
12. E-010: `error-ledger.md:35/:57/:72` (AS-14).
