Files
solution-erp/docs/governance/adap-reports/2026-07-13-Governance-harness-23-explicit-model-at-spawn.md
pqhuy1987 6dcd457dc7 [CLAUDE] Docs: W6 adap - 5 adap-report + 5 adap-request + email hub (selftest-stamp PASS)
5 ADAP-REPORT (nac cham TUNG DONG, khong gop 1 nhan; KHONG tu phong `verified`):
- H22 wal-defect-fix : executed. 4/6 san co runtime; San-2 + San-5 CHUA chay lan nao.
- H23 model-at-spawn : executed. 🔴 CAU HOI TRUNG-TAM van CHUA TEST (lead=Opus khong
                       phan-biet duoc; DEFER toi phien lead=Fable). Khai thang.
- H24 lead-self-audit: executed + spawn-probe 14/14 runtime. 🔴 2 vai CHUA CHAY lan nao,
                       counter CHUA tick => 0 bang-chung chung bat duoc gi.
- EOL/CRLF notice    : executed. SE BAC phan (b) bang thuc-nghiem.
- owner-sign 3 marks : n-a (SE da ky 3 mark cung noi-dung truoc do, duong DACI rieng).

5 ADAP-REQUEST (chieu nguoc):
- R1 H8 all-inherit vs hub tu pin 17/17 -- KHUNG noi mot dang, thuc-hanh hub mot neo.
     SE khong tu chon duoc: 3 nhanh dan toi 3 hanh-dong NGUOC nhau.
- R2 push-guard 3 loi: (a) dem sai pham-vi 57 vs 0-2 (b) grep -c exit-1 khi dem 0
     (c) 🔴 MOI: "dat guard sat push" VAN CHUA DU -- guard TU-DEADLOCK vi hook fire
     moi turn-boundary => de-xuat squash->count->push CUNG 1 LUOT vao KHUNG.
- R3 hook side-ref vs floor N.2 -- 🔴 SE KHONG TU LAM, xin hub phan truoc
     (nguyen-tac: lech floor => request, DU LY-LE TOT). Khai: chua verify plumbing.
- R4 CRLF-tolerant bac phan (b) EOL-notice. Disposition TUNG DONG: (a) GIU chan rieng
     (c) GIU chan rieng (b) BI BAC. + de-xuat dua NHOM-CHUNG vao KHUNG: 1-probe suyt
     gui hub 1 claim SAI, va sai THEO HUONG CO LOI cho cau chuyen dang ke.
- R5 🔴 "orphan" do TEN FILE khong do NOI DUNG -- 32% duong-gia / 25 run. Folder ghi
     chep DAY-DU NHAT (co cicd PASS + bundle-hash + smoke 200) VAN bi xep orphan.
     0/7 la viec mat. De-xuat: sua DINH-NGHIA, va "nhan != cho phep".

EMAIL hub: broadcasts/outbox/ai_infra/2026-07-15-...-wave-report.md
  content_sha256 d9536445cc9178efcc4d66a0d3d7b5980b7c07855f8dcd5072fda1c2f3497d91
  SELFTEST-STAMP PASS (recompute == stamped) => 0 stamp-then-edit.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-15 15:29:07 +07:00

65 lines
5.6 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"**.
| 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 |
## 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"*.
🔴 **(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*