--- from: ai_infra date: 2026-07-25 type: update supersedes_scope: "VALUE-update chồng chuỗi model-tier {model-tier-fable-opus 2026-07-03 · model-tier-v2 pin-simple · explicit-model-at-spawn 2026-07-14 + bản soften}: mọi chỗ default/pin Opus-4.8-MAX → Opus-5-MAX. CẤU TRÚC các bản cũ (pin-cứng · explicit-at-spawn · owner-gated nâng-Fable · helper tier rẻ) GIỮ NGUYÊN — chỉ đổi GIÁ TRỊ model." status: PUBLISHED reviewer_gate: "SELF-GATE chủ-dự-án hub (lệnh GẤP 25-07 · RE-STAMP sau bổ-sung Khoản-5 cùng ngày [G-024a: edit-after-stamp → re-stamp + sweep sha ledger cùng lượt] — gate-sub bỏ 1 lượt CÓ KHAI; máy-gate đủ: leak-scan outward CLEAN + stamp-selftest exit-0 + 2 runtime-probe làm evidence)" content_sha256: "9c9090073a0f3a915b27152243401b5c2bce0556eba86200c06c0d2631c47dc8" --- # Đổi model-default toàn fleet: Opus 4.8 MAX → Opus 5 MAX (chủ dự án hub chốt 2026-07-25, làm gấp — hiệu lực ngay) Chủ dự án hub ra lệnh (trích — lược đầu-câu + tiểu-từ; bản đầy-đủ tại hồ-sơ hub): *"áp defaults tất cả các project-sister — áp toàn bộ Opus 4.8 MAX → Opus 5 MAX. Cái này làm gấp."* Bản này là VALUE-update: chỉ đổi giá trị model ở mọi chỗ đang default Opus 4.8 MAX; toàn bộ cấu trúc allocation các bản trước (pin cứng full-id cho sub, explicit-model tại spawn-site, nâng-Fable owner-gated, helper giữ tier rẻ) không đổi. ## Khoản 1 — Phạm vi đổi (sàn chức năng, áp mọi nhà) 1. **Pin sub frontmatter:** mọi persona-file đang `model: claude-opus-4-8` → **`model: claude-opus-5`** (full-id, KHÔNG suffix `[1m]` trong frontmatter — luật cũ giữ nguyên: suffix trong frontmatter làm harness từ chối cả file). 2. **Workflow/spawn-site alias:** chỗ nào spawn bằng alias `model:'opus'` thì GIỮ NGUYÊN CODE — alias family sẽ tự resolve sang Opus 5 (hub đã probe, xem Khoản 2; mỗi nhà tự probe lại env của mình). 3. **Boot-default settings:** `"model": "claude-opus-4-8[1m]"` → **`"claude-opus-5[1m]"`** (suffix `[1m]` hợp lệ ở settings + ở lệnh đổi model — chỉ frontmatter mới cấm). 4. **Audit/verify tool nội bộ:** chỗ nào hard-code expect `claude-opus-4-8*` làm chuẩn PASS → đổi expect `claude-opus-5*`; nên giữ `claude-opus-4-8*` như bucket "legacy" trong giai đoạn chuyển tiếp thay vì gắn cờ drift (tránh bão cảnh báo giả trên bản ghi cũ). 5. **Lead-seat:** floor cũ giữ nguyên (lead = frontier-class, owner tự chọn) — cặp lựa chọn value-update thành {Fable 5 | **Opus 5**} (1M) MAX. Nâng-Fable per-case vẫn owner-gated. Helper tier rẻ giữ nguyên. ## Khoản 2 — Evidence hub chạy thật (2 probe, để nhà bạn đỡ dò lại từ đầu) - **Probe alias:** spawn một con probe với `model:'opus'` → self-report **`claude-opus-5[1m]`** — tức alias family trong harness đã trỏ Opus 5, mọi spawn-site dùng alias được nâng NGAY không cần sửa code. - **Probe pin full-id + bẫy registry:** sửa pin frontmatter sang `claude-opus-5` rồi spawn NGAY trong cùng phiên (không truyền model-param) → self-report **VẪN 4.8**. Đây KHÔNG phải model thiếu — đây là **registry-rescan-lag**: harness chụp agent-registry lúc mở phiên, sửa frontmatter giữa phiên không được đọc lại (hai dự án chị em từng xác nhận hành vi snapshot này độc lập). ⇒ **Pin đổi = hiệu lực từ lần restart kế; trạng thái đúng để báo cáo là `verified-pending`, KHÔNG khai "đã chạy Opus 5 qua pin" khi chưa restart.** ## Khoản 3 — Migration 3 bước + 1 caveat bắt buộc 1. Sweep pin full-id (chỉ dòng `model:` trong frontmatter — đừng sed mù vào phần prose nói về lịch sử) + settings boot-default + audit-expect. 2. **Restart harness**, rồi spawn-probe một con (không truyền model-param) → self-report phải ra `claude-opus-5*`. Chưa probe sau restart thì chưa được claim runtime-verified. 3. Báo lại hub 1 dòng kết quả probe (email/adap-report như lệ). **Caveat:** nếu env của nhà bạn chưa resolve được Opus 5 (lỗi "Model isn't available") → **GIỮ Opus 4.8 + báo hub ngay**, đừng đổi mù rồi để agent chết im — xử lý theo phản xạ fallback-model từng broadcast trước (per-env, thủ công, blameless). ## Khoản 5 — Bổ sung cùng ngày: model cao hơn default = gọi bằng LỆNH, không bằng ghế Chủ dự án hub bổ sung ngay sau khoản trên (nguyên văn): *"Opus 5 MAX hiện tại là defaults hiện tại nhé, còn khi cần gọi Fable → tao sẽ call qua `/fable-real` nhé, chú ý bổ sung cái này broadcast và apply."* Nghĩa vận hành: - **Default = Opus 5 MAX ở MỌI vị trí, kể cả ghế điều phối (lead).** Trước đây hub còn một lối nữa: chủ dự án chọn model cao hơn ngay lúc mở phiên, và cả phiên đó ghế lead chạy model đó. Lối này **thôi dùng** — ghế lead nay mặc định Opus 5 như mọi vị trí khác. - **Model cao hơn default = gọi qua LỆNH riêng, từng phát một** (`/fable-real <đề-bài>` ở hub). Tức bề mặt của model đắt thu từ hai cửa xuống **một cửa duy nhất, và cửa đó do chủ dự án gõ**. - 🔴 **Phân biệt quyền và ý định — đừng gộp:** lệnh đổi model sẵn có của harness (chủ dự án gõ) **vẫn là quyền tuyệt đối, không bị khoản này rào**. Chủ dự án gõ đổi sang model khác bất cứ lúc nào = hợp lệ, không cần lý do, không phải sự cố, không sinh cảnh báo. Khoản 5 ghi **cách chủ dự án chọn dùng** (đường đi mặc định), KHÔNG phải hàng rào chặn chính chủ. - **Với AI:** trợ lý và mọi vai phụ **không bao giờ tự nâng lên model đắt** — đường duy nhất là lệnh chủ dự án gõ. Điều này vốn đã là sàn từ các bản trước; nay siết thêm một lỗ: hết cả trường hợp "phiên này ghế lead tình cờ là model đắt". - **Báo cáo đầu phiên nên rút gọn tương ứng:** ghế lead chạy đúng default ⇒ **im, không nêu** (hết hỏi lại mỗi phiên). Chỉ nêu một dòng khi chủ dự án chủ động đổi (ghi rõ "chủ dự án đổi"), hoặc khi model không resolve được (ca sự cố, xử theo phản xạ fallback cũ). ## Khoản 4 — Floor vs form Sàn bắt buộc = các khoản ở Khoản 1 (giá trị model default) + bước restart-verify ở Khoản 3 + nguyên tắc ở Khoản 5 (default áp cả ghế lead; model cao hơn = gọi bằng lệnh chủ dự án, không phải trạng thái thường trực). Hình thức (tên vai, số sub, cách tổ chức migration, chạy 1 lượt hay theo đợt) = mỗi nhà tự quyết như mọi khi. Token "Opus 4.8" trong tài liệu lịch sử/lineage của nhà bạn KHÔNG cần rewrite — chỉ cần các dòng mô tả HIỆN HÀNH + lớp thi hành thật (pin/settings/tool) đổi giá trị.