# sub-invest-2 — NHỊP 5 VÒNG (hub broadcasts) — S149

> Agent: investigator-codebase · Run: 2026-07-24-S149-dong-du-5-vong · Trạng thái: HOÀN TẤT
> Nguồn ĐÚNG 3 file (đọc full, không sampling):
> 1. `D:/Dropbox/CONG_VIEC/AI_INFRA/broadcasts/outbox/all/2026-07-17-Governance-khung-nhip-nam-vong-do-rai-lam-don.md` — 94 dòng / 11748B / mtime 2026-07-17 18:41 · sha khai trong FM `3daf5ee4…`
> 2. `.../2026-07-16-Governance-vong-bon-da-dong-giac-ngu-nen-tri-nho.md` — 56 dòng / 8439B / mtime 2026-07-17 01:46 · sha `89e4d818…`
> 3. `.../2026-07-20-Governance-auto-toan-vong-distill-2-tang.md` — 47 dòng / 6274B / mtime 2026-07-20 21:00 · sha `b9e84fc2…`
> Ký hiệu viết tắt bên dưới: **[K]** = file 1 (khung-nhịp 07-17) · **[V4]** = file 2 (vòng-4 07-16) · **[A]** = file 3 (auto-toàn-vòng 07-20).

---

## (a) NHỊP chạy từng vòng — bảng chuẩn của hub

Nguồn duy nhất định vị chỗ-chạy = bảng [K]:39-46. VERBATIM từng dòng (cột 4 = "Chạy ở đâu"):

| # | Vòng (tên hub) | Loại lỗi bắt | Chi phí | VERBATIM cột "Chạy ở đâu" | Phân loại theo câu hỏi |
|---|---|---|---|---|---|
| 1 | Cặp kiểm tooling + harvest | delta vật lý + harvest bị quên | đắt (spawn) | `**hai đầu phiên** (mở: báo diff · đóng: chốt + gom)` [K]:41 | **đầu phiên + cuối phiên** (asymmetric: mở=báo diff, đóng=chốt+gom) |
| 2 | Cặp soi-lead (lệch nguồn + rớt việc) | lỗi THIẾU của lead | đắt (spawn) | `**hai đầu phiên, vô-điều-kiện**` [K]:42 | **đầu + cuối, VÔ-ĐIỀU-KIỆN** (cấm event-gate trừ 2 đk §4) |
| 3 | Bộ ba đo → đề-xuất → kiểm trí nhớ | rot/drift tích lũy | đắt (spawn, **tuần tự**) | `**hai đầu phiên, vô-điều-kiện**` [K]:43 | **đầu + cuối, VÔ-ĐIỀU-KIỆN**, 3 vai chạy TUẦN TỰ |
| 4 | Vòng nén tầng lưu trữ (distill) | mật độ trí nhớ | đắt nhưng **thưa** | `probe rẻ ở hai đầu; **nén theo ngưỡng tích lũy**, không theo phiên` [K]:44 | **probe = 2 đầu · fire = THEO COUNTER/NGƯỠNG** (KHÔNG theo phiên) |
| 5 | Sàn-sự-thật nhãn "đã-đo" | nhãn đo giả | ~0 (assert + test) | `**sống trong artifact**, chạy mọi lần test/ship; máy quét presence ở đóng phiên` [K]:45 | **LIÊN TỤC** (in-artifact, mọi test/ship) + quét presence @đóng phiên |
| — | Bộ đếm nhịp + dòng-nợ (thước đo, không phải vòng) | (thước đo) | ~0 | `**mọi cửa và mọi điểm dừng**` [K]:46 | **MỌI CỬA + MỌI ĐIỂM DỪNG** (đếm, không fire) |

Ghi chú danh-mục: hub gọi 4 vòng đầu là "bốn vòng hạt-nhân `c1b138fd…`" + vòng 5 "sàn-sự-thật `190c11ba…`" ([K]:37). [V4]:19 xác nhận đủ 5: *"Vòng thứ NĂM — sàn-sự-thật cho nhãn 'đã-đo' — đã phát bản riêng trước đó cùng đợt; với vòng này đóng nốt, **cả năm vòng tự-bảo-trì phía hub nay cùng đóng**"*.

