# S153 — 2026-07-26 (phiên-logic 6) · Ctx soft-memory adopt TRỌN + OWNER-VETO 3-vai + RENAME hub-form

> Governance-only: **0 prod-code · 0 migration · test 532 giữ** (`git diff` 0 file `src/` `tests/` `fe-*` toàn phiên). Lead = Fable 5 (anh `/model`, hợp lệ Khoản 5) → đổi `claude-opus-5` @closeout.
> Run-folder: `runs/2026-07-26-S153-bookend-open/` · `runs/2026-07-26-S153-ctx-adopt/` · `runs/2026-07-26-S153-bookend-close/`

## 0. Arc phiên (3 + 2 delta owner)

| # | Arc | Verdict |
|---|---|---|
| 1 | **Bookend @open 5 vòng AUTO** (9 spawn) | ĐÓNG — `bookend-open-synthesis.md` |
| 2 | **adap thư ① `9c909007`** (model-default Opus 5 MAX) | TRỌN — filing + probe-sau-restart 2-nguồn + thư hub `d432f5eab5cd` |
| 3 | **arc ctx-adopt thư ② `0df10df4`** (sàn 7-khoản lớp mềm) | **EXECUTED** — 9 task T1-T8 + fault-inject 18/18 + 2 fix hậu-T4 · `ctx-adopt-synthesis.md` |
| 4 | **T10 OWNER-VETO (38)** — anh: *"còn thiếu 2 vai ctx?"* → AskUser **"Build đủ 3 vai như hub"** | hub-form 3-vai land |
| 5 | **T11 RENAME** — anh: *"kiểm lại label 5 vòng → đặt tên đúng giống hub và sisters để dễ audit"* | `ctx-pause-check`→`ctx-curator` · `ctx-reload`→`ctx-verifier` |

## 1. Pipeline anh lệnh (①→②→③) — chạy đúng thứ tự

`/check-email` ai_infra + `/adap-apply` DÒ (se=0 · all=2 thư 07-25, 0 mới hơn) → **`/fable-real investigator-codebase`** (Fable 5, deep-pass, return CLEAN) đọc thư + 10 nhóm file → **SPEC-READY 9 task / 24 checklist-item** → lead VERIFY ACCEPT + 2 chỉnh + **ACCEPT 3 đề-KHÁC** của engine (máy = extend `session_ctx.py` 1-nguồn thay `.ps1` mới · (36)(b) ⇒ không cần carve-out O-1 [**sau bị T10 đảo**] · vai 2-lượt thay 3-nhịp [**T10 đảo**]) → ghi `spec-ctx-adopt-26-07-2026.md` → **hmw Opus 5 MAX** 2 đợt (đợt-1 T1/T2/T3 · đợt-2 T4/T5) + lead-solo T6/T7/T8.

**4 quyết định (35)-(38)** — vết `OWNER-DELEGATED → ENGINE-PROPOSED → LEAD-DECIDED @S153`, anh veto 1-edit; (38) **sau đó bị anh VETO thật** ⇒ nhãn (38) = **owner chốt THẬT**:
- (35) `mind_ctx_kb = 32` KB · (36) máy-$0 mỗi pause · (37) nạp-nền RÚT-GỌN khoá `tiep_reload` (nền-full SE **596.316B ≈ 149-199K tok**, nặng hơn hub 1.36×) · (38) ~~1 vai~~ → **3 vai hub-form**.

## 2. Land trên đĩa

