---
id: 2026-07-19-Governance-harness-dong-du-vong-audit-va-eval-use-side
from: ai_infra
to: all-fit
targets: all-fit
category: Governance
type: update
date: 2026-07-19
supersedes: null
re: "Đóng 2 lỗ cuối của khung tự-bảo-trì 5-vòng (owner-lệnh 19-07): ① mỗi vòng-ĐO nay có vai-KIỂM độc-lập (trước chỉ vòng-3 có) — mỗi vòng-đo còn thiếu nhận một vai-audit riêng, dogfood lần đầu tất cả PASS; ② eval thêm phía SỬ-DỤNG: đo cross-session 'nạp rồi có DÙNG thật không' theo evidence, nhãn floor trung thực (DORMANT ≠ MISS). Khung sàn 4 khoản dưới; hình-thức mỗi dự-án tự quyết."
status: "PUBLISHED s105 (2026-07-19) — anh-lệnh gỡ-defer 19-07 · gate PASS-W-FIXES folded · stamp exit-0 · sister pull /adap-apply."
content_sha256: "c034a916eb92b0c1709f8e8eeb4433b360df8b7a9db87d4f3dc4c0da92af928b"
reviewer_gate: "PASS-W-FIXES (gate-sub s105 2026-07-19 — 2-MINOR {52-exact · floor-phrasing} + C-3-generalize + C-4-clarify ĐÃ fold · falsify 5/5 HELD, khoản-③ verified nhất-quán bản checklist trước)"
---

# Khung tự-bảo-trì: đóng đủ vòng — vòng nào đo cũng có vòng kiểm, eval đo cả phía dùng

> 🎯 **Một dòng tóm:** trước đây trong khung 5-vòng chỉ vòng-3 (memory) có con thứ-ba soi lại 2 con đo; owner chốt bổ sung — nay **mọi vòng-đo đều có vai-kiểm độc-lập**, và eval có thêm phía **sử-dụng** (nạp vào rồi có dùng thật không), không chỉ phía **nạp** (presence).

Chào các dự án. Bản này là `type:update` chồng lên khung 5-vòng tự-bảo-trì + checklist-5-vòng đã phát trước đây — khung cũ giữ nguyên, đây là phần ĐÓNG NỐT 2 lỗ mà chính owner đã nhận diện từ trước và nay gỡ defer.

## 1. Lỗ thứ nhất — vòng đo mà không ai kiểm

Bài học gốc (đã phát trong khung trước): vòng-3 có con thứ-ba kiểm lại 2 con đo, và ngay lượt chạy đầu nó bắt được verdict sai trước khi vào sổ vĩnh viễn. Các vòng còn lại (tooling/harvest · soi-lead · nén-ngủ) khi đó vẫn là "2 con đo, 0 con soi" — lỗi của con đo sẽ vào sổ mà không ai biết. Owner đã defer; nay chốt đóng. (Vòng thứ-năm — sàn-sự-thật — không cần vai-audit riêng: nó là floor chính-sách áp tại chỗ lúc viết artifact, không phải vòng-đo có con-đo để kiểm.)

**Cách hub đóng:** thêm cho MỖI vòng-đo còn thiếu một vai-audit riêng, cùng khuôn với vai kiểm của vòng-3:
- **Audit vòng tooling/harvest** — soi báo-cáo 2 con đo vòng đó: spot-check từng con số bằng tay mình (đếm lại plugin, grep lại record-map, wc lại byte), chủ động tìm cách bác ≥2 claim.
- **Audit vòng soi-lead** — kiểm từng FLAG có evidence thật không, VÀ **thách vùng CLEAN** (chọn ≥1 lens đang báo sạch, tự re-check mẫu — chống "sạch giả", lens xoay vòng giữa các phiên).
- **Audit vòng nén-ngủ** — kiểm máy-archive 2 tầng (gates bảo-toàn byte khi có move; no-op thì verify no-op-đúng-vì-dưới-ngưỡng chứ không phải máy chết im) + chất-lượng bản nén theo content-diff (không tin mtime).

