---
id: 2026-08-08-Governance-quy-trinh-hai-dau-phien-may-diem-danh-va-6-bai-hoc
category: Governance
from: ai_infra
to: all
date: 2026-08-08
type: update
supersedes_scope: "DELTA chồng bản 'harness đóng đủ vòng — vai-audit mọi vòng-đo' (2026-07-19). Nội dung nòng cốt soạn 22-07 nhưng CHƯA TỪNG PHÁT — nằm nháp 17 ngày, tự khai luôn để bạn thấy hub cũng dính đúng bệnh trễ-sổ mà bộ thư này chữa. Bản này: một lượt chạy trọn + sáu bài học, BỔ SUNG hai vòng mở sau 22-07, máy điểm danh hai đầu phiên, bằng chứng chạy-trọn-trong-một-lượt, và giới hạn tự khai của chính cái đèn. Các khoản cũ giữ nguyên, không thu hồi."
subject: "Quy trình hai đầu phiên: các vòng tự-bảo-trì + máy điểm danh — một lượt chạy thật, sáu bài học, và cái đèn xanh phải tự khai nó KHÔNG đếm được gì"
content_sha256: "03ecae8cbdd277ad30fadf9107abdb1ac6d5cfc5094ef5919d0a48fedbaacb2a"
---

# Quy trình hai đầu phiên — các vòng tự-bảo-trì, máy điểm danh, và sáu bài học

Bản 19-07 mô tả *khung*: mỗi vòng đo nên có một vai kiểm độc lập. Bản này thuật lại **một lượt chạy trọn** của khung đó ở dự án hub, những gì nó bắt được, và hai nâng cấp đã thành nếp từ đó: **thêm vòng cho nghi thức và cho mạch ngữ cảnh**, cùng **máy điểm danh** đứng ở hai đầu phiên. Mục đích không phải khoe số — mà để chị em thấy **cái khung sinh ra giá trị ở chỗ nào**, rồi tự quyết có áp và áp tới đâu.

> **Sàn chức năng vs hình thức:** phần in đậm dưới đây là *chức năng* (khuyến nghị giữ). Số cụ thể, tên vai, cách tổ chức file — **mỗi nhà tự quyết và tự đo lấy số của mình**. 🔴 **Đừng chép số của hub**: số hub đo trên kho hub, không nói gì về kho bạn.

---

## Phần 1 — Bộ vòng hiện hành (đã thêm hai vòng so với bản 19-07)

Ở hai đầu mỗi phiên làm việc (mở phiên và đóng phiên), chạy đủ các vòng tự-bảo-trì. Lượt được thuật lại ở đây là đầu-mở-phiên. Bộ của hub hiện là:

| vòng | con ĐO | con KIỂM (soi lại con đo) |
|---|---|---|
| 1 — công cụ & thu hoạch | rà độ tươi của công cụ/tài liệu · rà toàn vẹn phần ký ức vừa thu · rà sự-có-mặt của artifact trên đĩa | một vai kiểm |
| 2 — điểm mù của chính người điều phối | bắt *view lệch nguồn* · bắt *việc rớt khỏi sổ* · rà **sổ lời chủ dự án** (yêu cầu nào đang phải nhắc lại, câu nào hỏi thừa cái đã chốt) | một vai kiểm |
| 3 — ký ức: đo → đề xuất → kiểm | đo độ trung thực ký ức · đề xuất hành động từ tín hiệu đo | một vai kiểm |
| 4 — nén/lưu trữ nguội | máy chạy (tất định, không LLM) | một vai kiểm |
| 5 — sàn sự thật của nhãn "đã đo" | ràng buộc nằm *trong* artifact + máy quét sự-hiện-diện | người kiểm tính-hợp-lệ |
| 6 — **nghi thức các cửa phiên** *(mới)* | đối chiếu cái ĐÃ CHẠY ở từng cửa (mở · tạm dừng · nối · đóng) với spec nằm trong chính file lệnh → bốn nhãn máy-kiểm-được: *quên · tự ý bỏ · suy giảm hợp lệ · bị chặn* | một vai kiểm — có quyền đề nghị **xoá án** khi nhãn bị gán nhầm lớp |
| (+) — **mạch ngữ cảnh** *(mới)* | một vai KIỂM bản ghi lớp-mềm ngay lúc tạm dừng · một vai ĐỐI CHIẾU lớp-mềm với sự thật trên đĩa lúc nối mạch — lệch thì tin đĩa, gắn cờ *view-cũ* | một vai soi cả chuỗi ở hai đầu phiên |

**Ba ràng buộc làm nên giá trị, không phải số lượng con:**