### Ai kích hoạt — AUTO vs CONSENT

- **Sàn AUTO toàn vòng** ([A]:17 VERBATIM): *"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**."* Nguồn lệnh = lời chủ hub [A]:13: *"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"*.
- **Ranh giới CONSENT (cái máy KHÔNG được tự làm)** [A]:19 VERBATIM: *"**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."* ⇒ **auto = HÀNH-ĐỘNG-VỆ-SINH; consent = CON-SỐ/NGƯỠNG.**
- **Consent tầng-2 trong vòng-4** (bán-giám-sát, KHÔNG phải full-auto ghi đĩa) [V4]:19: *"chế-độ bán-giám-sát: máy chạy, **đầu-tàu duyệt từng bản nén trước khi ghi**"* — người duyệt ở đây là **lead/đầu-tàu**, không phải owner.
- **on-signal (event-gate) — được nhưng có điều kiện** [K]:59: *"**Điều kiện tối thiểu nếu bạn muốn event-gate:** (a) dòng-nợ hiển thị đang chạy, và (b) có detector 'closeout-thiếu-nghi-thức' (xem mục 6). Thiếu một trong hai → giữ chạy vô-điều-kiện."* Phản-ví-dụ hub nêu ngay [K]:59: *"một cửa sổ '0 delta commit' ở hub vẫn bắt được ba chỗ mô tả stale thật cộng hai cảnh báo trần bộ nhớ"* ⇒ không-delta-vật-lý ≠ không-việc.
- **force-fire bù** [K]:53 VERBATIM: *"**Force-fire bù khi closeout gộp sổ.** Closeout nào gộp sổ từ 2 phiên-dừng trở lên → chạy lượt kiểm ngay closeout đó, **bất kể counter**."*
- **Van kiểm GIỮA phiên = TREO** [K]:61-63: *"Hub **chưa đặt ngưỡng**: hub mới chạy phiên-logic đầu tiên hôm nay, chưa có số đo khoảng giãn thật. Nguyên tắc: **để phép đo trả lời, đừng đặt tham số trước khi đo.**"*
- **Đơn vị "phiên" = phiên-LOGIC** [K]:72: *"mọi chữ 'phiên' trong khung nhịp (bookend, tick, tally, ngưỡng tuổi carry) đọc là **phiên-LOGIC**."*

---

## (b) Vòng-4 (nén-ngủ / distill): trigger + "2 tầng"

### b1. Trigger — hub ĐÃ ĐỔI sang ĐẾM-VẬT-THẬT (đáp câu hỏi 🔴)

**Kết luận: CÓ. Hub chốt trigger = đếm-vật-thật, và bác ngày-lịch TƯỜNG MINH — 2 lần, ở 2 bản khác nhau.**

1. [K]:44 (07-17, đã loại phiên/ngày khỏi trục fire): *"probe rẻ ở hai đầu; **nén theo ngưỡng tích lũy**, không theo phiên"*.
2. [K]:55 (07-17, khoản 4/4 vào chuẩn) VERBATIM: *"**Cadence theo ngày-lịch: KHÔNG vào chuẩn.** Rủi ro tích theo khối lượng việc, không theo ngày (**thời gian/tuổi = proxy giả** — đã chốt trong bản `8da7e8b1…`). Dự án nào muốn dùng ngày-lịch cục bộ là quyền owner của dự án đó, nhưng hub không phát nó thành chuẩn."*
3. [A]:21 (07-20, tiêu đề Khoản 2): *"Tầng DISTILL (nén-kết-tinh) nay tự động, **trigger = ĐẾM THẬT trên đĩa**"*.
4. [A]:25 (cơ-chế) VERBATIM: *"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** … **Số mảnh vượt ngưỡng-lớn → vẫn chạy nhưng BÁO TO trong report.**"*
5. [A]:27 (điểm thiết kế) VERBATIM: *"Đ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ố.**"*

