[CLAUDE] Docs: S151 closeout — bootstrap + trio-AUTO đầu tiên + gói 3-máy vá sống + bookend DEEP trả nợ JUMP (tally #53=53, AS-17 promote)
All checks were successful
Deploy SOLUTION_ERP / build-deploy (push) Successful in 5m38s

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
pqhuy1987
2026-07-25 20:13:25 +07:00
parent 398d343403
commit 1b85713bb6
54 changed files with 2422 additions and 95 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,61 @@
# Session log — 2026-07-25 19:30 · S151 (phiên-logic 4, 1 cửa-sổ) — bootstrap chuẩn + bookend hình B 2 đầu + TRIO vòng-AUTO đầu tiên + sửa 3 máy sống
> Governance-only: 0 prod-code · 0 mig · test **532** (45D+487I PASS tươi @bootstrap) · bundle FROZEN `B2j1LQ-v`/`C3wbJegk` · lead = **Fable 5** (anh `/model` — default fleet Opus 5 MAX).
> Đăng-ký Sàn-5 (sổ cái): `wf: bookend-open run=2026-07-25-S151-h24-open-bookend` · `wf: trio-auto run=2026-07-25-S151-trio-memory` · `wf: retro-harvest run=2026-07-22-S144-bootstrap` (đóng orphan hồi tố).
## 1. Bootstrap (lượt /session-start chuẩn đầu tiên sau S149-S150)
- WAL-gate 0.7: Sàn-3 **⑤a KÊU** (1 commit `wal: flush 7ce0798` chưa đẩy = WAL-reset + `_end` session-3). Soi ruột commit ⇒ **residue LÀNH của closeout S150** → AskUser → **anh chốt "Bootstrap tiếp, bỏ mạch"**. 4 tín hiệu còn lại + ORPHAN-L im.
- `session-scaffold.ps1 -New`**session-4** ✓ · thư 0/0 (2 cửa) · HMW-ON · marks 9 Active-High · SHARD IM 15/15 · spec-audit 0-GAP · RAG 2447 + rerank sống · registry-probe skip có lý do (roster ổn từ S145; trio probe = chính vòng trio dưới).
- 🔴 **Tick FAIL-LOUD exit 7** — root-cause **format-fork 2 máy 1 file**: signal-write @S150 re-serialize `.session-counter.json` kiểu ConvertTo-Json (BOM/CRLF/2-space) trong khi tick đòi surgical LF/no-BOM/1-space ⇒ 0-match refuse-write ĐÚNG thiết kế. Lead tick **TAY** theo prose contract: classify (không lùi · object tồn tại · not-reachable) ⇒ **squash-benign**, counter 24→**25**, history entry đầy đủ root-cause. H24-5 sau đó xác nhận lành. (→ #27 vá tận gốc, mục 4.)
## 2. Bookend @open hình B — wave 6 vai (run=2026-07-25-S151-h24-open-bookend)
Chi tiết + disposition: `bookend-synthesis.md` trong run-folder. Tóm: cặp H24 **8 FLAG** (gap FLAG-1 **HIGH** carry-age chết-im · stale FLAG-3 sha dangling E-012-tái) → **ring2 8/8 ĐẠT** (re-implement Python) · H1 **8 finding** (F-6 **BÁC MÁY** #111 dương-giả · F-2 HIGH tự-niêm-phong) · H2 **GATE-PASS** (return CLEAN duy nhất) · ring1 **33Đ/3T** (orphan S144 THẬT · skill thiếu Mig 67 · H2 fidelity 4/6). `h24-signal-write S151 light`: FIRE 6 (role-desc→2 · stale-count→3 · residual-asym→3 · carry-aged→2 · decision-sunk→5 · carry-dropped→5) + frozen-held 4.
## 3. TRIO vòng-2 — vòng AUTO đầu tiên (run=2026-07-25-S151-trio-memory)
- Consent: anh gật trong-turn + **owner-direction MỚI**: *"OK đồng ý, cứ đúng luật là tự làm, tao muốn có 1 vòng auto giữa 2 phiên bookend"***codified** `session-start §2.1.9(a)` (canonical) + `session-end §L.b(k)(i)` (trỏ) — hết consent-per-run, giữ [M4] vết. **HANDOFF #12 RESOLVED.**
- Chuỗi: eval **MIXED 6-trục/12-signal** (S1 nặng nhất: cicd `l2_index` 22634/20480 = **110,5% cap, 0 consumer** = ghost-wire) → refine **9-action/9-bàn-giao/6-BÁC** (bắt B9 lỗi đếm eval) → audit **37Đ/3T/1KC, falsify 11 (8H/3B), re-chạy 6 instrument BYTE-IDENTICAL** (F5 sâu hơn refine: split `_INDEX-2.md` → haystack tự-khớp ⇒ B2 phải sửa kèm `:252`). 3 return + 2 errata scribed. Spawn-probe **3/3 vai trio SỐNG** — nợ probe từ seed S141 đóng.
- Memory-ops (R1/A1-A4/D1/D2/B1-B8) = **queue NEXT-em phiên kế** (anh đồng ý; A1 GẤP — lead-gap 96,6% cap sau M9).
## 4. #27 — Gói sửa-máy 3-fix (anh gật; đính chính: trước đó CHƯA fix, "thấy chạy" = workaround tay)
1. **`session-counter-tick.ps1`**: `Replace-FieldOnce` style-preserving (2 capture-group giữ nguyên spacing/EOL của file) + history-anchor indent/EOL-tolerant. **FI 7-ca 2 cây git tạm**: clean-tick cả 2 shape (CRLF/2-space GIỮ · LF/1-space GIỮ) · NO-OP · regression exit-2 · shape-drift exit-7 · missing-object exit-3 · key-missing exit-1 (StrictMode, có sẵn). Live: NO-OP sạch trên repo thật (đúng cú sáng nay fail).
2. **C1 `governance-detectors.ps1:355`**: `\bgotcha[s]?\s*#?(\d+)(?!\d)(?![.,]\d|[A-Za-z])`**FI 8-ca**, trong đó FI bắt được **bug backtracking của chính fix đầu** ("gotchas 111.616B" lùi match "11") → chốt `(?!\d)`. Live: #111 tắt, positive-control "gotcha 91" giữ răng.
3. **H24-2 `:875`**: anchor `(?m)^\*\*(?:[^\x00-\x7F]+\s*)?NEXT\s+(?:anh|em)\b` (ASCII-thuần, bền đổi-emoji). **FI 4-ca** (header-dot 1 · header-plain 1 · prose-backtick 0 · midline 0). Live: segment 67→**17** thật, **carry-age HỒI SINH** — bắt ngay 3 carry già streak **7/9/12** (đúng 3 con bị che). TOTAL 44→**46** = 1 dương-giả +3 dương-THẬT.
## 5. Batch doc-fix 11 chỗ (mở khoá sau trio-verdict)
STATUS: ô canonical §Sub-agents → **default Opus 5 MAX** (#14, lời anh) · cite `:227`-dòng-trống → anchor không-số-dòng · RAG 2441→2447 re-verify S151 · sha `977ba18``2448393` re-anchor (E-012) · HANDOFF:25 counter 24→25 · agents/README:249 **XOÁ lập-luận tự-niêm-phong** + :302 nhãn FROZEN-HISTORICAL · session-start:294 thước-RAG → trỏ canonical · hmw.js :46/:65 bỏ-số "17/17" (node --check OK) · skill ef-core **+row Mig 67** · spawn-model-audit.ps1 "3 new"→6. Re-run detector: 0 flag mới, MED còn lại = 3 vocab-fork tồn cũ.
## 6. #53 + AS-17 + thư hub
- **#53 ×5/6 wave** (stale · gap · ring2 · H1 · ring1 — chết ĐÚNG write-boundary; H2 clean) → resume-in-session **5/5 SẠCH**, 0 mất. **Trio return-only 3/3 CLEAN** = counter-datum (return-only + khuôn cứng sống tốt hơn return-tự-do-sau-ghi-file; n=3 theo dõi). **Tally chốt derive: 45 + 5 = 50.**
- **Sub-class `skeleton-ruột-rỗng` TÁI-HIỆN** (S150 → S151 ×2 thuần) = **2-strike** → error-ledger **AS-17/E-013** + guard promote "verify byte-content GIỮA wave + resume-ép-đổ-ruột" (verified S151).
- Thư GẤP `59ce1d0f`: đo thật **vắng CẢ hub** (find + grep sha = 0 hit toàn AI_INFRA) ⇒ mục "copy+stamp-verify" bất-khả-thi trung-thực → đính chính adap-report mục 1 + queue thư hỏi hub re-publish.
## 7. Nghi thức đóng (điền @closeout — sau wave @close)
```
memory-triple: do=<scripts/measure-agent-memory.ps1 · exit 0 (lead-run @trio instruments, byte-identical re-run bởi audit)>
memory-triple: de-xuat=<scripts/memory-archive-gate.ps1 DRY · exit 0 (20/20 no-over-cap · A7 253/253/0)>
memory-triple: kiem=<harness-audit · 37 ĐẠT / 3 TRƯỢT / 1 KHÔNG-CHẠM — re-chạy 6 số byte-exact>
memory-triple: do-record=<governance-detectors TOTAL=46 (44 → 1 FP #111 + 3 carry-age dương-thật)>
memory-triple: do-record=<NHIP-NO: kiem light 0/6 deep 8/15 ok | tran-bo-nho 0 over-cap | run-chua-gom 2→0 (3 synthesis đóng @closeout) | pull-cach 3 ngay>
```
## 8. Bookend @close scope DEEP (thực thi anh #21) + gate
- **Cặp DEEP:** stale-deep **4 FLAG + 2 CLEAN-có-lệnh** (22.056B — cả 4 đều lệch do đợt vá/ghi-sổ hôm nay đẻ ra: 2-khối-NEXT-em mâu thuẫn · trio-sweep sót 5 site · header (verified S40) · idiom owner-choice sống 8+ site) · gap-deep **2 FLAG + 3 CLEAN-có-lệnh** (22.157B — D-2 escalate 0-vết-bền [nguy máy: missing-key=0 ⇒ class 11 không bao giờ ghi] · carry-aged latent [khối canonical dòng 6 NGOÀI vùng đo]; `gap-underfill` KHÔNG tuyên CLEAN được). #53 ×3 nữa (stale-deep · gap-deep · ring2-deep first-return; resume 3/3 sạch, AS-17 guard soi ruột giữa chừng ĐÃ dùng thật ×3) ⇒ **tally S151 = 8, tổng = 53** *(đính chính con số "50" chốt sớm giữa phiên — đúng bài "tally chốt @cuối", derive: 45 + 8)*.
- **Máy (gỡ frozen theo ủy quyền #21 + seed `gap-underfill: 0`):** `h24-signal-write S151 deep` → FIRE stale-status 3→**4** · stale-header 1→**2** · NO-OP 3 class đã-quyết-@open (**FIX-1 đúng, không đếm đôi**) · **RESET có-bằng-chứng: gap-owner-specifics 5→0 + gap-incident-unrecorded 1→0** (consecutive; cơ sở = CLEAN-có-lệnh gap-deep) · frozen=False · deep_at=25 ⇒ NHIP-NO `deep 0/15`. **Counts sau S151 (11 key):** sunk 5 · dropped 5 · status 4 · count 3 · asym 3 · header 2 · role-desc 2 · aged 2 · owner-specifics 0 · incident 0 · underfill 0. Dải ≥3 còn 5 class — giảm bằng phiên-clean-2-đầu; **nợ deep ĐÃ TRẢ**, khoá ĐÃ GỠ.
- **Vá tại chỗ 6 FLAG deep + quét đuôi:** HANDOFF khối NEXT-em-S150 gắn SUPERSEDED (KHÔNG xoá lịch sử — né đúng bẫy acceptance-Goodhart mà ring2-deep D-1 bắt trong acceptance của stale-deep) · trio-sweep 5 site (:165/:267/:272 + SE:136/:160) · STATUS:437 nhãn baseline · idiom-sweep 8 site + **3 site LUẬT `fable-real-runbook.md` (:3/:90/:165) theo D-2** · #29 số tươi 8/10/13 · nợ máy → **B10** NEXT-em.
- **ring2-deep KIỂM:** **10 ĐẠT / 0 TRƯỢT / 1 KC — fixes-landed 5/6 — falsify 8** (22.843B): counts 11/11 khớp tuyệt đối · RESET đúng luật consecutive (nghi thiên-vị BỊ BÁC) · re-implement carry-age lần 2 khớp byte-for-byte · toàn-vẹn artifact chống retro-edit (mtime-chain + git-show; tự bác 1 phép của chính nó trước khi dùng) · thách-CLEAN 0 FLAG sót · CHƯA-VERIFY khai thẳng: #29-số · CLEAN-carry-dropped · README:249-trôi-dòng.
```
completeness-gate S151: vong 4/5 chuc-nang (khong-nhip: V4 nen-ngu — SHARD IM 15/15, khong co input) | phep DAT 4 / TRUOT 0 / vacuous 0
phep-1: cua = 1 nhan (S151) + 0 dung · counter-delta 24→25 · tick 1/1 khop (L-proxy=0 vi 0 commit thuong — doi chung nguon-2 session-log nay)
phep-2 (nguyen van): NHIP-NO: kiem light 0/6 deep 0/15 ok | tran-bo-nho 0 over-cap | run-chua-gom 0 | pull-cach 3 ngay
phep-3: 3/3 ky gan nhat du 4 so (union-per-label — may H25 3/3 [ok] + trich list @S151)
phep-4: 11 luot-vai chay / 9 diary byte>0 mtime-S151 (M9) + 3 run S151 deu co marker ben session-log ×2 (San-5 lech 0)
```
V1 ✓ (H1+H2 → ring1 33Đ/3T) · V2 ✓ ×2 đầu (cặp light@open 8FLAG→ring2 8/8 + cặp DEEP@close 6FLAG→ring2-deep 10Đ) · V3 ✓ (trio → audit 37Đ/3T) · V4 không-nhịp · V5 floor sống (nhãn "đo/byte-identical" đều kèm lệnh — eval PROVENANCE + audit re-run).

View File

@ -9,6 +9,8 @@
🔴 **Sha này là KẾ-THỪA, KHÔNG tái-tính được tại SE.** File thư **không tồn tại trên đĩa repo**: `find broadcasts -name "2026-07-2[3-5]*" -type f` = **0 hit**, file mới nhất trong `broadcasts/inbox/ai_infra/``2026-07-22-ai_infra-to-se-reply-session-model-dung-ban-da-duyet.md`. Toàn bộ id + sha + cách đánh số Khoản trong report này lấy từ 3 chỗ lead đã ghi khi áp: `.claude/workflows/hmw.js:57-58` · `scripts/spawn-model-audit.ps1:96-99` · `.claude/commands/session-start.md:41`. Xem caveat (b).
🔄 **Đính-chính @S151 (2026-07-25, lead đo lại theo đề-nghị caveat (b)):** thư vắng **CẢ PHÍA HUB**`find AI_INFRA -name "*model-default-opus-5-max*"` = **0 hit**`grep -rl "59ce1d0f" AI_INFRA --include="*.md"` = **0 hit toàn hub**. ⇒ Đề-nghị (b) *"copy vào `broadcasts/inbox/ai_infra/` + stamp-verify"* **BẤT-KHẢ-THI trung thực** — không có vật để copy, KHÔNG bịa file/hash. Chuyển hướng: **hỏi hub re-publish bản gốc** (hoặc xác nhận kênh truyền = chỉ-đạo trực-tiếp owner, không phải file-broadcast) — queued thư hub @closeout S151. Mọi trích dẫn id/sha/Khoản của report GIỮ nấc **KẾ-THỪA** cho tới khi hub trả lời.
## 2. nấc G-011
**executed** — cả 3 lớp thi hành đã nằm trên đĩa repo. Chi tiết per-lớp (bảng, KHÔNG số tổng):

View File

@ -35,6 +35,7 @@ Detect by **action-signature** (NOT "AI tự phán có vi phạm không"). Scan
| AS-14 | phép ĐO text (length/char-count/so-sánh) qua `Get-Content`/console-pipe **KHÔNG ép encoding** trên file **no-BOM** (PS5.1 default = ANSI → ký-tự Việt đếm ×2-3) | đo-phải-chạm-đĩa-ĐÚNG-CÁCH (E-010; anh em với bẫy `grep -c``feedback_resume_premise_reverify`) | RCA + re-đo `[System.Text.UTF8Encoding]` tường-minh; số đã báo owner → đính-chính NGAY |
| AS-15 | **điểm-đóng-thật** (chốt-đợt commit+push HOẶC session-end) **KHÔNG kèm** delta diary monitor (H1/H2) **và KHÔNG** dòng counter §L.b(j) | session-end §L.b "(a)→(j) đủ HẾT, KHÔNG skip" (E-011 — nghi-thức chạy tắt; máy mù lớp "nghi-thức có chạy không") | RCA + spawn DỒN H1+H2 re-report phủ khoảng bị bỏ + harvest hồi-tố + đọc counter bù |
| **AS-16** | artifact **OUTWARD** (adap-report · email hub · broadcast) **cite sha CHƯA-push**, HOẶC được **stamp trước khi `git status --porcelain` sạch** | E-012 — closeout-squash phá đúng sha vừa cite ⇒ con-trỏ chết với người ngoài; và file sửa sau khi stamp làm câu trong bản đã-niêm thành sai. **Cite outward = commit SẼ SỐNG sau squash.** `git status` là bước **ĐẦU** của outward-gate, không phải bước cuối | RCA + re-anchor sang commit đã-push + **errata rời** (CẤM sửa file đã stamp — vỡ hash) |
| **AS-17** | sub được lệnh ghi-đĩa-trong-lúc-làm nhưng lúc return/chết sub-file chỉ có **SKELETON** (header/checklist, 0 finding) — byte-content KHÔNG tăng theo tiến độ | sub-class `skeleton-ruột-rỗng` (E-013 — S150 gate `wf_f4e4c006` khung 274B/0-append → S151 ×2 thuần [sub-lead-stale header-only + sub-lead-gap checklist-only] = **2-strike**; "ghi-đĩa-trong-lúc-làm = CẦN, KHÔNG ĐỦ" — `feedback_agent_return_garble_recover`) | lead verify **BYTE-CONTENT tăng thật GIỮA wave** (đọc RUỘT — size nhỏ = nghi-vấn không phải bằng-chứng, phân biệt skeleton vs đang-viết-dở; H2 m#19) → resume-in-session ép đổ ruột (S151: 5/5 sạch) · lane quan-trọng giữ N-lane-redundancy + em-main-solo backstop |
## 🛡️ Active-Guards index (2-strike promote: episodic → procedural)
@ -68,6 +69,7 @@ Detect by **action-signature** (NOT "AI tự phán có vi phạm không"). Scan
| em-main verify-on-disk + proxy-append after agent return | gotcha #53 truncation | procedural | 5× (S35-S42) | ✅ | +++ |
| test-before bug-fix + soft-delete-UNIQUE `.HasFilter` | gotcha #57 (AS-4) | procedural | 3 (Holiday S45 · LeaveType/Shift/OtPolicy S51) | ✅ Mig 43 + Mig 45 (5 test RED→GREEN) | ++ |
| reviewer pre-commit on cross-stack / wire-BE-CRUD (contract-mismatch net) | E-007 (AS-11) | procedural | 1 (S51 Driver FE↔BE) | ✅ S51 (caught pre-commit, fixed before deploy) | ++ |
| verify byte-content sub-file GIỮA wave + resume-ép-đổ-ruột (anti skeleton-rỗng) | AS-17 / #53 sub-class E-013 | procedural (promote 2-strike @S151) | 2 (S150 gate + S151 stale/gap) | ✅ S151 (resume 5/5, 0 mất dữ-liệu; trio return-only 3/3 clean cùng phiên = counter-datum) | ++ |
| authz regression test per-action policy | gotcha #44 silent-403 | procedural | 1 (promoted S45 +10 test) | ✅ | ++ |
| agent frontmatter `model: inherit` (not `[1m]`) | gotcha #37 | procedural | — | ✅ (FD agent loaded S48) | ++ |
| **lead = sole RAG-writer** (`store_memory` stripped, mechanized) | store_memory rebootstrap-loss (S41) + AS-3 | procedural | 2 (NamGroup + SE S41) | ✅ runtime S48 (0/8 subs) | +++ (failure-safe) |

View File

@ -1,6 +1,6 @@
# FABLE-REAL RUNBOOK — vận hành engine-đắt per-invocation (H21 S110; gốc H19 thật/ảo 2 vị-trí)
> ⚠️ **H21 adopt S110 (2026-07-11):** mode-marker + 2-vai-mặc-định **RETIRED** → **per-invocation** — engine-đắt chỉ chạy trong lượt anh gõ `/fable-real`\|`/fable-clone <vai> <đề-bài>`; vai anh gán đích-danh; mỗi run sinh **spec-file 3-mục** (engine propose → lead verify+ghi → worker theo spec). Các mục marker/`$mode` dưới = 🧊 lịch-sử H19 (giữ nguyên văn); biến-đọc MỚI = **INVOCATION**{lệnh, vai, đề-bài} từ chính lượt lệnh (§2.1-bis). *Neo model-tier-v3: lead = frontier-class anh chọn per-session {Fable 5 \| Opus 4.8 — 1M MAX}.*
> ⚠️ **H21 adopt S110 (2026-07-11):** mode-marker + 2-vai-mặc-định **RETIRED** → **per-invocation** — engine-đắt chỉ chạy trong lượt anh gõ `/fable-real`\|`/fable-clone <vai> <đề-bài>`; vai anh gán đích-danh; mỗi run sinh **spec-file 3-mục** (engine propose → lead verify+ghi → worker theo spec). Các mục marker/`$mode` dưới = 🧊 lịch-sử H19 (giữ nguyên văn); biến-đọc MỚI = **INVOCATION**{lệnh, vai, đề-bài} từ chính lượt lệnh (§2.1-bis). *🔄 Neo model @S151: **default MỌI vị trí (kể cả lead) = Opus 5 MAX** (thư `59ce1d0f` @S149); cao hơn = anh `/model` đầu phiên hoặc chính lệnh engine-đắt — 🧊 neo MTv3 "owner-choice per-session {Fable|Opus 4.8}" cũ = superseded-VALUE, cấu trúc giữ.*
> **Tầng:** RUNBOOK thi-hành ("cách bấm nút"). **LUẬT** = engine [`harness-11-engine.md` PHẦN K](harness-11-engine.md) (K.A ánh-xạ vai · K.B 2-mode 🧊 · K.C 3 GAP-guard · K.D 3 floor-point · **K.E per-invocation H21**) + RC-mark `RC-pqhuy1987-03-07-2026-17-46-35` ([`ACTIVE-MARKS.md`](../../.claude/governance/ACTIVE-MARKS.md)). **B1: file này TRỎ canonical, KHÔNG copy luật.**
> **Sinh S108 (2026-07-10), anh yêu cầu "plan cụ thể hàm/biến/checklist → ra file":** draft 4-section bởi 4 worker Opus 4.8 Max (HMW mode-A `wf_2f85b3f6-3dc`, role-less tier-2 — đúng phân-tầng "đám Opus xử lý") → em-main assemble + sửa 8 stale-runtime-claim (6 đợt-assemble + 2 reviewer-catch §3.5/§4.3) (worker tin comment `hmw.js:31` snapshot cũ "Fable suspended" — S108 thật ra Fable UP) → **Fable-real review 2-đầu-khác-trục** (first-real-run dogfood §5.5, verdict điền form).
@ -87,7 +87,7 @@ Rule gitignore neo tại **`.gitignore:92`** (`.claude/fable-real-mode.on`), đ
|---|---|---|---|---|
| 1 | 🧊 **marker-state** (H19 retired) | boolean (file tồn-tại?) | `.claude/fable-real-mode.on` · reader `session-start.md:29` | 🧊 CÓ=real · VẮNG=clone(default) — retired H21 |
| 1b | **$engine** (H21) | enum `{real-single, clone-ensemble}` | derive từ TÊN LỆNH lượt này (`/fable-real`\|`/fable-clone`) — KHÔNG file-state (INVOCATION §2.1-bis) | thay marker-state; INVOCATION-derived, 0 persist |
| 2 | **lead-runtime** | enum `{Fable-5-1M · Opus-4.8-1M}` | **BƯỚC 0.6 probe** `session-start.md:35-37` (`/model` resolve / spawn-test) | **per-session — owner-choice CHÍNH** (MTv3: anh chọn mỗi phiên, đổi giữa phiên OK, 0 caveat/0 revert-nghĩa-vụ) + outage-path PHỤ (H5); KHÔNG tin note phiên trước, KHÔNG steady-state |
| 2 | **lead-runtime** | enum `{Fable-5-1M · Opus-4.8-1M}` | **BƯỚC 0.6 probe** `session-start.md:35-37` (`/model` resolve / spawn-test) | **per-session probe; default = Opus 5 MAX (`59ce1d0f` @S149)** (🧊 MTv3 "owner-choice CHÍNH" superseded-VALUE; anh `/model` đổi bất kỳ lúc nào — quyền tuyệt đối, 0 caveat/0 revert-nghĩa-vụ) + outage-path PHỤ (H5); KHÔNG tin note phiên trước, KHÔNG steady-state |
| 3 | **tier** (per-task) | `'fable' \| 'opus' \| undefined` | `hmw.js:18` (field taskList) + `resolveModel hmw.js:38` | `undefined`=inherit top-tier (clone mặc-định) · `'opus'`=pin tier-2 sweep/cost · `'fable'`=nâng lead-tier **CHỈ trong lượt lệnh engine-đắt anh gõ** (H21 — lead KHÔNG tự ý) |
| 4 | **checkpointApproved** | boolean | `hmw.js:77-79` (THROW nếu ≠true) | em-main set `true` SAU khi BÁO {số agent·vai·task} @inform → fan-out |
| 5 | **taskList[]** | `Array<{role,label,prompt,tier?}>` | `hmw.js:18` + `:71-72` (bắt buộc, non-empty) | mảng lane; **clone = N item CÙNG 1 role** |
@ -162,7 +162,7 @@ Nguồn: `harness-11-engine.md §K.C:327-330`. Pin để stamp CÓ NGHĨA (khôn
### 2.5 — Decision-matrix: KHI NÀO real vs clone
**Cổng vào (K.D 3 floor-point `RC-pqhuy1987-03-07-2026-17-46-35`, `harness-11:332` / `ACTIVE-MARKS.md`):** (1) **lead = frontier-class do anh chọn per-session {Fable 5 | Opus 4.8 — 1M MAX} (model-tier-v3); CẤM Sonnet/Haiku-class ghế lead** · (2) **top-model deep-run CHỈ trong lượt lệnh engine-đắt anh gõ kèm vai (H21)** · (3) **mọi vai khác giữ mặc-định**. 🧊 *(văn K.D gốc: "lead LUÔN top-model — KHÔNG đụng · CHỈ 2 vị-trí phán-quyết chạm top-model, CHỈ real do anh gõ" — superseded model-tier-v3 + H21 per-invocation; giữ ý-nghĩa neo RC-mark.)*
**Cổng vào (K.D 3 floor-point `RC-pqhuy1987-03-07-2026-17-46-35`, `harness-11:332` / `ACTIVE-MARKS.md`):** (1) **lead = DEFAULT Opus 5 MAX (thư `59ce1d0f` @S149; cao hơn = anh `/model` · lệnh engine-đắt — 🧊 MTv3 superseded-VALUE @S151-sweep); CẤM Sonnet/Haiku-class ghế lead** · (2) **top-model deep-run CHỈ trong lượt lệnh engine-đắt anh gõ kèm vai (H21)** · (3) **mọi vai khác giữ mặc-định**. 🧊 *(văn K.D gốc: "lead LUÔN top-model — KHÔNG đụng · CHỈ 2 vị-trí phán-quyết chạm top-model, CHỈ real do anh gõ" — superseded model-tier-v3 + H21 per-invocation; giữ ý-nghĩa neo RC-mark.)*
**4 câu hỏi lọc (H21 per-invocation):**
1. **Anh có gõ lệnh engine-đắt lượt này?** (`/fable-real|/fable-clone <vai> <đề-bài>`). KHÔNG → **thoát** (gate/verify thường ngày = sub thường qua workflow chuẩn — KHÔNG phải engine-đắt; lead không tự ý gọi).
@ -480,7 +480,7 @@ args = {
### 4.8 — K.D 3 floor-point RC-stamped (governance neo — `RC-pqhuy1987-03-07-2026-17-46-35`, `ACTIVE-MARKS.md`)
(1) **lead = frontier-class do anh chọn per-session {Fable 5 | Opus 4.8 — 1M MAX} (model-tier-v3); CẤM Sonnet/Haiku-class ghế lead** — lane này KHÔNG đụng lead · (2) **top-model deep-run CHỈ trong lượt lệnh engine-đắt anh gõ kèm vai (H21)**`reviewer`+`investigator-codebase` (khi anh gán) · (3) mọi vai khác giữ default. 🧊 *(văn K.D gốc: "lead LUÔN top-model · CHỈ reviewer+investigator-codebase chạm top-model chế-độ THẬT, CHỈ khi anh gõ /fable-real" — superseded model-tier-v3 + H21.)* ⚠️ **Nấc runtime tùy phiên** (`§K.D:332` viết lúc outage): Fable DOWN → point-2 vacuously-met (0 delta). **Fable UP** (vd S108) → point-2 = **grant THẬT** (real=Fable-deep ⟂ clone=Opus-ensemble tách bạch — phân-tầng sống). Stamp trung-thực theo probe từng phiên.
(1) **lead = DEFAULT Opus 5 MAX (thư `59ce1d0f` @S149; cao hơn = anh `/model` · lệnh engine-đắt — 🧊 MTv3 superseded-VALUE @S151-sweep); CẤM Sonnet/Haiku-class ghế lead** — lane này KHÔNG đụng lead · (2) **top-model deep-run CHỈ trong lượt lệnh engine-đắt anh gõ kèm vai (H21)**`reviewer`+`investigator-codebase` (khi anh gán) · (3) mọi vai khác giữ default. 🧊 *(văn K.D gốc: "lead LUÔN top-model · CHỈ reviewer+investigator-codebase chạm top-model chế-độ THẬT, CHỈ khi anh gõ /fable-real" — superseded model-tier-v3 + H21.)* ⚠️ **Nấc runtime tùy phiên** (`§K.D:332` viết lúc outage): Fable DOWN → point-2 vacuously-met (0 delta). **Fable UP** (vd S108) → point-2 = **grant THẬT** (real=Fable-deep ⟂ clone=Opus-ensemble tách bạch — phân-tầng sống). Stamp trung-thực theo probe từng phiên.
## 5. MASTER CHECKLIST + ACCEPTANCE + DOGFOOD