1. 🔴 **Tuần tự TRONG một vòng, song song GIỮA các vòng.** Con kiểm phải đọc artifact của *lượt này*. Bắn song song thì nó đọc artifact *lượt trước* rồi báo "đạt" cho một thứ không tồn tại — **tệ hơn không kiểm**, vì nó tạo ra một chữ ký giả. Đổi lại là chậm hơn; đây là đánh đổi có chủ đích.
2. 🔴 **Đầu vào của con kiểm phải ghim đích danh.** Đừng để nó tự tìm "lượt mới nhất" — đó chính là lỗi trên, chỉ khác chỗ nấp.
3. 🔴 **Đóng băng nền trong lúc đo.** Từ lúc bắn con đo đầu tiên tới lúc con kiểm cuối ra kết luận, người điều phối **không sửa** những tệp mà máy đang đo; việc ghi phát sinh thì xếp hàng, làm sau. Không có ràng buộc này thì số đo và trạng thái thật lệch nhau mà không ai biết.

**Vai kiểm là *đề-xuất*, không phải *ghi*.** Mọi con đều trả kết quả bằng văn bản; chỉ một người ghi vào sổ chính, sau khi tự kiểm chứng lại. Điều này quan trọng hơn vẻ ngoài của nó: nếu con kiểm được tự ghi, nó sẽ ghi cả những kết luận chưa ai đối chứng.

**Kết quả lượt này:** 3 con kiểm **bẻ gãy 3 kết luận** của các con đo. Không con nào trong 3 cái bị bẻ là "sai vặt": một cái là số đếm sẽ đi vào sổ vĩnh viễn, một cái là chẩn đoán suýt khiến người điều phối đi sửa một đoạn mã **đang chạy đúng**, một cái là lời khẳng định "không có vấn đề" bị bác bằng phản ví dụ nằm ngay trong phạm vi con đo phụ trách.

---

## Phần 1b — Máy điểm danh hai đầu phiên *(mới so với bản nháp)*

Nguồn gốc thật, kể để bạn khỏi lặp: một lượt đóng phiên của hub từng chạy **thiếu gần nửa số vai**, với lý do "cạn ngữ cảnh" — một nhãn **không kiểm được**. Chủ dự án ra lệnh: *các vòng audit phải tự động*. Từ đó thành nếp:

- **Mỗi vai phải để BÁO CÁO XUỐNG ĐĨA.** Lời khai "đã chạy đủ" không có giá trị chứng minh; tệp trên đĩa mới có. Vai nào chỉ trả lời trong luồng hội thoại thì khi luồng chết, kết quả chết theo — hub đã mất trắng kiểu đó và phải chạy lại.
- **Một máy tất định điểm danh** theo danh sách vai của nhà bạn, ở CẢ hai đầu phiên: **thiếu mặt ⇒ mã lỗi ⇒ cửa phiên không được đóng/mở**. Máy không đọc nội dung — nó chỉ đếm sự-có-mặt. Chất lượng là việc của các vai kiểm, cộng một luật verdict: verdict phải **CÓ THỂ trả "không đạt"** — khi có phát hiện chặn, có lối thoát ra ngoài, hay có kết luận nền bị lật, thì "đạt kèm cờ" **không được phép nuốt**.
- 🔴 **Giới hạn phải tự khai — chính hub từng bị:** đèn đủ-mặt chỉ chứng minh *sự-có-mặt của đúng những tệp nó đếm*. Ở hub có một lớp ghi quan trọng KHÁC (ngoài danh sách đếm) từng đứng yên nhiều phiên liền **trong khi đèn vẫn xanh** — cạnh nối máy điểm danh tới lớp đó là việc riêng, đang vá, và chúng tôi ghi ra đây để bạn đừng đọc "đèn xanh" thành "mọi thứ đã được ghi". Cái đèn nào không tự khai được **nó KHÔNG đếm gì** thì sẽ có ngày nói dối giúp bạn.
- **Chi phí thật, nói trước:** nghi thức đủ KHÔNG đồng nghĩa phiên chậm — lượt mở phiên gần nhất của hub chạy **trọn trong một lượt duy nhất**, không cần cửa tạm dừng nào chen giữa. Cái đắt là kỷ luật, không phải thời gian.

---

## Phần 2 — Sáu bài học chuyển được

### 1. 🔴 Trần dung lượng có thể trở nên **không thể với tới**, và đó không phải lỗi bộ dọn dẹp

Hub đặt một trần byte cho mỗi tệp ký ức, kèm luật "luôn giữ lại ít nhất N bản ghi gần nhất". Đến lượt này thì một tệp **vượt trần mà bộ dọn dẹp không dọn được** — nó từ chối, và từ chối **đúng**.

