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

<!-- SCAFFOLD-META: sID=12 | ts-moc=2026-08-07T17:34:01+07:00 | nguon-ts=git log -1 --format=%cI @ HEAD 4091468 | render=lead Write @session-start Phase 3.5 (session-scaffold.ps1 KHONG render tep nay) -->

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

> **sID (LOGIC-session) = 12.** 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-12/_mind-s-12.md`.
> ts-mốc khởi-tạo = **2026-08-07T17:34:01+07:00** (nguồn: `git log -1 --format=%cI @ HEAD 4091468`) — 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 12` 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 — máy/người tìm-chuỗi sẽ không bắt nhầm anchor rồi chèn vào giữa khối luật. Máy khớp anchor bằng **token** trên dòng bắt đầu `<!--` (KHÔNG kèm `-->`, vì marker có chú-thích viết cùng dòng — mirror `FLOW-START` của `session-context-template.md`).
- **`_context` FLOW = MỚI-NHẤT-Ở-CUỐI** (`.claude/templates/session-context-template.md`, dòng `FLOW-START`). **HAI TỆP NGƯỢC CHIỀU NHAU** — CẤM "adopt verbatim" khuôn bên kia sang đây. Lý-do: `_mind` đọc để **nạp lại trạng-thái** ⇒ thứ mới nhất phải ở màn hình đầu; `_context` là **biên-niên-sử durable** ⇒ đọc xuôi thời-gian.
- **Số hiệu = ĐẾM số block hiện có TRƯỚC KHI chèn** (block-0 chiếm số 0 ⇒ đang có n block thì block mới là `MIND-n`). Máy chỉ đòi *số duy-nhất* + *block top ≥ mọi số dưới* — KHÔNG neo công-thức đếm, nhà đổi công-thức vẫn kiểm được.
- **Block cũ BẤT BIẾN** (append-only, không rewrite / không tự-tóm). **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**, verbatim vẫn còn trong git; **<3 block ⇒ TỪ-CHỐI nén**, giương cờ vượt trần (nợ hiển thị, không xoá chứng-nhâ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** (2-sự-thật + phình trần).
- **Mục trống ⇒ ghi đúng chuỗi `(trống — khai)`** trên 1 dòng riêng, KHÔNG thêm chữ, KHÔNG bọc dấu nhấn (máy so chuỗi). 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) — đây là hợp-đồng hình-dạng cho máy `mind-check` và vai `ctx-audit`.
- **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}`. Máy so chuỗi ⇒ viết không dấu = **trượt-cấu-trúc**. (Phần chữ hướng-dẫn trong khối luật này theo khuôn nhà có thể không dấu, nhưng **token máy đọc thì giữ dấu** — đừng chép ngược.)

### 3 RÀO NỘI-DUNG (máy `mind-check` phép 1-3 — mỗi rào kèm LÝ-DO ĐO ĐƯỢC)

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, ví-dụ:
   > anh: <lời anh nguyên-văn — dòng NÀY hợp-lệ vì nằm TRONG khối luật, xem mục enclosure>

   *Lý-do đo được:* verbatim lời anh có **nguồn-duy-nhất** = `_context` FLOW (`### PAUSE-<k>` → dòng quote). `_mind` là lớp mềm bị nén/diễn-giải mỗi cửa ⇒ chép verbatim vào đây tạo bản-thứ-2, và khi 2 bản lệch thì bản mềm (đọc trước, giàu ngữ-cảnh hơn) sẽ thắng bản durable. Trong `_mind` chỉ được TRỎ: `xem PAUSE-<k>`.
