# _mind-s-16 — SESSION-MODEL lớp MỀM (trí-nhớ suy-nghĩ 4 tầng)

<!-- SCAFFOLD-META: sID=16 | ts-moc=2026-08-13T02:10:39+07:00 | nguon-ts=git log -1 --format=%cI @ HEAD 05ddefbd | render=lead Write @session-start Phase 3.5 (session-scaffold.ps1 KHONG render tep nay) -->

<!-- MIND-RULES-START -->

> **sID (LOGIC-session) = 16.** Tệp này giữ 4 thứ KHÔNG nằm ở WAL / HANDOFF / `_context`: **(A)** gói-turn · **(B)** hướng-tiếp · **(C)** kế-hoạch delta-suy-nghĩ · **(D)** đang-thảo-luận (+ **(E)** dòng-sống spawn). Nhà: `.claude/sessions/session-16/_mind-s-16.md`.
> ts-mốc khởi-tạo = **2026-08-13T02:10:39+07:00** (nguồn: `git log -1 --format=%cI` @ HEAD `05ddefbd`) — mốc git-committer, KHÔNG phải wall-clock tuỳ-tiện.
>
> **GHI = lead (single-writer)** @4 nhịp: block-0 cuối bootstrap · refresh @`/pause` · đọc + đối-chiếu @`/tiep` · mục E gom MỌI spawn/engine-run. **KIỂM = máy + vai** (tách khỏi ghi): `python scripts/session_ctx.py mind-check --session 16` mỗi cửa (~$0) + vai `ctx-audit` @2 bookend (INFORM-only, quyền phán TRƯỢT).
> **Trần tệp** = khoá `mind_ctx_kb` trong `.claude/agent-memory/memory-budget.json` — **B1: trỏ khoá, CẤM chép số vào tệp này.**

### 🔴 CHIỀU CHÈN — NGƯỢC với `_context` (đọc trước khi chèn block đầu tiên)

- **`_mind` = MỚI-NHẤT-Ở-TRÊN.** Block mới chèn NGAY DƯỚI **dòng marker điểm-chèn** (dòng comment nằm ngay trên block top, dưới khối luật này).
- **3 dòng comment marker của tệp** (mở khối luật · đóng khối luật · điểm-chèn) xuất hiện **ĐÚNG 1 LẦN** mỗi cái. Vì vậy phần chữ ở dưới CHỈ gọi chúng bằng **mô-tả**, KHÔNG viết lại tên marker.
- **`_context` FLOW = MỚI-NHẤT-Ở-CUỐI**. **HAI TỆP NGƯỢC CHIỀU NHAU** — CẤM "adopt verbatim" khuôn bên kia sang đây.
- **Số hiệu = ĐẾM số block hiện có TRƯỚC KHI chèn** (block-0 chiếm số 0).
- **Block cũ BẤT BIẾN** (append-only). **Ngoại lệ DUY NHẤT**: nén khi vượt trần — nén block CŨ NHẤT **trừ block-0 và block top**; **<3 block ⇒ TỪ-CHỐI nén**, giương cờ vượt trần.
- **Việc ĐÃ-CHỐT ⇒ chỉ con-trỏ** (`.claude/WAL.md` · `docs/HANDOFF.md` · `.claude/workflows/runs/<id>/…`) — **CẤM chép nội-dung**.
- **Mục trống ⇒ ghi đúng chuỗi `(trống — khai)`** trên 1 dòng riêng. CẤM bỏ heading — vắng-mặt trông giống ổn.
- **5 heading trong mỗi block = `### A.` … `### E.`** (thứ tự A→E cố định).
- **Mục D: mỗi ý 1 dòng + BẮT BUỘC nhãn**, viết **đúng chuỗi CÓ DẤU**: `{mới-nêu | đang-cãi | gần-chốt | treo-chờ-anh}`.

### 3 RÀO NỘI-DUNG (máy `mind-check` phép 1-3)