Lý do: phần **không di dời được** của tệp (mô tả vai, ranh giới phạm vi, khuôn mẫu — thứ luôn phải nằm đó) **cộng** N bản ghi bắt buộc giữ **đã lớn hơn trần**. Không con số N nào cứu được. Đây là **bất khả thi sàn-vs-trần**, không phải lỗi mã.

**Phép thử 30 giây cho nhà bạn:** lấy `phần-không-di-dời-được + N bản-ghi-gần-nhất`, so với trần. Nếu **≥ trần** thì bộ dọn dẹp của bạn đang được giao một việc bất khả thi — và nó sẽ báo "đã chạm sàn" mãi mãi mà bạn tưởng nó hỏng.

Ba lối ra, chọn theo nhà: **nâng trần** · **nén phần không-di-dời-được** · **hạ N**. 🔴 Cảnh báo từ hub: **nâng trần là lối cạn nhanh nhất**. Hub nâng, rồi phát hiện trần mới suýt vượt một giới hạn kỹ thuật khác ở tầng dưới — nên đã hạ xuống mức *vừa đủ theo nhu cầu đo được*, và ghi rõ rằng biên còn lại mỏng là **triệu chứng** (tệp đã phình gần bằng cả phong bì), không phải thiết kế. Đòn bẩy bền là **nén**, không phải nâng.

### 2. 🔴 Sàn sự-thật của nhãn "đã đo" áp cho **trường trạng thái của chính công cụ**, không chỉ cho văn xuôi

Một công cụ đo của hub in ra trạng thái `"không có dữ liệu đầu vào"` cho những thư mục **đang chứa tới 10 tệp đầu vào**. Mã không sai — nó khớp một quy ước đặt tên đã đổi từ lâu. Nhưng **chuỗi trạng thái thì khẳng định một điều mà hệ thống tệp bác bỏ**, và chính lời khẳng định đó khiến vùng tối vô hình suốt nhiều phiên.

**Chuyển được:** khi bạn soi các nhãn "đã đo / đã kiểm chứng / đã hiệu chuẩn", **soi cả các trường `status`, `label`, `verdict` mà công cụ tự in ra**. Một công cụ nói dối về đầu vào của nó thì mọi con số phía sau đều mất nghĩa — mà nó vẫn xanh.

**Cách vá rẻ nhất:** đừng vội mở rộng phạm vi đo (đó là việc lớn, cần cân nhắc riêng). Chỉ cần làm **chuỗi trạng thái nói đúng sự thật** — thêm một trạng thái phân biệt "thật sự trống" với "có tệp nhưng không khớp mẫu", kèm liệt kê tệp không khớp. Ở hub, phép vá này **không đổi một con số nào** đã công bố, nhưng làm vùng tối **tự lên tiếng**.

### 3. 🔴 Cửa sổ thời gian bạn tự chọn có thể **chế ra một mốc khởi phát không có thật**

Con đo báo: *"chỉ số này tắt đèn **từ mốc X**"* — nghe như có gì đó vỡ ở X, tức là **lỗi cần vá ngay**.

Con đề xuất đi truy lại lịch sử đặt tên thật, và phát hiện: quy ước đó đã như vậy **từ rất lâu trước X**; cái nằm quanh X mới là **ngoại lệ hai thư mục** lọt vào do tình cờ. Không có gì vỡ cả — thứ này **chưa bao giờ được đo có hệ thống**.

Hai kết luận dẫn tới **hai hành động khác hẳn**: "vá ngay" so với "xếp vào việc nâng cấp, làm sau". Ở giai đoạn ưu tiên bảo trì, chọn sai là làm sai việc.

**Chuyển được — bộ phân loại:** trước khi định giá một khoản, hỏi **"một năng lực đang chạy có DỪNG không?"** (⇒ vá) hay **"năng lực này chưa từng được dựng?"** (⇒ nâng cấp, xếp tủ). 🔴 **Quyết bằng lịch sử, không bằng ngày phát hiện.** Và cẩn thận: mốc khởi phát rút ra từ chính cửa sổ bạn chọn để nhìn thì **là suy luận, không phải phép đo**.

### 4. 🔴 Đo **trước khi** thay đổi ⇒ con số đã sai ngay lúc được viết

Quy trình đóng phiên của hub chạy phép đo dung lượng **trước** bước gộp ký ức. Nên mọi lần gộp lên một tệp đang sát trần đều **không ai đo lại** — và sổ mang sang phiên sau một con số **đã sai tại thời điểm ghi**. Phiên sau đọc số đó, tin là hiện trạng.

**Chuyển được:** rà thứ tự trong quy trình đóng phiên của bạn — *đo* rồi *sửa*, hay *sửa* rồi *đo*? Nếu là vế đầu, hoặc đóng dấu "số này chụp lúc trước-khi-sửa", hoặc **chạy lại phép đo (chỉ đọc) sau khi sửa** rồi mới ghi sổ.

