- 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>
7.8 KiB
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:50const TIER2_EXPECTED_FULL_ID = 'claude-opus-4-8'(PA-2a) — trong 1 commit nguyên-tử 9 file53765b0—fable-clone.mdGAP#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:
-
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). -
GAP#6 diễn-giải theo project-fit SE:
/fable-clonetự định-nghĩa là "ENSEMBLE tier-2" ⇒ lane BUỘC mangtier:'opus'. Thiếu ⇒ laneinheritlead ⇒ 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). -
Acceptance v1
grep tier:'opus' ≥1 hitgiữ 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(pinopus) + spawntier:'fable'→ resolvedclaude-fable-5(3 records) ⇒ SPAWN-PARAM THẮNG ⇒/fable-real·/fable-cloneSỐNG, GAP#6 fix KHÔNG phải NO-OP (hệ-quả 🔴 ở trên KHÔNG xảy ra). - Lane
investigator-codebaseKHÔNG override → resolvedclaude-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ở.