**Lý lẽ hub đưa ra (4 lý do, không phải 1):**
- (L1) **proxy-giả**: rủi ro tích theo **khối lượng việc**, không theo ngày ([K]:55, [A]:27) — có lineage tới bản `8da7e8b1…`.
- (L2) **nợ tích khi chạy tay** [A]:23 VERBATIM: *"tầng DISTILL … **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ả."*
- (L3) **lệnh chủ dự án** [A]:13: *"cứ đo thấy vượt là automation xử lý luôn"* + *"không nợ gì cả"*.
- (L4) **deterministic** ⇒ đo được, không phụ thuộc cảm nhận/lịch ([A]:27).

**Cách hub ĐẢO rule cũ (khuôn chuyển được, [A]:33-35)** VERBATIM: *"**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)."* + [A]:35: *"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ủ."*

⚠️ **Sắc thái phải giữ (đừng đọc thành "ngày/tuổi bị xoá sạch")**: trục **tuổi-tệp vẫn còn sống nhưng ở vai ĐIỀU-KIỆN-ỨNG-VIÊN, không phải vai TRIGGER** — [V4]:49 VERBATIM: *"(c) **hai tháng gần nhất CHƯA nén (còn 'tươi', để già thêm theo nguyên-tắc tuổi-tệp)**"*. Tức: *khi nào chạy* = đếm shard; *file nào đủ tư cách bị nén* = còn dùng tuổi.

### b2. "2 tầng distill" — hai nghĩa TỒN TẠI SONG SONG trong corpus (phải tách)

| Nghĩa | Nội dung | Evidence VERBATIM |
|---|---|---|
| **T-A — 2 tầng của ĐƯỜNG ỐNG lưu trữ (MOVE → DISTILL)**; đây là nghĩa khớp tiêu đề bản 07-20 | tầng 1 = **MOVE** dời record cũ ra kho lạnh (đã auto từ trước) · tầng 2 = **DISTILL** nén kho lạnh thành gist đọc nhanh (trước chạy TAY, nay auto) | [A]:23: *"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**"* + H1 [A]:11 *"AUTO toàn vòng bảo-trì — **distill 2 tầng tự động**"* |
| **T-B — 2 lớp của SẢN PHẨM gist (tổng-hợp ↑ / thân chi-tiết ↓)** | lớp-1 tổng-hợp 3-5 ý đặt ĐẦU tệp = ứng-viên nạp-nóng · lớp-2 thân đầy đủ = kho lạnh đọc-khi-cần | [V4]:40: *"**Gist hai-lớp:** tổng-hợp ngắn đặt đầu (ứng-viên nạp-nóng, đáng tiền nhất) · thân đầy-đủ là kho lạnh."* + [V4]:26: *"phần **TỔNG-HỢP ba-tới-năm ý đặt ĐẦU tệp** (ứng-viên nạp-nóng), **thân chi-tiết theo sau** (kho lạnh đọc-khi-cần)"* + [V4]:19 tham số chủ: *"phần tổng-hợp viết TRƯỚC phần chi-tiết"* |

**Ngưỡng-2-tầng (tầng-1 kêu / tầng-2 BÁO TO)** cũng có thật và là nghĩa thứ ba dễ lẫn: [A]:25 *"Số mảnh vượt **ngưỡng-lớn** → vẫn chạy nhưng **BÁO TO** trong report"* — SE đã wire đúng lớp này (`bulk_note_shards`, xem (d)).

### b3. Khuôn 4-vai của vòng-4 (không vai nào tự chấm mình) — [V4]:23-28

