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-auditSỐNG trong roster (23, canonical → STATUS §Sub-agents) + máysession_ctx.py mind-checkchạ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-tercite "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 classclosed.mdS146; 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: broadcast2026-07-25-Governance-pause-tiep-upgrade-vong-ctx(sha0df10df4— stamp-verify OK @S153, copybroadcasts/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òngmarkers: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_kbtrongmemory-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_mindblock-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). SEsession_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-auditgộ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-auditCHỈ @2 bookend ⇒ KHÔNG cần carve-out O-1,pause.md §1giữ 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→ 🔄 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-auditgộp 3 nhịpctx-curator(vai-1 @mỗi-pause, carve-outpause.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 +:48bước 2-bis) ⇒ 🧊 câu "KHÔNG cần carve-out O-1 /pause.md §1giữ nguyên" ở §6 dòng ngay trên (mục (36), câu duy nhất còn sống — đogrep -n carve-outtoà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-auditbắ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 = extendsession_ctx.py(1-nguồn_SECRET_RES/_TS_KEY_RE) thay.ps1mới — draft mục 3 dòng "Máy kiểm $0:scripts/ctx-mind-check.ps1" superseded. Thi hành: specruns/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-report0df10df4.