Files
solution-erp/docs/governance/ctx-soft-memory-se-draft.md
2026-07-31 21:47:23 +07:00

11 KiB

Ctx soft-memory — SE-form DRAFT (adopt thư 0df10df4 pause-tiep-upgrade-vong-ctx)

Trạng thái: RATIFIED + ĐÃ WIRE @S153 (OWNER-VETO). Anh bác (38)(a)-1-vai-gộp, chốt trực tiếp "Build đủ 3 vai như hub" qua AskUser ⇒ 3 vai ctx-curator/ctx-verifier/ctx-audit SỐNG trong roster (23, canonical → STATUS §Sub-agents) + máy session_ctx.py mind-check chạy mỗi cửa + wire tại /pause §2.6(C-bis) · /tiep §3-ter · bookend 2 đầu. Các câu đã định-đoạt: (36) hub-form spawn mỗi cửa (vai-1 @mỗi-pause = carve-out duy nhất luật "NGỪNG spawn", mirror hub O-1(a)) · (37)(b) nạp NỀN RÚT-GỌN theo khoá tiep_reload (tiep.md §3-ter cite "quyết (37)(b)") · (38)(b) 3 vai tách — marker inline dưới. 🧊 Header cũ "DRAFT chờ anh chốt — CẤM wire" đứng từ S153→S164 SAU khi đã wire = wired-but-declared-unwired (ghost-wire chiều ngược, cùng class closed.md S146; ring1+ring2 bắt @S163 "ô xanh thủng"). Thân doc dưới GIỮ NGUYÊN dạng draft làm lineage — đọc "đề xuất" là đề-xuất-lúc-viết, không phải trạng-thái. Nguồn: broadcast 2026-07-25-Governance-pause-tiep-upgrade-vong-ctx (sha 0df10df4 — stamp-verify OK @S153, copy broadcasts/inbox/ root=pending). Hub tự khai: build xong + gate xanh, dogfood CHƯA có cửa nào chạy qua — adopt là adopt KHUÔN chưa-kiểm-chứng, lỗi phát hiện thì gửi về hub (hub-owner Q-1: "có j debug sau cũng đc").

1. Bài toán (đúng SE)

SE dùng /pause/tiep dày (1 phiên-logic = 2-3 cửa-sổ). Việc ĐÃ CHỐT giữ tốt (WAL + _context-s-<N>.md + master-checklist), nhưng 4 lớp MỀM rơi sau mỗi lần nối: gói-turn vừa làm · hướng-làm-tiếp (vì-sao + nhánh đã loại) · kế-hoạch tổng-thể dạng suy-nghĩ · việc-đang-thảo-luận chưa thành quyết-định. Khớp chẩn đoán hub §1.

2. Đối chiếu sàn 7-khoản vs SE hiện có (đo @S153)

# Sàn (bắt buộc, cấu-trúc) SE hiện có Thiếu gì
1 Ghi tươi @cửa mở phiên (nội dung thật xuống đĩa trước pause đầu) scaffold _context-s-<N>.md = STOCK-map thật nhưng KHÔNG chứa 4 lớp mềm tệp mềm _mind-s-<N>.md ghi @CUỐI bootstrap (như hub: "trước tiên" = trước pause đầu)
2 Mỗi pause refresh 4 tầng, mới-nhất-ở-TRÊN, block cũ bất biến /pause §2.6 append FLOW (narrative) — KHÔNG có lớp mềm riêng block A-E vào _mind @pause (mục trống = "(trống — khai)")
3 Mỗi tiep: đối-chiếu + NẠP LẠI, CÓ BẰNG CHỨNG NỘI DUNG /tiep §2.6 đọc context + verify ground-truth — không nạp nền, không bằng-chứng-nội-dung bắt buộc bước nạp-lại ≤15 dòng lead PHẢI nhắc lại trong báo cáo + (tuỳ Q-C) nạp nền
4 Mỗi vai phụ/engine-run → 1 dòng-sống {verdict + con-trỏ} run-folder sub-file + WAL wf: (per-run, không per-spawn-tổng-hợp) mục E trong _mind: 1 dòng/spawn
5 Vòng soi ĐỘC LẬP 2 đầu phiên, quyền phán TRƯỢT ring1/ring2/ring4 soi vòng-đo khác; CHƯA ai soi lớp Ctx vai kiểm Ctx (hub: 3 vai tách; Q-D số vai SE)
6 Ghi ra đĩa trong thư-mục phiên + commit theo luật nhà hook wal-flush.ps1 path-4 .claude/sessions/ (S146) — tự cover 0 (đã đạt)
7 ≥2 VAI TÁCH: bên GHI ≠ bên KIỂM lead single-writer ⟂ monitor INFORM-only là khuôn sẵn đạt by-design khi khoản 5 có vai