1. **Máy đề-xuất** (gom-dữ-liệu, chỉ-đề-xuất không-ghi) — liệt-kê ĐẦY-ĐỦ 4 loại tín-hiệu trọng-tải làm danh-sách đối-chiếu: *"mọi khoảnh-khắc bất-ngờ · mọi chốt-chặn/luật-tránh · mọi trích-dẫn tệp-kèm-dòng · mọi nguyên-nhân-gốc"* [V4]:25.
2. **Đầu-tàu chưng-cất** — viết gist **khung bốn-trường** (việc gì · kết-luận · bài-học · bất-ngờ), tổng-hợp đặt đầu [V4]:26.
3. **Cổng đối-chiếu tất-định** (máy, rẻ, luôn chạy) [V4]:27: *"grep năm mươi tám token trọng-tải chọn từ danh-sách bốn-loại — **thiếu MỘT là trượt**; cộng quét byte (không BOM, không CR lạc, không ký-tự hỏng phông)"*.
4. **Cửa-duyệt độc-lập** chấm fidelity từng cặp nguyên-bản↔gist [V4]:28.
- Bản 07-20 giữ nguyên khuôn này khi auto-hoá [A]:25: *"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**"*.
- Luật kèm: **additive** ([V4]:42 *"gist là tệp MỚI; không bao giờ đè tệp gốc"*) · **chống nén-hai-lần** ([V4]:43 *"gist mang một dòng đánh-dấu thế-hệ; gặp tệp đã mang dấu thì từ-chối nén lại (nén chồng nén = mất nghĩa tích-lũy)"*) · **không tín-hiệu nào biến mất khỏi lớp đọc-được** ([V4]:41).
- Lỗi THẬT cửa-duyệt bắt được (chuyển được): [V4]:32-36 — trích-dẫn "chảy" từ tệp anh-em cùng thư-mục; và [V4]:36 *"**Phần tổng-hợp là lớp trôi nhanh nhất — mà lại là lớp được nạp-nóng đầu tiên**"* ⇒ chốt-chặn *"sau khi viết tổng-hợp, grep ngược từng con số/mốc trong tổng-hợp về phụ-lục và nguyên-bản"*.

---

## (c) "Đo rải · làm dồn · nợ hiển thị" — nghĩa vận hành

🔴 **Đính chính từ vựng:** cụm đúng của hub là **"đo rải · làm **dồn** · nợ hiển thị"** (3 vế), KHÔNG phải "làm đơn". Slug ASCII của file (`do-rai-lam-don`) mất dấu nên đọc nhầm được thành "làm đơn"; thân bản giải quyết dứt điểm — [K]:48 VERBATIM: *"Tên khung ba vế **"đo rải · làm dồn · nợ hiển thị"** là cách gọi của SOLUTION_ERP — hub nhận nguyên cách gọi."* (Cụm cũng xuất hiện ở tiêu đề [K]:15 và FM `re:` [K]:9.)

Nguyên tắc đóng khung, hub nhận nguyên văn từ BVAAU-lead [K]:48: *"**'đếm' phải rẻ và dày (mỗi điểm chốt); 'hành động' được phép đắt và thưa (điểm hội tụ).** Và vế thứ ba — **nợ phải hiển thị** — không lớp nào được chìm."*

| Vế | Nghĩa vận hành | Cơ chế cụ thể (function-floor) |
|---|---|---|
| **ĐO RẢI** | phép ĐẾM/QUAN SÁT rẻ (~0) rải **dày khắp mọi cửa + mọi điểm dừng** | [K]:52 *"**Tick đa-điểm-vào.** Mọi cửa vào phiên VÀ mọi điểm dừng đều **tăng bộ đếm** (**chỉ đếm, KHÔNG fire** — fire vẫn ở closeout để điểm dừng giữ rẻ). Key-schema counter của bạn tự quyết; function-floor là: **không cửa nào không đếm**."* + [K]:46 (dòng bảng) + [K]:45 (sàn-sự-thật assert sống trong artifact, chạy mọi test/ship) |
| **LÀM DỒN** | phần NẶNG (spawn) **KHÔNG chia nhỏ** ra từng điểm dừng — dồn về **2 đầu phiên** (điểm hội tụ) | [K]:28 tiêu đề *"Owner-chốt: **KHÔNG chia phần nặng** — chia phần đếm và phần hiển thị nợ"*; 4 nguyên tắc nền [K]:32-35: (1) *"**Lỗi loại THIẾU không phát tín hiệu** … Lớp kiểm bắt loại lỗi này phải chạy **vô-điều-kiện theo nhịp**, không gate theo sự kiện được"* · (2) *"**Kiểm phải chạy trên trạng thái nghỉ.** Điểm dừng giữa mạch là điểm dở dang … sẽ nổ cờ giả hàng loạt và làm bẩn chính phép đo"* · (3) *"**Điểm dừng phải rẻ** … Chất thêm việc nặng vào đó thì người vận hành sẽ né điểm dừng, và bước bị né chính là bước không có lưới"* · (4) *"**Một phiên một điểm hội tụ sổ** … chia sổ theo từng cặp dừng–nối là tự tạo lại lớp bệnh hai-bản-chép"* |
| **NỢ HIỂN THỊ** | không làm việc nặng ở điểm dừng, nhưng **phải THẤY** mình đang nợ gì — 1 dòng chỉ-đọc, ~0 chi phí, **không bao giờ chặn** | [K]:54 VERBATIM: *"**Dòng-nợ tại mọi điểm dừng.** Mỗi lần dừng/nối in đúng **một dòng chỉ-đọc, chi phí ~0** (không spawn, không ghi): **trạng thái nhịp kiểm + cờ vượt trần bộ nhớ + số run chưa gom**. Lệnh probe lỗi thì in 'probe-lỗi (không chặn)' rồi đi tiếp — **dòng-nợ không bao giờ được chặn điểm dừng**. Đây là lời giải cho nỗi lo 'chia ra thì khó theo dõi': **không chia việc nặng, chỉ chia tầm nhìn**."* |

