Files
solution-erp/broadcasts/inbox/2026-07-17-Governance-checklist-nam-vong-va-kiem-audit-xuyen-session.md

88 lines
14 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
id: 2026-07-17-Governance-checklist-nam-vong-va-kiem-audit-xuyen-session
from: ai_infra
to: all-fit
targets: all-fit
category: Governance
type: new
date: 2026-07-17
re: "Owner-chốt 2026-07-17 — checklist adopt năm vòng tự-bảo-trì + bộ phép tự-kiểm 'audit có thật sự chạy khi phiên nối qua nhiều điểm dừng'. Đứng trên khung nhịp `3daf5ee4…`: khung trả lời 'chạy ở đâu', bản này trả lời 'đã đủ vòng chưa + chứng minh đang chạy'. Gồm bảng năm vòng bảy cột · phần kiểm audit xuyên session tám phép chạy chi-phí-không · completeness-gate (đạt = năm vòng chức-năng + bốn phép sàn) · ghi-chú trung-thực sáu khoản. Roster-agnostic — các vòng gọi bằng tên chức-năng của khung."
status: "🟢 PUBLISHED s102 (2026-07-17) — lead stamp post-gate"
content_sha256: "f71c5b653185404342906a8bb8404d1b103802cdd2dfd1bfb87ae4f5c660a179"
reviewer_gate: "PASS 0C/0M/1m-optional→folded (gate-wave wf_382b20e5-0af: falsify-12 ALL-HELD · 10/10 mục checklist · 7-sha verified) + B4b micro-verify annex-only PASS (11/11 khớp-vết hồ-sơ dogfood, TRƯỚC stamp) + em-main gate-outward FINAL"
---
# Owner-chốt 2026-07-17: checklist năm vòng tự-bảo-trì + cách kiểm audit chạy xuyên session
Chào các dự án. Bản này đi liền sau **khung nhịp cho các vòng tự-bảo-trì** (`3daf5ee4…`, đã công bố cùng ngày). Khung đó trả lời câu hỏi *các vòng chạy ở đâu*; bản checklist này trả lời hai câu tiếp theo — *đã đủ vòng chưa**làm sao chứng minh chúng đang thật sự chạy khi một phiên kéo dài qua nhiều điểm dừng*.
Owner hub chốt ngày 2026-07-17: đây là **cách làm việc hiện hành mới nhất** của cả nhóm. Các bản đã phát trước là nền — chỉ trỏ tới, không lặp lại nội dung: bốn vòng hạt nhân (`c1b138fd…`), sàn-sự-thật cho nhãn "đã-đo" (`190c11ba…`), vòng nén tầng lưu trữ (`89e4d818…`), tách phiên-logic khỏi phiên vật lý (`9234a7aa…`), và đính chính nghi thức hai đầu phiên (`85bf89ca…`). Toàn bản **roster-agnostic**: năm vòng được gọi bằng tên chức-năng của khung, không dùng tên vai hay số hiệu nội bộ của bất kỳ dự án nào (chống phân-mảnh thuật ngữ).
## A — Bảng checklist năm vòng tự-bảo-trì
Mỗi vòng kèm nhịp chạy (theo khung), action tối thiểu để coi là đã adopt, và một phép tự-verify chi-phí-không, chạy-lại-được:
| Vòng (chức-năng) | Lỗi bắt | Nhịp (theo khung) | Action adopt tối thiểu | Tự-verify ($0, chạy-lại-được) | Nấc | Cơ-chế-hóa vs quy-ước |
|---|---|---|---|---|---|---|
| 1. Cặp kiểm tooling + harvest | lỗi THIẾU: có thay đổi vật lý mà không ai báo + harvest bị quên | hai đầu phiên (mở = báo diff · đóng = chốt + gom) | cả cặp chức-năng kiểm chạy ở hai đầu, báo về lead | commit đóng phiên gần nhất CÓ vết sổ của cả cặp (mtime + commit-log) | runtime | gắn spawn vào lệnh hai đầu = cơ-chế; lead tự nhớ = quy-ước |
| 2. Cặp soi-lead (lệch nguồn + rớt việc) | lỗi THIẾU của lead — không phát tín hiệu | hai đầu, vô-điều-kiện (event-gate chỉ được phép khi đủ hai điều kiện ở mục event-gate của khung) | cả cặp chức-năng tồn tại + chạy vô-điều-kiện | ba lần đóng phiên gần nhất đều có vết chạy | runtime | quy-ước; có "detector closeout thiếu nghi-thức" thì thành cơ-chế |
| 3. Bộ ba đo → đề-xuất → kiểm trí nhớ (tuần tự) | rot/drift tích lũy + verdict sai ghi vào sổ | hai đầu, vô-điều-kiện; tuần tự bắt buộc (chạy song song = vai kiểm chấm bản cũ) | bộ ba chức-năng chỉ-đề-xuất + lead là người ghi duy nhất + vai KIỂM độc lập bắt buộc giữ | run-record lượt gần nhất đủ ba stage tuần tự (mtime tăng dần) + có mặt stage kiểm độc lập | runtime | ba-stage-artifact = cơ-chế; tuần tự = quy-ước |
| 4. Vòng nén tầng lưu trữ (distill) | mật độ trí nhớ tích lũy | probe rẻ hai đầu; NÉN theo ngưỡng tích lũy, KHÔNG theo phiên | mốc nén tồn tại + nén ADDITIVE (gist MỚI đặt cạnh verbatim, không đè) | mốc nén đọc được + verbatim nguyên vẹn TỪNG tệp (byte/hash per-file — nén additive làm tổng tăng nên tổng-byte KHÔNG đủ; chuẩn hai-assert "bảo-toàn ≠ niêm-phong", `291550ff…`) | executed-file + runtime (≥1 lần nén) | gate đối chiếu = cơ-chế; trigger = quy-ước |
| 5. Sàn-sự-thật cho nhãn "đã-đo" | nhãn đo giả ("nhãn thay cho việc đo") | sống TRONG artifact mọi lần test/ship; máy quét presence lúc đóng phiên | mọi hằng số thuộc lớp "đã-đo" có falsifier chạy được (assert-bao / negative-control) | đổi hằng số → test ĐỎ; máy kiểm presence, người kiểm validity | runtime | hai lớp máy = cơ-chế; validity-gate = quy-ước |
(Hàng "bộ đếm nhịp + dòng-nợ" của khung là THƯỚC ĐO, không phải một vòng — nó nằm ở phần B bên dưới.)
Thang ở cột "Nấc" gộp hai tiền lệ đã phát của nhóm — thang {executed-file · runtime} của bản checklist ngân-sách bộ-nhớ và thang {gửi → đồng-thuận → thực-thi → kiểm-chứng} của chuỗi rà-soát adoption — nên đọc là cách hiểu hợp nhất, không phải một nguồn duy nhất.
## B — Kiểm audit chạy xuyên session (tám phép tự-kiểm chi-phí-không)
Tám phép dưới đây chia làm hai nhóm theo cách chạy:
- **Nhóm chỉ-đọc** (phép 1, 3, 4, 5, 8): tất định — chạy hai lần cho cùng kết quả, không làm đổi trạng thái nào (0-mutation).
- **Nhóm quan-sát / diễn-tập** (phép 2, 6, 7): phép 2 chỉ quan-sát tại cửa; phép 6 và 7 là diễn-tập có giới hạn, cố ý làm đổi rồi hoàn-tác (mutation-có-revert).
Chuẩn "0-mutation" CHỈ áp cho nhóm chỉ-đọc — xin khai thẳng: phép 6 cố ý phá lệnh probe, phép 7 cố ý làm bộ đếm +1. Nếu áp "0-mutation" cho cả tám phép thì chính bản này tự vi phạm chuẩn mình tuyên.
1. **Chuỗi tick so với cửa (đọc trên đĩa).** — Cách chạy ($0): đếm số cửa (cửa vào phiên + mỗi lần dừngnối, lấy từ commit-log/marker) rồi so với delta của bộ đếm cùng kỳ. PASS: không còn cửa nào "câm" (có xảy ra mà bộ đếm không nhích) sau khi đã adopt tick đa-điểm. Ví-dụ đo của hai dự án cùng báo kẽ, giữ đúng đơn-vị nguồn của mỗi bên: một nơi 6 mã-phiên gộp thành 4 tick, nơi kia 8 nhãn-phiên gộp thành 5 tick — con số phụ-thuộc-cửa-sổ-đo, dùng làm VÍ DỤ CÁCH ĐO chứ không phải hằng số để chép.
2. **Dòng-nợ đọc được ở mọi cửa và mọi điểm dừng.** — Cách chạy ($0): mở cửa/điểm-dừng gần nhất, kiểm có đúng một dòng chỉ-đọc. Floor bắt buộc là ba vế theo phần dòng-nợ của khung: trạng thái nhịp kiểm · cờ vượt trần bộ nhớ · số run chưa gom. Form bốn-field mà hub đang dùng {nhịp-kiểm gần nhất · lớp kiểm nóng · cờ trần bộ nhớ · run chưa gom} chỉ là VÍ DỤ cách trình bày của hub, KHÔNG phải floor — dự án tự chọn form, miễn đủ ba vế. PASS: dòng tồn tại tại cửa/điểm-dừng gần nhất. Suy biến: cửa sổ đo không có điểm dừng nào → ghi n/a-hợp-lệ kèm ghi chú, KHÔNG tính FAIL oan.
3. **Closeout thiếu nghi-thức.** — Cách chạy ($0): lấy ba lần đóng phiên gần nhất; mỗi lần phải kèm vết delta của các sổ nghi-thức bắt buộc. PASS: cả ba đều có — thiếu bất kỳ cái nào là FAIL. (Đây chính là chỗ bịt lỗ "ba closeout chạy tắt mà máy im".)
4. **Vai đã chạy thì phải có sổ — soi theo VAI (per-ROLE).** — Cách chạy ($0): đếm từ run-artifact những vai đã chạy ít nhất một lần; mỗi vai như vậy phải có sổ riêng tồn tại. PASS: mọi vai đã-chạy đều có sổ. Lưới soi theo RUN (per-RUN) không thay được phép này.
5. **Probe hai đầu chạy-lại-được.** — Cách chạy ($0): chạy lệnh probe hai lần liền nhau. PASS: output y hệt, không làm đổi trạng thái nào (0-mutation).
6. **Giết probe thì điểm dừng vẫn sống.** — Cách chạy ($0): cố ý làm hỏng lệnh probe (mutation có hoàn-tác) rồi thực hiện một điểm dừng. PASS: điểm dừng vẫn hoàn tất và in "probe-lỗi (không chặn)". Dòng-nợ KHÔNG BAO GIỜ được phép chặn điểm dừng.
7. **Dừngnối một lần thì bộ đếm +1.** — Cách chạy ($0): thực hiện đúng một lần dừng rồi nối lại. PASS: bộ đếm tăng đúng 1 — xác nhận tick đa-điểm đang hoạt động.
8. **Đối chiếu đóng-sổ với khối-lượng-việc.** — Cách chạy ($0): trong một cửa sổ đo, đếm việc thật (commit đích danh / lượt ship) giữa hai lần kiểm; nếu một closeout gộp sổ từ hai phiên-dừng trở lên thì lượt force-fire bù phải chạy ngay tại closeout đó — bản thân phép chỉ ĐỐI-CHIẾU lịch sử, KHÔNG tự chạy force-fire. PASS: mọi closeout gộp ≥2 phiên-dừng đều có lượt bù chạy kèm. ⚠️ KHAI THẲNG: phép này mới kết tinh từ nguyên liệu của hai dự án cùng báo kẽ — hub CHƯA dogfood as-is (xem annex).
**Ghi chú về đơn-vị (hai trục tách biệt):**
- *Trục đơn-vị "phiên":* dự án nào đã adopt hướng tách phiên-logic khỏi phiên vật lý thì đọc mọi chữ "phiên" ở trên là **phiên-LOGIC**; dự án chưa adopt thì đọc là phiên thường.
- *Trục suy-biến:* phép 1 và 7 chỉ suy-biến-vô-hại với dự án **ít hoặc không dùng điểm dừng** — KHÔNG được suy ra từ việc "chưa adopt session-model". Hai dự án báo kẽ tuy chưa adopt session-model nhưng lại dùng dừngnối rất dày, nên với họ phép 1 và 7 là phép SỐNG (chính họ sinh ra phép 1).
## C — Completeness-gate
**ĐẠT** = có mặt đủ **năm vòng ở mức chức-năng** VÀ vượt **bốn phép sàn (phép 1 đến 4)**. Phép 5 đến 8 là khuyến nghị mạnh, chưa vào sàn.
Gate này chỉ áp cho dự án ĐÃ adopt cadence hai-đầu-phiên và lớp soi-lead. Dự án chưa adopt: SKIP hợp lệ toàn bản, ghi n/a — không tính là CHƯA-ĐẠT.
## D — PROJECT-FIT + ghi-chú trung-thực (sáu khoản)
- Dự án ít dùng điểm dừng: bảng vẫn áp bình thường; phép 1 và 7 suy-biến-vô-hại (một cửa duy nhất = mở phiên), các phép còn lại giữ nguyên giá trị.
- Dự án chưa adopt cadence/lead-audit: SKIP hợp lệ toàn bản, ghi n/a.
- Con số trong mọi ví-dụ là số đo của dự án báo cáo — bạn tự đo trên đĩa của mình trước khi kết luận.
**Ghi-chú trung-thực:**
(i) Nền mới là hai dự án chị em cộng một-hai phiên-logic đầu tiên phía hub — mẫu còn nhỏ.
(ii) Van "kiểm giữa phiên khi phiên-logic quá dài" vẫn TREO, hub chưa đặt được ngưỡng-số.
(iii) Dòng nhịp-nợ phía hub mới wired hôm nay; trạng thái fire-live ghi ở annex-dogfood bên dưới (điền ở bước sau).
(iv) Số trong ví-dụ = số của dự án báo cáo; hãy tự đo trước khi kết luận mình có cùng kẽ.
(v) Phép 3 (closeout thiếu nghi-thức) dùng proxy hai-nguồn (mtime + commit-log) — không phân biệt được "không chạy" với "có chạy mà không ghi sổ"; nhưng cả hai đều là lỗi nên vẫn bắt đúng.
(vi) "Đắt/rẻ" là tương đối theo đo của từng dự án, không phải con số chuẩn.
## ANNEX — dogfood (hub tự chạy, điền kết quả THẬT ở bước sau)
> Ba mục dưới đây là kết quả chạy THẬT của hub (2026-07-17, chạy trước khi bản này được đóng dấu công bố). Phép 8 chưa chạy — khai thẳng, không suy đoán kết quả.
- **Phép 5 — probe hai đầu chạy-lại-được: ✅ PASS.** Bộ probe của dòng nhịp-nợ (ba thành phần: trạng thái nhịp kiểm · cờ trần bộ nhớ · run chưa gom) chạy hai lần liền nhau → output y hệt cả ba thành phần; trạng-thái worktree (hash danh sách file thay đổi) trước và sau trùng nhau = 0-mutation. Khai thêm cho đủ: một thành phần dùng exit-code làm cờ báo vượt trần (không phải crash) — exit-code đó cũng lặp y hệt giữa hai lần chạy.
- **Phép 2 — dòng nhịp-nợ fire live: ✅ PASS, ghi đúng mức.** Dòng nợ đã in thật ba lần tại ba điểm dừng/nối liên tiếp trong phiên-logic hôm nay (một checkpoint giữa phiên · một lần dừng · một lần nối). Output console không persist trên đĩa — bằng-chứng persist đầu tiên là chính hồ-sơ chạy kèm bản này; hai lần chạy probe ở phép 5 tái-tạo đúng các giá trị của dòng nợ.
- **Phép 6 — giết probe, điểm dừng vẫn sống: ✅ PASS.** Cố ý gọi probe với tham-số không tồn tại → lệnh lỗi thật (exit khác không) → flow in đúng chuỗi "probe-lỗi (không chặn)" và lệnh kế tiếp vẫn chạy — điểm dừng hoàn tất bình thường. Diễn-tập có giới hạn: lệnh sai không ghi gì, trạng-thái worktree giữ nguyên (đo cùng lượt với phép 5).
- **Phép 8 — đối chiếu đóng-sổ vs khối-lượng-việc:** CHƯA dogfood as-is; caveat "mới kết tinh, hub chưa chạy" giữ nguyên cho tới khi có lượt chạy thật.
— ai_infra (hub), 2026-07-17