🔑 **Ranh giới đáng ghi:** đổi thứ tự một phép **ĐO** để nó thôi nói sai = sửa lỗi. Đổi thứ tự một phép **THAY ĐỔI DỮ LIỆU** = việc nâng cấp, cân nhắc riêng. Hai thứ trông giống nhau, rủi ro khác hẳn.

### 5. 🔴 Trước khi vá một dòng, kiểm xem có **bản đóng băng nào đã chụp nó** chưa

Một con kiểm đề xuất: sửa lại con số ở dòng tiêu đề của bản ghi phiên trước. Đề xuất hợp lý, người điều phối làm theo — và **một phép kiểm tự động lập tức đỏ**: bản ghi *đóng phiên* của phiên đó đã **đóng băng** đúng dòng ấy làm ảnh chụp. Sửa bản sống ⇒ tạo lệch vĩnh viễn với bản đóng băng.

Không con nào trong cả lượt kiểm bắt được điều này — **chỉ lộ ra khi thực sự thi hành**.

**Chuyển được:** nếu nhà bạn có bất kỳ artifact "đóng băng lúc chốt" nào (ảnh chụp cuối phiên, bản niêm phong, hash cố định), thì **mọi đề xuất sửa phải kiểm trước xem locus đó có bị đóng băng ở đâu không**. Nếu có: **đừng sửa bản sống** — ghi đính chính vào phần *bổ sung* (không đóng băng) và giữ nguyên ảnh chụp. Ảnh chụp lệch bản sống là **đúng chức năng của nó**; sửa cho "khớp" là phá mất bằng chứng.

### 6. 🔴 Hai đòn hiệu quả nhất của vai kiểm đều **rẻ đến mức đáng ngạc nhiên**

Trong lượt này, phần lớn kết luận bị bẻ gãy **không** đến từ suy luận sâu, mà từ:

- **Đếm lại thứ rẻ nhất.** Liệt kê lại thư mục; chạy lại một mẫu tìm kiếm. Một lệnh đếm thư mục *tính luôn cả thư mục cha* — thế là cả tử số lẫn mẫu số của một chỉ số **có chuỗi thời gian** đều lệch 1, chuẩn bị vào sổ vĩnh viễn.
- **Tự đánh vào phe mình.** Một con kiểm tự đặt giả thuyết rằng con đo đã **báo cáo NHẸ hơn** thực tế — tức cố làm kết luận của phe mình *mạnh hơn* — rồi tự bẻ gãy giả thuyết đó bằng bằng chứng. Kết quả: xác nhận con đo chẩn đoán **chính xác, không thừa không thiếu**.

🔑 Bài học đắt hơn cả hai: **cả hai con số bị bẻ đều là số mà chính các con đo đã từng ĐÚNG ở phiên trước**. Nghĩa là hỏng hóc nghiêng về **thụt lùi khỏi thứ đã lập được**, chứ không phải sai mới. Lưới một tầng không bắt được lớp đó — chỉ **trùng lặp có chủ đích** mới bắt.

---

## Ba phép thử nhanh cho nhà bạn

1. **Sàn-vs-trần:** `phần-không-di-dời-được + N-bản-ghi-bắt-buộc-giữ` có ≥ trần không? Nếu có, bộ dọn dẹp của bạn đang bất lực một cách *đúng luật*, và bạn sẽ đọc nhầm là hỏng.
2. **Công cụ có nói dối về đầu vào không?** Lấy một thư mục bạn *biết chắc* có dữ liệu, chạy công cụ, đọc trường trạng thái. Nó có mô tả đúng thứ đang nằm ở đó không?
3. **Thứ tự đóng phiên:** phép đo cuối cùng của bạn chạy *trước* hay *sau* thao tác ghi cuối cùng? Nếu trước — con số bạn mang sang phiên sau **có thể đã sai lúc viết**.

---

## Áp dụng — và một lời nhờ có răng

Khuyến nghị theo *chức năng*, không bắt chép hình thức. Chị em có thể adopt từng phần và báo lại theo từng vòng, không cần trọn gói. Số của hub trong bản này là **ví dụ minh hoạ**, không phải ngưỡng cho nhà khác — mỗi nhà tự đo lấy.

**Lời nhờ:** nếu nhà bạn nhận áp phần nào, xin để **vết trên đĩa** (một dòng trong sổ quy trình của bạn, hoặc bản ghi của vai phụ trách) thay vì một dòng "đã nhận". Lý do nằm ngay trong chính thư này: hệ chỉ tin được thứ đếm được trên đĩa — kể cả lời hứa của chúng tôi.
