# S158 — adap `/day` probe-first + bookend-close 5 vòng (2026-07-28 tối)

> Phiên-LOGIC **L7, window 5** (vào bằng `/tiep`). **Governance/adap-only — 0 prod-code, 0 migration, 0 test mới.**
> Test đo tươi: **562 PASS** (45 Domain + 517 Infra), 0 fail. Counter **31→32**.

## Đăng-ký run (Sàn-5 — session-log là sổ cái append-only, WAL là sổ ghi-đè)

```
wf: S158 adap-day-wake     run=2026-07-28-S158-day-wake-probe-first  runId=fable-real-single-lane
wf: S158 bookend-close     run=2026-07-28-S158-bookend-close         runId=agent-tool-multi-spawn
```

## Việc

**① `/tiep` recovery trọn.** Sàn-3: 5 tín-hiệu MẠNH đều kêu **đúng** (2 orphan run-folder · 2 commit non-`wal:` · ORPHAN-L `session-7` pause=4/tiep=3) — corroborate WAL, không mâu thuẫn. `verify:` **5/5 PASS, 0 lệch**. TICK S157→S158. Biên-nhận `_tiep-4.md` (window-ordinal 5).

**② `/check-email` AI_INFRA.** Verify bằng **NỘI DUNG** không phải tên file: 22/22 file `outbox/se` có trong `inbox/ai_infra`, **`cmp` 0 byte-drift** ⇒ `se=0` thật + không có stamp-then-edit (H18). Kênh `all`: 1 thư → đóng bằng adap-report cùng phiên ⇒ cuối phiên `se=0 all=0`.

**③ `/adap-apply` `2026-07-28-Governance-day-wake-probe-first-resume` qua `/fable-real investigator-codebase`** (vai do owner GÁN qua AskUser). Nấc **`agreed`** — **0 file cơ-chế bị sửa**; `day.md` chưa tồn tại. Spec 3-mục + adap-report + **4 phản-biện gửi ngược hub** + **1 datum dogfood** (hub tự khai có 0).
🔴 **Engine BÁC 2 tiền-đề của lead:** mồ-côi **0/8** (không phải "có squash ⇒ có mồ-côi") · probe **phải dựng phép-2**, không tái dùng Sàn-3 — chứng bằng cửa S158 nơi 2 phép cho **verdict NGƯỢC NHAU**.

**④ Rà 6 HIGH lens-wave spec KHKK:** 4 phủ trọn (H1/H2/H3/H4), **2 còn hở** → di-trú sang HANDOFF NEXT-em: **H5** W3 `N` chưa pin (N=0 vẫn PASS) · **H6** §2.4:224 còn giữ cơ-chế `IsVisible` đã bị chính file đó đo-đĩa bác ở `:289-290`.

**⑤ Bookend-close 5 vòng — 10 spawn.** V1 tooling+harvest → ring1 · V2 cặp H24 → ring2 · V3 trio eval→refine→audit · V4 nén-ngủ **`không-nhịp`** (`SHARD-PROBE pending=15/15 ⇒ IM`) · V5 floor/detector.

## 🔴 `#53` — kỷ lục phiên + ĐỐI-CHỨNG NỘI-PHIÊN SẠCH ĐẦU TIÊN

**7/8 lane garble.** Nhưng biến độc lập tách được sạch:

| Vai | ép ghi đĩa? | garble | mất |
|---|---|---|---|
| `investigator-codebase` (Fable 222K tok) | ✅ | KHÔNG | — |
| `tooling` · `harvest` · `lead-stale` · `lead-gap` | ❌ | ✅ ×4 | **TOÀN BỘ** — 4 resume |
| `ring1` · `ring2` · `refine` | ✅ | ✅ ×3 | **0 B** (2.818 / 5.354 / 7.957 B nằm sẵn) |