2. **Rào-2 — CẤM khoá `ts:` ở ĐẦU DÒNG** (mọi biến thể: thụt space/tab, hoa/thường, có khoảng trắng trước dấu hai chấm). Mốc thời-gian sống **trong dòng heading, sau em-dash**: `## MIND-<k> — <ISO-8601> @ <HEAD>`.
   *Lý-do đo được:* marker nhà (`_pause-*` · `_tiep-*` · `_snapshot-*`) mang khoá đó ở đầu dòng **by-design**; reader-mốc TƯƠNG-LAI (gap C10-LATENESS của `scripts/governance-detectors.ps1` — C10 tự khai "no reliable source" cho ts-compare) sẽ quét cả `session-<N>/_*` mà **không lọc theo tên tệp** ⇒ một dòng khoá trong `_mind` đủ để nó lấy sai "mốc gần nhất". Regex canonical = `_TS_KEY_RE` trong `scripts/session_ctx.py`; **CẤM cài bản thứ 2** ở bất kỳ máy nào (2-sự-thật chính là thứ rào này chặn).
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` — **trỏ nguồn, KHÔNG chép mẫu vào tệp này**. Ngoại lệ DUY NHẤT: nhãn đã che `[đã che <8-hex>]`. Bắt buộc quét NHÁP **trước** khi chèn: `mind-check --session 12 --draft <tệp-nháp-scratchpad>`.
   *Lý-do đo được, 2 tầng:* (i) block BẤT BIẾN ⇒ secret lọt là **vĩnh viễn** (còn trong git dù xoá sau); (ii) ⚠️ **enclosure KHÔNG đối-xứng giữa 2 lưới**: `mind-check` chỉ soi DƯỚI marker đóng khối luật, còn `secrets-sweep` (cùng `session_ctx.py`, chạy ở auto-snapshot mỗi `/pause`) **rglob TRỌN `session-<N>/` và không biết khối luật này** ⇒ một mẫu secret viết làm ví-dụ ngay tại đây sẽ **chặn commit ở MỌI cửa pause**. Vì thế rào-2 và rào-3 ở trên **cố ý KHÔNG có ví-dụ literal**; chỉ rào-1 có, vì rào-1 chỉ `mind-check` đọc và nó enclosure-aware.

### Enclosure use ⟂ mention

Máy chỉ quét phần **DƯỚI** marker đóng khối luật (dòng comment cuối cùng của phần luật này). Khối luật được phép chứa chuỗi bị cấm để **giải thích** (citation-trap: doc định-nghĩa anti-pattern tất-yếu chứa chính mẫu đó). 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ó.

<!-- BLOCK-SCHEMA (guidance, KHONG phai block that — /pause dien; parser real-block match `^## MIND-\d+`, placeholder `<k>` khong false-match).
     Prose huong-dan duoi day khong dau theo khuon nha; TOKEN may so chuoi thi GIU DAU: nhan muc D + chuoi muc trong `(trống — khai)`.

## MIND-<k> — <ISO-8601> @ <HEAD ngan> (window <w>)

### A. Goi-turn
<1-3 gach dau dong: turn vua roi lam gi, ket qua gi — GOI lai, khong ke lai>

### B. Huong-tiep + nhanh-da-loai
<di dau tiep VA nhanh nao da LOAI + vi sao loai (chong dao lai vong cu)>

### C. Ke-hoach (delta suy-nghi)
<phan SUY-NGHI doi so lan truoc — CAM chep checklist/todo (cho o WAL/HANDOFF)>

### D. Dang-thao-luan
<moi y 1 dong + nhan CO DAU: {mới-nêu | đang-cãi | gần-chốt | treo-chờ-anh}>

### E. Dong-song spawn/engine-run
<1 dong / spawn hoac engine-run: <vai> — <verdict> — <con-tro path (run-folder / sub-file / commit)>>
<muc trong ⇒ dung chuoi: (trống — khai)>
-->

<!-- 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: may khop chuoi DAY-DU
     (`_MIND_TOP_MARKER` trong scripts/session_ctx.py) -- khac khuon `FLOW-START` cua _context (khong may nao doc). -->
<!-- MIND-TOP -->

## MIND-1 — 2026-08-07T23:40:00+07:00 @ 5ae60e41 (window 2)

### A. Gói-turn
Window-2 vào bằng `/tiep`. Anh chốt 8 câu P1-P8 + ký 2 RC-mark. Đóng **10/10 wave** gói adap 7-GĐ, rồi chạy `/session-end`. Bookend @close nổ **21 FLAG thật** trên bề mặt lead tưởng sạch; vá 20, 1 để carry.

