# spec-ctx-adopt-26-07-2026 — BẢN CHỐT (lead verify + ghi, H21)

> Nguồn: engine `/fable-real investigator-codebase` deep-pass @S153 — PROPOSED-SPEC đầy đủ tại [`sub-fable-invest-S153.md`](sub-fable-invest-S153.md) (9 task / 24 checklist / END TOTAL=9). File này = bản CHỐT lead ký: verdict verify + 2 chỉnh + phân đợt thi hành. Worker đọc CẢ HAI file (spec chi tiết per-task ở sub-fable-invest PHẦN A Mục 2).
> Đối tượng: adopt TRỌN thư `0df10df4` (ctx soft-memory 7-khoản). Lệnh anh 26-07: pipeline check-email → fable-real invest → spec+checklist → hmw Opus 5 MAX.

## Verdict verify của lead (H21 bước-2)

**ACCEPT spec với 2 CHỈNH:**
1. **T3 persona ctx-audit** — câu "KHÔNG Write/Edit — chặn-bằng-thiếu-tool" phải viết đúng nấc: *"tools: khai KHÔNG Write/Edit (mô-tả ý-định — carry `tools-whitelist-no-teeth`: runtime vẫn cấp, backstop THẬT = git-diff commit-gate)"* — CẤM khai thành cơ-chế chặn (bài S143 4-site).
2. **T6a pause.md** — thêm vế token vào dòng chi-phí: "+~1-3K tok soạn nháp" (ràng mềm 150K/cửa của hub-owner áp cả token, không chỉ wall-clock).

**ACCEPT 3 đề-KHÁC của engine so draft lead:** (i) máy = extend `session_ctx.py` (1-nguồn `_SECRET_RES`/`_TS_KEY_RE`) thay `.ps1` mới; (ii) (36)(b) ⇒ KHÔNG carve-out O-1, `pause.md §1` giữ nguyên; (iii) vai kiểm 2-lượt @open/@close kiểm hồi-tố thay 3-nhịp hub.

**4 quyết định RESOLVED** (vết: **OWNER-DELEGATED qua lệnh pipeline 26-07 → ENGINE-PROPOSED → LEAD-DECIDED @S153; anh veto = 1 edit từng mục; CẤM ghi "owner chốt"**):
- (35) `mind_ctx_kb = 32` (KB)
- (36) (b) máy-$0 mỗi pause · vai `ctx-audit` chỉ @2 bookend
- (37) (b) nạp NỀN RÚT-GỌN @tiep, khoá `tiep_reload` (~40-60K tok vs full 149-199K)
- (38) ~~(a) 1 vai~~ → 🔄 **OWNER-VETO @S153 sau executed: hub-form 3-vai** (anh chốt trực tiếp "Build đủ 3 vai như hub") — `ctx-curator` + `ctx-verifier` + `ctx-audit`(thu về vai-3); wire bổ sung cùng phiên (T10 — xem synthesis §OWNER-VETO)

## Phân đợt thi hành

| Đợt | Task | Vai | Ghi chú |
|---|---|---|---|
| **hmw-1** (song song) | T1 máy `mind-check` extend `scripts/session_ctx.py` · T2 template `.claude/templates/session-mind-template.md` · T3 persona `.claude/agents/ctx-audit.md` | implementer-backend · implementer-frontend · implementer-backend | chi tiết + skeleton ruột = sub-fable-invest Mục 2 |
| **hmw-2** (sau đợt-1) | T4 fault-inject scratch-tree (PHẦN B #1-#17+#21) · T5 `hmw.js` +VALID_ROLES+writeGuard | test-specialist · implementer-frontend | T4 cần T1+T2 trên đĩa; T5 cần tên vai chốt (= `ctx-audit`) |
| **lead-solo** (sau hmw) | T6 wire 4 command · T7 budget.json 3 khoản · T8 docs+adap-report+thư-hub | lead | governance single-writer H6.1; restart-note in đậm |
| **phiên sau** | T9 registry-probe + dogfood + mồi-ngầm + đo wall-clock thật | lead + ctx-audit | sau restart CLI |

## Acceptance + Checklist

- Acceptance per-task = sub-fable-invest Mục 3 (bảng lệnh + kỳ vọng).
- CHECK-LIST KIỂM-TRA-LẠI 24 phép = sub-fable-invest PHẦN B — lead chạy #1-#17+#21 sau wave (T4 đã chạy 1 lượt, lead re-chạy chọn mẫu) · #22-#23 sau lead-solo · #18-#20 @T9 · #24 = 3 khoản KHÔNG-KIỂM-ĐƯỢC chép vào adap-report + thư hub.

## Ràng đã verify (không lặp chi tiết — B1 trỏ sub-fable-invest)

BINDING điểm-dừng-rẻ (0 spawn @pause, +~0.3-0.6s máy + ~1-3K tok) ✓ · B1 trỏ-khoá ✓ · sàn-7 K1-K7 ✓ · 3 rào + enclosure ✓ · F-1 3-trạng-thái + kẽ khai ✓ · bất-biến đếm-ĐĨA ✓ · naming khớp C11(b) 2 đời filter ✓ · M-1 hình-B ✓ · không trùng queue @closeout #8 ✓ · Sàn-3 ⑤ sẵn phủ, 0 tín-hiệu mới ✓ · roster 21 > hmw_width.cap 20 → NÊU owner (câu hỏi riêng, KHÔNG tự đổi) ✓.