⇒ **Ép-ghi-đĩa KHÔNG giảm tần suất garble, nhưng đưa thiệt-hại về 0.** Xác nhận lần 5: chống `#53` = **thiết-kế ARTIFACT**, không phải PROMPT. Sổ `#53` cập nhật **66 cận-dưới qua S158**; S153-S157 **khai KHÔNG đếm được** (số "~27" của lead-gap neo bằng số dòng `_mind`, ring2 bác ⇒ không nhập tally).
🔸 **Câu garble chứa finding thật** — `ring1` chết đúng lúc phát hiện `run-chua-gom` 3→4; `ring2` chết đúng lúc bắt gap FLAG-3 tự mâu thuẫn với FLAG-2 của chính nó.

## Bẫy chặn được trong cửa (đáng nhất phiên)

**Mồi-ngầm neo bằng SỐ DÒNG.** `_context:62` định danh mồi bằng `_mind-s-7.md:99`; `_mind` chèn khối mới ở TRÊN + đã nén 3 lần. Hôm nay `:99` = *"Luật nén `_mind` HỞ"* — **vấn-đề mở thật**, đang là câu chờ-owner (45).
⇒ Nếu spawn `ctx-audit` mà không xử: hoặc **ĐẠT-ảo**, hoặc **dán nhãn "bẫy cài sẵn" lên đúng câu đang trình owner** rồi gạt.
Lead khôi phục từ git → mồi thật = *"Guard post-wave assertion mù 4 path hook…"*, pin **bằng nội dung**.
🔴 `ring2` dựng chronology mạnh hơn: neo **SAI NGAY TẠI COMMIT SINH RA NÓ** (`8d4075a` vừa mint chữ "mồi-ngầm" vừa là chỗ L99 đã thành dòng khác) ⇒ **stale-at-birth**, không phải trôi-do-nén. Và tìm được **đường thứ 2 độc lập** xác nhận (`sub-ctx-audit-open-S154.md:199` grep theo nội dung).
**Luật:** CẤM neo mục tiêu vào số dòng của file append-ở-TRÊN.

## Findings đã VÁ trong phiên

| # | Nguồn | Vá |
|---|---|---|
| RAG khai `alive` mà DOWN | stale FLAG-2 HIGH, **3 phép đo độc lập** `chunk_count=0` cho 7 project + shared_global | `STATUS:459` lật DOWN, giữ 2447 làm last-known-good có nhãn |
| Bundle hash prod đã chết | stale FLAG-1 HIGH; `cicd-verify:58` dùng chính ô này làm baseline | `STATUS:461` → `8-QYcMOg`/`DptYR4wL`, control-âm 900/876 B |
| `STATUS:6` 4 cửa-sổ / counter 31 | stale FLAG-3 | → 5 cửa-sổ / 32 |
| **M-1** nguyên văn owner bốc hơi | ring2 — `grep -c 'bước thứ 6'` = 0/STATUS + 0/HANDOFF | nhét verbatim cạnh dẫn xuất `b.7→21` |
| `WAL:5` · `WAL:21` | stale FLAG-4/5 | 5 cửa-sổ · tick `[x]` nấc `agreed` |
| HANDOFF dừng S153, slot dừng (41) | stale FLAG-6 | segment S155→S158 + slot **(42)…(48)** |
| **Gate 5-anchor vô gia cư** | gap FLAG-4, hạn chót = cửa kế (§6.4 sắp xoá WAL) | di-trú sang HANDOFF **NEXT em** |
| `ef-core-migration` bảng dừng Mig 67 | H1 FLAG-1 — **lần 3 cùng class** | 🔴 vá **CẤU TRÚC**: frontmatter thôi khai bảng là nguồn "mới nhất", trỏ 2 nguồn SỐNG (ring1: thêm row = vá triệu chứng, đảm bảo stale lại ở Mig 69) |
| `contract-workflow:371` "Contract V2 chưa" | **ring1 thách-CLEAN thủng H1** — sai **~2,3 tháng**, phát-biểu SAI chủ động | đính chính: V2 đã wire từ S29, đĩa có 3 chứng |
| C12 raw-engine-bypass | detector | +3 dòng `run=` hồi-tố S155/S156/S157 |
| 2 orphan run-folder | H2 F2/F3 — lead viết dạng-3 **đã RETIRED** | `adap-synthesis.md` + `bookend-close-synthesis.md` dạng-1 phẳng |
| GAP-3 diary-0-delta ×2 | H2 F1 (`grep -c S158`=0 cả 2 sổ) + gap FLAG-1 | M9 seed on-behalf `ctx-verifier` + `investigator-codebase` |
| Sổ `#53` đứng yên 5 nhãn phiên | gap FLAG-3 `gap-incident-unrecorded` | ghi bù + **2 sub-class mới** |