Suy-biến vô-hại: KHÔNG áp dụng cho SE (SE dùng pause nhiều — khoản 2-3 là ruột).

3. SE-form đề xuất (phần tự quyết — form theo hub, tên SE)

  • Tệp: .claude/sessions/session-<N>/_mind-s-<N>.md (đứng cạnh _context, KHÔNG nhét vào — lý-do đúng duy nhất = trần-và-nén, hub §3).
  • Block: ### MIND-<k> (k = ĐẾM số block hiện có TRƯỚC khi chèn — block gốc @open chiếm số 0; phép kiểm chỉ đòi duy-nhất + mới-hơn). 5 mục A-E: A gói-turn · B hướng-tiếp (+nhánh đã loại) · C kế-hoạch delta-suy-nghĩ (KHÔNG chép checklist) · D việc-đang-thảo-luận + nhãn {mới-nêu|đang-cãi|gần-chốt|treo-chờ-anh} · E dòng-sống per-spawn {verdict + con-trỏ}. Việc ĐÃ CHỐT = con-trỏ về WAL/HANDOFF, CẤM chép.
  • 3 rào đầu tệp: (i) không chép lời anh (chỉ trỏ PAUSE- của _context) · (ii) cấm mọi biến-thể khoá timestamp đầu dòng (máy đọc ts của SE quét _* — phải DÙNG LẠI regex của máy đọc, không cài bản hai) · (iii) cấm literal họ khoá/mật-khẩu; ngoại-lệ duy nhất "[đã che <8-hex>]", quét bản nháp TRƯỚC khi chèn.
  • Máy kiểm $0: scripts/ctx-mind-check.ps1 — 7 phép (3 rào · con-trỏ E 3-trạng-thái {giải-được | đang-chờ [cha có, cờ khi chạy → trượt khi phiên đóng] | hỏng [trượt mọi chế-độ]} — bài F-1 hub: đường-rẻ-nhất-để-xanh không được là xoá-con-trỏ-đúng · số hiệu duy-nhất+mới-hơn · bất-biến |block| ∈ {p, p+1} với p = pause ĐẾM TRÊN ĐĨA (CẤM tin dòng markers: tự khai — hub đo lệch khai-THIẾU thật) · trần/nén) + 4 mức {đạt·trượt·cờ·bỏ-qua-có-khai} + chế-độ draft + chế-độ thư-mục-đã-đóng + tên-sai-phải-NÊU-tên. Fault-inject: fixture-hỏng phải TRƯỢT + đột-biến phải ĐỎ + mồi-ngầm bên-chấm-gieo.
  • Trần: khoá MỚI mind_ctx_kb trong memory-budget.json (B1 — lệnh trỏ khoá, CẤM chép số). Vượt trần → nén block CŨ NHẤT trừ block-0 + block-trên-cùng; còn <3 block → TỪ CHỐI nén + giương cờ.
  • Chỗ cắm: /session-start (ghi _mind block-0 @cuối bootstrap) · /pause §2.6 (+refresh) · /tiep §2.6 (+đối-chiếu-nạp-lại) · /session-end (vai soi-chuỗi + chế-độ đóng). Máy kiểm chạy TRƯỚC khi phóng vai (bắt lỗi rẻ trước, đốt tiền sau).

4. 🔢 4 câu chờ ANH (trả lời bằng số — mọi con-số/vai/nhịp = quyền anh)

  • (35) Trần mind_ctx_kb = bao nhiêu? Hub đặt 32KB (O-4, tự khai "số chủ đặt, không rút từ dữ liệu" — tệp cùng-họ lớn nhất hub mới >12KB). SE session_ctx_kb=64. Đề xuất: 32 (theo hub, đổi sau khi có số đo SE).
  • (36) Nhịp phóng vai kiểm Ctx — cái núm ĐẮT NHẤT (hub floor ~100K tok/spawn): (a-nguyên) spawn MỖI pause như hub-owner chốt · (b-tiết-kiệm) máy-$0 chạy mỗi pause, vai chỉ spawn @2 đầu phiên (khớp ràng "điểm dừng phải RẺ" thư goi-chot khoản 3 — đo SE: pause hiện ~5ms DÒ; +spawn = +phút+100K). Đề xuất: (b) — hub tự dặn "chuẩn bị sẵn núm hạ tần suất".
  • (37) Nạp-lại-NỀN mặc định @/tiep? Hub chọn nạp (nền hub ~110K tok). Nền SE đo tươi @S153 = 596.316B ≈ 149-199K tok (crystallized-backfill LIVE) — nặng hơn hub. (a) nạp full mỗi tiep · (b) nạp RÚT GỌN (STATUS dòng CURRENT + HANDOFF segment mới nhất + WAL + _mind — ước ~40-60K) · (c) giữ như nay (không nạp, chỉ _mind+_context). Đề xuất: (b).
  • (38) Số vai kiểm Ctx: (a) 1 vai ctx-audit gộp 3 nhịp (kiểm@pause-draft · đối-chiếu@tiep · soi-chuỗi 2 đầu — vẫn đạt sàn 7: GHI=lead ⟂ KIỂM=vai) · (b) 3 vai tách như hub. Đề xuất: (a) — roster 20 đã dày, sàn chỉ đòi ghi≠kiểm; tách thêm khi lộ nghẽn. 🔄 OWNER-VETO @S153: anh BÁC (a), chốt (b) 3 vai tách như hub — đã wire cả 3. "Roster 20" = số lúc viết; nay 23 (+3 chính vai Ctx này — số canonical → STATUS §Sub-agents). Đề-xuất (a) thua không phải vì sai sàn (ghi≠kiểm vẫn đạt) mà vì owner ưu tiên khớp khuôn hub nguyên bản.

