[CLAUDE] Docs: S125-S126 closeout GOP — H23-precedence DO (spawn-param THANG hard-pin, /fable-real SONG) + sweep all-inherit va 15+3+5 + gotcha #83 + hub-mail h23-result
All checks were successful
Deploy SOLUTION_ERP / build-deploy (push) Successful in 5m30s

- NHOM A restart-verify: A1 tier:'fable' tren reviewer pin-opus -> resolved claude-fable-5 (spawn-param THANG); A2 no-tier -> claude-opus-4-8 DU lead=Fable (pin an runtime); A3 autoMemory WRITE-path OK (project_h23_spawn_precedence.md moi).
- B1 sweep all-inherit floor-song: 15 dong/5 file + 3 cung-lop lot-pattern + 5 dong H23-stale o 3 command-file (H1 bat) -> VA HET; spawn-model-audit Section-D flush H8->S124 + effort-check (fault-inject 2-chieu PASS, 14 duong-gia -> 0); governance-detectors C3 seed +worker-tier-pin; re-grep 0 floor-song; suite 45 = baseline 0-new.
- vocab-alias-map §3 canonical flip -> worker-tier-pin (all-inherit/two-tier = 2 alias cu); STATUS:6 FROZEN-diary label (het H24-3 lag); STATUS:25 + agents/README:5 sync.
- Email hub h23-precedence-test-result stamp 945cf3ad (reviewer-gate FAIL bat 3 loi truoc stamp -> gotcha #83 aggregate-cumulative) + _index cung luot.
- B3/B4 owner-gated: soan b3-b4-owner-gated-proposals.md CHO ANH (mega-line retier + budget:74 wording) — 0 apply.
- Closeout: harvest 4 lane + 2 monitor (H2 GATE PASS 5/5, 0/29 orphan; H1 3/4 clean + 5-spot fix) + curate moved-not-cut reviewer/inv-cb + carry disposition (DONG 2: restart-s124, h23-fable-test-postrestart; MO re-stamp 9) + H24 counter=5 + pilot H22 D5 (pause-roundtrip + hook-fire re-verified; cross-model PENDING).
- Governance/tooling-only: 0 prod-code, 0 mig, test 509 GIU, bundle FROZEN.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
pqhuy1987
2026-07-16 15:19:08 +07:00
parent 010d12c5f8
commit e9124fc6de
34 changed files with 403 additions and 89 deletions

View File

@ -4,14 +4,14 @@
`2026-07-13-Governance-harness-23-explicit-model-at-spawn`
## 2. nấc G-011
**executed** — 2 lớp PA-2 đã land và chạy. 🔴 **NHƯNG câu hỏi TRUNG-TÂM của broadcast vẫn CHƯA TEST** (xem §5(a)) ⇒ **KHÔNG được đọc đợt adopt này thành "H23 đã đóng"**.
**executed** — 2 lớp PA-2 đã land và chạy. ~~🔴 **NHƯNG câu hỏi TRUNG-TÂM của broadcast vẫn CHƯA TEST** (xem §5(a)) ⇒ **KHÔNG được đọc đợt adopt này thành "H23 đã đóng"**.~~ → ✅ **UPDATE 2026-07-16 S126: câu hỏi trung-tâm ĐÃ TEST — spawn-param THẮNG frontmatter hard-pin** (evidence §5(a) khối UPDATE).
| Phần | Nấc |
|---|---|
| PA-1 (a)(b)(c)(d) — 4 file `.md`, 0 frontmatter, 0 config, 0 số, H8 nguyên-vẹn | **executed** |
| PA-2a — hằng-số `TIER2_EXPECTED_FULL_ID` | **executed + runtime-verified** (detector đổi trạng-thái đúng, §3) |
| PA-2b — `spawn-model-audit.ps1` so resolved-vs-expected | **executed + runtime-verified** (fail-loud ĐÚNG lúc thiếu → OK khi land; teeth-inject FLAG) |
| **Precedence spawn-param ⟂ frontmatter** (H23 §2(2)) | 🔴 **n-a TẠM — CHƯA TEST ĐƯỢC** ở phiên lead=Opus. **DEFER**, không phải skip |
| **Precedence spawn-param ⟂ frontmatter** (H23 §2(2)) | **executed + runtime-verified 2026-07-16 S126** (hết DEFER): lane `tier:'fable'` trên reviewer pin-`opus` → resolved **`claude-fable-5`** = param THẮNG hard-pin; control no-tier → `claude-opus-4-8` DÙ lead=Fable = pin ăn thật (§5(a) UPDATE) |
## 3. evidence
@ -53,6 +53,12 @@ Nguyên-văn broadcast đòi khai: *"thứ-tự ưu-tiên giữa **'tham-số t
⚠️ **Phiên adopt này lead=Opus**`tier:'opus'``inherit`**2 nhánh ra CÙNG kết-quả****KHÔNG phân-biệt được****DEFER tới phiên lead=Fable**. 🔴 Khai thẳng: **CHƯA test, KHÔNG giả-vờ đã test.**
**PA-2a/PA-2b là 2 lớp GIÁN-TIẾP, KHÔNG THAY được phép thử trên.** Chúng chứng *"hằng-số đúng và audit đọc được"*, **không** chứng *"param có thắng frontmatter không"*.
**UPDATE 2026-07-16 S126 — LỖ (a) ĐÃ ĐÓNG, phép thử còn MẠNH HƠN thiết-kế gốc.** Bối-cảnh đổi: S124 owner-decision pin cứng 14/14 frontmatter `model: opus` (hết all-inherit) ⇒ contest chuyển từ *param ⟂ inherit* (mơ-hồ — `inherit` có thể chỉ là "defer to caller") thành **param ⟂ HARD-PIN (contest thật)**. Đo phiên đầu sau restart, 2 lane `wf_f960dae2-fa0`, đọc bằng chính `spawn-model-audit.ps1 -SessionId c0fa4300…`:
- Lane `reviewer` (pin `opus`) + spawn `tier:'fable'` → resolved **`claude-fable-5`** (3 records) ⇒ **SPAWN-PARAM THẮNG**`/fable-real`·`/fable-clone` SỐNG, **GAP#6 fix KHÔNG phải NO-OP** (hệ-quả 🔴 ở trên KHÔNG xảy ra).
- Lane `investigator-codebase` KHÔNG override → resolved **`claude-opus-4-8`** (9 records) **DÙ lead=Fable 5** ⇒ pin frontmatter ăn runtime, loại giả-thuyết inherit-lead. (Lead=Fable làm control phân-biệt được — đúng tinh-thần phép-thử-phá #3, chỉ đảo chiều alias.)
- Audit tại thời-điểm đo (run contest `wf_f960dae2-fa0`, 2 lane): 0 mismatch. ⚠️ COUNTS của script = cumulative CẢ PHIÊN (2/2/0 lúc đo → 4/4/0 sau 2 lane review cùng phiên) ⇒ evidence bền = bảng per-lane theo run-id, KHÔNG phải số tổng. Evidence nội-bộ: `runs/2026-07-16-S126-adap-spec-execute/runtime-verify-synthesis.md`. Đã báo hub: `2026-07-16-se-to-ai_infra-h23-precedence-test-result`.
- ⚠️ Giới-hạn khai thẳng: (i) đo trên SE frontmatter ALIAS `opus` — hub pin FULL-ID, KHÔNG generalize sang hình-thức đó (bài ENV-DEPENDENT); (ii) retrospective 1 phiên — không hứa spawn TƯƠNG-LAI (đúng caveat PA-2b); (iii) fix#8a (param có từ-chối full-id?) VẪN chưa thử — không thuộc phép đo này.
🔴 **(b) Chính mệnh-đề "param chỉ nhận alias" cũng CHƯA THỬ.** Cổng-cuối `/fable-real reviewer` bắt đúng: bullet *"param `model:` chỉ nhận enum alias"* trong `owner-decisions` **dán nhãn "Đo" nhưng KHÔNG nêu phép đo**. Nấc trung-thực đã hạ xuống: *"theo tài-liệu harness (Agent-tool `model` enum = `sonnet|opus|haiku|fable`), **CHƯA thử truyền full-id để xem có bị từ-chối không**"* (fix#8a — anh đã ack hình-thức PA-2a+PA-2b trên nền nấc đã hạ này).
🔸 Đây là **tiền-đề** biến PA-2-nguyên-bản thành "bất-khả-thi" ⇒ nó **đỡ cả kết-luận O1**. Nếu tiền-đề sai, hình-thức PA-2 cần xét lại.
@ -62,3 +68,4 @@ Nguyên-văn broadcast đòi khai: *"thứ-tự ưu-tiên giữa **'tham-số t
---
*Ghi @S122 (2026-07-15) · lead **Opus 4.8** — 🔴 chính vì lead=Opus mà §5(a) KHÔNG test được phiên này · chain ĐÃ PUSH `4727d16..c39ba9d`, tree clean*
*UPDATE @S126 (2026-07-16) · lead **Fable 5** — §5(a) ĐÓNG bằng phép đo thật (khối UPDATE trong §5(a)); (b) fix#8a vẫn mở.*

View File

@ -105,9 +105,9 @@ tier==='fable'||'opus' → return tier // pin model (escape-hatch)
tier lạ khác → warn + bỏ qua (:39)
!role && rawRole (typo) → return undefined // fail-UP inherit Fable (:42)
!role (role-less) → return undefined // inherit lead-model (:43)
role có frontmatter → return undefined // H8 all-inherit top-tier (:44)
role có frontmatter → return undefined // frontmatter tự lo = worker-tier opus (S124; hmw.js:74)
```
⇒ Không set `tier` = mọi lane clone chạy **inherit top-tier** (mặc-định); muốn ép tier-2 Opus (giữ quota Fable cho lead) = thêm `tier:'opus'`.
⇒ Không set `tier` = mọi lane clone chạy **worker-tier `opus` theo frontmatter** (S124 — hết inherit-lead); `tier:'opus'` mỗi lane VẪN ghi tường-minh (clone = ensemble tier-2 by-definition, GAP#6 — pin chữ rõ hơn pin ngầm).
---
@ -116,7 +116,7 @@ role có frontmatter → return undefined // H8 all-inherit top-tier (
| Việc | Cơ-chế | Lệnh / param chạy được | Khi nào dùng |
|---|---|---|---|
| **Clone ensemble** (N lane CÙNG vai) | `hmw.js parallel` (`:98`) → `agent()` (`:138-143`) | JSON args bên dưới — `taskList` = N item cùng `role` | Lượt anh gõ `/fable-clone <vai>` + heavy-judgment (H21 per-invocation; 🧊 cũ: marker VẮNG) |
| **Real single** (1 deep pass) | **Agent-tool spawn LẺ** (1 agent) | `agentType: "reviewer"` \| `"investigator-codebase"`, prompt deep-pass; model = lead-runtime (inherit) | Lượt anh gõ `/fable-real <vai>` + cần 1 lăng-kính sâu nhất (H21 per-invocation; 🧊 cũ: marker CÓ) |
| **Real single** (1 deep pass) | **Agent-tool spawn LẺ** (1 agent) | `agentType: "<vai anh gán>"`, prompt deep-pass; 🔴 PHẢI set `model:'fable'` param (S124 pin opus ⇒ không set = opus, KHÔNG còn lead-runtime; spawn-param THẮNG pin — đo S126) | Lượt anh gõ `/fable-real <vai>` + cần 1 lăng-kính sâu nhất (H21 per-invocation; 🧊 cũ: marker CÓ) |
| **Resume lane garble/truncate** | **SendMessage-resume in-session** | gửi lại agent đã spawn (KHÔNG re-spawn mới) | Lane trả wrong-slice (#53) — nấc 2 recovery-ladder (diary → SendMessage-resume S105 → em-main solo) |
| **Fallback cuối** | em-main solo | em-main tự làm vai phán-quyết | 529 overload / spawn truncate / SendMessage cũng garble |
@ -144,7 +144,7 @@ role có frontmatter → return undefined // H8 all-inherit top-tier (
Nguồn: `harness-11-engine.md §K.C:327-330`. Pin để stamp CÓ NGHĨA (không paperwork).
**🔴 GAP-1 — scope-creep guard (RULE):** Ảo-run **BẮT BUỘC = N lane CÙNG 1 vai phán-quyết** (multi-lens), **CẤM mixed-roster fan-out**.
- Lý-do: `hmw.js` VALID_ROLES nhận đủ vai KHÔNG gate → all-inherit **CHE** leak (mọi vai top-tier nên roster-trộn "trông ổn"; Fable về + phân-tầng thì rò top-tier ensemble sang vai ngoài 2 vị-trí).
- Lý-do: `hmw.js` VALID_ROLES nhận đủ vai KHÔNG gate → worker-tier-pin **CHE** leak qua opus (mọi vai pin opus nên roster-trộn "trông ổn" — như thời all-inherit; lượt `tier:'fable'` mixed-roster = rò top-model sang vai ngoài lệnh).
- Evidence-form: `taskList[*].role` phải đồng-nhất = ĐÚNG vai anh gán trong lệnh (grep taskList trước fan-out; §3/§4 template = `reviewer`/`investigator-codebase`). Ghi-chú: engine `§K.C` khai "**TOÀN roster**" khớp `hmw.js:22-36` (lịch-sử: 9 S101 → +`office-document` S107 → +2 monitor H1/H2 S110 → **+2 monitor H24 S121 W2**) — luật "no-gate → em-main tự-gác" KHÔNG đổi. 🔴 **KHÔNG chép số vai vào đây** (B1 → [`docs/STATUS.md`](../STATUS.md) §Sub-agents).
- Nấc: **convention** (hmw.js không gate vai; kỷ-luật em-main gác).
@ -218,13 +218,13 @@ Mọi biến em-main chốt @P0/P1 rồi bơm vào lane. Kiểu + nguồn đọc
### 3.2 REAL-mode — single-deep-pass qua Agent tool
Điều-kiện: lượt này **anh gõ `/fable-real <vai> <đề-bài>`** (H21 quote lệnh làm evidence). 🧊 *(H19: `$mode == real` marker CÓ.)* Spawn **DUY NHẤT 1** `investigator-codebase` qua **Agent tool** (KHÔNG qua `hmw.js` hmw dành cho clone-ensemble), đào SÂU 1 lần. `model: inherit` (frontmatter `investigator-codebase.md:5`) top-tier lead: Fable up = Fable · Fable down (H5) = Opus-1M per-run 3.6).
Điều-kiện: lượt này **anh gõ `/fable-real <vai> <đề-bài>`** (H21 quote lệnh làm evidence). 🧊 *(H19: `$mode == real` marker CÓ.)* Spawn **DUY NHẤT 1** `investigator-codebase` qua **Agent tool** (KHÔNG qua `hmw.js` hmw dành cho clone-ensemble), đào SÂU 1 lần. Frontmatter `investigator-codebase.md:5` nay = `model: opus` (worker-tier-pin S124) 🔴 real-mode PHẢI set `model:'fable'` param tại spawn (spawn-param THẮNG pin đo S126; không set = opus): Fable up = Fable · Fable down (H5) = set `'opus'` Opus-1M per-run 3.6).
**Tham-số spawn (Agent tool / Task):**
```
subagent_type: "investigator-codebase"
model: inherit # frontmatter model:inherit (investigator-codebase.md:5) → top-tier lead
model: fable # 🔴 PHẢI set param (frontmatter nay pin opus S124; param THẮNG pin — đo S126). Fable-outage → 'opus' (H5 §3.6)
description: "ground-truth: <$target rút gọn 1 dòng>"
prompt: |
# NHIỆM-VỤ: ground-truth / xác-minh sự-thật (Fable-real, single-deep-pass)
@ -364,9 +364,9 @@ Tick mỗi lần chạy lane (cả 2 mode trừ khi ghi `[clone]`/`[real]`):
Task/Agent(
subagent_type: 'reviewer', # = agentType; persona .claude/agents/reviewer.md; VALID_ROLES hmw.js:22-28
description : 'reviewer-real: <$reviewTarget>',
# model : KHÔNG set → inherit top-tier (H8 all-inherit; resolveModel hmw.js:44 role-có-frontmatter → undefined)
# model : 'fable' — 🔴 PHẢI set (S124 frontmatter pin opus ⇒ KHÔNG set = opus; spawn-param THẮNG pin, đo S126)
# Fable UP → single-Fable (sâu nhất, đắt nhất)
# Fable DOWN→ single-Opus-1M (H5 per-run auto, KHÔNG đổi marker/mode — fable-real.md:20 / §4.7)
# Fable DOWN→ set 'opus' = single-Opus-1M (H5 per-run — fable-real.md / §4.7)
prompt : <<ADVERSARIAL TEMPLATE (b)>>
)
```
@ -441,7 +441,7 @@ args = {
| GAP | Rủi-ro (engine) | Cách bấm | Nguồn |
|---|---|---|---|
| **GAP-1 scope-creep** | `hmw.js` VALID_ROLES nhận **TOÀN roster** KHÔNG gate all-inherit CHE leak | CLONE `taskList` MỌI `role:'reviewer'` (N-lane CÙNG vai, KHÔNG mixed-roster) | `§K.C:328` · `hmw.js:22-36` |
| **GAP-1 scope-creep** | `hmw.js` VALID_ROLES nhận **TOÀN roster** KHÔNG gate worker-tier-pin CHE leak qua opus (như thời all-inherit) | CLONE `taskList` MỌI `role:'reviewer'` (N-lane CÙNG vai, KHÔNG mixed-roster) | `§K.C:328` · `hmw.js:22-36` |
| **GAP-2 engine-label** | SCHEMA `memoryDelta` KHÔNG field engine | em-main **stamp nhãn engine @P3 harvest** (`real\|clone-<tier>-Sxxx`) = convention | `§K.C:329` · `hmw.js:54-64` |
| **GAP-3 AS-10 fragment** | N lane giữ Bash (fails-open) phân-mảnh trí-nhớ | N lane **RETURN-only** em-main ghi **1 entry / vai** (+ nhãn) | `§K.C:330` · `fable-real.md:26` |
@ -517,7 +517,7 @@ args = {
- `clone` = **N-lane ensemble tier-2** (multi-lens; để dành quota top-model cho lead — `fable-clone.md:8`).
- ⚠️ **Cost-delta tùy runtime:** Fable DOWN → real vs clone 0 tier-delta (chỉ khác N-lane count). **Fable UP** → real=Fable-deep (đắt nhất/lần) ⟂ clone `tier:'opus'`=tier-2 (giữ quota Fable cho lead). Ghi honest theo probe (`harness-11-engine.md:332,334`).
- [ ] 🧊 *(H19 retired)* **P5 cũ — scope-lock 2 vai** (`POSITION ∈ {reviewer, investigator-codebase}`, vai khác EXCLUDED).
- [ ] **P5-mới (H21) — scope-lock = `ROLE_VALID`**: `INVOCATION.vai ∈ roster` do ANH gán (thiếu/lạ → hỏi anh, KHÔNG tự chọn); ⚠️ 2 monitor H1/H2 ĐÃ vào VALID_ROLES (S110) + **2 monitor H24 vào S121 W2** → hết limitation; vai-INVALID nay = STOP-HARD throw (REC-3 2026-07-13, KHÔNG fail-soft). Ngoài lượt lệnh: mọi vai giữ model roster (H8 all-inherit), lead KHÔNG tự elevate (K.D mới). *Evidence:* vai lượt này + quote lệnh.
- [ ] **P5-mới (H21) — scope-lock = `ROLE_VALID`**: `INVOCATION.vai ∈ roster` do ANH gán (thiếu/lạ → hỏi anh, KHÔNG tự chọn); ⚠️ 2 monitor H1/H2 ĐÃ vào VALID_ROLES (S110) + **2 monitor H24 vào S121 W2** → hết limitation; vai-INVALID nay = STOP-HARD throw (REC-3 2026-07-13, KHÔNG fail-soft). Ngoài lượt lệnh: mọi vai giữ model roster (worker-tier-pin `opus` S124), lead KHÔNG tự elevate (K.D mới). *Evidence:* vai lượt này + quote lệnh.
---
@ -560,7 +560,7 @@ args = {
description: "Fable-real judge: <ARTIFACT>"
prompt: "<spec + acceptance + diff + RETURN-format bắt-buộc>"
```
Agent frontmatter `model: inherit` (`reviewer.md:5` / `investigator-codebase.md:5`) → tự ăn top-tier (`LEAD_MODEL`). *(Thay-thế: hmw 1-task + `tier:'fable'` ép lead-tier nếu cần RUN-TRACE — `hmw.js:38`.)*
Agent frontmatter `reviewer.md:5`/`investigator-codebase.md:5` nay = `model: opus` (pin S124) ⇒ 🔴 spawn PHẢI set `model:'fable'` (param THẮNG pin — đo S126; không set = opus, KHÔNG phải `LEAD_MODEL`). *(Thay-thế: hmw 1-task + `tier:'fable'` — `hmw.js:68`.)*
- [ ] **R3 — GAP-guard tại spawn** *(tick cả 3):*
- GAP-1: mọi lane CÙNG **1 vai** (`taskList` roles distinct = 1), KHÔNG mixed-roster (`harness-11-engine.md:328`).
- Lane **RETURN-only**, 0 Write memory (write-guard `hmw.js:118-122`; GAP-3).
@ -639,7 +639,7 @@ Một lượt phán-quyết **ĐẠT ⟺ tất-cả** AC dưới (đo-được,
| # | Anti-pattern | Vi-phạm (nguồn) | Đúng phải làm | Detect |
|---|---|---|---|---|
| **AP-1** | Bật real **tự-động** không anh-gõ | K.D **point-2** (`harness-11-engine.md:332`) — real CHỈ do anh gõ `/fable-real <vai> <đề-bài>` | muốn real mà anh chưa gõ LƯỢT NÀY ⇒ STOP + ĐỀ XUẤT anh gõ *(🧊 H19: "0 marker + muốn real ⇒ STOP")* | transcript lượt đó vắng `/fable-real` nhưng chạy real |
| **AP-2** | **Mixed-roster** ensemble (fan-out nhiều vai) | GAP-1 scope-creep leak (`:328`) — all-inherit CHE tới khi Fable về | N lane **CÙNG 1 vai** (multi-lens) | `taskList` roles distinct-count > 1 |
| **AP-2** | **Mixed-roster** ensemble (fan-out nhiều vai) | GAP-1 scope-creep leak (`:328`) — worker-tier-pin CHE qua opus (như all-inherit trước nó) | N lane **CÙNG 1 vai** (multi-lens) | `taskList` roles distinct-count > 1 |
| **AP-3** | Lane **tự ghi memory** (store_memory / MEMORY.md / Bash-append) | GAP-3 / AS-10 fails-open (`:330,:120`) | RETURN-only; em-main ghi 1-entry/vai | git-diff `agent-memory/*` đổi trong P2 · RAG chunk-count |
| 🧊 **AP-4** (H19 retired) | Quên **báo marker-state** cuối phiên | marker persist qua session = BY-DESIGN (`fable-real.md:10`) nhưng thiếu báo → anh quên mode đang real (burn top-model ngoài ý) | session-end **BÁO marker-state + NHẮC anh** gõ `/fable-clone` nếu muốn về ảo (em-main KHÔNG tự toggle — K.D point-2); KHÔNG commit marker (gitignored `.gitignore:92`) | BƯỚC 0.5b @start + session-end marker-report |
| **AP-4-mới** (H21) | Chạy engine-đắt **NGOÀI lượt-lệnh** anh gõ | K.D point-2 + H21 §2.1-bis — engine-đắt CHỈ trong lượt anh gõ `/fable-real`\|`/fable-clone` kèm vai; kể cả **HMW-mode ON**, kể cả "thấy cần" = **VI-PHẠM** (lead KHÔNG tự ý) | Đợi lượt-lệnh anh; thiếu vai → **hỏi anh 1 dòng, KHÔNG tự chọn vai** | engine-đắt chạy mà transcript lượt đó vắng `/fable-real`\|`/fable-clone` |

View File

@ -295,7 +295,7 @@ SE đã có RAG golden-set harness (KHÔNG phải gap): `eval/golden-set-solutio
- **Sweep 6 mandate-consumer + cites (mechanized-grep `_ledger` exact — 5 "ledger" khác tên trong repo, tránh C3-fork):** `runs/README.md` ×7 (:3/:38/L1/L2/§C6-header/:117/:127) · `workflows/README.md` ×2 (:20/:34-B3) · `session-start.md` §2.1.1-H2 · `session-end.md` §L.b(f) · `agents/harvest-curator.md` ×3 (:28/:44/:52-cite) · `agents/README.md` G-015-cite · + `agent-memory/harvest-curator/MEMORY.md` baseline re-ground. HISTORY class (session-log/adap-report/archive/runs-synthesis) GIỮ NGUYÊN.
**J.C — Bracket phân-bổ model: 1 ĐẠT + 2 n-a-by-owner-mandate (🔴 điều-kiện xét-lại VIẾT RA):**
- Precondition raw-economics ĐÚNG (Fable > Opus 4.8 giá) NHƯNG **H8 all-inherit = owner-directive 🔴 S66 "chất-lượng trên chi-phí"** (anh-chốt, mọi sister) → KHÔNG demote lớp-việc nào; escape-hatch per-task `tier:'opus'` (hmw.js) GIỮ = cơ-chế hạ-bậc-theo-việc ĐÃ TỒN TẠI khi cần. 4 lớp không-hạ + 2-đầu = vacuously-held (mọi vai đang top-tier). Promote-list 🟡 = n-a (không gì để nâng).
- Precondition raw-economics ĐÚNG (Fable > Opus 4.8 giá) NHƯNG **directive 🔴 S66 "chất-lượng trên chi-phí"** (anh-chốt, mọi sister) GIỮ — mechanism nay = **worker-tier-pin S124** (14/14 frontmatter `opus`+`effort:max`, thay all-inherit H8) → KHÔNG demote lớp-việc nào dưới worker-tier opus; escape-hatch per-task `tier:'opus'` (hmw.js) GIỮ = cơ-chế hạ-bậc-theo-việc ĐÃ TỒN TẠI khi cần. 4 lớp không-hạ + 2-đầu = vacuously-held (mọi vai đang top-tier). Promote-list 🟡 = n-a (không gì để nâng).
- **Điều-kiện xét-lại (C3-floor, viết ra — đo được):** NẾU anh đảo H8 HOẶC áp-lực chi-phí thật xuất hiện → dựng bracket theo checklist H18-C, so ≥3-run eval vs baseline TRƯỚC khi cố-định; tới lúc đó C1/C2 hết n-a. (Caveat-2 broadcast: "chi-phí ngang nhau thì khuôn-mẫu không áp" — SE = ngang-nhau-BY-DECISION.)
**J.D — Đóng làn kết-quả (🔴 3 sàn — 2 ĐẠT wired + 1 REUSE):**
@ -329,11 +329,11 @@ SE đã có RAG golden-set harness (KHÔNG phải gap): `eval/golden-set-solutio
**Thay bằng §K.E per-invocation.** Marker file đã xóa S110; `.gitignore:92` giữ pattern phòng-hờ.
**K.C — 3 floor-fidelity gap (🔴 WF1-L3 bắt — pin để stamp CÓ NGHĨA, không paperwork):**
- **GAP-1 scope-creep guard:** `hmw.js` VALID_ROLES nhận **TOÀN roster** (lịch-sử: 9 lúc adopt S101 → +`office-document` S107 → +2 monitor H1/H2 S110 anh-directed → **+2 monitor H24 S121 W2**; số vai canonical → [`docs/STATUS.md`](../STATUS.md) §Sub-agents, B1 KHÔNG chép số), KHÔNG gate → all-inherit **CHE** leak (mọi vai top-tier nên mixed-roster "trông ổn"; Fable về + phân-tầng thì rò top-tier ensemble sang vai ngoài 2 vị-trí = vi phạm §3 hard-scope). → **lệnh-B ensemble-run = N lane CÙNG 1 vai phán-quyết** (multi-lens), KHÔNG mixed-roster fan-out.
- **GAP-1 scope-creep guard:** `hmw.js` VALID_ROLES nhận **TOÀN roster** (lịch-sử: 9 lúc adopt S101 → +`office-document` S107 → +2 monitor H1/H2 S110 anh-directed → **+2 monitor H24 S121 W2**; số vai canonical → [`docs/STATUS.md`](../STATUS.md) §Sub-agents, B1 KHÔNG chép số), KHÔNG gate → worker-tier-pin **CHE** leak qua opus (mọi vai pin opus nên mixed-roster "trông ổn" — như thời all-inherit trước nó; lượt `tier:'fable'` mixed-roster = rò top-model sang vai ngoài lệnh = vi phạm §3 hard-scope). → **lệnh-B ensemble-run = N lane CÙNG 1 vai phán-quyết** (multi-lens), KHÔNG mixed-roster fan-out.
- **GAP-2 engine-label (§5):** `hmw.js` SCHEMA `memoryDelta{task,verdict,learned,surprise}` KHÔNG field engine → em-main **stamp nhãn engine @P3 harvest** (single-writer B3), như S101 "model-note Opus-S101". = convention KHÔNG mechanism.
- **GAP-3 AS-10 fragment:** mỗi run-trace ghi `*-synthesis.md` residual + lane giữ Bash (AS-10 fails-open) → "1 vai = 1 trí-nhớ" qua N lane giữ CHỈ bởi em-main single-writer. → **N lane RETURN-only**, em-main ghi 1 MEMORY entry/vai (+ nhãn engine).
**K.D — 3 floor-point RC-stamped (🔴 §9 — `RC-pqhuy1987-03-07-2026-17-46-35`, `ACTIVE-MARKS.md`):** (1) 🧊 ~~lead LUÔN top-model (KHÔNG đụng)~~ [retired H21/mtv3 S110] → **MỚI:** lead = **frontier-class** do anh chọn per-session {Fable 5 | Opus 4.8 — 1M MAX} (model-tier-v3 2026-07-11); CẤM Sonnet/Haiku-class ghế lead; owner-chọn-hạng-hai ≠ outage → 0 caveat/0 revert-nghĩa-vụ · (2) 🧊 ~~CHỈ 2 vị-trí phán-quyết chạm top-model, CHỈ chế-độ thật do anh gõ (KHÔNG auto)~~ [retired H21 S110] → **MỚI:** top-model deep-run CHỈ trong lượt lệnh engine-đắt anh gõ KÈM VAI đích-danh (H21) — không còn 2-vị-trí-mặc-định, không còn mode · (3) mọi vai khác giữ model mặc-định (roster-tier). ⚠️ **VACUOUSLY-MET-for-SE-today:** dưới all-inherit + Fable-outage, reviewer+investigator-codebase ĐÃ top-model (Opus-1M) → point-2 grant **0 runtime-delta**; point-3 trivially-held (SE không có "vai khác" tier-thấp — all-inherit S66). Stamp KHÔNG overclaim runtime-delta; value = future-proof floor + governance-record. *(S108 update: Fable-UP + first-real-run → point-2 grant hoạt-động THẬT lần đầu — 2 vị-trí single-Fable deep ⟂ worker-draft pin tier-2 Opus; "vacuously-met" KHÔNG còn là trạng-thái thường-trực, tùy BƯỚC 0.6 probe per-session.)*
**K.D — 3 floor-point RC-stamped (🔴 §9 — `RC-pqhuy1987-03-07-2026-17-46-35`, `ACTIVE-MARKS.md`):** (1) 🧊 ~~lead LUÔN top-model (KHÔNG đụng)~~ [retired H21/mtv3 S110] → **MỚI:** lead = **frontier-class** do anh chọn per-session {Fable 5 | Opus 4.8 — 1M MAX} (model-tier-v3 2026-07-11); CẤM Sonnet/Haiku-class ghế lead; owner-chọn-hạng-hai ≠ outage → 0 caveat/0 revert-nghĩa-vụ · (2) 🧊 ~~CHỈ 2 vị-trí phán-quyết chạm top-model, CHỈ chế-độ thật do anh gõ (KHÔNG auto)~~ [retired H21 S110] → **MỚI:** top-model deep-run CHỈ trong lượt lệnh engine-đắt anh gõ KÈM VAI đích-danh (H21) — không còn 2-vị-trí-mặc-định, không còn mode · (3) mọi vai khác giữ model mặc-định (roster-tier). ⚠️ **VACUOUSLY-MET-for-SE (dated, thời điểm stamp S103-era):** dưới all-inherit + Fable-outage, reviewer+investigator-codebase ĐÃ top-model (Opus-1M) → point-2 grant **0 runtime-delta**; point-3 trivially-held (thời all-inherit S66 không có "vai khác" tier-thấp). *(S124 → worker-tier-pin: point-3 nay giữ theo nghĩa MỚI — "vai khác" = worker-tier opus cố-định; point-2 xem S108-update cuối đoạn.)* Stamp KHÔNG overclaim runtime-delta; value = future-proof floor + governance-record. *(S108 update: Fable-UP + first-real-run → point-2 grant hoạt-động THẬT lần đầu — 2 vị-trí single-Fable deep ⟂ worker-draft pin tier-2 Opus; "vacuously-met" KHÔNG còn là trạng-thái thường-trực, tùy BƯỚC 0.6 probe per-session.)*
**K.E — H21 per-invocation + spec-file kết-tinh (🔴 sàn 5-điểm, adopt S110 — supersede K.B toggle):**

View File

@ -44,14 +44,15 @@ Một session-log viết "two-tier" hồi S60 là **đúng sự thật lịch s
| **Ghi chú frozen** | Session-log S65 và bản archive giữ "Dự trù PRO" — đúng lịch sử |
| **Lưu ý mở rộng** | `PeWorkItemBudget` là tên ENTITY (khái niệm khác — bảng ngân-sách-per-gói-thầu), KHÔNG phải alias của nhãn PRO. "PRO" = Procurement (phòng Mua hàng), không phải viết tắt khác |
### 3. `all-inherit` (chuẩn) ↔ `two-tier` (alias cũ)
### 3. `worker-tier-pin` (chuẩn) ↔ `all-inherit` · `two-tier` (2 alias cũ, 2 đời)
| Thuộc tính | Giá trị |
|---|---|
| **Canonical (hiện hành)** | `all-inherit` — mọi sub-agent kế thừa model lead (chất-lượng > chi-phí), cấu hình qua frontmatter + `hmw.js` resolveModel |
| **Alias (đã thay thế)** | `two-tier` — mô hình cũ 2 tầng (lead promote-inherit vài agent / demote-pin số còn lại về Opus) |
| **Đổi tên bởi** | Harness-8 (Session 66, 2026-06-16) — thay mô hình two-tier model-promotion bằng all-inherit |
| **Ghi chú frozen** | Các adap-report Harness-4/5 và session-log ≤ S66 giữ "two-tier" — đúng lịch sử tại thời điểm đó |
| **Canonical (hiện hành)** | `worker-tier-pin` — 14/14 sub-agent frontmatter `model: opus` + `effort: max` (worker-tier gán-cứng, KHÔNG theo lead); lead = frontier-class owner-choice per-session; Fable cho 1 vai CHỈ qua lượt lệnh `/fable-real`·`/fable-clone` hoặc per-task `tier:` — spawn-param THẮNG hard-pin (đo S126 2026-07-16, `runs/2026-07-16-S126-adap-spec-execute/runtime-verify-synthesis.md`) |
| **Alias (đã thay thế — đời 2)** | `all-inherit` — mọi sub-agent kế thừa model lead (chất-lượng > chi-phí; Harness-8, S66S123) |
| **Alias (đã thay thế — đời 1)** | `two-tier` — mô hình 2 tầng (lead promote-inherit vài agent / demote-pin số còn lại về Opus; Harness-4) |
| **Đổi tên bởi** | Owner-decision **S124** (2026-07-15, adap `erratum-h8`) — thay all-inherit bằng worker-tier-pin. Trước đó: Harness-8 (S66, 2026-06-16) thay two-tier bằng all-inherit |
| **Ghi chú frozen** | adap-report/session-log ≤S66 giữ "two-tier", S66S123 giữ "all-inherit" — đúng lịch sử tại thời điểm đó |
---