**Kẽ mà khung này vá** ([K]:19-26): (i) *"**Bộ đếm nhịp không đếm các cửa giữa**"* — mạch việc vắt nhiều lần dừng–nối chỉ đóng góp 1 tick ⇒ nhịp kiểm giãn ngoài thiết kế; (ii) *"**Nghi thức dồn ở hai đầu bị chạy tắt khi closeout gộp sổ**"* — *"ba lần đóng phiên liên tiếp không chạy các bước kiểm bắt buộc, và không máy nào kêu — **im lặng trông y hệt sạch**"*. Vá bằng: tick đa-điểm ([K]:52) + force-fire bù ([K]:53) + dòng-nợ ([K]:54) + 2 detector răng-máy ([K]:67-68: `closeout-thiếu-nghi-thức` và `vai-đã-chạy-phải-có-sổ (per-ROLE)` — **hub credit SOLUTION_ERP**).

**SELF-CHECK hub phát kèm** ([K]:82-86, 5 ô — dùng làm acceptance khi SE áp): tick +1 khi dừng–nối 1 lần · giết probe → điểm dừng vẫn hoàn tất · closeout gộp ≥2 phiên-dừng → kiểm chạy ngay · lớp lỗi-THIẾU không bị event-gate (hoặc đủ 2 đk) · doc cadence có caveat phiên-LOGIC.

---

## (d) So khớp SE @S144 ↔ hub (cross-check nội bộ, ngoài 3 file)

| Trục | Hub | SE (đĩa hôm nay) | Verdict |
|---|---|---|---|
| Trigger vòng-4 | đếm-vật-thật ([A]:27) | `"mode": "shard_count"` — `.claude/agent-memory/memory-budget.json` `distill_trigger`, `_note` **tự trích đúng nguồn** *"broadcast auto-toan-vong:21-27 'trigger la dem-vat-that deterministic, KHONG phai ngay-lich (lich/tuoi = proxy gia)'"* | ✅ **KHỚP** (SE cite đúng dòng hub) |
| Bác ngày-lịch | ✅ ([K]:55, [A]:27) | `session-start.md:185` *"🧊 Dòng cũ `today − last_sleep_at ≥ 7 ngày` = GHI-CHÚ PHỤ, KHÔNG còn là trigger"* ; `sleep-recovery-memory-l2.md:52` cùng nội dung | ✅ KHỚP |
| Lineage khi đảo rule | giữ vết + chữ-ký + lý do tại chỗ wire ([A]:35) | `memory-budget.json` `_lineage`: *"GIU VET, KHONG XOA (khuon auto-toan-vong:35 …)"* + chữ-ký owner + ngày 2026-07-22 + khác-biệt kỹ thuật | ✅ KHỚP khuôn |
| Ngưỡng ở config một-nguồn | ✅ ([A]:27 *"tài liệu chỉ trỏ key, không chép số"*) | `min_pending_shards: 15` sống trong json; `session-start.md:183` *"Ngưỡng đọc LIVE … (B1 — CẤM chép số vào đây)"* | ✅ KHỚP |
| Tầng-2 BÁO TO | *"vượt ngưỡng-lớn → vẫn chạy nhưng BÁO TO"* ([A]:25) | `bulk_note_shards: 30` = 2× min-SE; note khai rõ **KHÔNG gate/KHÔNG block/exit 0**; hub-bulk riêng = 10, SE **không copy số hub** | ✅ KHỚP cơ-chế (số neo nội-bộ, đúng "reference-not-copy") |
| **Tự-động vs consent** | **AUTO ngay trong closeout, "không ghi sổ nợ để dồn"** ([A]:17, :25) | `session-start.md:182` *"KÊU → **INFORM gợi-ý** … 🔴 **KHÔNG auto-run — anh consent mới chạy**"* ; `sleep-recovery-memory-l2.md:52` *"gợi-ý … KHÔNG tự-chạy autonomous"* | ⚠️ **LỆCH CÓ CHỦ ĐÍCH** — SE dừng ở INFORM+consent, hub đã full-auto. Đây là **delta duy nhất** trên trục vòng-4 (form tự quyết? [A]:45 chỉ nói *"cân nhắc trigger đếm-vật-thật như trên (form tự quyết, **chức năng là sàn**)"* — sàn nêu ở [A]:17 là "chạy ngay, không tích nợ", nên đây là **khoản cần em-main quyết/hỏi anh**, không phải lỗi kỹ thuật) |
| Chỗ chạy probe | *"probe rẻ ở hai đầu"* ([K]:44) | 2 site: `session-start §2.1.2` (`:182`) + `session-end §L.b(c)` (`session-end.md:68`) | ✅ KHỚP |

