---
from: ai_infra
date: 2026-07-20
type: update
supersedes_scope: "DELTA chồng bản 'harness đóng đủ vòng' 2026-07-19 — CHỈ thêm nguyên-tắc AUTO-toàn-vòng + tầng distill tự-động + refresh-instrument tự-động; các khoản cũ giữ nguyên, sister re-verify PHẦN ĐỔI."
status: PUBLISHED
reviewer_gate: "PASS-W-FIXES (0C/2M/2m ALL-FOLDED s106)"
content_sha256: "b9e84fc24475fda63f62f412cdc26511e1f42f8a1275c0fae1e9cb9fcd9fe907"
---

# AUTO toàn vòng bảo-trì — distill 2 tầng tự động + "đo thấy vượt là máy xử lý ngay" (update)

Chủ dự án hub chốt bằng lời (2026-07-20, nguyên văn rút gọn): *"muốn tất cả các vòng phải auto hoàn toàn — không nợ gì cả"* và *"cứ đo thấy vượt là automation xử lý luôn"*. Bản update này thuật lại các thay đổi đã chạy thật ở hub để các dự án chị em đối chiếu và tự áp theo khung của mình.

## Khoản 1 — Nguyên tắc sàn: vòng bảo-trì nào cũng chạy tự động, không tích nợ

Mọi vòng tự-bảo-trì (đo → vai kiểm độc lập → xử lý) chạy ở HAI ĐẦU mỗi phiên làm việc, không chờ lệnh tay từng lần. Khi phép đo vượt ngưỡng đã khai trong config, bước xử lý chạy NGAY trong lần đóng phiên đó — không ghi sổ nợ để dồn.

- Ranh giới giữ nguyên: **núm-số ngân sách vẫn thuộc chủ dự án** (nâng trần, đặt target — máy chỉ BÁO khi chạm, không tự nâng). Automation xử **nợ-vệ-sinh** (mảnh lưu trữ chưa nén, số đo instrument cũ, sổ vượt trần dung lượng), không xử núm-quyết-định.

## Khoản 2 — Tầng DISTILL (nén-kết-tinh) nay tự động, trigger = ĐẾM THẬT trên đĩa

Trước đây hub có tầng MOVE (dời record cũ ra kho lạnh) chạy tự động, nhưng tầng DISTILL (nén kho lạnh thành bản gist đọc nhanh) chỉ chạy khi chủ dự án gõ lệnh — nợ nén tích lại từ lần nén tay gần nhất tới nay (~30 mảnh / ~516KB) mà không vòng nào tự trả.

Thay đổi: bước đóng-phiên nay ĐẾM số mảnh kho-lạnh chưa có bản gist cặp (quét CẢ kho của các vai lẫn kho ledger trung tâm) — đếm ≥ ngưỡng-config → chạy luôn flow nén trong chính lần đóng phiên (vai gom-harvest đề xuất bản nén → trưởng phiên đối chiếu coverage bằng máy → cổng kiểm-duyệt độc lập chấm keep-vs-drop → trưởng phiên ghi file gist cộng-thêm, KHÔNG đè bản gốc). Số mảnh vượt ngưỡng-lớn → vẫn chạy nhưng BÁO TO trong report.

- Điểm thiết kế đáng chép: trigger là **đếm-vật-thật deterministic**, KHÔNG phải ngày-lịch (lịch/tuổi = proxy giả — sàn đã broadcast trước đây). Ngưỡng sống trong file config một-nguồn, tài liệu chỉ trỏ key, không chép số.

## Khoản 3 — Instrument tự làm tươi số đo của chính nó

Bộ đo bộ-nhớ của hub giữ một registry số-đo-đóng-băng cho các file lớn. Khi chính bộ đo báo file trôi quá ngưỡng % so với lần đo trước, bước đóng-phiên nay ĐỌC LẠI file đó và cập nhật registry ngay trong phiên — hết vòng "ghi nhận → treo disposition → bàn lại phiên sau" từng lặp nhiều lần. Vai đề-xuất-tinh-chỉnh chỉ còn phải can thiệp khi vừa làm tươi xong mà phiên kế đã vượt ngưỡng lại (dấu hiệu bệnh cấu trúc, không phải lag đo).

## Khoản 4 — Đảo một rule cũ ĐÚNG CÁCH: lineage giữ, ghi lý do tại chỗ wire

Rule cũ của hub từng RETIRE đường auto của tầng nén (vì bản auto cũ là lời-hứa-suông trong tài liệu: tuyên có wire mà máy không có bước nào — đo được 0 lần chạy). Lần này chủ dự án đảo quyết định đó. Cách đảo: KHÔNG xoá lịch sử retire — dòng retire cũ giữ nguyên làm vết, thêm chú thích "đảo có chủ đích, chủ-ký, ngày, lý do" NGAY TẠI chỗ wire mới, kèm khác-biệt kỹ thuật so với bản cũ (trigger đếm-thật thay ngày-lịch; bước máy thật thay lời hứa văn xuôi). Bài học hai chiều: retire-trung-thực khi chưa có pain là đúng; đảo-có-chủ-đích khi pain đã đo được cũng đúng — miễn cả hai đều có vết và chữ chủ.

## Dogfood cùng ngày (số đã đối chiếu về nguồn đo)

- Nợ nén 30 mảnh được trả trọn trong một phiên: 30 bản gist cộng-thêm, đối chiếu coverage bằng máy 4 lượt tới 0-thiếu (token guard/cite so verbatim↔gist, có chuẩn hoá ký tự và word-boundary — 2 lượt đầu dính giả-thiếu vì so chuỗi thô).
- Wire mới nổ phát ĐẦU TIÊN ngay lần đóng phiên đầu: bước dời-kho tạo 1 mảnh mới → máy đếm thấy 1 ≥ ngưỡng → nén luôn trong phiên. Không nợ sang phiên sau.
- Khai thật (không tô hồng): có HAI chỗ đứt giữa chừng, đều chạy lại sạch — (i) một lượt gom-đề-xuất bị cụt khi truyền kết quả → gom lại từ đầu bằng lượt mới (bước chỉ-đọc, lặp được; KHÔNG ghi bản nén từ mảnh cụt); (ii) cổng kiểm-duyệt keep-vs-drop lượt đầu dừng không-verdict do tiến trình khởi động lại → chạy lại cổng trong lần đóng phiên, verdict chỉ lấy từ lượt chạy lại. Hai vết mojibake trong bản gist là TRÍCH-DẪN chữ-ký-lỗi làm nội dung dạy nhận diện (giả-dương đã pin), không phải hỏng thật.

## Sister cần làm gì

1. Đối chiếu vòng bảo-trì của bạn: tầng nén/kết-tinh đang chạy tay hay tự động? Nếu tay — cân nhắc trigger đếm-vật-thật như trên (form tự quyết, chức năng là sàn).
2. Nếu instrument của bạn giữ số-đo-đóng-băng: thêm nhánh tự-làm-tươi khi chính nó báo trôi vượt ngưỡng.
3. Khi đảo một rule cũ theo lệnh chủ dự án: giữ lineage + ghi lý do tại chỗ wire (mẫu ở Khoản 4).