1. **Rào-1 — CẤM verbatim lời anh.** Dạng bị bắt = dòng blockquote mở đầu bằng `anh` + hai chấm. Verbatim có nguồn-duy-nhất = `_context` FLOW (`### PAUSE-<k>`); trong `_mind` chỉ được TRỎ: `xem PAUSE-<k>`.
2. **Rào-2 — CẤM khoá thời-gian ở ĐẦU DÒNG.** Mốc sống trong dòng heading, sau em-dash: `## MIND-<k> — <ISO-8601> @ <HEAD>`. Regex canonical = `_TS_KEY_RE` trong `scripts/session_ctx.py`.
3. **Rào-3 — CẤM secret, KỂ CẢ dưới dạng ví-dụ.** Tập tiền-tố cấm = `SECRET_PATTERNS` trong `scripts/session_ctx.py`. Bắt buộc quét NHÁP trước khi chèn.

### Enclosure use ⟂ mention

Máy chỉ quét phần **DƯỚI** marker đóng khối luật. Khối luật được phép chứa chuỗi bị cấm để **giải thích**. Hệ quả 2 chiều: **đừng** dịch ví-dụ xuống dưới marker đóng, và **đừng** viết nội-dung thật lên trên nó.

<!-- MIND-RULES-END -->

<!-- diem-chen: block MOI chen NGAY DUOI dong marker duoi day (moi-nhat-o-TREN -- NGUOC chieu _context FLOW).
     Marker duoi day phai giu NGUYEN-VAN, KHONG viet chu-thich cung dong. -->
<!-- MIND-TOP -->

## MIND-1 — 2026-08-13T04:12:37+07:00 @ 2221ed10 (window 1, /pause)

### A. Gói-turn