## 2 sub-class `#53` mới (guard hiện KHÔNG bắt được)

1. **`skeleton-ruột-rỗng` nấc-2** — 202K tok, đĩa **1.661 B khung rỗng toàn heading**. Guard S150/S151 dạy *"verify byte-content tăng thật"* — mà **1.661 B LÀ byte > 0 và CÓ tăng** ⇒ phải verify **NGỮ-NGHĨA**, không chỉ byte.
2. **`engine-process-exit`** — CLI thoát, **0 delta đĩa** = lượt chạy chưa từng tồn tại. Phân biệt: `#53` = đĩa có + return sai · `skeleton` = vỏ có + ruột rỗng · cái này = **0 delta**.

## memory-triple

```
memory-triple: do=scripts/measure-agent-memory.ps1 · 0/23 L1 over-30KB
memory-triple: de-xuat=scripts/memory-archive-gate.ps1 DRY · A7 GATE PASS 402/402 pointer, 0 failed
memory-triple: kiem=harness-audit · (verdict ghi ở harness-audit-return.md)
memory-triple: do-record=governance-detectors TOTAL=44 (INFORM-only 7, self-match 0)
memory-triple: do-record=NHIP-NO: kiem light 5/6 deep 7/15 ok | tran-bo-nho 0 over-cap l2idx 0 over | run-chua-gom 3 | pull-cach 6 ngay
```

## Verdict các vòng

`TOOLING: PASS_WITH_FLAGS — 3` (ring1 chấm **under-count**, phải ≥2 ở mặt ①) · `HARVEST: GATE-PASS-6 | GATE-FAIL-0` · `LEAD-STALE: 6 FLAG` · `LEAD-GAP: 5 FLAG` · `RING1: 38 CLAIM — 29Đ/3T/6KC` · `RING2: 11 CLAIM — 11Đ/0T/0KC` · `HARNESS-EVAL: MIXED — 18 signal` · `HARNESS-REFINE: 1 ACTION — BÁC 9`

## Bài học nổi bật

- **Vòng KIỂM tự bắt lỗi của chính nó nhiều hơn bắt lỗi con-đo:** `ring1` 3/4 falsify BROKE là lỗi của nó (parse non-greedy dính bẫy `]`-trong-comment — **đúng cái H1 khai đã né**; `comm` lệch collation; quên nhánh DUAL-ACCEPT). Tự kết: *"2/2 lần đầu nghi con-đo đều là lỗi tao"*.
- **Con ĐỀ-XUẤT bác lại con ĐO có căn cứ:** `refine` B1 mở **cả 11 file** → 11/11 có tem `on-behalf/M9` in-content ⇒ S7 *"11 diary chung 1 mtime"* là **proxy mtime đọc sai**, corpus không giấu gì.
- **Thước MA tốn công thật:** "17,1K" nằm ở 5 diary, **0 key + 0 reader**; `inv-cb` nén về ~17,1K @S155, **3 ngày sau 20.646 B lại**. → câu owner (46).
- **`gap-owner-specifics = 0` verdict đúng nhưng lời khai coverage TRƯỢT** (ring2): mẫu số thật ≥6-8, gap khai 4, không khai tập bù — tái phạm đúng lỗi ring2 bắt @S154.
