Files
solution-erp/docs/governance/adap-reports/2026-07-13-Governance-harness-23-explicit-model-at-spawn.md
pqhuy1987 e9124fc6de
All checks were successful
Deploy SOLUTION_ERP / build-deploy (push) Successful in 5m30s
[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
- 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>
2026-07-16 15:19:08 +07:00

72 lines
7.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# adap-report — H23 explicit-model-at-spawn (PA-2)
## 1. id-broadcast
`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"**.~~ → ✅ **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)) | ✅ **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
**Commit (ĐÃ PUSH, range `4727d16..c39ba9d`):**
- `d07bbb9``scripts/spawn-model-audit.ps1` (PA-2b, 25 606 B)
- `00a1c67``hmw.js:50` `const TIER2_EXPECTED_FULL_ID = 'claude-opus-4-8'` (PA-2a) — trong **1 commit nguyên-tử** 9 file
- `53765b0``fable-clone.md` GAP#6 + `fable-real-runbook.md`
**Đo thật — PA-2b đổi trạng-thái ĐÚNG theo thiết-kế (2 mốc, đo bằng chính script):**
| Mốc | Output |
|---|---|
| TRƯỚC W2 land | `FAIL-LOUD: expected constant missing (W2 chưa land)` |
| SAU W2 land | `[OK] claude-opus-4-8 = owner-ratified` |
| **Teeth-inject** (lead tự tiêm `claude-opus-9-9`) | **FLAG mismatch** → sửa → hết FLAG |
⇒ script **có răng thật**, không phải happy-path xanh.
**GAP#6 land (`fable-clone.md`):** lane ensemble PHẢI mang `tier:'opus'`; `hmw.js:63-64` `resolveModel()`: `if (tier==='fable'||tier==='opus') return tier`.
## 4. tailored-gì + skip-gì-vì-sao
**TAILORED:**
1. **PA-2 KHÔNG neo-tại-spawn — vì neo-tại-spawn BẤT-KHẢ-THI ở SE.** Param `model:` của Agent-tool chỉ nhận **enum alias** (`sonnet|opus|haiku|fable`), không nhận full-id; và SE **0 full-id** vì H8 all-inherit. ⇒ anh chủ-dự-án chốt (O1) đổi **hình-thức** sang **PA-2a hằng-số + PA-2b audit so resolved-vs-expected**. 🔴 **Đây là đổi HÌNH-THỨC một quyết-định owner đã ký** ⇒ đã report-before-stamp và **anh ack riêng** (fix#8a).
2. **GAP#6 diễn-giải theo project-fit SE:** `/fable-clone` tự định-nghĩa là *"ENSEMBLE **tier-2**"* ⇒ lane **BUỘC** mang `tier:'opus'`. Thiếu ⇒ lane `inherit` lead ⇒ **lead=Fable thì thành N× Fable** = vừa đốt quota top-model gấp N lần, vừa **phá đúng lý-do lệnh tồn-tại** (ensemble rẻ để **thay** 1 lượt Fable đắt).
3. **Acceptance v1 `grep tier:'opus' ≥1 hit` giữ làm ĐIỀU-KIỆN CẦN, KHÔNG ĐỦ** — nó chỉ đo **CHỮ trong file**, không đo runtime ⇒ **Goodhart-able 100%**.
**SKIP / n-a:** không skip điểm nào của broadcast.
## 5. honest-caveat
🔴 **(a) LỖ TRUNG-TÂM CHƯA TEST — chính thứ H23 §2(2) BẮT BUỘC phải khai.**
Nguyên-văn broadcast đòi khai: *"thứ-tự ưu-tiên giữa **'tham-số tại spawn'** và **'pin ở tệp định-nghĩa'** khi **CẢ HAI cùng hiện-diện** — rất có thể **chưa từng được test**."*
**Ở SE cả hai ĐANG cùng hiện-diện:** `hmw.js` trả alias vào `agent(…, {model:…})` **TRONG KHI** frontmatter **toàn roster** = `inherit`. **Chưa ai test bên nào THẮNG.**
🔴 **Hệ-quả nếu frontmatter thắng: TOÀN BỘ fix GAP#6 = NO-OP** ⇒ floor-2 vẫn thủng khi Fable UP — **đúng lỗi 🟥 reviewer đã bắt @S108**.
**Phép thử phân-biệt được (H23 §6 phép-thử-phá #3):** chạy 1 lane `tier:'opus'` **KHI lead=Fable** → đọc model **THỰC-TẾ resolve** → lệch ⇒ báo owner.
⚠️ **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.
🔴 **(c) `hmw.js:46-49` mang cùng ghi-chú này trong mã** — không chỉ ở report. Có chủ-đích: người đọc mã phải thấy lỗ ngay chỗ có thể bị lừa.
🟡 **(d) → adap-request R1 (GIỮ, evidenced):** H8 all-inherit ⟂ pin-simple ⟂ H23 — **hub tự pin 17/17** trong khi broadcast nói all-inherit. SE giữ H8 nguyên-vẹn (0 frontmatter đổi) và đề-nghị hub làm rõ.
---
*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ở.*