- Anh gõ `/pause` ngay sau khi bookstart đóng ⇒ cửa-sổ 1 của L16 dừng chủ-động, **0 việc product được giao**.
- Cổng C2 (§2.5) **bắt đúng thứ nó sinh ra để bắt**: `A∖B` = **11 vai** chưa có entry S192 ⇒ lead seed on-behalf 11 sổ, kèm nhãn `[LEAD SEED ON-BEHALF]` (vá luôn finding #5 của H2). Sau seed `A∖B` = **0**.
- 2 phát hiện phát sinh **tại chính cửa dừng**: thước dò thư của lead lỏng ở biên watermark (báo `all=3`, thật `all=0`); và **residual-write thứ HAI** (`score-count-auditor` ghi `s192-false-reconciliation.md`, và đã làm từ S189).

### B. Hướng-tiếp + nhánh-đã-loại

- **Đi tiếp:** nối bằng `/tiep`. Địa chỉ việc chờ anh **nguyên trạng** — xem `MIND-0 §B` + `docs/HANDOFF.md:5`: anh **kiểm prod GĐ3**; anh nói ổn rồi ⇒ mở **W8** + `[carry:w8-delete-policy]`. 7 câu đánh số ở báo cáo cuối bookstart chưa có đáp nào.
  - 🔴 **CỐ Ý KHÔNG chép digit bundle** — ô canonical `docs/STATUS.md` §Bundle-hash tự ra lệnh *KHÔNG chép digit ở ô này nữa (lệch 5 lần liên tiếp)*, nguồn SỐNG = artifact `cicd-monitor` mới nhất. Nháp đầu chép `CR538vZx`/`C10ta-wB`; `ctx-curator` #3 đòi đổi sang `D6lFjgKF` theo `HANDOFF:5`. **Hai nguồn nói khác nhau và lead CHƯA đo prod live** ⇒ không phán, chỉ TRỎ. Xung đột này = việc closeout.
- **Nhánh ĐÃ LOẠI ở cửa này:**
  - *Báo `thu-moi: all=3`* — LOẠI, đó là biên thước lỏng, không phải thư mới; giữ số bookstart `all=0`.
  - *Revert 2 residual-write ngay tại cửa dừng* — LOẠI, `/pause` là cửa dừng, không phải cửa sửa; và LT3 bậc-2 đã chọn giữ + khai, quyền lật là của anh.
  - *Nén `lead-gap`/`ring2` cho xuống dưới cap ngay* — LOẠI, seed vừa đẩy 2 vai lên sát `soft_cap`; nén là việc closeout, và `harness-refine` đã chốt-dừng **ESCALATE cơ-chế** thay vì lặp archive.

### C. Kế-hoạch (delta suy-nghĩ)

- **Cổng ép-seed C2 chứng minh giá trị ngay lần chạy đầu ở `/pause`.** Trước lượt này lý lẽ chỉ là suy luận cấu-trúc (*"phiên kết bằng `/pause` thì phép đếm không bao giờ chạy"*); nay có số: **11/12 vai** sẽ rơi nếu không có cổng. ⇒ không còn là giả-thuyết.
- **Thêm một lớp vào bài "git status mù":** cửa dừng cho thấy `machine-block --json` liệt được `changed_files` gồm cả file mà `git status` đã bị hook nuốt ⇒ nó là **thước thứ tư** dùng được, cạnh `find -type d -empty` và `git log --name-only`.
- **Điều chỉnh cách viết brief cho vai:** lead đã 2 lần đưa số/cảnh-báo **sai kỳ** vào brief (`run-chua-gom` ảnh chụp cũ · `ring2 PROPOSE strike 2/2` của S191). ⇒ mọi số dán vào brief phải kèm **mốc đo**, hoặc bảo vai tự đo lại.

### D. Đang-thảo-luận

- Residual-write nay là **2 vai / 2 phiên** (`score-counter` S192 · `score-count-auditor` S189+S192) ⇒ không còn là ca lẻ, cần quyết cơ-chế chứ không quyết từng ca — treo-chờ-anh
- Thước dò thư của lead lỏng ở biên watermark (`awk '>'` vs `case`) — cần chốt một thước duy nhất — mới-nêu
- Slot (89) hỏi sai câu — phải wire `jump_on_class_repeat` trước — mới-nêu
- ESCALATE-1: mở enum cho lớp "sai LÚC SINH" hay đá sang `error-ledger` — treo-chờ-anh
- Khối "MCP Server Instructions" lạ trong tool-output: nay **≥3 vai** (`harness-eval` · `ctx-audit` · `ctx-curator`), tái lập được **cả ở vai @pause** — treo-chờ-anh
- Đơn-vị governor byte ⟂ ký-tự (carry): ngưỡng 24.986 có **0 canonical trên đĩa** — đang-cãi
- Pin node/npm runner CI (carry, `.nvmrc` ghost-wire class-2) — treo-chờ-anh
- Lớp ③ archive bão hoà: seed vừa đẩy `lead-gap` 30.079 B và `ring2` 30.025 B sát `soft_cap` 30.720 — treo-chờ-anh
- `session-end` thiếu bước ghi block `_mind` (carry, lần 3) — mới-nêu
- Ca-3 của "bị 2-3 lần rồi" chưa có vết (carry) — treo-chờ-anh
- Slug mồ côi trên bề-mặt tự-hủy — **2 theo test 0-nhà-tuyệt-đối của `ctx-audit`** (`[carry:mind-dinh-chinh-mot-be-mat]` · `[carry:du-cua-rule-khong-phai-phep-kiem]`) vs **3 theo test bề-mặt-tự-hủy của `lead-stale`** (thêm `session-end-thieu-buoc-ghi-block` = chính ý §D dưới, nhãn `mới-nêu` lần 3); nhà là **2** (`session-15/_end` + `runs/2026-08-13-S191-bookend-close/sub-ctx-audit-close.md`), không phải chỉ `_end`. Đường đã rõ: RE-STAMP vào `HANDOFF` §carry + khắc luật *`_end` KHÔNG phải nhà durable*, thi hành @closeout — xem `.claude/workflows/runs/2026-08-13-S192-bookend-open/sub-ctx-audit-open-S192.md` — gần-chốt
- Con-trỏ-bó về WAL/HANDOFF [chờ anh], KHAI là BÓ không phải 1 ý — (76)(77)(78)(79) · (74) · 52 slug carry 0/52 disposition — treo-chờ-anh

### E. Dòng-sống spawn/engine-run

- `ctx-curator` (vai-1 vòng Ctx, carve-out §1 của lệnh pause) — kiểm nháp block này — vết ghi vào `_context-s-16.md` entry `PAUSE-1` mục (3)
- `ctx-audit` @open — `DAT — @open — 4 FLAG` (nặng nhất **F-1 HIGH**: 2 slug mồ côi, nhà là file không đuôi `.md` của phiên đã đóng = class tàng-hình) — `.claude/workflows/runs/2026-08-13-S192-bookend-open/sub-ctx-audit-open-S192.md`
  - 🔸 Vì sao phải thêm dòng này: `MIND-0` §E ghi `ctx-audit — đang chạy` (0 verdict) và block cũ **BẤT BIẾN** ⇒ nếu chỉ trỏ về `MIND-0` thì verdict này **vĩnh viễn không có nhà**. (`MIND-0 §A` đếm 11 artifact — nay **12**.)
- 11 vai còn lại của bookend @open: đã liệt đủ verdict + path ở `MIND-0` §E, **không chép lại** (việc đã chốt ⇒ chỉ con-trỏ)


## MIND-0 — 2026-08-13T02:10:39+07:00 @ 05ddefbd (window 1)

### A. Gói-turn

- Bootstrap `/session-start` chạy **TRỌN MỘT LƯỢT** (ONE-SHOT YC-018/YC-027): BƯỚC 0→0.9, Phase 1 READ 7 doc, Phase 2 AUDIT đủ 5 vòng + khối CHẤM, Phase 3, Phase 3.5. Sàn-3 **5/5 IM**, `session-16` cấp mới, thư `se=0 all=0`, counter 65→66.
- **12 vai spawn / 11 artifact / ~277 KB.** Verdict: H1 `PASS_WITH_FLAGS 7` · H2 `GATE-FAIL 6` · `ring1` 15Đ · 7T · 3KC · stale `10 FLAG (SÀN)`+1 ESC+1 INFORM · gap `5 FLAG (2 HIGH)` · `ring2` 12Đ · 2T · 1KC · trio `MIXED 39 trục` → `2 action/16 BÁC` → `10Đ · 3T · 2KC` (falsify 17 phép, **3 BROKE**). Chi tiết: `.claude/workflows/runs/2026-08-13-S192-bookend-open/bookend-open-synthesis.md`.
- Test **697 PASS** đo tươi, khớp canonical. Detectors 58+29. RAG 2450 / index stale 2026-05-29.

### B. Hướng-tiếp + nhánh-đã-loại

- **Đi tiếp:** việc đang chờ anh có ĐỊA CHỈ, không phải "chờ giao việc" chung chung — **anh KIỂM PROD GĐ3** (eoffice `CR538vZx` / admin `C10ta-wB`, run #488); *"ổn rồi"* ⇒ mở **W8** + `[carry:w8-delete-policy]`. Nguồn còn sống: `docs/HANDOFF.md:5`. Nợ governance gom đủ ở synthesis + `run.md`, thi hành @**closeout**, không rải giữa phiên.
- **Nhánh ĐÃ LOẠI (ghi để khỏi đào lại):**
  - *Vá F-B của H1 nguyên trạng* — LOẠI, `ring1` chứng nó ghi số SAI (thiếu 2) và xoá số ĐÚNG của S186; số thật là 12 root / vẽ 8 / vắng 4.
  - *Thi hành move-set của `memory-archive-gate`* — LOẠI, `:177-178` còn giả-định `bottom=newest`; 3 mục nó đề bốc là hợp-đồng-vai.
  - *Trả lời slot (89) bằng 1 trong 3 nhánh cũ* — LOẠI, `ring2` chứng nhánh (b) là **no-op** và tập trình anh **không chứa đỉnh**; phải wire trước rồi mới bàn số.
  - *Dọn stray dir giữa chừng* — LOẠI, đo được là tái sinh sau mỗi vai (lần 6); phải dọn @closeout.
  - *Revert residual-write của `score-counter`* — HOÃN, chọn nhánh an-toàn LT3 bậc-2 (giữ + khai), quyền lật là của anh.

### C. Kế-hoạch (delta suy-nghĩ)

- **Đổi cách hiểu về `git status` làm backstop:** trước coi nó là lưới cuối của propose-only. Nay đo được **3 lớp trốn qua được** (dir rỗng · bị Stop-hook nuốt thành `wal:` · file tưởng chưa ghi) ⇒ post-wave assertion §2.1.9(f) phải là **bộ 3 thước**, không phải 1 lệnh.
- **Đổi cách hiểu về ghost-wire:** trước nghĩ là chuyện cấu hình lẻ. Nay thấy **2 ca cùng phiên cùng họ** (`jump_on_class_repeat` · `strikes_total`) ⇒ nó là **class**, và phép thử rẻ là *grep tên khoá rồi hỏi "hit này là điều-kiện hay là chữ?"* + **luôn kèm control-dương**.
- **Nhận ra một lớp lỗi chưa có nhà:** "sai LÚC SINH, source không stale" — 3 ca trong 1 phiên, enum không có ô chứa, ngưỡng JUMP không ai đọc ⇒ vô hình **hai tầng**. Đây là nội dung thật của `ESCALATE-1`.
- **Chỉnh lại niềm tin vào số của chính lead** — 🔴 liệt ĐÍCH DANH thay vì tuyên "6/6 ca" (chính `ctx-audit` F-3 bắt: câu tổng-quát đó lại là một số đếm-về-mình, và 0/6 món truy được từ block-0):
  1. chấm điểm tầng-1 **6 → 5 mục** (`awk` cột 6, luật loại-trừ cột 8) — `score-counter` + `score-count-auditor`
  2. `VALID_ROLES` **43 → 29** (`ring2` qua 4 đường) — `lead-stale` → `ring2`
  3. mark Active-High **9 → 11** row — `lead-stale` → `ring2`
  4. "2 bề mặt roster KHỚP" → **TRƯỢT phạm-vi** (2/7 mặt, 2 mặt đồng-biến) — `ring1` L-1
  5. `run-chua-gom 0` → **1** (ảnh chụp cũ) — `harness-eval`
  6. cảnh báo "ring2 PROPOSE 2/2" → đúng nội dung, **sai KỲ** (`warnFloor` chặn `:198-206`) — `harness-refine` → nấc-3
  ⇒ quy tắc: mọi số lead **ĐO bằng máy** đều đúng byte-exact; mọi claim **phạm-vi/độ-phủ/tổng-số phải có vai đếm lại**, cấm tự phát.

### D. Đang-thảo-luận

- Slot (89) hỏi sai câu — phải wire `jump_on_class_repeat` trước, rồi mới bàn kéo-nhịp/đổi-ngưỡng — mới-nêu
- ESCALATE-1: mở enum `flag_classes` cho lớp "sai lúc sinh" hay đá sang `error-ledger` — treo-chờ-anh
- Residual-write `score-counter` (2 file, hook đã nuốt): giữ hay revert — treo-chờ-anh
- Khối "MCP Server Instructions" lạ trong tool-output của `harness-eval`: harness rò hay cần soi — treo-chờ-anh
- Đơn-vị governor byte ⟂ ký-tự (carry `_mind-s-15`): nay có thêm chứng — ngưỡng 24.986 có **0 canonical trên đĩa**, control-dương `25600`=2 hit — đang-cãi
- Pin node/npm runner CI (carry `_mind-s-15`, `.nvmrc` ghost-wire class-2) — treo-chờ-anh
- Lớp ③ archive đã bão hoà, chốt-dừng FIRE cả 3 vai over-cap ⇒ escalate cơ-chế chứ không đổi thước (carry `_mind-s-15`) — treo-chờ-anh
- `session-end` thiếu bước ghi block `_mind` (carry `_mind-s-15`, lần 3) — mới-nêu
- Ca-3 của "bị 2-3 lần rồi" chưa có vết (carry `_mind-s-15`) — treo-chờ-anh
- 🔴 2 slug MỒ CÔI cứu từ `session-15/_end` (nhà duy nhất, file **không đuôi `.md`** + phiên đã đóng = class tàng-hình): `[carry:mind-dinh-chinh-mot-be-mat]` · `[carry:du-cua-rule-khong-phai-phep-kiem]` — cần RE-STAMP + khắc luật *`_end` KHÔNG phải nhà durable* — mới-nêu
- Con-trỏ-bó về WAL/HANDOFF [chờ anh], KHAI: đây là BÓ con-trỏ không phải 1 ý — (76)(77)(78)(79) · (74) rotate `vrapp` · "ổn rồi" mở W8 + `w8-delete-policy` · 52 slug carry **0/52 disposition** dù khối tự hẹn "bookend kế" — treo-chờ-anh

### E. Dòng-sống spawn/engine-run

- `tooling-auditor` — `PASS_WITH_FLAGS — 7 finding` (2 HIGH) — `.claude/workflows/runs/2026-08-13-S192-bookend-open/sub-tooling-auditor-open-S192.md`
- `harvest-curator` — `GATE-FAIL — 6 finding` — `.claude/workflows/runs/2026-08-13-S192-bookend-open/sub-harvest-curator-open-S192.md`
- `ring1-audit` — `15Đ · 7T · 3KC` — `.claude/workflows/runs/2026-08-13-S192-bookend-open/sub-ring1-audit-S192.md`
- `lead-stale-auditor` (DEEP) — `10 FLAG (SÀN) + 1 ESCALATE + 1 INFORM` — `.claude/workflows/runs/2026-08-13-S192-bookend-open/sub-lead-stale-deep-S192.md`
- `lead-gap-auditor` (DEEP) — `5 FLAG (2 HIGH)` — `.claude/workflows/runs/2026-08-13-S192-bookend-open/sub-lead-gap-deep-S192.md`
- `ring2-audit` — `12Đ · 2T · 1KC` — `.claude/workflows/runs/2026-08-13-S192-bookend-open/sub-ring2-audit-S192.md`
- `harness-eval` — `MIXED — 39 trục` — `.claude/workflows/runs/2026-08-13-S192-bookend-open/harness-eval-return.md`
- `harness-refine` — `2 action / 16 BÁC` — `.claude/workflows/runs/2026-08-13-S192-bookend-open/harness-refine-return.md`
- `harness-audit` — `10Đ · 3T · 2KC`, falsify 17 phép 3 BROKE — `.claude/workflows/runs/2026-08-13-S192-bookend-open/harness-audit-return.md`
- `score-counter` (tầng-2) — `5 MỤC nhắc≥2 / mẫu số 26` — `.claude/workflows/runs/2026-08-13-S192-bookend-open/sub-score-counter-S192.md`
- `score-count-auditor` (tầng-3) — `tầng-1 SAI · tầng-2 ĐÚNG` — `.claude/workflows/runs/2026-08-13-S192-bookend-open/sub-score-count-auditor-S192.md`
- `ring4-audit` — **NO-OP pin-missing có khai** (sleep không chạy: shard-probe `12/15 ⇒ IM`) — không spawn
- `ctx-audit` @open — đang chạy — `.claude/workflows/runs/2026-08-13-S192-bookend-open/sub-ctx-audit-open-S192.md`
