# N3 — LANE D / 6 · GĐ-5 (cửa gọi mô hình đắt) + GĐ-6 (niêm phong đồng bộ + bảng gốc) > Vai: `reviewer` (đối kháng, read-only/propose-only) · phiên **S180** · engine `/fable-clone` > Ghi đĩa TRONG LÚC LÀM (chống #53). Mọi mục dưới đây được đổ ruột ngay khi đo xong, KHÔNG để placeholder. --- ## §0 — KHUNG ĐO: mẫu số lấy từ đâu (đọc trước, vì cả lane treo vào đây) Đề bài của lane này khác N2: **N2 kiểm claim có đứng không, lane D kiểm PHỦ CÓ ĐỦ KHÔNG.** Muốn nói "được bao nhiêu" thì phải nói "trên bao nhiêu" — và phải nói rõ **đếm CÁI GÌ**, vì cùng một giai đoạn có tới ba cách đếm hợp lệ mà ra ba con số khác nhau. **Ba mẫu số nguyên bản của hub cho GĐ-5** (không phải tôi chế ra, hub tự đánh số): | Mẫu số | Nguồn | Số | |---|---|---| | **A. Bước làm** | `thu-chinh:221-229` — hub tự đánh 1..8 | **8** | | **B. Sàn chức năng** | `phu-luc:296-316` — hub tự đánh (i)..(vii); riêng (vi) hub tự tách **3 gạch đầu dòng** ("ba chỗ dây điện chịu lực") | **7 mục / 9 atomic** | | **C. Nghiệm thu** | `phu-luc:328-335` — 6 ô tích | **6** | **Mẫu số D — atomic hợp nhất (dùng cho tiêu đề):** tôi hợp A ∪ B ∪ C, khử trùng, tách mỗi mệnh đề cưỡng chế **kiểm được độc lập** thành một khoản, mỗi khoản neo `file:line` của hub. Ra **20 khoản** cho GĐ-5 (bảng §1) và **17 khoản** cho GĐ-6 (bảng §5). Đây là **phép tách của tôi**, không phải số của hub ⇒ tôi dán nguyên bảng để ai cũng đếm lại được. Ai không đồng ý cách tách thì cãi vào từng dòng, không cãi vào con số tổng. 🔴 **Vì sao phải phiền thế:** N2 đã bắt N1 lỗi *"~70% không mẫu số"* ở GĐ-2 (`sub-review-n2-S180.md:82`). Lane này mà lại phán "gần xong" bằng cảm giác thì lặp đúng lỗi vừa bị bắt. **Quy ước ô trạng thái:** `ĐỦ` (có, chạy được, có bằng chứng) · `NỬA` (có mầm/tương đương một phần, thiếu vế kiểm được) · `THIẾU` (không có) · `KHÁC` (SE làm khác hub có lý do — mục 6 khuôn báo cáo) · `KHÔNG-ĐO-ĐƯỢC` (không có dụng cụ để phán). Khi tính tử số tôi tính **ĐỦ = 1 · NỬA = 0.5 · KHÁC = 1 (nếu tương đương kiểm được) · THIẾU = 0**, và **dán cả hai con số**: nghiêm ngặt (chỉ ĐỦ) và nới (ĐỦ + NỬA + KHÁC). --- ## §1 — 🔴 PHÁT HIỆN NẶNG NHẤT CỦA LANE (ghi ngay, trước cả bảng khoản) ### D-LANE-01 [MAJOR] — Máy soát chỗ-ngồi model MÙ TRỌN VẸN với phiên hiện tại, mà vẫn in "0 lệch" Đây là khoản chống lưng **quan trọng nhất** cho câu "GĐ-5 gần xong nhất" (N1 `sub-invest-fitmap-S180.md:138`, và cũng là ô TC-09 của N1 `:183`). N2 đã verify khoản này và **không bác được** — nhưng N2 kiểm *hằng-số có đồng bộ không* (2-key `hmw.js:73` ⟂ `spawn-model-audit.ps1:102`), **không kiểm máy có phủ được dân số nào không**. Tôi kiểm vế thứ hai, bằng cách **chạy thật cái máy đó**. **Lệnh đã chạy (dán nguyên):** ``` powershell -NoProfile -ExecutionPolicy Bypass -File scripts/spawn-model-audit.ps1 ``` **Kết quả thật, trích nguyên văn khối B:** ``` session scope : 80080445-1a92-4320-ac13-327a3d919e69 (last write 2026-08-06 10:10) scope = CURRENT session only, by design (old runs predate the convention; owner-decisions:64) wf_264fb5c2-0db/agent-a02e9ca3e3a0f1a45.jsonl [reviewer] -> claude-fable-5 (40 record(s)) COUNTS: 1 dispatch | 1 explicit | 0 mismatch [OK] 0/1 lane(s) drifted off expected 'claude-opus-5' TOTAL FLAGS: 0 ``` **Vì sao đây là lỗi, không phải máy chạy đúng:** Phiên đang chạy là **S180, ngày 2026-08-07**, id `be228103-d2dc-4df6-aa72-1914725656c5`. Máy lại tuyên *"CURRENT session only"* rồi đo phiên `80080445…` **ghi lần cuối 2026-08-06 10:10** — tức phiên **của hôm qua (S179)**. Nhãn *"phiên hiện tại"* là **nhãn SAI**, và cái sai đó không hề được khai ra dòng nào. **Đo dân số bị bỏ sót (lệnh + số):** | Đại lượng | Lệnh | Giá trị | |---|---|---| | Lane spawn của phiên S180 | `ls $P/be228103…/subagents/*.jsonl \| wc -l` | **17** | | Bản ghi model trong 17 lane đó | `grep -ohE '"message"\s*:\s*\{\s*"model"\s*:\s*"[^"]+"'` rồi tally | **893** (725 `claude-opus-5` + **168 `claude-fable-5`**) | | Lane máy audit THẤY | dòng `COUNTS:` của chính máy | **1** | | Bản ghi model máy audit THẤY | dòng lane của chính máy | **40** | ⇒ Máy đo **1/17 lane (5,9 %)** và **40/893 bản ghi (4,5 %)** — và cả 1 lane nó thấy đều **không thuộc phiên hiện tại**. Nói cách khác: **phủ thật của phiên hiện tại = 0/17 = 0 %.** 🔴 Toàn bộ **168 bản ghi `claude-fable-5`** — tức đúng cái **mô hình đắt** mà cả GĐ-5 sinh ra để canh — nằm **trọn trong vùng mù**. **Cơ chế hỏng, tìm được bằng đọc mã:** `scripts/spawn-model-audit.ps1:250-253` chọn phiên bằng vị từ **hình-dạng-đường-dẫn**: ```powershell Get-ChildItem -Path $projDir -Directory | Where-Object { Test-Path (Join-Path $_.FullName 'subagents\workflows') } | Sort-Object LastWriteTime -Descending | Select-Object -First 1 ``` Vị từ `Test-Path subagents\workflows` là **đại-diện (proxy)** cho *"phiên này có spawn"*. Nó đúng khi lane đi qua **Workflow tool** (`hmw.js` → `subagents/workflows/wf_*/agent-*.jsonl`), và **sai câm** khi lane đi qua **Task tool** — lúc đó bản ghi rơi **PHẲNG** vào `subagents/agent-*.jsonl`. **Đo trên đĩa (0-hit kèm control-dương, đúng ràng buộc lane):** | Phép đo | Kết quả | |---|---| | `test -d be228103…/subagents/workflows` | **NO** (0-hit) | | `find be228103… -maxdepth 2 -type d -name workflows \| wc -l` | **0** | | **Control-dương:** `ls 041d0937…/subagents/workflows/` | **`wf_a574cff1-6b9`** ⇒ vị từ *có* chạy, không phải hỏng thước của tôi | | mtime phiên S180 / mtime phiên máy chọn | `1786081087` / `1785985825` ⇒ máy bỏ qua phiên **mới hơn ~26,5 giờ** | **Vì sao nó đắt hơn một cờ thường:** 1. Nó đánh thẳng vào **nghiệm thu TC-09 của hub** (`thu-chinh:84`): *"máy soát chỗ-ngồi trả không có lượt nào lệch"*. Máy SE **đang trả đúng câu đó** — `0 mismatch`, `TOTAL FLAGS: 0` — trên một mẫu **1 lane của hôm qua**. Đây là **đèn xanh giả**, đúng lớp bệnh mà `khuon…:295` gọi tên: *"chưa có dữ liệu"* bị in ra trông y hệt *"đã đo và bằng không"*. 2. Máy **tự dán nhãn sai** (`CURRENT session only, by design`) ⇒ người đọc báo cáo không có cách nào biết nó đang đo phiên khác. Đúng lớp **`vắng-mặt trông giống ổn`** trong sổ nhớ SE. 3. Nó là **cùng một cái máy** mà N1 đem ra chống lưng cho "GĐ-5 gần xong nhất", và là **cùng một cái máy** mà `docs/gotchas`-culture của SE gọi là *"mỗi phép đo kèm CONTROL DƯƠNG"*. Máy có control cho vế hằng-số (khối A `anti-vacuous note`), **không có control cho vế dân số**. **Đề xuất nghiệm thu (propose-only, KHÔNG tự sửa):** máy phải (a) chọn phiên bằng **định danh phiên** hoặc mtime **không lọc theo hình dạng thư mục**; (b) quét **cả hai** vị trí `subagents/*.jsonl` và `subagents/workflows/**/agent-*.jsonl`; (c) khi phiên được chọn **không phải** phiên mới nhất, phải in **một dòng khai thẳng** chênh lệch đó thay vì giữ nhãn *"CURRENT"*; (d) in **mẫu số**: `n lane đo / m lane tồn tại`. Phản chứng bắt buộc: chạy trên một phiên chỉ có lane phẳng thì máy **phải** thấy lane, không được rơi về phiên cũ. 🔸 **Khai công bằng cho SE — 3 vế của máy này ĐỨNG VỮNG và tôi không bác:** - Khối A **2-key** đồng bộ thật: `hmw.js:73` = `claude-opus-5` = `spawn-model-audit.ps1:102`, và máy **tự loại grep ngây thơ** (*"naive grep … 2 hit(s) [comment text] -> NOT used as evidence"*) — đây là chống citation-trap đúng bài. - Khối C/D đo **26/26 agent** mang `model: opus` **và** 26/26 mang `effort: max`; canonical `STATUS.md:478` = 26 khớp đĩa 26. - Khối E **tự khai 6 điều máy KHÔNG nói**, gồm *"Nothing here blocks a spawn"* và *"RETROSPECTIVE ONLY"*. Đây là **A16 làm đúng** (khai máy/tay, khai giới hạn) — hiếm và đáng giữ. ⇒ Lỗi nằm ở **tầng chọn mẫu**, không nằm ở tầng so sánh. Vá tầng chọn mẫu là đủ; đừng đập cả máy. ### §1-bis — ĐÍNH CHÍNH 2 CHỖ TRONG CHÍNH §1 CỦA TÔI, và 1 chỗ trong lệnh của lead **(a) Sửa con trỏ dòng của chính tôi.** §1 tôi ghi khối chọn phiên ở `:250-253`. Đo lại bằng `sed -n '246,256p'`: khối thật ở **`spawn-model-audit.ps1:251-254`**. Lệch 1 dòng. Claim không đổi, con trỏ sai thì vẫn phải sửa — đúng lớp *"cite sai ≠ claim sai"*. **(b) Dòng nhãn sai — địa chỉ chính xác:** `scripts/spawn-model-audit.ps1:262` ```powershell Write-Host ' scope = CURRENT session only, by design (old runs predate the convention; owner-decisions:64)' ``` Chuỗi này in **vô điều kiện** ngay sau khi `$sessionDir` được chọn, **không hề kiểm** phiên vừa chọn có phải phiên mới nhất không. Đó là chỗ nhãn trở thành lời khai sai. **(c) 🔴 Lệnh của lead đảo NGƯỢC chiều mù — tôi không gật.** Lead viết: *"sai CÂM với lane đi qua Workflow tool (`hmw.js` → `subagents/workflows/wf_*/agent-*.jsonl`)"*. **Đo được nói ngược lại.** Máy đọc đúng `subagents\workflows\**\agent-*.jsonl` (`:270` `$wfRoot = Join-Path $sessionDir.FullName 'subagents\workflows'`), nên **đường Workflow là đường nó THẤY**. Đường nó **mù** là đường **Agent/Task tool**, nơi bản ghi rơi **phẳng** vào `subagents/agent-*.jsonl`. Bằng chứng hai chiều, cả hai đều từ lượt chạy thật hôm nay: | Chiều | Phép đo | Kết quả | |---|---|---| | **Control-dương — đường Workflow THẤY được** | chính output của máy | `wf_264fb5c2-0db/agent-a02e9ca3e3a0f1a45.jsonl [reviewer] -> claude-fable-5 (40 record(s))` ⇒ máy **có** đọc được lane nằm dưới `workflows/` | | **Chiều mù — đường Agent/Task KHÔNG thấy** | `ls be228103…/subagents/*.jsonl \| wc -l` = **17**, `COUNTS:` của máy = **1 dispatch** | 17 lane phẳng, **0** lane được đếm | ⇒ Nếu chữa theo chiều lead viết thì **vá nhầm phía** và lỗ hổng còn nguyên. Ghi lại đây để người thi công wave sau không đọc nhầm. ### §1-ter — Đơn vị của con số 168 (lead đòi, và đòi đúng: phiên này đã 2 ca bẫy đơn-vị) **168 = số BẢN GHI ASSISTANT, không phải số lượt spawn, không phải số dòng tệp.** - **Tập đo:** 17 tệp `be228103…/subagents/agent-*.jsonl` (toàn bộ lane của phiên S180). - **Phép đếm:** đếm số lần khớp mẫu **cấu trúc** `"message"\s*:\s*\{\s*"model"\s*:\s*"…"` — đúng mẫu mà chính `spawn-model-audit.ps1:268` dùng (`$RX_MODEL`). Neo vào **hình dạng bản ghi**, nên đoạn JSON mà agent dán vào nội dung hội thoại **không bị đếm nhầm**. - **Ba đơn vị, ba con số — dán cả ba để khỏi ai suy sai:** | Đơn vị | Giá trị | Cách ra | |---|---|---| | **Bản ghi assistant** mang model đắt | **168** | 86 (`investigator-codebase`) + 82 (`reviewer` lane fable) | | **Lane** chạy model đắt | **2 / 17** | bảng per-lane bên dưới | | **Bản ghi assistant** toàn phiên | **893** | 725 `claude-opus-5` + 168 `claude-fable-5` | **Bảng per-lane (dán đủ, không nén thành khoảng — A12):** | agentType | model | bản ghi | lane | |---|---|---|---| | investigator-codebase | **claude-fable-5** | 86 | `agent-ac5f6f7d0e2a76f52` | | reviewer | **claude-fable-5** | 82 | `agent-a7390eedfdc5630c7` | | reviewer | claude-opus-5 | 64 | `agent-a5e5e718aff8efd8c` | | reviewer | claude-opus-5 | 60 | `agent-a92da9c10dcc99e40` | | reviewer | claude-opus-5 | 60 | `agent-aa7e9553a0f020dea` | | reviewer | claude-opus-5 | 58 | `agent-ab75396c9a7f3c954` | | reviewer | claude-opus-5 | 53 | `agent-af88ca58f3cc2b801` | | reviewer | claude-opus-5 | 53 | `agent-a9abe52ea06316342` | | ring1-audit | claude-opus-5 | 93 | `agent-a031dd3d8d90080dd` | | ring2-audit | claude-opus-5 | 93 | `agent-a601d55c746799f00` | | tooling-auditor | claude-opus-5 | 67 | `agent-a84bf779106c92924` | | lead-gap-auditor | claude-opus-5 | 59 | `agent-ae3dbb06ff8aca6e5` | | lead-stale-auditor | claude-opus-5 | 59 | `agent-a7e55a9bf374c912e` | | harvest-curator | claude-opus-5 | 52 | `agent-a8669ed5d706881d3` | | back-end-reviewer-style | claude-opus-5 | 1 | `agent-a97df3ebc18174343` | | database-reviewer-style | claude-opus-5 | 1 | `agent-ae88236e97dcbc610` | | front-end-reviewer-style | claude-opus-5 | 1 | `agent-a5e6351fbc6042d16` | 🟢 **Phát hiện phụ, ngược chiều lo ngại của hub — đáng ghi:** lane `investigator-codebase` chính là lane **bị #53 rồi được resume trong phiên** (`run.md:22`). Nó vẫn là **MỘT** lane (86 bản ghi, không có lane thứ hai cùng agentType), và **giữ nguyên `claude-fable-5` xuyên suốt**. Hub cảnh báo *"nối lại làm rớt tham số mô hình đã ghi đè"* (`phu-luc:304`). **Ở SE, lần này, tham số KHÔNG rớt.** n=1, chỉ nói về lane công-việc chứ không nói về lane tổng-hợp — nhưng đây là bằng chứng dương đầu tiên và nên được đo lại chứ đừng chép lo ngại của hub thành lo ngại của mình. ### §1-quater — Phạm vi bị ảnh hưởng (giới hạn đúng cái đo được, không rộng hơn) - ✅ **KHÔNG bị ảnh hưởng:** phép đo **H23 @S126**. Máy tự dẫn chứng lane `wf_cb964f83-331` và lượt chạy hôm nay bắt được `wf_264fb5c2-0db` ⇒ các lượt đó đi **đường Workflow**, đúng đường máy thấy. Kết luận S126 (*spawn-param thắng frontmatter hard-pin*) **vẫn đứng**. - ⚠️ **Bị ảnh hưởng:** mọi câu `0-mismatch` tuyên cho **phiên mà spawn đi đường Agent/Task**. Với các phiên đó, câu đúng không phải *"đo rồi, sạch"* mà là **"chưa đo gì"**. Phiên S180 là một ca như vậy: **0/17 lane được đo.** - 🔴 **Cách đọc lại cho đúng:** các claim đó **không bị chứng minh là SAI** — chúng **mất chỗ dựa**. Đây là khác biệt A14 (*"chưa biết" ≠ "xong"*): tôi không tuyên máy nói dối, tôi tuyên **máy im lặng mà bị đọc thành sạch**. - 📌 **Chưa đo, cần lệnh:** tỉ lệ phiên-đi-đường-Workflow / phiên-đi-đường-Agent trong lịch sử kho. Lệnh đề xuất: đếm thư mục con `~/.claude/projects//*/` có `subagents/workflows` so với tổng số có `subagents/*.jsonl`. **CHƯA CHẠY** ⇒ không phán số. --- ## §2 — GĐ-5: BÓC TỪNG KHOẢN (mẫu số D = 20) | # | Khoản hub (neo) | SE | Bằng chứng `file:line` | |---|---|---|---| | **D-1** | Cửa gọi model đắt **chỉ chủ dự án gõ** (`thu-chinh:222`, `phu-luc:314`) | **ĐỦ** | `commands/fable-real.md:38` *"Lead KHÔNG tự ý gọi engine-đắt — kể cả khi HMW-mode ON"*; H21 per-invocation `:9` | | **D-2** | Đội **không bao giờ tự nâng hạng** (`thu-chinh:222`) | **ĐỦ** | `fable-real.md:37` *"Engine-đắt per-invocation = đường DUY NHẤT nâng 1 vai lên hạng-nhất"* | | **D-3** | **Mọi chỗ gọi** mang tham số model **tường minh**; quét kho **không còn chỗ để mặc định** (`phu-luc:313`, nghiệm thu `:331`) | **NỬA** | Tầng frontmatter ĐỦ: audit khối D = **26/26** `model: opus` + **26/26** `effort: max`. Tầng chỗ-gọi **KHÔNG**: `hmw.js:274` `model: resolveModel(...)`, mà `resolveModel` trả **`undefined`** ở **cả hai** nhánh (`:95` role-less, `:96` role-có-frontmatter) = **đúng nghĩa "để mặc định"**. Cộng máy soát mù (§1). | | **D-4** | Điều phối **chỉ ĐÓNG GÓI, cấm diễn giải lại** (`thu-chinh:223`, `phu-luc:300`) | **NỬA** | Luật CÓ nhưng **sai lane**: `commands/pause.md:53` *"chép nguyên văn, CẤM paraphrase… CẤM dựng lại từ trí nhớ"* — áp cho **sổ lưu trữ**, không áp cho **lượt dispatch** vào sub | | **D-5** | **Rào** đánh dấu vùng nguyên văn (`thu-chinh:223`) | **NỬA** | Rào CÓ THẬT: tiền tố `> anh:` (`pause.md:53`; `session-start.md:98` `_context-s-.md` FLOW). Chỉ sống ở lane lưu trữ. 🔴 **N1 `:148` khai "chưa có rào-nguyên-văn" là BI QUAN QUÁ** — rào có, đặt nhầm chỗ | | **D-6** | Cửa **biên dịch ý định** → đặc tả **4 khối** (`thu-chinh:224`, `phu-luc:302`) | **ĐỦ** | spec-file H21 `fable-real.md:28`; instance sống = `spec-adap-upgrade-pack-phased-07-08-2026.md` cùng thư mục | | **D-7** | **Chỉ ra bản nháp**, không tự thi công (`phu-luc:302`, nghiệm thu `:330`) | **ĐỦ** | `fable-real.md:28` *"Engine propose-only… Engine KHÔNG tự ghi"* | | **D-8** | **Cửa duyệt chủ dự án** giữa spec-nháp và thi công (`phu-luc:304` tầng 3, nghiệm thu `:332`) | **KHÁC (có khai)** | SE: anh duyệt **ở ĐẦU** (gõ lệnh + vai + đề bài), lead verify spec rồi worker chạy **cùng invocation** — N1 `:147`. Hợp lệ theo *"sàn chỉ nâng"* `thu-chinh:285`, **phải khai mục 6 khuôn B** | | **D-9** | Thi công song song: **1 nhánh sâu + N nhánh rộng** (`phu-luc:304` tầng 4) | **ĐỦ** | `/fable-real` (1 sâu) ⟂ `/fable-clone` (N rộng); phiên này chạy đúng hình đó — `run.md:4` | | **D-10** | Tổng hợp = **MỘT LƯỢT GỌI MỚI**, không nối lại (`phu-luc:304` tầng 5) ← **N2 F-09** | **NỬA** | Thiết kế ĐÚNG: `run.md:60` N4 = `/fable-real reviewer` = **lượt gọi mới**. Nhưng **0 luật thành văn** cấm nối-lại-khi-tổng-hợp ⇒ hôm nay đúng vì tình cờ, mai không ai chặn. Xem §1-ter: lý do hub sợ (**rớt tham số model**) **đo thật ở SE = không rớt** | | **D-11** | Gói ngữ cảnh chuẩn hoá **5 mảnh** (`thu-chinh:225`, `phu-luc:306`) | **NỬA — 3/5** | ✅ nền trỏ-không-chép (`tiep.md:183`) · ✅ lớp mềm mạch việc (`_mind`/WAL) · ✅ ký ức vai cắt theo trần (`hmw.js:9` memory-pack slice + `memory-budget.json`) · ❌ **sở thích** (sổ GĐ-4 chưa có) · ❌ **lời chủ nguyên văn ở lane dispatch** (= D-4/D-5) | | **D-12** | Mảnh chưa có phải **khai "chưa có"** (`phu-luc:306`) | **NỬA** | Có cho **1** mảnh: `pause.md:53` *"⇒ ghi `(THIẾU — lý do)`"*. Không có luật tổng cho cả gói | | **D-13** | Vật chứng **CHUNG GỐC**, sổ riêng chỉ là khung nhìn (`thu-chinh:228`, `phu-luc:308`) | **ĐỦ** | `runs/` là gốc duy nhất; file lane này nằm cùng `runs/2026-08-07-S180-…/` với mọi lane khác. **0 đường dẫn thứ hai** | | **D-14** | **Sổ lượt chạy đắt** tồn tại, 5 cột khung nhìn (`thu-chinh:226`, `phu-luc:316`) | **THIẾU** | 0-hit `grep -rniE "sổ.*(lượt|lần).*đắt|expensive-run"` trên `.claude`+`docs`. **Control-dương:** `grep -rlni "engine-đắt"` = **6 tệp** ⇒ thước chạy, vật không có | | **D-15** | **Ghi dòng NGAY lúc dựng thư mục** (`thu-chinh:226`) | **THIẾU** | Hành vi tương đương CÓ (`hmw.js:9` scaffold run-folder @P1 trước fan-out) nhưng **không có sổ ⇒ không có dòng**. Vật chủ vắng thì khoản này rỗng | | **D-16** | **Dòng sống kể cả lượt chết giữa chừng** (`thu-chinh:226`) | **NỬA** | Nghi thức chứng minh được: 7/7 vai #53 phiên này recover 0 byte mất (`run.md:54`). Nhưng là **tệp lane**, không phải **dòng sổ** | | **D-17** | Vật chứng lượt đắt thiếu tệp = **mức nghiêm trọng CAO NHẤT** (`phu-luc:316`) | **THIẾU** | Thang-nghiêm-trọng-theo-chi-phí-chạy-lại chưa tồn tại (thuộc GĐ-2; N1 `:227` + N2 `:82` đều xếp GĐ-2 thiếu vế này) | | **D-18** | Vai mới vào **danh sách vai hợp lệ** TRƯỚC khi dùng (`thu-chinh:227`, `phu-luc:312`) | **ĐỦ — MẠNH HƠN SÀN** | `hmw.js:22` `VALID_ROLES`; `:173` *"Vai ∉ VALID_ROLES … DỪNG HẲN (STOP-HARD) — KHÔNG fail-soft"*. Hub chỉ đòi *có danh sách*; SE có **cổng chặn cứng**. Ghi mục 6 khuôn B (làm MẠNH HƠN) | | **D-19** | **Một lượt thử do chủ gõ** + soi thư mục **đủ bộ tệp chuẩn** (`thu-chinh:229`, nghiệm thu `:334`) | **NỬA** | Vế 1 ĐỦ: anh gõ `/fable-real`+`/fable-clone` (`run.md:4`), đo được **168 bản ghi fable**. Vế 2 THIẾU: **0 máy điểm danh bộ-tệp** (GĐ-2) ⇒ "đủ bộ" chưa ai kiểm | | **D-20** | Điều kiện vào + **có hạn mức** (`thu-chinh:220`) | **ĐỦ** | Hạn mức **đo được**, không phải khai suông: 168 bản ghi `claude-fable-5` hôm nay. **Không** rơi nhánh `không áp dụng` | **Tử số GĐ-5:** ĐỦ = D-1,2,6,7,9,13,18,20 (**8**) + KHÁC-tương-đương D-8 (**1**) = **9** · NỬA ×8 (D-3,4,5,10,11,12,16,19) = **4,0** · THIẾU ×3 (D-14,15,17) = 0. > ### 🔢 **GĐ-5 = 13,0 / 20 (65 %) nới · 9 / 20 (45 %) nghiêm ngặt** **Kiểm chéo bằng 2 mẫu số gốc của hub — ba số phải hội tụ, nếu không là tôi tách sai:** | Mẫu số | Tính | Tỉ lệ | |---|---|---| | A — 8 bước làm (`thu-chinh:222-229`) | 0,83+0,5+1+0,5+0+1+1+0,5 = **5,33/8** | **67 %** | | C — 6 ô nghiệm thu (`phu-luc:330-335`), ô 6 `không áp dụng` vì CÓ hạn mức | 1+0,5+1+0+0,5 = **3,0/5** | **60 %** | | D — atomic hợp nhất | **13,0/20** | **65 %** | Ba mẫu số độc lập ra **60–67 %**, không mẫu nào lệch ra ngoài dải. ⇒ phép tách của tôi **không bơm số**. --- ## §3 — 🔴 CÂU "GĐ-5 GẦN XONG NHẤT" — KHÔNG ĐỨNG **N1 tuyên** (`sub-invest-fitmap-S180.md:136` + `:255`, và `run.md:41` chép lại): GĐ-5 = *"GĐ GẦN XONG NHẤT"*. **Đây là claim XẾP HẠNG.** Một claim xếp hạng chỉ đứng khi có **ít nhất hai** đại lượng cùng đơn vị đem so. N1 **không** đưa đại lượng nào — không mẫu số cho GĐ-5, và không mẫu số cho cái nó vượt. **Phép so cùng-đơn-vị duy nhất hiện có trên đĩa** — cả hai đều tính trên **8 bước làm của thư chính**: | GĐ | Tử/mẫu | Tỉ lệ | Nguồn | |---|---|---|---| | **GĐ-2** | **5,5–6 / 8** | **69–75 %** | N2 đếm độc lập, `sub-review-n2-S180.md:82` (liệt từng bước: `(i)✓ (ii)nửa (iii)✓ (iv)nửa (v)✓ (vi)2/4 (vii)2.5/3 (viii)✗`) | | **GĐ-5** | **5,33 / 8** | **67 %** | lane này, §2 bảng kiểm chéo | ⇒ **Trên cùng một thước, GĐ-2 ≥ GĐ-5.** Câu *"GĐ-5 gần xong nhất"* **không được dữ liệu đỡ**; tốt nhất là hoà với GĐ-2 trong sai số, xấu nhất là **xếp sai thứ tự**. **Hai lý do khiến câu này còn nguy hơn một con số lệch:** 1. **Bằng chứng chống lưng chính của nó vừa sập.** N1 dựng "gần xong nhất" trên 5 gạch đầu dòng (`:137-143`), mà gạch nặng nhất — `spawn-model-audit` *"đo thật 0-mismatch"* — nay đo lại là **0/17 lane của phiên hiện tại** (§1). Bỏ gạch đó ra, GĐ-5 tụt tiếp. 2. **Nó điều khiển thứ tự wave.** `run.md:41` đã chép "gần xong nhất" vào bảng bậc-trưởng-thành, và N1 `:243` từ đó suy ra *"W5 … Nhẹ, có thể ghép W2"* — mà N2 `:19-20` đã bác vì vi phạm **điều-kiện-vào GĐ-5** (`thu-chinh:220` đòi GĐ-2 *đã thi công*) **lẫn OD-2**. Nhãn lạc quan → xếp lịch sai. Tôi **không** đề xuất lại phương án ghép đó. 🟢 **Công bằng với N1:** bản đồ N1 là bản đồ tốt và N2 đã đo ~60 phép mà không claim nào đổ (`sub-review-n2-S180.md:128`). Chỗ hỏng **không phải** các claim thành phần — **từng claim đều đứng**. Chỗ hỏng là **phép cộng chúng lại thành một thứ hạng**. Đúng lớp bệnh sổ nhớ SE gọi là *meta-count self-coverage blind-spot*: đo tốt, **đếm-về-tổng** thì sai. **Đề xuất câu thay (propose-only):** bỏ hẳn chữ "gần xong nhất"; thay bằng *"GĐ-5 ≈ 5,33/8 bước (67 %), ngang GĐ-2 (5,5–6/8) trong sai số; phần còn thiếu của GĐ-5 nằm ở khoản CHỐNG-LƯNG (máy soát) nên rủi ro cao hơn phần còn thiếu của GĐ-2 vốn chỉ là công cụ cộng thêm."* --- ## §4 — HAI MÓN N1 NÓI CÒN THIẾU: hub đòi CHÍNH XÁC gì, SE dựng tới đâu ### (a) Sổ khung-nhìn lượt chạy đắt **Hub đòi 6 vế** (`thu-chinh:226` + `phu-luc:316`), liệt từng vế, không nén thành khoảng: 1. Là **khung nhìn**, KHÔNG phải đường dẫn thứ hai (`phu-luc:308`). 2. Năm cột: **thời điểm · loại · đề bài · con trỏ vật chứng · kết luận**. 3. **Ghi dòng ngay lúc dựng thư mục.** 4. **Dòng sống kể cả khi lượt chết giữa chừng.** 5. Vật chứng **chung gốc** với mọi lượt chạy khác. 6. Thiếu tệp ở lượt đắt = **mức nghiêm trọng cao nhất**. **SE dựng tới đâu:** vế 1 và 5 **ĐÃ ĐẠT trước cả khi có sổ** (`runs/` là gốc duy nhất — D-13). Vế 3 có **hành vi** tương đương (`hmw.js:9` scaffold @P1). Vế 4 có **bằng chứng hành vi** mạnh (7/7 vai #53 recover, 0 byte mất). **Vế 2 và vế 6 = 0.** Bản thân **cuốn sổ = 0** (0-hit, control-dương 6 tệp). Dữ liệu để dựng thì **đã nằm sẵn**: `runs/` + dấu `[engine:` trong nhật ký vai (**8 tệp** có dấu này — `grep -rl "\[engine:" .claude/agent-memory/`) + chuỗi WAL. ⇒ **Hình dạng đúng của món này = một lượt DERIVE, không phải một cuốn sổ chép tay.** Chi phí thấp. 🔴 Nhưng chỗ **đặt** nó là quyết định của anh: đặt sai thành **nguồn-đôi** với WAL/`runs/` — đúng rủi ro N1 `:211(c)` đã nêu cho sổ GĐ-4. ### (b) Luật truyền-nguyên-văn **Hub đòi 3 vế** (`thu-chinh:223`, `phu-luc:300`): điều phối **chỉ đóng gói** · lời thô **đi nguyên khối** · **có rào** đánh dấu vùng nguyên văn. Cộng luật rút ra số 5 (`thu-chinh:295`): *"Lời chủ dự án truyền nguyên văn, cấm đi qua bộ não trung gian."* **SE dựng tới đâu — và đây là chỗ N1 khai SAI CHIỀU:** N1 `:148` viết *"SE chưa có luật thành văn + chưa có rào-nguyên-văn"*. **Cả hai vế đều có.** `pause.md:53` là luật thành văn, có rào (`> anh:`), có cả nhánh khai-thiếu (`(THIẾU — lý do)`), có cả lệnh cấm dựng-lại-từ-trí-nhớ. `session-start.md:98` nhắc lại cho `_context-s-.md`. **Cái THẬT SỰ thiếu, hẹp hơn nhiều:** luật đó phủ **lane LƯU TRỮ** (ghi vào sổ mạch việc), **không phủ lane DISPATCH** (đóng gói lời anh gửi vào prompt của vai đắt) — mà lane dispatch mới đúng là cái GĐ-5 nói tới. 🔬 **Phép đo tự-quy-chiếu, chạy trên chính lượt này:** prompt dispatch của lane D chứa **0** khối `> anh:` nguyên văn; toàn bộ đề bài là **chữ của lead** (*"N1 nói GĐ-5 là chỗ SE gần xong nhất"*, *"2 món N1 nói GĐ-5 còn thiếu"*). Tôi là **dụng cụ đo**, và kết quả là: lời anh **đã đi qua bộ não trung gian** trước khi tới vai chạy model đắt. Đúng thứ `thu-chinh:295` cấm. 🔴 Và đây là **LỚP-2 của hub** (*thợ rèn không có dao*) tái diễn: lượt đi kiểm luật-truyền-nguyên-văn **chính nó** vi phạm luật đó. 🔴 **CẤM TUYÊN MẠNH — nhắc lại đúng nấc hub tự khai:** `thu-chinh:62` (iii) ghi cưỡng chế nguyên văn ở hub đang **"BỎ QUA CÓ KHAI, chưa phải ĐÃ CHỨNG MINH"**. ⇒ SE **cấm** viết "đã chứng minh" cho khoản này. **Kiểm N1 có lỡ tuyên vượt nấc không:** N1 `:148` viết *"hub tự khai cơ chế của chính họ đang 'bỏ qua có khai' ⇒ adopt mức LUẬT-THÀNH-VĂN trước, máy sau"* — **N1 ĐÚNG NẤC, không vượt.** Lỗi của N1 ở khoản này là **bi quan sai về SE**, không phải lạc quan sai về hub. Ghi rõ để wave sau đừng đi dựng lại cái đã có. --- ## §5 — TC-07 + luật tự-trị ba bậc: xác nhận số mục, và SE CÓ MẮC không ### §5.1 — Xác nhận N2 F-07b: số mục là **(vi)**, không phải (vii) Đo trực tiếp trên phụ lục (`sed -n '202,205p'`): - **`phu-luc:202` = (vi)** — *"**Tiền kiểm KHÔNG BAO GIỜ đứng chờ chỉ thị.** Đây là luật tự trị ba bậc: bằng chứng rõ thì tự vá và khai lại · mơ hồ thì chọn nhánh an toàn…"* - **`phu-luc:204` = (vii)** — *"**Guard vắng tệp phải là vị từ máy**…"* ⇒ **N2 F-07b ĐÚNG.** N1 `§7.1` gọi tự-trị-3-bậc là "(vii)" là **con trỏ sai**; nội dung claim đúng. 🔸 Lưu ý phạm vi: khoản này nằm ở **GĐ-3**, không phải GĐ-5 — nhưng nó là **thuốc của TC-07** nên lane D phải bóc. ### §5.2 — SE CÓ MẮC TC-07 KHÔNG? — **CÓ, dạng nhẹ, và nguyên nhân là cấu trúc** **Định nghĩa bệnh** (`thu-chinh:82`): *"Chủ dự án mở và đóng phiên lúc rảnh, không ngồi ra chỉ thị được; quay lại thấy máy **đứng chờ**."* **Ca sống, đo trên đĩa ngay phiên này** (`grep -n "chờ anh" .claude/WAL.md`, control-dương: cùng tệp đọc được, tổng **27 dòng**): | WAL | Nguyên văn | Đọc ra | |---|---|---| | `:4` | `goal: bootstrap S180 + bookend @open 5 vòng ĐÓNG; chờ anh chọn việc chính` | máy dựng xong nền rồi **dừng** | | `:16` | `next: chờ anh chọn (a) áp 4 thư upgrade-pack-phased / (b) dọn nợ governance / (c) việc sản phẩm` | **đứng chờ chỉ thị**, đúng chữ TC-07 | **Phán: đây là "đứng chờ" hay "hỏi đúng việc hệ trọng"?** Đem áp **lằn ranh đỏ** mà chính hub liệt (`khuon…:304`, A6): *đổi lược đồ dữ liệu · xoá dữ liệu · việc hướng ra ngoài · việc không lùi được · việc dính tiền*. Câu hỏi ở `WAL:16` là **chọn hạng mục việc để làm tiếp** — **không rơi vào ô nào** trong năm ô đó. Cả ba lựa chọn (a)(b)(c) đều **lùi được**, đều **không dính tiền**, đều **không hướng ra ngoài**. ⇒ Theo đúng thước của hub, đây là **đứng chờ**, không phải hỏi-hệ-trọng. ⇒ **SE MẮC TC-07.** Không nặng — máy **khai rõ** mình đang chờ (`next:` có ghi), tức là *đứng chờ CÓ KHAI* chứ không phải treo câm. Nhưng khai xong vẫn là đứng. **Nguyên nhân cấu trúc — và nó nối thẳng về GĐ-4, không phải GĐ-5:** SE **có** uỷ quyền thường trực, nhưng **chỉ theo từng lát**, không có mục tổng: `commands/session-end.md:82` — *"🔓 **UỶ-QUYỀN THƯỜNG-TRỰC** (owner slot (71) @S172, nguyên văn: *'gom và sleep thì auto nhé, tự quyết'*) — GOM (harvest) và NÉN-NGỦ từ nay là AUTO, lead TỰ QUYẾT, KHÔNG hỏi từng lần."* Đây là **đúng khuôn hub muốn** (lời anh nguyên văn + phạm vi + cấm hỏi lại) — nhưng phủ **đúng hai việc**: gom và ngủ. Không có mục *"tự trị khi chủ dự án vắng"* ở dạng tổng quát — mà đó chính là **mục mồi thứ hai** hub đòi ở GĐ-4 bước 3 (`thu-chinh:201`). ⇒ **Kết luận nối hai giai đoạn:** TC-07 của SE **không chữa được ở GĐ-5**. Thuốc nằm ở **GĐ-4** (mục sở-thích-thường-trực cho phép tự trị + lằn ranh đỏ liệt kê) và **GĐ-3** (luật tự trị ba bậc, `phu-luc:202`). Mà GĐ-4 đúng là ô N1 xếp **hổng nhất** (`run.md:45`). Hai lane khớp nhau độc lập. 🔸 **Giữ nguyên nhãn hub, không tự chế số:** `thu-chinh:92` dán TC-07 = ***chưa có dụng cụ***. SE cũng **0 bộ đếm đứng-chờ**. Tôi phán được **có bệnh** (bằng 2 dòng WAL), **không phán được tần suất**. Ai muốn số thì phải dựng bộ đếm trước — **CHƯA ĐO, và cấm điền số ước.** --- ## §6 — GĐ-6: BÓC TỪNG KHOẢN (mẫu số E = 17) + ĐIỀU KIỆN VÀO ### §6.1 — Điều kiện vào: N1 nói "chưa thoả" — **ĐÚNG KẾT LUẬN, nhưng lý do yếu hơn sự thật** **Hub** (`thu-chinh:242`): *"**Điều kiện vào:** mọi giai đoạn nằm trong phạm vi `áp dụng` của **bản đồ áp dụng nhà bạn** đã ở nấc *đã thi công*."* **N1** (`sub-invest-fitmap-S180.md:165`) ghi: *"MỌI GĐ trong phạm-vi-áp-dụng đã thi công — XA NHẤT, đúng thiết kế."* 🔴 **Lý do thật nặng hơn thế.** Điều kiện vào GĐ-6 tham chiếu tới **bản đồ áp dụng bảy dòng** — và **vật đó chưa tồn tại trên đĩa SE**: đó chính là khoản **A0-4** (`khuon…:266`), thuộc **GĐ-0**, mà GĐ-0 còn chưa đóng (N1 `:46` xếp GĐ-0 *"gần đóng"*, và `:58` đo được **A0-3 hụt** — `grep "upgrade-pack-phased" broadcasts/_index.md` = **0 hit**, control `harness-22` = 3). ⇒ Trạng thái đúng của điều-kiện-vào GĐ-6 **không phải** *"chưa thoả"* mà là **"chưa ĐÁNH GIÁ ĐƯỢC — thiếu vật tham chiếu"**. Khác biệt có hậu quả: *chưa thoả* gợi ý "cứ làm các GĐ khác rồi tự khắc thoả"; *chưa đánh giá được* nói rõ **phải đẻ bản đồ áp dụng trước**, nếu không thì tới lúc mở GĐ-6 vẫn không ai biết "mọi GĐ trong phạm vi áp dụng" là những GĐ nào. 📌 Đây là **một khoản vào wave W0**, không phải wave cuối. **Kết luận cho câu hỏi của đề bài:** N1 nói SE chưa động GĐ-6 và đó là **đúng thiết kế** — tôi **xác nhận**, và **không** đề xuất kéo sớm bất kỳ phần nào của GĐ-6. OD-2 giữ nguyên. ### §6.2 — Bảng 17 khoản | # | Khoản hub (neo) | SE | Bằng chứng | |---|---|---|---| | **E-1** | Cổng đồng bộ **4 tầng** chạy + **dán kết quả**, mỗi tầng *khớp*/*lệch đã khai* (`thu-chinh:244`, `phu-luc:343`) | **THIẾU** | Họ hàng có (drift-audit tháng, ring1/ring2) nhưng là **doc-drift + lead-claim audit**, không phải trace ý-tưởng→spec→việc-thật (N1 `:159`) | | **E-2** | **Trace xuôi**: mảnh → đặc tả → giai đoạn → vật chứng (`phu-luc:349`) | **THIẾU** | — | | **E-3** | **Trace ngược**: trên đĩa mà không truy được về đặc tả = **phạm vi tự phình**, liệt từng khoản (`thu-chinh:245`, `phu-luc:350`) | **THIẾU** | — | | **E-4** | **Đối chiếu ba chiều** bảng bệnh: bệnh → thuốc → bằng chứng (`phu-luc:351`) | **THIẾU** | §2 của N1 là **phôi** (12 TC × bằng chứng), chưa có chiều "thuốc" | | **E-5** | Soi lệch đặc tả ⟂ đĩa, đặc biệt khoản **áp một nửa** (`phu-luc:352`) | **THIẾU** | — | | **E-6** | **Phán theo mức chặn**, không gộp một cục (`phu-luc:353`) | **THIẾU** | Xung đột nền: doctrine SE `exit-0-advisory` (`governance-detectors.ps1` *"Exit 0 always"*) — N1 `:49` xếp đây là xung đột triết lý | | **E-7** | Số kỳ vọng cổng điểm danh **suy từ độ dài danh sách**; quét kho tìm số cũ viết cứng (`thu-chinh:246`, `phu-luc:355`) | **NỬA** | ĐẠT ở **một** cổng, đo được hôm nay: `spawn-model-audit` khối C/D suy **26** từ `.claude/agents/*.md` trừ README, cross-check canonical `STATUS.md:478` = 26 ⇒ **khớp**. Chưa phủ **mọi** cổng; N1 `:160` | | **E-8** | Bài kiểm **ghim liệt kê từng TÊN**, không ghim con số (`thu-chinh:246`, `phu-luc:355`) | **CHƯA ĐO** | Cần: đọc các bài kiểm/cổng roster xem ghim tên hay ghim số. **Lệnh đề xuất:** `grep -rn "VALID_ROLES\|informRoles" .claude scripts tests` rồi soi từng chỗ. **KHÔNG PHÁN** khi chưa chạy | | **E-9** | **Phép thử đột biến**: bỏ 1 tên ⇒ **nhiều hơn một** bài kiểm đỏ (`thu-chinh:246`, `phu-luc:355`) | **THIẾU** | N1 `:160` *"mutation-test cho cổng roster: KHÔNG CÓ"* | | **E-10** | **Điều kiện vào danh sách** — vai chỉ vào cổng khi **cùng một commit** đủ 4 vế: tệp vai · thư mục ký ức · chỗ gọi ở **CẢ HAI** cửa · tập đăng ký (`thu-chinh:247`, `phu-luc:357`) | **NỬA** | Vế 1+2 đo được **ĐẠT hôm nay**: `ls .claude/agents/*.md` trừ README = **26**, `ls .claude/agent-memory/` (trừ `memory-budget.json`) = **26** ⇒ **26/26 vai có thư mục ký ức, 0 lệch**. Vế 3 (chỗ gọi 2 cửa) + vế 4 **CHƯA ĐO**. Luật thành văn ràng 4-vế-1-commit: **THIẾU** | | **E-11** | **Bộ đăng ký sửa trọn gói** — liệt trước mọi chỗ máy đếm vai, sửa hết 1 commit (`phu-luc:359`) | **THIẾU** | Luật chưa thành văn. SE có ca cùng lớp: `"17/17"` hardcode stale (`hmw.js:57` comment) — N1 `:185` | | **E-12** | Chạy lại **đối chứng đặt tên hai chiều + phản chứng** (`thu-chinh:248`) | **THIẾU (bị chặn ngược)** | Phụ thuộc GĐ-1 (**chuẩn đặt tên duy nhất**) mà N1 `:44` xếp GĐ-1 = **chốt MỞ KHOÁ, chưa có** | | **E-13** | **Bảng gốc**: mỗi TC 1 dòng, **mỗi ô số kèm lệnh tái lập**; chưa đo ghi thẳng `KHÔNG ĐO ĐƯỢC` (`thu-chinh:249`, `phu-luc:361`) | **THIẾU** | §2 của N1 là **phôi 12 dòng có bằng chứng**, nhưng **không phải** bảng gốc: thiếu cột *đại lượng đo* + *ngày đo*, và nhiều ô **không kèm lệnh tái lập** | | **E-14** | **Bản nháp dấu** trạng thái *chờ ký*, **mã dấu để trống** cho chủ điền (`thu-chinh:250`, `phu-luc:363`) | **ĐỦ** | `.claude/governance/ACTIVE-MARKS.md` — schema `RC-pqhuy1987-dd-mm-yyyy-hh-mm-ss`, và luật **đúng ngữ nghĩa hub**: *"**Binding (P3):** có stamp = **LỆNH** · không stamp = đang **BÀN**"*. Người thi công **không tự cấp dấu** | | **E-15** | **Quét đồng bộ tài liệu**: liệt danh sách trước rồi **tick từng cái** (`thu-chinh:251`, `phu-luc:365`) | **NỬA** | Khuôn tick-list có trong nghi thức drift-audit (`rules.md §6.4/§9.4`, dẫn qua `CLAUDE.md:121`); chưa có danh sách chốt cho gói này | | **E-16** | **Báo cáo cuối** gửi hub; nấc *đã được kiểm chứng* chỉ flip **sau khi hub soi** (`thu-chinh:252`) | **THIẾU** | Chưa có báo cáo nào cho gói này (GĐ-0 chưa đóng) | | **E-17** | Quét **rò rỉ đặc thù nội bộ** trên bản gửi ra ngoài = **không hit**, + khai chạy **máy hay tay** (`phu-luc:387`, A16 `khuon…:366`) | **NỬA** | Văn hoá khai **có thật và mẫu mực**: khối E của `spawn-model-audit` tự khai 6 điều nó KHÔNG nói, gồm *"Nothing here blocks a spawn"*. **Bảng A16 hợp nhất chưa có** (N1 `:163`); máy quét rò rỉ chưa có | **Tử số GĐ-6:** ĐỦ = E-14 (**1**) · NỬA ×4 (E-7, E-10, E-15, E-17) = **2,0** · CHƯA ĐO ×1 (E-8, tính 0 và **khai rõ**) · THIẾU ×11 = 0. > ### 🔢 **GĐ-6 = 3,0 / 17 (18 %) nới · 1 / 17 (6 %) nghiêm ngặt** **Đọc con số này cho đúng:** 18 % **không phải điểm kém** — GĐ-6 là giai đoạn **niêm phong**, theo thiết kế nó chỉ mở khi mọi GĐ khác xong. Con số thấp ở đây là **bằng chứng SE đang tuân OD-2**, không phải bằng chứng SE chậm. Cái đáng chú ý ngược lại: **E-14 đã ĐỦ từ trước** (RC-mark) và **E-7 đã đạt ở một cổng** — tức SE có sẵn hai mảnh của GĐ-6 mà **không phải đi mượn hình thức của hub**. --- ## §7 — VƯỢT KHUNG (cần anh quyết, lane này KHÔNG tự chốt) — **3 khoản** 1. **Chỗ đặt sổ lượt-chạy-đắt** (§4a). Derive được, nhưng đặt ở đâu để **không thành nguồn-đôi** với `runs/` và WAL là quyết định kiến trúc. Cùng lớp rủi ro N1 `:211(c)` nêu cho sổ GĐ-4. 2. **Luật truyền-nguyên-văn ở lane DISPATCH** (§4b). Áp nó nghĩa là **lời anh gõ phải được chép nguyên khối vào prompt của vai đắt**, kèm rào. Điều này **đổi cách anh ra lệnh** (anh phải chấp nhận lời mình đi thẳng, lead không được tóm gọn) ⇒ **anh quyết, không phải lead quyết**. 3. **GĐ-6 điều-kiện-vào-danh-sách trọn-gói-1-commit** (E-10). Đụng roster + chỗ gọi ở **cả hai cửa phiên**. `phu-luc:357` gọi đây là *"luật đắt nhất của giai đoạn"* và cảnh báo **nâng sớm là tự khoá cửa ra của chính mình** — hub đã giẫm thật. **Không chạm trước khi có bản đồ áp dụng.** 🔸 **KHÔNG tính là vượt khung:** vá `spawn-model-audit` (§1). Đó là **sửa lỗi thường**, em-main làm được, không cần anh. Đừng để nó bị đẩy vào hàng chờ owner rồi nằm đó. --- ## §8 — TỔNG KẾT LANE D | Trục | Kết quả | |---|---| | **GĐ-5** | **13,0 / 20** (65 %) nới · **9 / 20** (45 %) nghiêm · hội tụ 3 mẫu số 60–67 % | | **GĐ-6** | **3,0 / 17** (18 %) nới · **1 / 17** (6 %) nghiêm · điều-kiện-vào **chưa đánh giá được** | | **"GĐ-5 gần xong nhất"** | **KHÔNG ĐỨNG** — GĐ-2 (5,5–6/8) ≥ GĐ-5 (5,33/8) trên cùng thước | | **Vượt khung** | **3** | | **Lỗi máy tìm được** | **1 MAJOR** (`spawn-model-audit` mù 17/17 lane phiên hiện tại, vẫn in `0 mismatch` + `TOTAL FLAGS: 0`) | | **Đính chính N1** | 2 (rào-nguyên-văn **có** — N1 bi quan sai · "gần xong nhất" — claim xếp hạng không mẫu số) | | **Đính chính N2** | 0 — F-07b và F-09 đều **xác nhận đúng** | | **Đính chính lệnh lead** | 1 (chiều mù bị viết ngược — xem §1-bis(c)) | | **Đính chính chính tôi** | 1 (con trỏ `:250-253` → `:251-254`) | **Khoản khai `CHƯA ĐO` — có tên, có lệnh, không giấu:** 1. **E-8** bài kiểm ghim tên hay ghim số — cần soi từng cổng roster. 2. Tỉ lệ phiên đi **đường Workflow** ⟂ **đường Agent** trong lịch sử kho (§1-quater). 3. **E-10** vế 3 (chỗ gọi ở cả hai cửa) + vế 4 (tập đăng ký). 4. Tần suất TC-07 — **không tồn tại dụng cụ**, giữ nguyên nhãn chữ của hub. **END sub-n3-lane-d-gd56 — VERDICT: GĐ-5 13,0/20 · GĐ-6 3,0/17 · 3 vượt-khung · 1 MAJOR máy-mù · "gần xong nhất" BÁC.**