| Vật | Chi tiết |
|---|---|
| Máy `mind-check` | `scripts/session_ctx.py` +528 dòng: 7 phép + 2 phụ · 4 mức {đạt·trượt·cờ·bỏ-qua-có-khai} · draft/closed/`--root`/`--session` PIN · exit {0,1,3} · `_TS_KEY_RE` canonical 1-nguồn |
| Template | `.claude/templates/session-mind-template.md` (8.819B — 3 marker · 0 ts-key · 6 rào-hit) |
| 3 persona | `ctx-curator` (vai-1 @pause, carve-out `pause.md §1`) · `ctx-verifier` (vai-2 @tiep, dòng `LEAD-PHAI-NHAC-LAI:`) · `ctx-audit` (vai-3 @2-bookend, kiểm-vết vai-1/2) |
| Engine | `hmw.js` VALID_ROLES 20→**23** + writeGuard **2 điểm** (:228 comment + :235 template-literal = điểm có RĂNG vào prompt) |
| Wire 4 lệnh | `pause` §1-carve-out + §2.6(C-bis) 1-2-2bis-3-4 · `tiep` §2.6 + §3-ter · `session-start` 0.8-a-bis + roster + **Phase 3.5** · `session-end` §L.b(l) + §6.3-bis closed-check |
| Config | `memory-budget.json`: `mind_ctx_kb`=32 · `tiep_reload{mode,sources}` · **ĐÓNG ghost-wire `session_ctx_kb`** (`_honest_caveat`→`_reader`, H18 class-2 sống S146→S153) |
| Docs | STATUS §Sub-agents **23** · `agents/README` ×3 · `ctx-soft-memory-se-draft.md` (+§6 RESOLVED) · 2 adap-report · thư hub `aedd7fb67405` (6 datum) · `.gitignore` +`__pycache__` |

## 3. Fault-inject + 2 fix hậu-T4 (bài đắt nhất phiên)