5. Nấc adopt + việc sau khi anh chốt

Nấc hiện tại: gửi→ĐỒNG-THUẬN (draft này); thực-thi = sau khi anh trả lời (35)-(38) → build tệp mẫu + máy kiểm + fault-inject + wire 4 lệnh + persona vai (nếu (38)) + restart-verify + adap-report 0df10df4 + thư báo hub (kèm số đo nền SE 596KB để hub đối chiếu — hub xin số này ở §8).


6. 🔄 RESOLVED @S153 (cùng ngày — qua pipeline anh lệnh "/fable-real invest → spec → hmw Opus 5 MAX xử lý")

🔴 NHÃN TÁCH ĐÔI, đừng đọc gộp (vá @S153 FLAG-9): (35)(36)(37) = OWNER-DELEGATED → ENGINE-PROPOSED (fable-real deep-pass) → LEAD-DECIDED @S153 (anh ra lệnh pipeline trọn gói; khuôn hmw_width._ratified_by; anh veto = 1 edit từng mục) · (38) = OWNER CHỐT THẬT (anh hỏi "còn thiếu 2 vai ctx?" rồi chốt AskUser "Build đủ 3 vai như hub") — CẤM gộp (38) vào nhãn delegated, đó là xoá quyền tác-giả của owner, cùng lớp C8b chiều ngược:

  • (35) mind_ctx_kb = 32 (KB) — vết + lý-do: memory-budget.json → _mind_ctx_kb_set.
  • (36) (b) máy-$0 mỗi pause · vai ctx-audit CHỈ @2 bookend ⇒ KHÔNG cần carve-out O-1, pause.md §1 giữ nguyên.
  • (37) (b) nạp NỀN RÚT-GỌN @tiep — khoá tiep_reload (danh sách + phạm-vi trong khoá, B1).
  • (38) (a) 1 vai ctx-audit gộp 3 nhịp🔄 OWNER-VETO cùng ngày @S153 (anh: "còn thiếu 2 vai ctx?" → chốt AskUser "Build đủ 3 vai như hub" — owner chốt THẬT): hub-form 3-vai = ctx-curator (vai-1 @mỗi-pause, carve-out pause.md §1) · ctx-verifier (vai-2 @mỗi-tiep) · ctx-audit (vai-3 chuỗi @2-bookend, hồi-tố = fallback). Hệ quả: carve-out O-1(a) mà (36)(b) từng né nay CÓ THẬT trên đĩa (pause.md:15 §1 + :48 bước 2-bis) ⇒ 🧊 câu "KHÔNG cần carve-out O-1 / pause.md §1 giữ nguyên" ở §6 dòng ngay trên (mục (36), câu duy nhất còn sống — đo grep -n carve-out toàn file = 2 hit: chính nó + dòng này) = SUPERSEDED @S153 (giữ chữ làm vết, đừng đọc thành hiện-hành). [🔄 vá R-2 — ring2-audit bắt: bản đầu tuyên blanket "mọi câu ở §3-§4" nhưng thân §3+§4 RỖNG câu đó ⇒ phủ 0 câu, bỏ đúng 1 câu cần phủ; class "vắng-mặt trông giống ổn". Bài: mệnh-đề supersede phải neo vào VỊ-TRÍ ĐO ĐƯỢC, không neo vào vùng đoán.]; (36) máy-$0-mỗi-pause GIỮ (máy vẫn chạy TRƯỚC vai). Đề-khác so draft §3 (engine thắng, lead ACCEPT): máy = extend session_ctx.py (1-nguồn _SECRET_RES/_TS_KEY_RE) thay .ps1 mới — draft mục 3 dòng "Máy kiểm $0: scripts/ctx-mind-check.ps1" superseded. Thi hành: spec runs/2026-07-26-S153-ctx-adopt/spec-ctx-adopt-26-07-2026.md (9 task, T1-T8 land @S153 · T9 = phiên sau restart) + checklist 24 phép (T4 fault-inject). Trạng thái chi tiết = adap-report 0df10df4.