115 lines
15 KiB
Markdown
115 lines
15 KiB
Markdown
# _mind-s-17 — SESSION-MODEL lớp MỀM (trí-nhớ suy-nghĩ 4 tầng)
|
||
|
||
<!-- SCAFFOLD-META: sID=17 | ts-moc=2026-08-14T11:55:01+07:00 | nguon-ts=git log -1 --format=%cI @ HEAD e255c778 | render=lead Write @session-start Phase 3.5 (session-scaffold.ps1 KHONG render tep nay) -->
|
||
|
||
<!-- MIND-RULES-START -->
|
||
|
||
> **sID (LOGIC-session) = 17.** 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-17/_mind-s-17.md`.
|
||
> ts-mốc khởi-tạo = **2026-08-14T11:55:01+07:00** (nguồn: `git log -1 --format=%cI @ HEAD e255c778`) — 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 17` 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 17 --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-0 — 2026-08-14T11:55:01+07:00 @ e255c778 (window 1)
|
||
|
||
### A. Gói-turn
|
||
|
||
- Mở phiên-LOGIC **L17** (nhãn cửa-sổ S196) bằng nghi-thức mở chạy TRỌN một lượt. Phiên trước đóng sạch: chốt-kết `.claude/sessions/session-16/_end`, cân sổ 3 dừng / 3 nối.
|
||
- **Sàn-3 chạy đủ 5 tín-hiệu mạnh:** 4 im, tín-hiệu ⑤ kêu ở cửa git. Soi vật thật ⇒ **dương-giả có cấu-trúc**, không phải việc dở. Chi tiết cơ-chế ở mục C.
|
||
- Máy đo chạy hết: bộ đếm nhịp lên **70** (phân loại `squash-benign`), dò nén-ngủ **IM** (12 dưới ngưỡng 15), lưới governance **58 cờ + 31 chỉ-báo tách riêng**, trần bộ-nhớ **8 vai vượt**.
|
||
- **0 thư mới** cả hai kênh cross-project — nhưng phép đo đầu tiên của chính lead **hỏng**, xem mục C.
|
||
- Thư-mục phiên `session-17` cấp bằng máy, không cấp tay.
|
||
|
||
### B. Hướng-tiếp + nhánh-đã-loại
|
||
|
||
- **Đi tiếp:** chờ chủ dự án giao việc. Hàng đợi đang treo, theo thứ tự nợ: nghiệm thu prod của đợt ship gần nhất → 7 câu đánh số `(90)-(96)` đã treo 4 nhãn phiên → 2 câu mới `(103)(104)`.
|
||
- 🔴 Cụm chữ *"ổn rồi"* vẫn kích **2 cổng khác nhau** (con-trỏ `docs/HANDOFF.md` đoạn đầu) — phải hỏi rõ nghiệm thu bài NÀO trước khi định tuyến. Ý này sống từ cửa trước, chưa được giải.
|
||
- **Nhánh ĐÃ LOẠI ở cửa này:**
|
||
- *Chặn bootstrap để hỏi lại khi tín-hiệu ⑤ kêu* — LOẠI: cửa đĩa của chính tín-hiệu đó là ground-truth độc-lập-git và nó IM, mà điều-kiện ngữ-nghĩa của ⑤ đòi *chưa đóng*, trong khi phiên trước có chốt-kết đủ trường. Chặn ở đây là để proxy rẻ thắng vật thật.
|
||
- *Chạy bộ-ba trí-nhớ ngay trong nghi-thức mở* — LOẠI: luật định vị nó **giữa hai cửa**, không phải **tại** cửa. Nhét vào bookstart là đổi vị-trí một vòng đã có nhà, và làm hỏng tính "đúng 1 vòng mỗi phiên".
|
||
- *Tin số 0 của phép dò thư* — LOẠI sau khi control dương trượt. Xem mục C.
|
||
|
||
### C. Kế-hoạch (delta suy-nghĩ)
|
||
|
||
- **Lớp mới: dương-giả CÓ CẤU-TRÚC ở tín-hiệu ⑤.** Đóng một phiên **luôn** sinh commit hook chạm đúng vùng thư-mục phiên, vì chốt-kết nằm trong đó. Commit ấy gần như luôn chưa đẩy, do hook bắn ở ranh-giới lượt sau lần đẩy cuối. ⇒ **mọi phiên mở sau một phiên đóng-sạch đều ăn cờ này**. Cửa đĩa miễn nhiễm vì có nhánh bỏ-qua-khi-đã-chốt; cửa git thì không. **Bất đối xứng giữa hai cửa của cùng một tín-hiệu = chỗ cần vá**, không phải chỗ cần nghe theo.
|
||
- **Thước của chính lead hỏng ngay lượt đầu, và số hỏng trông y hệt số lành.** Phép dò thư trỏ sai một cấp thư-mục ⇒ trả **0**, mà 0 ở đây đọc được thành *"không có thư"*. Control dương lật được: cây thư-mục đích không tồn tại. Đo lại đúng đường ⇒ 2 kênh có 22 và 101 tệp, đều CŨ. **Kết luận cuối không đổi, nhưng đường đi tới nó thì sai** — và nếu kênh có thư mới thật thì lượt này đã bỏ sót trọn.
|
||
- **Bài rút ra, mạnh hơn ca cụ thể:** 0-hit là hạng số **duy nhất** mà thước hỏng và sự-thật cho ra cùng một con số. Mọi 0-hit phải kèm control dương **trong cùng lệnh**, không phải kèm lập luận.
|
||
- **Chỉ số tri-thức của kho này đứng yên 77 ngày trong khi 4 kho anh em được làm mới cùng ngày 05-08** ⇒ đây là **bị bỏ sót trong một đợt quét fleet**, không phải dịch-vụ chết. Phân biệt này đổi hẳn địa-chỉ xử: báo hạ-tầng để đưa kho vào đợt, thay vì đi kiểm sức khoẻ dịch-vụ.
|
||
- **Nhánh sâu của vòng soi-lead tới hạn mỗi phiên** kể từ khi ngưỡng hạ còn 1, mà bộ đếm cho thấy 4 nhịp liên tiếp không chạy nhánh này. Nợ tích theo bộ đếm chứ không theo đồng-hồ ⇒ nó không tự tan.
|
||
|
||
### D. Đang-thảo-luận
|
||
|
||
- Cửa git của tín-hiệu ⑤ thiếu nhánh bỏ-qua-khi-đã-chốt mà cửa đĩa đã có ⇒ đề xuất vá cho hai cửa cùng luật — mới-nêu
|
||
- Phép dò thư cross-project nên chuyển sang đường dẫn tuyệt-đối kèm control dương bắt buộc, thay vì đường tương-đối — mới-nêu
|
||
- Lệnh đóng phiên vẫn 0 bước ghi block lớp mềm — sang lần thứ 5, nay chặn cửa — đang-cãi
|
||
- Ý gần-chốt của chính lead không có cơ-chế bền tương đương câu-chủ-dự-án-có-số nên hay rơi — mới-nêu
|
||
- Trục đơn-vị byte ⟂ ký-tự vẫn treo; theo byte 5 vai vượt, theo ký-tự 2 — treo-chờ-anh
|
||
- Hai vai vượt trần ở CẢ HAI đơn-vị đã ăn thuốc nén một lần và vượt lại ⇒ escalate cơ-chế thay vì nén tiếp — treo-chờ-anh
|
||
- Chỉ số tri-thức kho này bị bỏ sót đợt quét fleet 05-08; đưa vào đợt là việc hạ-tầng, kho này chỉ nêu — treo-chờ-anh
|
||
- Bảy câu đánh số cũ vẫn 0 đáp sau 4 nhãn phiên, trong khi 2 câu mới đã có nhà và có số — treo-chờ-anh
|
||
- Khối dựng-lại danh sách carry tự hẹn *"việc của cửa kế"*, mà cửa kế chính là lượt này — gần-chốt
|
||
- Máy đếm nhịp còn 3 khuyết tật chưa vá; nặng nhất là nhánh loại-dòng-vỡ chạy trước phép thử ngưỡng ⇒ hụt mẫu số thì máy khai, hụt tử số thì máy im — mới-nêu
|
||
|
||
### E. Dòng-sống spawn/engine-run
|
||
|
||
- 4 vai giám-sát spawn song song ở cửa mở: hai vai vòng tooling/thu-hoạch, hai vai vòng soi-lead nhánh sâu. Verdict + con-trỏ artifact ghi vào bảng ledger tại `.claude/workflows/runs/2026-08-14-S196-bookend-open/run.md` ngay khi từng vai trả.
|
||
- Vòng kiểm của hai vòng trên chạy sau, khi có output để chấm; vòng nén-ngủ **không-nhịp** nên vai kiểm của nó NO-OP có khai.
|
||
- Vai-3 vòng lớp-mềm chạy ở cửa này sau khi máy kiểm chạy trước — máy trước vai.
|
||
- Bộ-ba trí-nhớ **không** chạy ở cửa này theo đúng vị-trí luật định (giữa hai cửa).
|