### B. Hướng-tiếp + nhánh-đã-loại
**Hướng:** anh duyệt `bao-cao-cuoi.md` → gửi hub · phiên sau cắm mã thoát W3b khi soak đủ.
**Nhánh đã LOẠI:** (a) bẻ bảng sổ cho vừa regex `^ST-` — loại, vì đó là rời tập-đo · (b) ép số A16 về 21 cho khớp kế hoạch — loại, đo ra 23 thì ghi 23 · (c) trục xuất class khỏi enum đã niêm phong — loại, chờ anh phán P3 hồi-tố.

### C. Kế-hoạch (delta suy-nghĩ)
Delta lớn nhất: **thước của chính mình là nguồn lỗi thường xuyên hơn máy**. Ba lần trong một phiên (vòng lặp `C[3]` rỗng · sweep toàn cục ăn ảnh chụp · tin R-2 không kiểm) đều đẻ ra kết quả **nhìn hợp lệ**. ⇒ mọi phép đo tự dựng phải có **control dương** trước khi kết luận, và mọi replace-theo-mẫu phải **neo phạm vi section**, không neo hình dạng dòng.

### D. Đang-thảo-luận
- `{treo-chờ-anh}` duyệt báo-cáo-cuối → gửi hub · ghép điều-kiện-3 vào bậc-2 · P3 forward-only hay hồi-tố · VK-5.
- `{gần-chốt}` W3b cắm mã thoát — phân loại 64/64 xong, chỉ chờ soak ≥1 phiên (tự tan).
- `{mới-nêu}` `gap-underfill` của `lead-gap` fire ngược chiều phán quyết S179 mà **không kèm số** — `ring2` đề nghị đòi phép đo trước khi vào tally.

### E. Dòng-sống spawn/engine-run
- `ctx-verifier` → `CO — 13 cờ` → `.claude/agent-memory/ctx-verifier/MEMORY.md`
- `lead-stale-auditor` ×2 → `PROBE-B 12 class` + `9 FLAG` → `.claude/agent-memory/lead-stale-auditor/MEMORY.md`
- `score-counter` → `KHÔNG ĐO ĐƯỢC — 1 mục` → `.claude/agent-memory/score-counter/MEMORY.md`
- `score-count-auditor` → `SKIP-CO-KHAI`, tool_uses=0 → `.claude/agent-memory/score-count-auditor/MEMORY.md`
- `tooling-auditor` → `PASS_WITH_FLAGS 6` → `.claude/agent-memory/tooling-auditor/MEMORY.md`
- `harvest-curator` → `GATE-FAIL 6` → `.claude/agent-memory/harvest-curator/MEMORY.md`
- `lead-gap-auditor` → `6 FLAG` → `.claude/agent-memory/lead-gap-auditor/MEMORY.md`
- `ring1-audit` → `26 ĐẠT / 5 TRƯỢT` → `.claude/agent-memory/ring1-audit/MEMORY.md`
- `ring2-audit` → `14 ĐẠT / 0 TRƯỢT` → `.claude/agent-memory/ring2-audit/MEMORY.md`
🔴 **9/9 spawn garble first-return hoặc cần resume** — khớp datum S180 (6/6); mất **0 byte**, recover path-2.
🔸 **KHAI KẼ (máy tự nêu, diễn đạt KHÔNG lặp lại literal để khỏi tự bắt mình):** con-trỏ mục E của block-0 có chứa **tên lệnh dạng gạch-chéo** trong câu văn giải thích, và closed-check đọc chúng thành **tệp chưa sinh**. Đó là kẽ của thước, không phải nợ thật. Block này chỉ dùng **đường dẫn tệp đầy đủ**, không nhắc tên lệnh, nên không tái phát.


## MIND-0 — 2026-08-07T17:34:01+07:00 @ 4091468 (window 1)

