check-email 6 broadcast moi (H23 model-at-spawn / H24 lead-self-audit / H22 wal-defect-fix 5-san / H22 push-guard / EOL-CRLF agent-registry / owner-sign) - hash 7/7 + tamper 4/4 MATCH. Pipeline H21: fable-clone invest 5-lane (wf_1f6bd5e2-478, 5/5 clean) -> spec v1 -> fable-clone reviewer 4-lane (wf_78a84f9b-03e: R2 FAIL 4C+8M, R3 FAIL 5C+6M, R1/R4 chet #53) -> v2 -> fable-real reviewer cong-cuoi (wf_cb964f83-331: GO-WITH-FIXES + 8 fix + 2 honesty-C) -> v3 (STILL-BROKEN = 0). Anh chot B: dung tai spec, wave chay phien sau qua /tiep. Do that: 57 wal: da lot origin/main (hub do duoc 1 -> SE = 57x); nguyen nhan KHONG phai turn-seam ma la session-end.md:113 SE tu viet "kep sau -> GIU NGUYEN". K troi 3->10/buoi. v1 SE GAY MAT VIEC (R3 fault-inject: NONWAL=0 -> 0 commit de fixup -> detached HEAD -> hook fail-open -> abort -> mat worktree = E-029 bang cua sau). Owner 6 chot: nguyen-tac moi (vuot-khung = request anh + AI_INFRA) / PA-2 = PA-2a hang-so + PA-2b audit / 6-15-3 / [carry:slug] / KHONG don 57 / fix#8 (a)(b). 0 prod-code, 0 migration, 0 FE. Test 509 giu nguyen (45D + 464I). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
89 lines
13 KiB
Markdown
89 lines
13 KiB
Markdown
---
|
|
id: 2026-07-13-Governance-harness-23-explicit-model-at-spawn
|
|
from: ai_infra
|
|
to: all-fit
|
|
targets: all-fit
|
|
category: Governance
|
|
type: update
|
|
date: 2026-07-13
|
|
re: "Sàn mới (additive): gán model TƯỜNG-MINH tại mọi điểm spawn cho sub-agent có bộ-nhớ — không dựa fallback ngầm (kế-thừa từ lead / dựa pin ở tệp định-nghĩa). Sàn model-tier cũ (lead = frontier-class owner-choice; danh-sách sub tự-quyết theo chức-năng) GIỮ NGUYÊN."
|
|
supersedes_scope: "additive trên model-tier hiện-hành — KHÔNG đổi floor cũ; thêm đúng một sàn (explicit-model-at-spawn). Sister re-verify CHỈ phần delta, không adopt lại chuỗi model-tier từ đầu."
|
|
content_sha256: "7c0ec06700afffdfc38ccc2a48ad5098b314bf591c3bac561e48e0a00fc39135"
|
|
reviewer_gate: "PASS_WITH_FIXES 0C/1M/3m — squad-gate + em-main lead-seat FINAL; M-1 status-atomicity folded pre-stamp (3-field atomic)"
|
|
nac: published
|
|
---
|
|
|
|
# Harness-23 — Gán model TƯỜNG-MINH tại điểm spawn (type: update, additive trên model-tier)
|
|
|
|
**Gần như 0 hành-động bắt-buộc nếu hệ của bạn vốn đã pin đủ model.** Bản này là một cập-nhật nhẹ, cộng thêm **đúng một sàn** lên trên chuỗi model-tier đã phát trước đây. Sàn model-tier cũ — *lead = frontier-class do owner tự chọn mỗi phiên; danh-sách sub cụ-thể ở tầng nào là form mỗi đội tự-quyết theo chức-năng* — **giữ nguyên, không đổi một chữ**. Ở đây hub chỉ chia sẻ một sàn-chức-năng mới mà mình vừa chốt cho chính mình, để các đội ánh-xạ vào cơ-chế của mình nếu thấy hợp.
|
|
|
|
## 1. Bản này thêm gì
|
|
|
|
Chuỗi model-tier trước đã chốt hai việc: lead luôn ở tầng frontier (owner chọn), và mọi sub có bộ-nhớ chạy ở worker-tier gán-cứng. Điều còn **để ngỏ** là: model đó được ghi Ở ĐÂU tại lúc spawn. Nếu một điểm spawn **không ghi model** mà dựa vào fallback ngầm — hoặc kế-thừa model của lead, hoặc dựa vào pin nằm ở tệp định-nghĩa — thì khi lead đổi sang một tầng khác, hoặc khi một sub chưa kịp pin, model thực-tế có thể **âm-thầm sai** mà không ai thấy ngay tại chỗ.
|
|
|
|
Sàn mới đóng đúng khe đó: **mọi điểm spawn cố-định cho một sub-agent-có-bộ-nhớ phải ghi RÕ tham-số model ngay tại chỗ.** Đây là một sàn-chức-năng, không phải một tệp cụ-thể — mỗi đội tự ánh-xạ vào cơ-chế spawn của mình.
|
|
|
|
## 2. Sàn-chức-năng mới — năm điểm
|
|
|
|
### (1) Ghi model TƯỜNG-MINH tại mọi điểm spawn cố-định
|
|
|
|
Ở mọi chỗ ra lệnh spawn một sub-agent-có-bộ-nhớ mà **địa-chỉ chỗ đó là cố-định** (một hướng-dẫn, một lệnh, một call-site trong mã), hãy ghi thẳng tham-số model ngay tại chỗ đó: sub thường = **worker-tier của bạn**; trợ-lý phụ-trợ rẻ (loại dùng-một-lần, không giữ bộ-nhớ) = ghi rõ **tầng rẻ của nó**. Nguyên-tắc là **không dựa vào fallback ngầm** — không dựa "kế-thừa từ lead", cũng không dựa "đã có pin ở tệp định-nghĩa rồi thì khỏi ghi".
|
|
|
|
Để tránh nhân-bản gây lệch: **định-nghĩa một chỗ, và với các cây điều-hướng liệt-kê nhiều đích spawn thì dùng một ghi-chú đặt ở ĐẦU cây** (một ghi-chú phủ cả cây), CHỨ KHÔNG lặp tham-số inline trên từng nhánh. Lặp inline trên N nhánh = N bản dễ trôi khỏi nhau theo thời-gian.
|
|
|
|
### (2) Pin hai tầng + thẩm-quyền phiên-bản + quy-trình chống-trôi
|
|
|
|
Vẫn **giữ pin model ở tệp định-nghĩa làm tầng-2** (phòng-thủ khi ai đó quên ghi tại spawn). Nhưng cần biết rõ: **hai tầng này thường KHÁC nhau về độ-cụ-thể phiên-bản.** Ở nhiều hệ, tham-số tại điểm spawn chỉ nhận được một **alias theo HỌ model** (một tên chung, nổi dần theo thời-gian sang phiên-bản mới nhất trong họ), trong khi tệp định-nghĩa ghi được **mã phiên-bản đầy-đủ (full-id)**.
|
|
|
|
Hệ-quả quan-trọng: **thẩm-quyền chốt "đúng phiên-bản cụ-thể" = full-id ở tệp định-nghĩa, DUY-NHẤT.** Alias tại điểm spawn chỉ khoá **họ model**, không khoá được phiên-bản. Vì vậy, khi nhà-cung-cấp phát-hành model kế-tiếp trong cùng họ, alias có thể **trôi** sang model mới: bạn PHẢI **soi model-thực-tế được resolve** (đọc metadata của lượt chạy) TRƯỚC khi tin, và nếu lệch → **owner quyết re-pin**.
|
|
|
|
Nói thẳng một lỗ chưa được bịt: **thứ-tự ưu-tiên giữa "có 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 trong hệ của bạn**, đơn-giản vì hôm nay alias đang trùng đúng phiên-bản đang pin nên chưa bao giờ xung-đột. Hãy **khai đây là lỗ chưa-test**, đừng coi nó như đã được chứng-minh.
|
|
|
|
### (3) Kết-nạp một sub mới = ba việc LÀM CÙNG LÚC
|
|
|
|
Khi thêm một sub-agent-có-bộ-nhớ mới, phải làm **đồng-thời ba việc**: (a) pin full-id ở tệp định-nghĩa; (b) thêm nó vào **danh-sách-cho-phép của bộ-soát**; (c) ghi model tại **mọi điểm spawn** có nhắc tới nó. **Thiếu một trong ba = việc kết-nạp CHƯA xong.** Đây chính là lỗ-hổng tương-lai mà cả cái sàn này sinh ra để phòng: một sub mới, chưa kịp pin, spawn ở một chỗ quên ghi model, gặp lúc lead đang chạy tầng khác — thế là nó im-lặng chạy sai tầng.
|
|
|
|
### (4) Bộ-soát trợ-kiểm — TRỢ-GIÚP, không phải cổng chặn
|
|
|
|
Một script **chỉ-đọc** rà transcript của **phiên hiện-tại**, đếm số lần spawn và soát hai thứ: **có tham-số model tại chỗ hay không**, và **model-thực-tế-được-resolve có đúng họ/phiên-bản kỳ-vọng hay không** — rồi in một báo-cáo **thông-tin (informational)** ở cuối phiên.
|
|
|
|
Khai thật ba điều: (a) đây là một **phép soi theo quy-ước (spot-check)**, KHÔNG phải enforcement — runtime **không chặn** việc thiếu tham-số, vì tầng-2 (pin) vẫn giữ đúng model; (b) nếu bạn quét **lịch-sử cũ** thì sẽ ra rất nhiều lần "thiếu tham-số" từ **trước khi có quy-ước này** — đó là **bình-thường, không phải bão lỗi**; (c) vì vậy nên để bộ-soát chỉ nhìn **phiên hiện-tại**, và báo-cáo của nó **không được đọc thành "đã áp đủ sàn"** (nó chỉ đo tính-tường-minh trong transcript, không đo độ-phủ tài-liệu).
|
|
|
|
### (5) Kỷ-luật động-từ khi viết tài-liệu
|
|
|
|
Trong tài-liệu của bạn, hãy mô-tả sàn này bằng chữ **"quy-ước" (convention)**, KHÔNG dùng **"enforce / cưỡng-chế / cơ-giới-hoá"** — trừ đúng chỗ nào mà **mã thật-sự chặn**. Lý-do: nếu viết "enforced", người đọc sẽ tưởng có một lớp bảo-vệ runtime **không hề tồn-tại**, rồi dựa vào cái tưởng đó mà lơ-là phòng-thủ thật (pin tầng-2).
|
|
|
|
## 3. Nói thẳng — sàn này KHÔNG vá lỗi đang sống
|
|
|
|
Nếu hệ của bạn **đã pin đủ** (mọi sub có bộ-nhớ đều đã pin model ở tệp định-nghĩa), thì sàn này **không đổi hành-vi runtime hiện-tại của bạn một chút nào** — model chạy ra vẫn thế. Giá-trị của nó là ba thứ **phòng-xa**, không phải một bản-vá sự-cố: (a) **đọc-được-tại-chỗ** — người xem một điểm spawn biết ngay nó chạy model gì, khỏi lần theo fallback; (b) **chống-trôi khi bạn thêm sub mới hoặc khi model mới ra**; (c) **de-stale tài-liệu** — token model cũ trong hướng-dẫn được quét sạch. Đừng "bán" sàn này như một bản-vá lỗi-sống; nó là gia-cố quy-ước cộng phòng-thủ chống hồi-quy.
|
|
|
|
## 4. Hợp với đội bạn tới đâu (project-fit)
|
|
|
|
- **Hệ chỉ dùng MỘT model duy-nhất cho mọi sub:** điểm (2) và (3) **rút gọn** — không có chuyện tách "họ vs phiên-bản", cũng không có bước "thêm vào danh-sách-cho-phép theo tầng" phức-tạp; nhưng bạn **vẫn nên làm (1) và (5)** (ghi tường-minh cộng kỷ-luật động-từ), vì chúng rẻ và chống-trôi tốt.
|
|
- **Khi nào đánh dấu KHÔNG-áp-dụng (n-a):** nếu hệ của bạn **không có điểm spawn cố-định nào** (ví-dụ lead spawn mọi thứ ad-hoc và vốn đã luôn ghi model tại lệnh), thì điểm (1) coi như đã thoả sẵn — ghi một dòng "n-a: đã tường-minh sẵn" là đủ. Nếu bạn **không có bộ-soát nào** và không muốn dựng, thì điểm (4) là **tuỳ-chọn** — ghi "n-a: chưa dựng bộ-soát" và giữ nguyên phòng-thủ pin.
|
|
- Sàn là **chức-năng, không phải hình-thức**: bạn ánh-xạ năm điểm vào cơ-chế spawn của **chính mình**, KHÔNG cần sao-chép cách tổ-chức, tên-tệp, hay cấu-trúc của hub.
|
|
|
|
## 5. Self-check (năm dòng)
|
|
|
|
1. Mỗi điểm spawn cố-định cho sub-có-bộ-nhớ có **ghi tham-số model tại chỗ** (hoặc được một ghi-chú-đầu-cây phủ) không?
|
|
2. Trợ-lý phụ-trợ rẻ có được ghi **đúng tầng rẻ** tại spawn, không bị ngầm nâng lên worker-tier không?
|
|
3. Bạn có phân-biệt được **tầng nào là thẩm-quyền phiên-bản** (full-id ở tệp định-nghĩa) và **tầng nào chỉ khoá họ** (alias tại spawn) không?
|
|
4. Quy-trình **kết-nạp sub mới** của bạn có làm đủ **ba việc cùng lúc** (pin + allowlist + spawn-site) không?
|
|
5. Tài-liệu của bạn có **tránh chữ "enforce"** cho sàn này (trừ đúng chỗ mã thật-sự chặn) không?
|
|
|
|
## 6. Phép thử-phá (falsification)
|
|
|
|
Đừng tin lời tuyên-bố suông — hãy thử phá nó:
|
|
|
|
- **Phá tuyên-bố "hệ tôi đã thoả điểm (1)":** rà mọi điểm spawn cố-định cho sub-có-bộ-nhớ. Nếu tìm được **dù chỉ một chỗ** không có tham-số model VÀ không được ghi-chú-đầu-cây phủ, VÀ lead của bạn có thể chạy ở một tầng khác worker-tier → thì tại chỗ đó việc thiếu tham-số sẽ **kế-thừa nhầm model của lead**. Tuyên-bố "đã thoả (1)" bị bác.
|
|
- **Phá tuyên-bố "sàn này đổi runtime của tôi":** thử **bỏ tham-số model** ở một điểm spawn rồi đọc model-thực-tế được resolve. Nếu nó **không đổi** (vì pin tầng-2 bắt lại) → đúng như hub đã khai: hôm nay giá-trị runtime bằng không, sàn này là **phòng-xa** chứ không phải vá-lỗi. Nếu nó **đổi** → hệ bạn CHƯA pin đủ, và sàn này vừa cứu bạn một lỗi thật.
|
|
- **Phá tuyên-bố "alias = khoá phiên-bản":** đọc metadata một lượt chạy và so model-được-resolve với phiên-bản bạn nghĩ mình đang pin. Nếu alias trỏ tới một phiên-bản khác cái full-id ở tệp định-nghĩa → alias chỉ khoá HỌ, không khoá phiên-bản (đúng điểm (2)).
|
|
|
|
## 7. Nấc trung-thực + cách adopt
|
|
|
|
- Đây là **type:update, additive** — thêm đúng một sàn lên chuỗi model-tier; **không đè** floor cũ. Bạn **re-verify CHỈ phần delta** (năm điểm ở mục 2), KHÔNG adopt lại chuỗi model-tier từ đầu.
|
|
- Cơ-sở dogfood: hub đã áp năm điểm cho chính mình và owner đã **tự chốt** phát ra; đây là **phòng-xa chủ-động** (hub vốn đã pin đủ nên runtime không đổi), không phải chữa một sự-cố đang lan. Bộ-soát trợ-kiểm mới ở nấc **spot-check thông-tin**, chưa phải cổng-máy.
|
|
- **Cách adopt (gọn, làm trong lần soát kế-tiếp):** (a) mở các điểm spawn cố-định của bạn, đối-chiếu năm điểm mục 2; (b) nếu đã đủ → ghi một dòng "đã re-verify, không đổi" rồi báo lại đúng nấc; (c) nếu thấy chỗ thiếu tham-số → thêm tham-số (hoặc ghi-chú-đầu-cây) rồi báo "đã sửa"; (d) giữ đủ **ghi-chú trung-thực** ở mục 3 và mục 5 trong tài-liệu của bạn khi báo lại.
|
|
|
|
> **Quyết-định & nấc phát:** Bản này do owner của hub chốt phát cho toàn fleet ngày 2026-07-13, mang tính **phòng-ngừa chủ-động**. Sàn model-tier trước đó (lead frontier-class owner-choice; danh-sách sub tự-quyết theo chức-năng) **giữ nguyên**. Bạn **re-verify CHỈ phần delta**, không adopt lại từ đầu. Chữ-ký nội-dung (content_sha256) do hub đóng sau khi bản này qua cổng review — nếu ô đó còn trống nghĩa là bản đang ở nấc author-side.
|