---

## KHÔNG CHẮC

1. **"2 tầng distill" — nghĩa nào là nghĩa hub CHỦ Ý ở tiêu đề bản 07-20?** Bản 07-20 KHÔNG có câu nào định nghĩa thẳng cụm "2 tầng". Suy luận mạnh nhất = **T-A (MOVE + DISTILL)** vì Khoản 2 gọi tên đúng 2 chữ "tầng" đó ([A]:23); nhưng **T-B (gist hai-lớp, [V4]:40)** cũng là "2 tầng" hợp lệ và thuộc chính vòng-4. Không đủ chứng để loại một trong hai — báo cả hai, em-main chọn khi viết doc SE.
2. **Vòng 1-3 và vòng 5: mức AUTO thật của hub.** [A]:17 tuyên "mọi vòng … không chờ lệnh tay", nhưng bản 07-20 chỉ **dogfood** vòng-4 (nợ 30 mảnh, [A]:39-41). Không có số đo cho vòng 1/2/3/5 trong 3 file này ⇒ không khẳng định được hub đã auto-hoá đủ 5 vòng ở mức thi hành.
3. **Ngưỡng "ngưỡng-lớn" của hub = 10?** Con số 10 tôi lấy từ **note của SE** (`memory-budget.json`, khai *"hub AI_INFRA co bulk RIENG = 10"*), KHÔNG từ 3 file hub (hub cố ý không chép số, [A]:27). Không verify được trong scope này.
4. **Van kiểm-giữa-phiên**: hub TREO chưa đặt ngưỡng ([K]:63) và mời gửi số về. Không rõ SE có đang đo trục này không — tôi không kiểm (ngoài đề bài).
5. **`8da7e8b1…` (bản chốt gốc "tuổi = proxy giả")**: chỉ thấy mã tham chiếu trong [K]:55; **không đọc bản đó** (đề bài giới hạn đúng 3 file) ⇒ lý lẽ gốc của luật proxy-giả là **second-hand qua [K]/[A]**.
6. **Delta AUTO-vs-CONSENT ở (d)**: tôi kết luận "lệch có chủ đích" dựa trên chữ *"KHÔNG auto-run"* SE tự ghi; **chưa truy** được đây là owner-chốt hay lead-tự-quyết (cần đọc spec S144/S145 — ngoài scope lượt này).
7. **mtime file 1 (07-17 18:41) > mtime file 2 (07-17 01:46)** dù file 2 mang date 07-16 — chỉ là thứ tự sync Dropbox, **không** suy ra bản nào sửa sau; sha trong FM là mốc tin cậy hơn, nhưng tôi **không tự tính lại sha** để đối chiếu.

---
*Ghi bởi investigator-codebase (read-only) qua Write tool, chỉ 1 file trong run-folder — không chạm agent-memory/canonical MD/sub-MD khác.*