### A. Gói-turn
Phiên mở bằng `/session-start` (bookend @open 5 vòng, 8 vai) rồi anh giao chuỗi 5 nấc adap gói 7-GĐ. Đã đóng **4 wave** (W0·W1·W2·W3) + trả sạch 3 nợ máy-bắt. Anh chốt **6 quyết định owner**, trong đó 3/4 đợt-2 **ngược khuyến nghị lead** — hướng: nhận ĐỦ hình hub.

### B. Hướng-tiếp + nhánh-đã-loại
**Hướng:** gom **5 câu chờ anh** hỏi 1 lần → P2 thi hành (sửa `tiep.md:181` tường minh có vết) → W4 → W5 (vá defect `spawn-model-audit`) → W3b/W4b/W5b/W6.
**Nhánh đã LOẠI:** (a) *"W5 ghép W2"* của N1 — **BÁC VĨNH VIỄN** (vi phạm điều-kiện-vào GĐ-5 + OD-2) · (b) redesign 7 baseline `-Expect` ngay lượt này — loại vì vứt bằng chứng fault-inject W1 và là quyền anh · (c) sửa mojibake `sub-w3` tới cùng — loại sau 4 vòng, lợi ích biên < rủi ro ghi đè.

### C. Kế-hoạch (delta suy-nghĩ)
Delta lớn nhất so lúc mở: **luật "sạch tới đúng độ sâu máy KIỂM"** (W1-a đo được) đã trở thành ràng buộc xuyên mọi wave — áp 4 lần liên tiếp (W1 chuẩn tên · W2 vị từ ghi đĩa · W3 nhãn nghi thức · và chính máy W2 mù nấc mã-hoá). ⇒ **mọi wave sau phải khai NẤC nó ép được**, không ký sâu hơn máy.

### D. Đang-thảo-luận
- `{treo-chờ-anh}` **P3** tập-tín-hiệu ĐÓNG⟂MỞ · **P5** luật tự-trị 3 bậc · **P7** vị trí sổ-lượt-đắt · **P8** wire khối chấm · **lược đồ cột `status`**.
- `{gần-chốt}` **V-5 vị-từ mã-hoá** — lead đã viết spec 1 dòng grep + phân biệt 2 nấc (`U+FFFD>0` = mất dữ liệu ⟂ moji-only = sửa được); chỉ chờ chỗ cắm.
- `{đang-cãi}` 7 baseline `-Expect`: giữ-tripwire-thêm-ngày ⟂ tách-file-dữ-liệu. Cả hai đều đổi thiết kế máy governance.
- `{mới-nêu}` F-1 gửi ngược hub: 4 thư mang `status: DRAFT` + `reviewer_gate: PENDING` mà đã phát.

### E. Dòng-sống spawn/engine-run
- `/fable-real investigator-codebase` (N1) → `PHỦ ĐỦ 7GĐ/12TC/9LỖI` → `sub-invest-fitmap-S180.md`
- `/fable-real reviewer` (N2) → `PASS_WITH_FIXES 0C/5M/6m`, **claim-không-đứng = 0** → `sub-review-n2-S180.md`
- `/fable-clone reviewer` ×6 lane (N3) → A/B/C/D/E/F → 6 file `sub-n3-lane-*.md`
- `/fable-real reviewer` (N4) → **7 wave + 3 sub gated, 0 loại** → `wave-plan-S180.md`
- W0 ×2 · W1 ×2 · W2 · W3 → 4 wave đóng, vật land ở `docs/governance/` + `scripts/`
- bookend @open 8 vai → `bookend-open-synthesis.md`
🔴 **21 vai dính #53, recover 21/21, mất 0 byte** · **vai bác lead 11 lần, 11/11 đúng**

🔸 **KHAI TRỄ:** block-0 này đáng ra ghi ở **Phase 3.5 `/session-start`**; nó không chạy vì anh giao việc ngay sau Phase 3 REPORT. Ghi bù tại `/pause` cửa-1, nên **không có bản-nháp để `ctx-curator` kiểm** ở cửa này — cửa `/pause` kế sẽ có đủ.

