# _mind-s-10 — SESSION-MODEL lớp MỀM (trí-nhớ suy-nghĩ 4 tầng) > **sID (LOGIC-session) = 10.** 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-10/_mind-s-10.md`. > ts-mốc khởi-tạo = **2026-08-01T20:38:23+07:00** (nguồn: `git log -1 --format=%cI @ HEAD 4b1905d`) — 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 10` 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 ``, 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//…`) — **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ý-do đo được:* verbatim lời anh có **nguồn-duy-nhất** = `_context` FLOW (`### PAUSE-` → 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-`. 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- @ `. *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-/_*` 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 10 --draft `. *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-/` 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ó. ## MIND-0 — 2026-08-01T20:38:23+07:00 @ 4b1905d (window 1) ### A. Gói-turn - Bootstrap L10. Sàn-3 kêu tín-hiệu ① (3 orphan run-folder) dù WAL rỗng và L9 đã `_end` — chủ dự án chọn nhánh bootstrap, 3 orphan hạ xuống **nợ harvest** thay vì nối mạch. - Máy chạy trước vai: tick 42→43 clean · scaffold `session-10` · kéo 1 thư `all` mới verify 2 tuyến · 5 script đo · RAG UP nhưng index SE đứng từ 2026-05-29. - Wave 6 vai (V1+V2+2 ring). **6/7 first-return dính #53**, cứu 100% từ đĩa nhờ ép ghi-liên-tục; 0 B mất. - Lead **ăn 2 FLAG bắn trúng chính mình** và đã vá trong-turn: `gap-underfill` (nạp ~17% sàn hot-load) → nạp bù bucket-2 gotcha #81-86 + roster-slice · `gap-decision-sunk` (slot 65 hạn hôm nay chỉ sống trong hội thoại) → ghi vào `run.md`. ### B. Hướng-tiếp + nhánh-đã-loại - **Đi tiếp:** chờ `ring1`+`ring2` chốt → V3 trio (tuần tự) → V4 sleep (`SHARD-PROBE` KÊU 17/15) → refresh block này → `ctx-audit` @open. Rồi chờ chủ dự án giao task sản phẩm. - **LOẠI — vá ngay 2 số stale đã verify** (`STATUS:474` User memory 31 vs đĩa 59 · `investigator-codebase.md:81` neo "40 migration" vs 71). Loại vì 2 vai ring chưa chấm; vá trước = **giết chứng-nhân sống** (bài W4/S122: "vá" bằng đổi hình-dạng anchor làm flag-count giảm trông y hệt thành công). - **LOẠI — chạy `/tiep`.** WAL rỗng, `_end` L9 đã đóng ⇒ không có `next:` để nối; Sàn-3 kêu là **nợ harvest**, không phải mạch dở. ### C. Kế-hoạch (delta suy-nghĩ) - Vào phiên định chạy bookend **tuần tự từng vòng**; đổi sang **spawn V1+V2 song song 4 vai** rồi ring sau — V1 ⟂ V2 độc lập, tuần tự chỉ tốn wall-clock. - Sau khi thấy #53 ăn 4/4, đổi khuôn resume: ép **"return CHỈ 3 dòng"**. Giả thuyết đang theo: garble tương quan **độ dài phiên làm việc của sub** hơn là nội dung return. Bằng chứng mới n=1 (`tooling-auditor` lượt 2 trả sạch) — chưa đủ kết luận. - Nhận ra **INFORM không dùng làm baseline được**: nó đo artifact của chính quá trình đo nên tự tăng theo wave (14→20 trong phiên, +6 đều từ artifact wave này). Chỉ neo `TOTAL`. - `lead-gap` + `ring2` lộ một failure mode **khác** #53 và nguy hơn: đọc nhiều ghi ít (130-163K token / 1-2 KB artifact). Garble mất *lời*; đọc-nhiều-ghi-ít mất *việc*. ### D. Đang-thảo-luận - Carry `ctx-verifier-no-self-append` bị đặt sai câu hỏi suốt 4 phiên — vai bị specc KHÔNG có Write/Edit, lỗi thật là vá gốc `tiep.md §3-ter` chưa land — gần-chốt - Defect write-order closeout: HANDOFF ghi trước, `_end` mint carry sau 36 giây ⇒ carry sinh ở nhịp cuối không có đường tới bề mặt chủ dự án đọc; cộng `_end` không có đuôi `.md` nên tàng hình với grep `*.md` — mới-nêu - Slot (47) và (48) đang mời chủ dự án quyết **trên thước cũ**; đo tươi cho thấy cả hai hết áp lực (`_INDEX` 47,3% · `harvest-curator/MEMORY.md` 18.781 B đã trả −4.712 B @S164) — gần-chốt - Slot (65) nhắn team bỏ qua notification ZZTEST, hạn 2026-08-01, chỉ chủ dự án làm được (lead không có kênh Zalo/email) — treo-chờ-anh - Monthly drift-audit 2026-08-01 + re-sync `measured{}` (17 row / roster 23, thiếu 6 vai ctx+ring) — hai món tự hẹn đúng ngày hôm nay — mới-nêu - Thư `2026-07-28-day-wake-probe-first-resume` (lệnh dậy-nhẹ probe-first): dogfood 0 phiên phía hub, phát-sớm; adopt trọn, adopt mảnh F2 rẻ, hay chờ bản `type=update` — treo-chờ-anh - Detector C11 chờ khuôn `## FLAG-n` 2 dấu thăng, 2 vai H24 viết `### FLAG-n` 3 dấu ⇒ máy không đọc được class-tag của chính wave vừa chạy — mới-nêu - Có nên đổi khuôn spawn để hạ tỉ lệ #53 (6/7 wave này, cao hơn hẳn 7/10 @S159) hay chấp nhận vì artifact-design đã chặn mất-việc — đang-cãi ### E. Dòng-sống spawn/engine-run - `tooling-auditor` — PASS_WITH_FLAGS 10 finding (resume 1× sau #53) — `.claude/workflows/runs/2026-08-01-S169-bookend-open/sub-tooling-auditor-open-S169.md` - `harvest-curator` — GATE-FAIL 8 finding (resume 1× sau #53) — `.claude/workflows/runs/2026-08-01-S169-bookend-open/sub-harvest-curator-open-S169.md` - `lead-stale-auditor` — 8 FLAG, coverage 8/8 (resume 1× sau #53) — `.claude/workflows/runs/2026-08-01-S169-bookend-open/sub-lead-stale-open-S169.md` - `lead-gap-auditor` — 5 FLAG (resume 1× sau #53) — `.claude/workflows/runs/2026-08-01-S169-bookend-open/sub-lead-gap-open-S169.md` - `ring1-audit` — đang chạy, đã thủng thách-CLEAN của H1 (resume 1× sau #53) — `.claude/workflows/runs/2026-08-01-S169-bookend-open/sub-ring1-audit-open-S169.md` - `ring2-audit` — đang chạy, tự bác bộ lọc của chính nó (resume 1× sau #53) — `.claude/workflows/runs/2026-08-01-S169-bookend-open/sub-ring2-audit-open-S169.md`