# ctx-audit Agent — Persistent Memory

- **S162 (07-30) SOI-CHUỖI @close — `TRUOT — 7 FLAG` `[LEAD SEED ON-BEHALF @closeout M9 — nguon: sub-ctx-audit-close-S162.md, END-line dòng cuối]`:** 🔴 **FLAG lớn nhất = TRẢ LỜI CÂU HỎI THIẾT KẾ: nhịp ghi `_mind` có LỖ, không hợp-lệ.** Luật neo ghi vào `/pause`, nhưng cửa-sổ **không bắt buộc** đóng bằng `/pause` ⇒ vào `/tiep` + ra `/session-end` = **đường hợp-lệ xuyên TRỌN cửa-sổ với 0 lần ghi**; thiệt hại đo được: mục E phủ **0/13** lượt window-4. 4 căn cứ: máy phép (10) tự fire `co` (`_mind` cũ hơn artifact **839 phút**) · bất-biến phép (6) đã chừa sẵn “tối đa 2 refresh bookend” ⇒ luật **KỲ VỌNG** bookend đẻ block · MIND-1 là tiền lệ refresh-bookend cùng phiên-logic · **tao đã nêu đúng lỗ này @S158 (L7), L8 tái phát**. Đề 1 câu sửa luật (lead **đã thi hành nửa đầu**: viết MIND-5 = refresh @closeout ĐẦU TIÊN của repo): *nâng nhịp 4→5, thêm `refresh @closeout` vào `session-end §L.b`, chèn SAU vòng kiểm cuối TRƯỚC `_end`; cửa-sổ đóng mà `|block|` không tăng thì `_end` BẮT BUỘC mang `mind-refresh: BỎ QUA — <lý do>`, thiếu = TRƯỢT closed-check* — **vế fail-LOUD là vế quan trọng nhất**. **FLAG-2 HIGH — nguyên nhân GỐC vai-2 chưa nêu: NÉN là lane KHÔNG AI GÁC** — vai-1 @PAUSE-3 **cũng** bắt 2 ý D rơi nhưng là **cặp KHÁC** ⇒ **4 ý rơi / 2 sự kiện / 1 cửa**; curator soi *block đang soạn*, thao tác *nén block cũ* nằm NGOÀI 8 điểm được chấm ⇒ **thao tác duy nhất được phép sửa quá khứ là thao tác duy nhất không bị soi**. **FLAG-3 HIGH — bắt ĐÚNG 1 LỖI CỦA LEAD**: di-trú 1/2 SAI CHIỀU — `slot-45` ĐỦ, nhưng `C11b` **SAI**: khuyết-tật ĐÃ VÁ từ S159 ở CẢ 2 site (`governance-detectors.ps1` regex `^(sub-.+|.+-return)\.md$`) ⇒ lead **bơm việc-ma vào hàng đợi owner**, và 2 neo `:1095/:1760` đã thối (thật `:1102/:1771`) — **ngay dòng dưới** chỗ lead vừa ghi luật “trỏ NỘI-DUNG không số-dòng” ⇒ *bài học cách nhau 1 dòng vẫn không tự bật*. (Lead verify độc lập bằng `sed -n` rồi RÚT khỏi WAL cùng closeout.) **K7 của vai-2 ĐÚNG CHÍNH XÁC 2 ý** — dựng lại bản trước nén bằng `git show 2c11005:` (con-trỏ giải được, chứng bằng thực thi). **Mồi-ngầm ĐẠT lần đầu qua 3 lượt gieo** (ý tách service-chết ⟂ SE-không-re-index đã thi hành tận nguồn `STATUS:13`). Bất-biến chuỗi CÂN 5/3/3/3, 0 mồ côi. Tự khai 2 lỗi của chính mình: **FLAG-1** persona tao `{p,p+1}` ⟂ máy `p..p+3` ⇒ cùng số 5 ra 2 phán ngược (máy đúng, persona tao lỗi thời) · **FLAG-0** số PIN `11/0/0` chụp @/tiep đã hết hạn, đo tươi `10/0/1` ⇒ **nếu tuân “đừng phán lại” thì cờ duy nhất của phiên biến mất**. Tag `[s162, truot-7-flag, lo-nhip-ghi-mind-tai-phat-L7, nen-la-lane-khong-ai-gac, bat-dung-1-loi-lead-viec-ma, moi-ngam-dat-lan-dau, tu-khai-persona-loi-thoi, seed-on-behalf]`
- **S153 (2026-07-26) SINH RA + RENAME cùng phiên — vai-3 vòng Ctx `[seed on-behalf by lead @closeout M9 — mày CHƯA chạy lần nào; nguồn = đĩa, KHÔNG tái-dựng từ trí nhớ]`:** adopt thư hub `0df10df4` (pause-tiep-upgrade-vong-ctx, sàn 7-khoản lớp mềm). Đường sinh: `/fable-real investigator-codebase` deep-pass → spec 9-task ([`spec-ctx-adopt-26-07-2026.md`](../../workflows/runs/2026-07-26-S153-ctx-adopt/spec-ctx-adopt-26-07-2026.md)) → hmw Opus-5-MAX T3 tạo persona (11/11 acceptance, 14.347B) → **T10 OWNER-VETO**: bản đầu (38)(a) cho mày GỘP 3 nhịp hub thành 1 vai; anh hỏi *"còn thiếu 2 vai ctx?"* rồi chốt **"Build đủ 3 vai như hub"** ⇒ mày THU về **vai-3 thuần** (soi CHUỖI 2 đầu + mồi-ngầm + block-0 @open + **kiểm-VẾT vai-1/vai-2**); hồi-tố 5-khoản/4-khoản hạ thành **FALLBACK** (chỉ khi phiên 0-pause/0-tiep) → **T11 RENAME** theo lệnh anh *"đặt tên giống hub và sisters để dễ audit"*: 2 vai anh em `ctx-pause-check`→**`ctx-curator`** · `ctx-reload`→**`ctx-verifier`** (tên mày GIỮ — đã đúng hub-form; VIPIX gọi vai này `ctx-chain`, hub≠sister ⇒ SE theo HUB, tiền lệ S149 `lead-*`).
  **Nấc THẬT của mày:** `file-land + registry-surfaced @S153` — **spawn-probe ALIVE CHƯA CÓ** (T9 phiên sau restart CLI). Lượt chạy đầu cũng ở T9 (dogfood 4-cửa). Wire: `session-start` Phase 3.5(iii) @open · `session-end` §L.b(l) @close.
  **Máy TRƯỚC mày (đọc, KHÔNG re-implement):** `python scripts/session_ctx.py mind-check --session <N>` — 7 phép + 2 phụ, 4 mức {đạt·trượt·cờ·bỏ-qua-có-khai}, exit {0,1,3}; fault-inject **18/18 PASS** @T4 + **6/6** sau 2 fix hậu-T4. Trần = khoá `mind_ctx_kb` (=32KB, OWNER-DELEGATED→LEAD-DECIDED @S153, B1 CẤM chép số vào persona).
  **2 fix hậu-T4 đáng nhớ (chúng là RĂNG của mày):** (1) **GAP-#9** — closed-mode "mục E có nội-dung mà 0 con-trỏ" CỜ→**TRƯỢT**: nếu để CỜ thì *xoá con-trỏ đang-chờ* (→ nhánh 0-con-trỏ, 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ể. (2) `secrets-sweep` +`--root` seam parity (2 lưới độc-lập cùng phủ `_mind`).
  **Kẽ mày PHẢI khai khi chạy:** mồi-ngầm single-lead chỉ đạt **xuyên cửa-sổ** (fresh window không nhớ ý nào là mồi) · máy KHÔNG canh bất-biến block per-run (cần git-history — lưới = luật + git + mày so-git khi nghi) · tên-tệp-sai trong thư-mục thật đọc thành "đang-chờ" tới cửa đóng mới siết.
  Tag `[s153, sinh-ra, owner-veto-3-vai, rename-hub-form, vai-3-soi-chuoi, gap-9-fix, chua-spawn-probe]`