**T4: 18/18 PASS** (#1-#17 + #21) — mẫu sạch render từ **template THẬT** (không mẫu-dễ-xanh); 2 vế literal DEFER-có-khai (#17 git-commit · #21 runtime).
**GAP-#9 (T4 bắt, lead vá + FI 6/6):** closed-mode "mục E có nội-dung mà 0 con-trỏ" CỜ→**TRƯỢT**. Lý do: nếu để CỜ thì *xoá con-trỏ đang-chờ* (→ exit 0) **RẺ HƠN** *giữ trung thực* (pending→TRƯỢT) ⇒ **gradient thưởng đường SAI** — đúng họ bẫy F-1 mà chính thư hub §4 kể. ⇒ Bài tổng quát: *một phép kiểm chỉ đúng khi đường rẻ nhất để làm nó xanh cũng là đường đúng.*
**Spec-drift #7:** `secrets-sweep` thiếu `--root` seam ⇒ literal PHẦN B #7 không chạy được như viết → vá parity.
**Số ĐO THẬT thay ước:** pause +**117ms** máy (draft 61,3 + full 55,4; file 34KB vẫn 63,8) — ước ban đầu 140-300ms/lượt lệch **2.2-5.4×** ⇒ đã điền số thật vào `pause.md`. Bài kèm: *đo wall-clock phải gồm nhánh ĐẮT* (lệnh literal đi nhánh early-exit = tự đo nhánh rẻ rồi gọi là chi phí thật).
**Bài của chính T4:** fixture MALFORMED cho exit 0 trông **y hệt** máy-đúng-cho-xanh (`inject_A` neo heading đã bị renumber ⇒ chèn giữa dòng) ⇒ **phải soi RUỘT fixture**, không chỉ đọc exit code.

## 4. T11 — label 5 vòng + tên vai, so 3 nhà (đo đĩa)

| Vòng | Con-ĐO | KIỂM hub | VIPIX | SE |
|---|---|---|---|---|
| V1 tooling+harvest | `tooling-auditor`+`harvest-curator` | `ring1-audit` | ✓ | ✓ |
| V2 soi-lead H24 | `lead-stale-auditor`+`lead-gap-auditor` | `ring2-audit` | ✓ (prefix `lead-stale`/`lead-gap`) | ✓ |
| V3 trio-memory | `harness-eval`+`harness-refine` | `harness-audit` (họ harness, KHÔNG "ring3") | ✓ | ✓ |
| V4 nén-ngủ | `/sleep-recovery` | `ring4-audit` | ✓ | ✓ |
| **V5 truth-floor** | máy nhóm-T (hub) / measured-label-gate (SE) | **`ring5-audit`** | ❌ | ❌ **gap → slot (41)** |
| Vòng Ctx | máy `mind-check` | `ctx-curator`→`ctx-verifier`→`ctx-audit` | `ctx-check`→`ctx-reload`→`ctx-chain` | ✓ **khớp hub 3/3 sau rename** |

Chuẩn chọn: **hub-form khi hub ≠ sister** (tiền lệ anh ratify @S149 rename `lead-*`). Sweep: tên cũ chỉ còn 2 lineage-note cố ý; `VALID_ROLES` 23 last3 đúng bộ-ba; khoá `tiep_reload` không bị replace dính. Nghịch-lý đã khai: VIPIX gọi vai-2 ĐÚNG là `ctx-reload` (trùng tên khai-sinh SE) — vẫn theo hub.
🔴 **Bẫy đếm lead tự dính + tự sửa:** parse `VALID_ROLES` bằng regex `]` đầu tiên ⇒ dấu `]` trong COMMENT nuốt non array ⇒ ra **18**; anchor `^\]` ⇒ **23**. Cùng lớp "bộ-lọc chuỗi nuốt nhầm đối tượng" (`_INDEX` tính thành shard @S144).

## 5. #53 + sự cố

**#53 = 14-cận-dưới phiên này** (8 bookend @open + 4 arc ctx + 2 bookend @close) — **0 mất dữ liệu**: WRITE-lane derive-from-body (T1/T2 schema-fail, code nguyên) · Agent-resume tiếp việc (T4) · SendMessage-resume (refine · audit · 2 vai H24 @close). Datum mới: **trio return-only hết miễn nhiễm** (S151/S152 3/3 CLEAN → S153 1/3).
**Residual-write:** `test-specialist` tự-compact diary 22.140→13.189B không được giao ⇒ verify máy **A7 28/28 pointer resolved** (gate 392→**401**) + entry cũ S133/S134 nguyên ⇒ **ACCEPT verified-KEPT** (tiền lệ AS-10 @S115).
**M9 seed:** 3 vai ctx mới có diary on-behalf (3.288B / 2.940B / 2.663B) ⇒ agent-memory dir 20→**23** khớp roster.

```
memory-triple: do=<scripts/measure-agent-memory.ps1 · exit 0 · roster-dir 23 · over-30kb 0>
memory-triple: de-xuat=<scripts/memory-archive-gate.ps1 DRY · exit 0 · no sub over cap>
memory-triple: kiem=<A7 GATE PASS 401/401 failed 0>
memory-triple: do-record=<governance-detectors TOTAL=46 (=baseline S151) · INFORM-ONLY=6>
memory-triple: do-record=<NHIP-NO: kiem light 0/6 deep 2/15 ok | tran-bo-nho 0 over-cap l2idx 0 over | run-chua-gom 0 | pull-cach 4 ngay>
```

## 6. Marker run (Sàn-5 — dấu BỀN, không chỉ WAL)

```
wf: bookend-open   run=2026-07-26-S153-bookend-open   runId=- (Agent-tool ×9)          done=9/9  harvested=yes
wf: ctx-adopt-dot1 run=2026-07-26-S153-ctx-adopt      runId=wf_2f91a3d2-d73            done=3/3  harvested=yes
wf: ctx-adopt-dot2 run=2026-07-26-S153-ctx-adopt      runId=wf_8686a2f1-662            done=2/2  harvested=yes
wf: bookend-close  run=2026-07-26-S153-bookend-close  runId=- (Agent-tool ×4 đo + ×2 KIỂM)  done=4/6→6/6  harvested=yes
```
🔴 **Nit H2 @close bắt (cờ-đi-trước-nội-dung):** dòng `bookend-close` bản đầu ghi `done=6/6 harvested=yes` lúc synthesis còn VẮNG + chỉ 4/6 sub trên đĩa ⇒ **cờ khai trước sự thật**. Đã sửa thành `4/6→6/6` (số lúc H2 đo → số cuối) + synthesis ghi ở cuối closeout. Bài: dòng `wf:` là **sổ cái hậu-kiểm**, không phải chỗ khai ý-định.
```
```

## 7. Chờ anh (slot đánh số) + T9

**(35)(36)(37)** veto-window (không veto = giữ) · **(39)** RAG Qdrant DOWN (charter AI_INFRA) · **(40)** `hmw_width.cap` 20 < roster 23 ⇒ full-sweep LOUD-skip 3 lane · **(41) 🆕** `ring5-audit` — hub CÓ (V5 truth-floor, Q-2 25-07), SE+VIPIX chưa: build SE-form hay chờ nhịp adopt chung? · slot cũ (26)(29)(33)(34) + (4)-(25) giữ.
**T9 phiên sau (cần restart CLI):** dogfood 1 vòng 4-cửa THẬT · spawn-probe **cả 3 vai ctx** · mồi-ngầm xuyên-cửa-sổ · checklist #18/#19/#20/#22/#23 · điền wall-clock pause thật nếu lệch >2×.