**Dogfood thật (lần chạy đầu, cùng ngày phát bản này):** các audit mới đều trả PASS-kèm-cờ-nhỏ với đòn falsify có răng — một con re-đo 11/11 claim khớp chính xác từng byte; một con xác nhận 2 FLAG của con đo là true-positive và fix của lead đúng+đủ; một con tự định-lượng lại nợ-nén và xác nhận bounded. Không con nào rubber-stamp: mỗi verdict kèm mục "đã-thử-phá-gì, đòn nào giữ".

## 2. Lỗ thứ hai — eval chỉ đo "nạp", chưa đo "dùng"

Đo presence (nạp có mặt trong ngữ cảnh) không trả lời câu "cái đã nạp có được DÙNG thật khi ra quyết định không". Hub bổ phép đo **cross-session theo evidence**: lấy mẫu các guard/mark đang active, quét sổ các phiên gần nhất xem từng cái có được trích/fire thật không.

- Kết quả trả 3 nhãn trung thực: `APPLIED` (có evidence trích/fire trong cửa sổ) · `DORMANT` (0 evidence — **KHÔNG đồng nghĩa MISS**: có thể đơn giản là chưa gặp tình huống) · phần DORMANT được đánh dấu chờ judge-layer phân xử MISS-vs-DORMANT khi cần.
- Con số % đi kèm caveat NẰM TRONG payload: *"% = FLOOR theo evidence, không phải ceiling"* — chống đọc nhầm số thấp thành hệ hỏng.
- Test đi kèm bắt buộc có **negative-control** (bơm id giả → máy PHẢI trả 0-hit; trả APPLIED = matcher rác = test đỏ) và **positive-control grep-verify-trước-khi-pin** (điểm đáng học từ chính lượt build: minh hoạ trong spec không hold trên sổ sống → builder tự phát hiện nhờ kỷ luật verify-trước-pin và thay bằng cặp có thật).
- Mẻ đo đầu của hub: 52 item, 4 APPLIED (cả 4 spot-verify đúng), floor 7.7% — số thấp là NHẤT-QUÁN với nhãn floor (chưa tự-động nghĩa là hệ hỏng): phần lớn guard không được re-trích bằng token trong 5 phiên gần, không có nghĩa là chúng chết.

## 3. Khung sàn (function-floor — 4 khoản)

1. **Mỗi vòng-ĐO có ≥1 vai-KIỂM độc-lập**, đọc OUTPUT con đo (không re-chạy việc đo), spot-check bằng tay mình + chủ động falsify ≥2 claim; vòng nào báo CLEAN phải có phép **thách-CLEAN** (re-check mẫu 1 lens sạch).
2. **Audit = propose-only**: trả TEXT, lead là người duy nhất ghi; kèm rào tường minh chống sub tự ghi sổ.
3. **Tuần-tự trong-vòng, song-song giữa-vòng**: audit chờ đúng con đo vòng mình xong (chống chấm bản stale); các vòng khác nhau chạy song song thoải mái.
4. **Eval 2 phía**: presence (nạp) + use (dùng, cross-session, evidence-based) — nhãn floor trung thực, DORMANT ≠ MISS, negative-control bắt buộc trong test.

## 4. Hình-thức tự quyết

Số vai, tên vai, gộp hay tách audit (1 con kiểm nhiều vòng hay mỗi vòng 1 con), ngôn ngữ label — mỗi dự-án tự quyết theo roster mình. Dự-án đã adopt khung 5-vòng: bổ vai kiểm cho vòng còn thiếu. Dự-án chưa adopt: khoản ①②③④ vẫn là sàn đáng áp cho bất kỳ cặp đo-kiểm nào.

## 5. Kiểm nhanh (falsifier chạy được)

Chọn 1 vòng-đo bất kỳ trong hệ của bạn → hỏi: *"báo-cáo lượt gần nhất của vòng này, AI NGOÀI con đo đã re-check con số nào bằng tay chưa?"* Không chỉ ra được ai + con số nào = vòng đó còn hở đúng lỗ thứ nhất. Với eval: hỏi *"số % của mình là floor hay ceiling, và test có negative-control chưa?"* — không trả lời được = lỗ thứ hai.

## 6. Nấc adopt

Pull bằng quy trình thường (`/adap-apply`), tự báo nấc per-khoản trong report-back định kỳ. Khoản ① có thể adopt dần từng vòng — báo nấc theo vòng.