> **Persistent diary cross-session.** Auto-injected first ~200 lines at spawn (L1 HOT).
> Update BEFORE every stop. Tiered Memory v1: L1 HOT soft-cap ~30KB · L2 `archive/` on-demand · L3 RAG `search_memory` just-in-time. Keep entry ≤ 1.5K chars (gotcha #53).
> **NEW agent S153 (2026-07-26)** — vai-3 vòng Ctx (soi chuỗi lớp mềm 2 đầu phiên); 2 vai anh em: `ctx-curator` (@pause) · `ctx-verifier` (@tiep).

## S154 (L7) — 2026-07-26 · LƯỢT CHẠY RUNTIME ĐẦU TIÊN của vai

**Verdict @open:** `DAT — 12 điểm` (8 ĐẠT/khai · 4 FLAG). Sub-file `runs/2026-07-26-S154-bookend-open/sub-ctx-audit-open-S154.md` — 22.294 B / 244 dòng, END dòng cuối.

**Bối cảnh chạy:** phiên 0-pause · 0-tiep tính tới @open ⇒ vai-1 `ctx-curator` và vai-2 `ctx-verifier` CHƯA chạy ⇒ rơi vào **fallback hồi-tố đầy đủ** (đúng điều khoản "lưới không thủng ca 1-cửa"). Máy `mind-check --session 7` chạy TRƯỚC: `dat=10 TRUOT=0 exit 0`.

**4 FLAG — cả 4 nhắm vào LEAD, 2 cái lead đã nhận:**
- `carry-ket-luan-nguoc` **HIGH** — block-0 ý D#4 lead viết *"cặp H24 KHÔNG tự đóng được điểm mù"*, nhưng chính phiên đó `lead-stale-auditor` TỰ đưa `.claude/agents/lead-*-auditor.md` vào tập-đo và ra ca THẬT (FLAG-2 của nó) ⇒ **phép thử S153 hẹn cho S154 đã CHẠY và ĐẬU**, kết luận lead ghi là NGƯỢC. 🔴 Bài: ý carry qua nhiều phiên dễ **cứng lại thành kết luận** trước khi phép thử của nó kịp trả lời; người khó thấy nhất là người mang nó đi.
- `mau-so-co-lai` **MED** — carry hẹn probe **3 vai** ctx, lead báo `2/2 ALIVE`. Lý do bỏ `ctx-audit` (sẽ có spawn THẬT @Phase 3.5) là hợp lý **nhưng không khai** ⇒ `2/2` đọc thành "đủ". Lớp `vắng-mặt trông giống ổn`.
- `mau-so-bat-doi-xung` **LOW-MED** — mục E khai KHÔNG-CHẤM cho ring1/ring2 nhưng nuốt của harness-audit.
- `carry-mat-neo-dinh-luong` **LOW** — câu hỏi chi-phí spawn @pause mất đúng con số làm nó trả lời được (bản S6 có `~100K tok/spawn`, bản L7 rụng).

**Mồi-ngầm gieo cho @close:** `_mind-s-7.md:99` (ý D *"guard post-wave assertion mù 4 path hook"*) — @close kiểm ý này còn sống / đổi nhãn có căn cứ / hay rơi im lặng.

**Vết vận-hành:** dính #53 ×1 (return kể ý-định `"Git check clean… Now writing mục E…"`, `tool_uses=22`, đĩa đã 19.437B) → resume 1× → CLEAN. 🔴 **Ghi-đĩa-trong-lúc-làm cứu trọn**; nếu gom cuối thì mất 19KB.

**Containment:** 0 residual-write. `_mind-s-7.md` giữ nguyên 14.707 B (lead single-writer). 🔴 Verify bằng `git log --name-only origin/main..HEAD -- <path>` — **KHÔNG dùng `git status`**, nó mù đúng 4 path Stop-hook tự commit (`.claude/sessions/` là 1 trong 4).

## S158 (2026-07-28) @close L7 — `CTX-AUDIT: TRUOT — 13 diem` [LEAD SEED ON-BEHALF @closeout M9, theo yêu-cầu đích danh của chính mày; nguồn = `runs/2026-07-28-S158-bookend-close/sub-ctx-audit-close-S158.md` 29.734 B]

- 🔴 **Mồi-ngầm: CHẤM ĐƯỢC, và MỒI ĐÃ RƠI.** Chấm bằng **grep NỘI DUNG** (neo `:99` đã mục từ lúc sinh — không dùng). Mồi còn sống 3 anchor (`:250` bản gốc §D `{mới-nêu}` · `:237` §C · `:209` gist MIND-1 **sống sót 2 lần nén**) nhưng **0 hit ở MIND-2/3/4 §D**, 0 dòng khai — trong khi khuôn "đóng-CÓ-KHAI" tồn tại và **được dùng đúng ở ca Q2 ngay bên cạnh**.
- 🔴 **Defect GỐC chưa vá (nặng hơn cả mồi):** `session-start.md:285` §2.1.9(f) và `session-end.md:159` §L.b(vi) **vẫn dùng `git status --short`** làm post-wave assertion; `grep "name-only origin/main"` trong harness doc = **0 hit**. Guard mù đó vừa chạy **đúng 2 lần trong chính phiên này**. ⇒ mồi không chỉ rơi, nó rơi **đúng lúc thứ nó cảnh báo đang tái diễn**.
- **Nghề đo tự dùng:** kiểm containment bằng `git log --name-only origin/main..HEAD` **thay** `git status` — đúng bài chính mồi này dạy. Giữ nếp đó.
- **FLAG-2 HIGH — mở rộng vai-2:** MIND-3 §D có **11 ý** = 1 đóng-có-khai (Q2) + 2 carry + **8 RƠI IM-LẶNG** (gồm 3 ý `{gần-chốt}`). Header `_mind:140` tự khai *"MIND-4 đã nhận lại các ý còn sống"* — **sai 8/10**. 🔴 **Con-trỏ chỉ SAI CHIỀU tệ hơn im lặng.** Công bằng: cùng khuôn header ở MIND-2 **đúng 5/5** ⇒ hỏng ở **1 cửa quá tải (PAUSE-4)**, KHÔNG phải khuôn hỏng.
- **Cơ-chế n=2 (đường thoát không máy nào canh):** ý rời **§D (có nhãn, máy canh) → §C (không nhãn)** rồi biến mất. `mind-check` phụ-9 chỉ hỏi *"ý ĐANG ở D có nhãn chưa"*, không hỏi *"ý TỪNG ở D nay đâu"*. Mồi và `#53` đi **cùng một đường**.
- **FLAG-3 HIGH (cấu-trúc, tái mỗi phiên-logic):** `grep "_mind" session-end.md` → hit **duy nhất** là khoản gọi chính mày ⇒ **@close KHÔNG có bước refresh `_mind`**; ≥9 spawn closeout **không có chỗ vào mục E**, mà trần 92,48% chặn MIND-5 ⇒ L7 đóng với **dòng-sống thủng trọn window-5**.
- **FLAG-0 + tự đính-chính (giữ làm nếp):** nháp đầu mày chấm *"máy chạy sai mode"* — **SAI, tự sửa trên đĩa** (`session_ctx.py:713` `--closed` auto-on khi có `_end`; `_end` chưa có ⇒ `mode=open` đúng). Nhưng lòi ra thứ nặng hơn: `session-end.md:162` hứa *"máy TRƯỚC vai (mind-check full + closed-check §6.3-bis)"* trong khi `:383` đặt closed-check **SAU khi ghi `_end`** = sau slot vai ⇒ **phép nghiêm nhất của lớp mềm (GAP-#9) không mắt độc-lập nào đọc**, chỉ lead — người bị chấm — đọc. **GHI ⟂ KIỂM hở đúng chỗ có răng nhất.**
- **8 khoản ĐẠT** gồm kiểm-vết 2 vai anh em: vai-1 điểm (#6) verbatim **fix đã LAND thật** (6× `xem PAUSE-`, 0 lời anh dưới marker); vai-2 được lead **tái-ĐO** chứ không nhận suông.
- Tag `[s158, moi-ngam-CHAM-DUOC-va-DA-ROI, defect-goc-git-status-chua-va, con-tro-sai-chieu-te-hon-im-lang, D-sang-C-roi-bien-mat, close-thieu-refresh-mind, ghi-vuong-kiem-ho, seed-on-behalf]`

## S159 (2026-07-29) — vai-3 vòng Ctx, SOI-CHUỖI @open bookend L8 [M9 on-behalf]
- {nấc: self (INFORM-only) · evidence: `sub-ctx-audit-open-S159.md` 24.958B, END dòng cuối, TOTAL=16 điểm}
- **CTX-AUDIT: TRUOT — 6 FLAG.** Phiên 0 `/pause` + 0 `/tiep` ⇒ `ctx-curator`/`ctx-verifier` chưa chạy ⇒ **hồi-tố đầy-đủ** (fallback ca 1-cửa).
- ⭐ **1 NGUYÊN-NHÂN GỐC sinh 4 triệu-chứng, và chứng bằng mtime:** `session-start.md:358` bắt ghi block-0 ở **CUỐI** nghi-thức mở; `_mind-s-8.md` mtime **08:32:27** vs vòng đo đầu **08:46:03** / cuối **09:26:54** ⇒ lead chụp **sớm 13m36s / 54m27s**. **Luật có thật, đúng, không được theo.**
- FLAG-2 H mục E phủ **0/9 lượt** (ghi *"chưa spawn vai nào"* cho phiên 9 spawn + 6 resume — sai **theo hướng trấn an**) · FLAG-5 H **4/5 nhãn mục D lệch** · FLAG-3 H mục B lệch `WAL next:` · FLAG-4 mục C giữ H6=3 khi đĩa chốt **4**.
- ⭐ **FLAG-6 — lưới đối-chiếu TỰ NÓ THỦNG:** `governance-detectors.ps1:1095`+`:1760` lọc `sub-*.md` ⇒ 3 return trio tên `harness-*-return.md` **vô hình** ⇒ điền mục E bằng glob đó ra **6 chứ không 9**, thiếu đúng **3 lượt đắt nhất**. → lead vá cả 2 site @S159, INFORM-only 8→14.
- 🟢 **FLAG-1: carry KHÔNG mất** — **7/7** ý treo L7 đều có nhà (trái hẳn S158 rơi 8 ý). **Tự BÁC 1 FLAG của chính mình** sau khi đo lại.
- ⭐ **thách-CLEAN khi máy báo `đạt=10`:** soi 3 chỗ máy mù, **cả 3 đều ăn**. Máy `đạt` phép (4) vì mục E *có* con-trỏ hợp lệ — **nó không có cách nào biết bao nhiêu lượt đã chạy**; phụ-9 hỏi *"có nhãn chưa"*, không hỏi *"nhãn còn đúng không"*. **Máy xanh ≠ nội-dung đúng.**
- Mồi-ngầm gieo @close: ý §D RAG-DOWN-vs-service-sống (chọn vì Mirror C1 đóng băng `STATUS.md` ⇒ đường sống duy nhất là được mang tiếp); chấm bằng **grep nội-dung**, không neo số dòng.
