# sub-score-count-auditor — S192 bookend @open (2026-08-13)

**Vai:** TẦNG-3 luật chấm điểm đáp-ứng-yêu-cầu (canonical `docs/governance/harness-11-engine.md` PHẦN P, P.3 hàng 3).
**Việc:** kiểm **PHÉP ĐẾM** của tầng-1 + tầng-2. 🔴 **KHÔNG đề xuất điểm khác** — nộp điểm của mình = hệ có 3 phép đếm và 0 người kiểm phép đếm.

## 0. PIN — fail-closed KHÔNG kích hoạt

| đầu vào | trạng thái | nguồn |
|---|---|---|
| TẦNG-1 (lead) | ✅ nhận đích danh trong lệnh | 6 MỤC: `YC-002`(4)·`YC-010`(2)·`YC-013`(2)·`YC-018`(2)·`YC-027`(2)·`YC-031`(3) + khai phương pháp `awk -F'|'` cột 6 |
| TẦNG-2 (`score-counter`) | ✅ nhận đích danh + file | `sub-score-counter-S192.md` (6.460 B) — đọc TRỌN |

⇒ đủ 2 pin, **KHÔNG SKIP**. Không đi tìm "bản mới nhất" của bất kỳ đầu vào nào.

**Nguồn đối chứng của tầng-3** = đúng nguồn đã ký `docs/governance/so-yeu-cau-chu-du-an.md` + luật `harness-11-engine.md` §P + máy `scripts/nhip-no-probe.ps1`. Không đổi nguồn.

**Phép đo nền (chạy lại từ đĩa, không tin lời kể):**

```
31  dòng YC-  (rg '^\| *`?YC-[0-9]{3}')          |  4 dòng ST-/PN-
104 phần tử khi split('\n')  ·  103 LF  ·  0 CR  ·  34.292 B
5   satellite (cột 8 có giá trị): YC-004,005,006 -> YC-002 · YC-010 -> YC-008 · YC-015 -> YC-013
1   dòng VỠ CỘT: YC-028 (8 pipe-field thay vì 10)
```

---

## CÂU 1 — Tầng-1 có tính nhầm dòng satellite `YC-010`? → **CÓ. TẦNG-1 SAI.**

**Luật đếm, verbatim từ đĩa** (`so-yeu-cau-chu-du-an.md:30` — đúng dòng tầng-2 dẫn, tao verify từng chữ):

> 🔴 **LUẬT ĐẾM:** chỉ đếm dòng có `nhắc-lại-của` **TRỐNG**. Dòng có giá trị = cùng một mục, đã tính ở mã gốc.

kèm `:28` định đơn vị: *"Đơn vị đếm là **MỤC = YÊU-CẦU**, không phải **DÒNG**."*
⇒ tầng-2 dẫn `:30` **CHÍNH XÁC**, không phải trích hộ.

**Đo trên đĩa:**

| dòng | mã | cột 6 (số lần) | cột 8 (nhắc-lại-của) |
|---|---|---|---|
| L41 | `YC-008` | **1** | *(trống — là GỐC)* |
| L43 | `YC-010` | **2** | **`YC-008`** ⇒ **SATELLITE** |

`YC-010` mang cột-8 có giá trị ⇒ theo `:30` nó là **lần nhắc lại của `YC-008`**, **CẤM đếm**. Tầng-1 đếm nó.

**Số học khớp tuyệt đối:** tầng-1 (6) = tầng-2 (5) + `YC-010`. Không thừa không thiếu mục nào khác.

**Đây là lỗi PHƯƠNG PHÁP, không phải trượt tay.** Tầng-1 khai dùng `awk -F'|'` lấy **cột 6**. Cột `nhắc-lại-của` là **cột 8**. Phương pháp đó **không bao giờ đọc cột 8** ⇒ về cấu trúc **không thể** áp `:30`. Nó đếm **DÒNG** dưới cái tên **MỤC**.

**Cùng dấu vân tay với S181 — chính cuốn sổ đã chép sẵn bản án** (`sổ:69`):
> *"Lead đếm **3 mục** (đếm theo DÒNG) … đếm-dòng **tái tạo y hệt đáp án LẦN** dưới vỏ MỤC."*

S192 tái phạm **đúng class đó**. Bán kính nhỏ hơn (+1 thay vì +3) **không phải vì phương pháp khá hơn**, mà vì hôm nay chỉ còn **1** satellite lỡ mang số ≥2. Đó là **may**, không phải **đúng**.

🔸 **Khiếm khuyết tiềm ẩn thứ 2 của regex tầng-1 (chưa nổ lượt này):** regex phủ `(YC|ST|PN)`, nhưng **Khối 2 có 6 cột · Khối 3 có 5 cột** — **không khối nào có cột *số lần đã nhắc***. `awk $6` trên `ST-` rơi vào cột *"lý do anh đã lường trước"*, trên `PN-` rơi vào cột *"xử"*. Lượt này không đẻ dương-giả (giá trị là `—` và văn xuôi ⇒ numeric 0), nhưng khung đo **đang đọc một cột không tồn tại ở 2/3 khối**. Vẫn là may, không phải đúng.

---

## CÂU 2 — Mẫu số 26 (tầng-2) vs 25 (máy): ai đúng? dòng nào KHÔNG TÁCH ĐƯỢC CỘT?

### (a) Dòng vỡ = **`YC-028`** (dòng vật lý 58-59)

Nguyên nhân đo được: ô chứa đường dẫn `gitea\data\repo-archive`. Ký tự `\r` của `\repo-archive` **bị nuốt thành một newline THẬT** giữa ô:

```
L58 kết bằng:  ... đã xóa cache `gitea\data
L59 mở đầu:    epo-archive` **16,49GB** (cache chính chủ Gitea ...)
```

Đo byte: **0 CR** trong toàn file (không phải lỗi CRLF) · 103 LF · `split('\n')` tách thật · chữ `r` **mất hẳn**. ⇒ hàng bảng gãy đôi, chỉ còn **8 pipe-field** thay vì 10 ⇒ **cột 8 (`nhắc-lại-của`) KHÔNG TỒN TẠI** cho hàng này.

### (b) Máy không hề "khai 25 là mẫu số"

`scripts/nhip-no-probe.ps1` đọc được, logic verify:

| dòng | code | tác dụng |
|---|---|---|
| `:248` | `if ($c.Count -lt 9) { $bad++; continue }` | hàng vỡ ⇒ `bad=1`, **loại khỏi mọi phép đếm** |
| `:254` | `if (($c[8] ...) -ne '') { $dup++; continue }` | satellite ⇒ `dup=5` |
| `:265` | in `(muc {tot}, gop {dup} dong nhac-lai)` | `tot=25` |
| `:266` | `if ($bad -gt 0) { += " / {0} dong KHONG TACH DUOC COT" }` | **in phần dư ra ngoài, cố ý** |

Cộng lại: **25 + 5 + 1 = 31** ✓ khớp đúng số dòng `YC-` đo được.

Comment `:231-232` của chính script nói thẳng ý đồ: *"Dong khong tach duoc cot thi **DEM RIENG va IN RA, khong bo im lang**"*.

### (c) PHÁN

**Tầng-2 (26) ĐÚNG cho mẫu số MỤC. Máy (25) KHÔNG phải một khai báo đối lập.** `YC-028` là một yêu-cầu THẬT của chủ dự án, **không** phải satellite ⇒ theo đơn vị MỤC nó **thuộc mẫu số**. Máy không đọc được nó nên **tách ra in riêng** — `25 + 1 (in-lệch-riêng) = 26`. Hai bên **khớp nhau**, không ai sai. Cái SAI duy nhất có thể xảy ra ở đây là **đọc `25` như mẫu số hoàn chỉnh** — và máy được thiết kế đúng để chặn cách đọc đó bằng cái đuôi cảnh báo.

### (d) Có làm lệch KẾT QUẢ không? → **KHÔNG.**

`YC-028` cột 6 = **1** ⇒ dưới ngưỡng ≥2 theo mọi cách đọc, và không phải satellite. **Tử số = 5 ở cả hai đường.**

🔴 **Nhưng phải khai một rủi ro TIỀM ẨN, vì nó là chuyện của lần sau:** ở `:248` máy `continue` **TRƯỚC** phép thử ≥2 ở `:261`. Nếu một ngày hàng vỡ cột lại mang số ≥2, **máy sẽ ÂM THẦM đếm hụt TỬ SỐ**, và cảnh báo duy nhất là cái đuôi `1 dòng KHÔNG TÁCH ĐƯỢC CỘT`. ⇒ **cái đuôi đó là bộ phận chịu lực, không phải trang trí.** Cấm nén/giấu nó; và nên vá dòng nguồn.

🔸 Cùng cơ chế, ngoài phạm vi điểm nhưng lead nên biết: `treo 7` cũng **không** phải số yêu-cầu đang mở. `YC-028` rớt vì vỡ cột; `YC-031` rớt vì `:259` so **bằng tuyệt đối** (`-eq 'mở'`) nên `**mở** *(vá GỐC đã ship…)*` trượt. Đừng đọc `treo 7` thành "còn 7 việc mở".

---

## CÂU 3 — Claim lỗi-dữ-liệu của tầng-2: kiểm trên đĩa + phân loại

### (a) Claim ĐÚNG 4/4 — đo lại từ đĩa, không tin lời kể

| mã | cột 6 | cột 8 | khớp claim? |
|---|---|---|---|
| `YC-004` (L37) | `—` | `YC-002` | ✅ satellite để trống |
| `YC-005` (L38) | `—` | `YC-002` | ✅ |
| `YC-006` (L39) | `—` | `YC-002` | ✅ |
| `YC-015` (L48) | `—` | `YC-013` | ✅ |
| **`YC-010`** (L43) | **2** | `YC-008` | 🔴 **satellite DUY NHẤT mang số** |
| `YC-008` (L41) | **1** | *(gốc)* | ✅ gốc đọc 1 |

⇒ `YC-010` **lệch khuôn** so với 4 satellite anh em. Tầng-2 mô tả chính xác.

### (b) Phân loại: **lỗi DỮ LIỆU NGUỒN**, KHÔNG phải lỗi phép đếm

Ô được điền lệch quy ước trong một nguồn ĐÃ KÝ. Không có phép tính nào sai ở đây. **Nhưng** nó chính là **cái bẫy** biến một người đếm-theo-DÒNG thành một con số sai — và nó **đã bắt trúng tầng-1** ở CÂU 1.

### (c) Cách xử của tầng-2 là **ĐÚNG** — và đúng đảo chiều với lỗi của chính nó @S189

@S189 tầng-2 thấy đúng ô này rồi **đếm trên bản sổ đã-sửa-trong-đầu** ⇒ bị bác. @S192 nó: giữ luật → đếm ô **đã viết** (5) → dựng cờ lỗi-dữ-liệu **RIÊNG** → tự cấm mình "sửa cho đúng bản chất" → **không** đụng vào sổ giữa lượt đếm. Đó đúng bằng bài thuốc kê sau S189. **Ghi công.**

Kèm một đính chính tự-giác đáng ghi công nữa: tầng-2 khai memory của chính nó (*"chủ sổ đã lật ô rồi 2 tầng đếm lại"*) **KHÔNG được đĩa xác nhận**. Tao đo lại hôm nay: ô **vẫn nguyên** (gốc 1 / satellite 2). Tầng-2 lấy đĩa làm chuẩn — **đúng**.

### (d) 🔴 ĐIỂM SẮC NHẤT CỦA LƯỢT NÀY — **hai con số 6 KHÔNG phải cùng một con số 6**

Tầng-2 §3 (`:49`) nêu một mệnh đề **có điều kiện, không nhận**: *nếu* chủ sổ xác nhận ý định thì ô gốc `YC-008` phải đọc **2**, và con số thành **6 mục, thêm `YC-008`**. Tầng-1 cũng nói **6**.

**CẤM hoà giải hai số này.**

| | thành phần thứ 6 | tư cách | trạng thái nguồn |
|---|---|---|---|
| tầng-1 | **`YC-010`** | **satellite — KHÔNG phải một mục** | sổ **hôm nay** |
| tầng-2 (giả định, không nhận) | **`YC-008`** | **mục thật** | một trạng thái sổ **CHƯA TỒN TẠI** |

Khác **thành viên**, khác **cơ chế**, và một bên **có điều kiện + chưa được nhận**. Ai nói *"hai bên cùng ra 6, vậy tầng-1 đúng"* thì đã bị **một trùng hợp số học** đánh lừa — và đó chính là hình dạng của một cuộc hoà giải giả, thứ sẽ **giặt sạch một lỗi phương pháp thành một sự đồng thuận**. Nếu `YC-010` thực sự là một mục thì **mẫu số cũng phải đổi** — tầng-1 không hề động tới mẫu số, thêm một bằng chứng nữa rằng số 6 của nó tới từ đếm-dòng chứ không từ một cách đọc nguồn nào khác.

---

## CÂU 4 — Soi đủ 4 lỗi đếm điển hình, CẢ HAI TẦNG

| # | lỗi | TẦNG-1 | TẦNG-2 |
|---|---|---|---|
| 1 | **trừ theo LẦN thay vì theo MỤC** | 🔴 **DÍNH** — `awk` cột 6, không đọc cột 8 ⇒ cấu trúc không áp nổi `:30`; `YC-010` (lần nhắc của `YC-008`) bị tính thành một mục riêng | ✅ SẠCH — áp `:30`, liệt đủ 5 satellite, trình phép `a − b = 31 − 5` |
| 2 | **đổi nguồn đếm khỏi sổ đã ký** | ✅ SẠCH — đếm trên `so-yeu-cau-chu-du-an.md` | ✅ SẠCH — khai nguồn ở header; 2 vật mở thêm là **ĐỊNH NGHĨA LUẬT** (`harness-11-engine.md` §P), không phải nguồn đếm; 2 lệnh `rg` chạy trên **chính cuốn sổ** |
| 3 | **tính cả mục nhắc đúng 1 lần** (ngưỡng ≥2) | ✅ SẠCH — 6 mục đều ≥2 (4·2·2·2·2·3), 0 mục =1 | ✅ SẠCH — 5 mục đều ≥2; **`YC-008` (=1) bị loại ĐÚNG** dù ô `YC-010` dụ rất mạnh |
| 4 | **in điểm khi sổ còn thưa** | ⬜ **KHÔNG ĐO ĐƯỢC TỪ PIN** — pin chỉ giao *"6 MỤC"*, không chứa con điểm nào. Nếu lead có in điểm ở nơi khác thì **nằm ngoài pin**; tao **fail-closed, không đi tìm** | ✅ SẠCH — in **ĐẾM** (`5 / 26`), **không** in ĐIỂM, **không** tính `10−5`; khai rõ điểm cuối = tầng-4 |

🔸 Thêm cho tầng-1, khai đúng nấc: trong pin, tầng-1 nộp **tử số không kèm mẫu số**. P.1 chỉ cần tử số nên đây **không** là lỗi đếm; nhưng nghĩa là **trục mẫu số của tầng-1 tao không có gì để kiểm**. Ghi ra để không ai đọc khoảng trống đó thành "đã kiểm, sạch".

---

## CÂU 5 — Tầng-2 từ chối lượng-hoá vị-từ P.7: **HÀNH VI ĐÚNG**, không phải né việc

**Luật, verify verbatim** `harness-11-engine.md:541-545` (P.7): cấm in điểm khi *"nguồn chưa đủ dày"*, và **không lượng-hoá** ngưỡng. P.3 hàng 2 giao tầng-2 đúng một việc: *"đọc sổ, **tự đếm lại**"*. Vị-từ "đủ dày" **không nằm trong tay tầng-2**; điểm cuối là của tầng-4.

**5 căn cứ nói đây là ĐÚNG-LÀN, không phải né:**

1. **Đúng mandate.** Nó giao đủ thứ P.3 đòi (một phép đếm tái lập được) và không giao thứ P.3 không giao cho nó.
2. **Vai tự chế số cho một vị-từ chưa lượng-hoá = lập pháp, không phải đếm.** Đó đúng là lỗi @S189 (`s189-adjudication-doctrine.md` §2).
3. **Nó gọi tên và TỪ CHỐI đúng nước đi vòng tròn** (`:64`): *"đếm ra khác 0 nên máy không suy biến"* — van RỖNG, đọc KẾT QUẢ công thức để quyết có được in kết quả không. Tự chối bỏ lỗi cũ của mình là **ngược hẳn** với né việc.
4. **4 dữ-kiện đều là thuộc tính PHÍA NGUỒN** (ngày · nhãn phiên · khối có dữ liệu · độ rải), **đo được mà không nhìn output của chính nó** ⇒ không có vòng lặp tự-quy-chiếu.
5. **Nó phân bổ thẩm quyền đúng** (`:65`): phán "đủ dày" là quyền chủ dự án / cần một vị-từ có số; và **nhận trước** rằng nếu tầng-4 thấy chưa đủ dày thì kết luận đúng là `KHÔNG ĐO ĐƯỢC`, **con số 5 vẫn đứng như một phép đếm**. Nộp bằng chứng + từ chối phán = đúng định nghĩa đứng trong làn.

### 🔸 Hai caveat KHÔNG lật phán quyết (đều không phải lỗi ĐẾM)

**(a) P.7 có HAI khoá — §4 chỉ nói một.** Verify trên đĩa **hôm nay**, `docs/governance/adap-upgrade-pack-tracking.md:68` (và `:50`):

> *"**A8 — tỉ lệ phủ sóng.** … Chừng nào chưa có tỉ lệ này thì khối chấm điểm **phải in "KHÔNG ĐO ĐƯỢC"** và cấm in điểm."*

Tầng-2 **không hề khai** *"P.7 là tiêu chí duy nhất"* (nên không phạm thẳng luật S189 §3), nhưng §4 khung toàn bộ chuyện "đủ dày" quanh P.7 và **không nhắc A8**. Người chỉ đọc §4 sẽ tưởng chỉ có một khoá. **Muốn gỡ mặc định phải gỡ CẢ HAI, và người gỡ là chủ dự án.**

**(b) Cả 4 dữ-kiện đều là TỬ SỐ.** 7 ngày · ~11 nhãn phiên · 3/3 khối · 5 mục rải 5 phiên — tất cả đếm **cái sổ đã BẮT ĐƯỢC**. A8 hỏi **MẪU SỐ**: *anh nói bao nhiêu tin, sổ bắt được mấy phần*. Tử số phình lên **im lặng** về một tỉ lệ chưa có mẫu số. ⇒ 4 dữ-kiện dù trung thực vẫn **về cấu trúc không trả lời được** câu "đủ dày". Điều này **củng cố** chứ không làm yếu việc tầng-2 từ chối tự tuyên "đủ dày".

**(c) Một nhược điểm câu chữ (không phải lỗi đếm):** tiêu đề §4 viết *"vì sao lượt này KHÔNG trả `KHÔNG ĐO ĐƯỢC`"* — nghe như tầng-2 đang **quyết** cái vị-từ mà 12 dòng sau nó **trả lại đúng cho tầng-4**. Ruột đúng, vỏ hớ. Khuyến nghị lần sau: *"4 dữ-kiện phía nguồn nộp cho tầng-4 xét vị-từ P.7 + A8"*.

---

## PHÁN QUYẾT

```
SCORE-T3: SAI — 1 loi dem
  tang-1: SAI  (1 loi — tinh dong satellite YC-010 = dem theo LAN duoi vo MUC)
  tang-2: DUNG (0 loi dem)
```

🔴 **Tầng-3 KHÔNG nộp một điểm khác, KHÔNG nộp một con số khác.** Chỉ nói: phép đếm của tầng-1 **sai ở bước lọc satellite** (không đọc cột 8). **Tầng-1 đếm lại** bằng phương pháp có đọc cột `nhắc-lại-của`.

---

## ĐỀ XUẤT DÒNG LEDGER — **propose-only, LEAD GHI, tầng-3 không tự ghi**

Đích: `docs/governance/error-ledger.md`, khối *"RCA entries (blameless — newest on top)"*. Số hiệu đề nghị **E-017** (entry trên cùng hiện là E-016 — lead chốt lại số khi ghi).

```markdown
### E-017 — P.5 CHẤM SAI: TẦNG-1 đếm dòng satellite `YC-010` thành một mục (S192, tầng-3 bắt, tầng-2 độc lập đã loại đúng)

- **rule (P.5 / PHẦN P):** đơn vị trừ là **MỤC**, không phải **LẦN** (`harness-11-engine.md:506`);
  luật lọc ở nguồn đã ký `so-yeu-cau-chu-du-an.md:30` — *"chỉ đếm dòng có `nhắc-lại-của` TRỐNG"*.
- **tầng nào sai:** 🔴 **TẦNG-1 (lead)** — nhãn ***chấm sai***. Tầng-2 (`score-counter`) 0 lỗi đếm.
- **what:** tầng-1 ra **6 mục** gồm `YC-010`(2). `YC-010` có cột `nhắc-lại-của` = `YC-008` ⇒ là **lần nhắc
  lại** của `YC-008`, luật CẤM đếm. Tầng-2 độc lập ra **5 mục**, loại đúng `YC-010`. 6 = 5 + `YC-010`.
- **5-why root:** (1) tầng-1 dùng `awk -F'|'` lấy **cột 6** → (2) cột `nhắc-lại-của` là **cột 8**, phương pháp
  **không bao giờ đọc tới** → (3) ⇒ về cấu trúc **không áp nổi** luật `:30` → (4) nó đếm **DÒNG** dưới tên
  **MỤC** → (5) 🔴 gốc: **chọn phép đo theo cột tiện lấy, không theo đơn vị mà luật định nghĩa** — cùng họ
  E-010 (đo bằng công cụ tiện tay) và E-012 (verify từ góc nhìn người-trong-nhà).
- **tái phạm:** class này **đã được chính cuốn sổ chép sẵn bản án** ở `sổ:69` (S181: lead đếm 3 theo DÒNG).
  S192 = **strike 2** cùng class, cùng vai. Bán kính nhỏ hơn chỉ vì hôm nay còn đúng 1 satellite mang số ≥2 —
  **may, không phải đúng**.
- **fix:** (a) **tầng-1 đếm lại** bằng phương pháp có đọc cột 8 (bỏ dòng cột-8 khác rỗng) — tầng-3 **KHÔNG**
  nộp số thay; (b) khung đo phải giới hạn ở **Khối 1**: `ST-`/`PN-` không có cột *số lần đã nhắc*
  (6 và 5 cột), `awk $6` ở đó rơi vào cột khác nghĩa hoàn toàn.
- **prevention/guard:** máy `scripts/nhip-no-probe.ps1:254` **đã** lọc cột 8 đúng ⇒ luật đã có bản chạy được;
  đề xuất tầng-1 **đối chiếu với máy trước khi nộp**, thay vì dựng phép trích một lần dùng.
- **2 lỗi DỮ LIỆU trong nguồn đã ký (KHÔNG phải lỗi đếm — chỉ chủ sổ lật, đội không tự sửa):**
  (i) `YC-010` là satellite **duy nhất** mang số (=2) trong khi gốc `YC-008` đọc 1 — chính cái ô sinh ra bẫy này;
  (ii) `YC-028` (dòng 58-59) **vỡ cột**: `\r` trong `gitea\data\repo-archive` bị nuốt thành newline thật
  (0 CR trong file, chữ `r` mất) ⇒ hàng còn 8 pipe-field, máy `:248` loại ⇒ mẫu số máy in 25 + đuôi
  `1 dòng KHÔNG TÁCH ĐƯỢC CỘT`. **Cả 2 KHÔNG đổi con số lượt này** (`YC-028` = 1, dưới ngưỡng).
  🔴 Rủi ro lần sau: `:248` `continue` **trước** phép thử ≥2 ở `:261` ⇒ hàng vỡ mà mang ≥2 sẽ làm máy
  **đếm hụt tử số IM LẶNG**; cái đuôi cảnh báo là **bộ phận chịu lực**, cấm nén đi.
- **tags:** [cham-sai / tang-1-lead / so-yeu-cau-chu-du-an.md:30 · dem-theo-DONG-duoi-vo-MUC ·
  class_repeat S181->S192 strike-2 · nguon-loi-du-lieu YC-010 + YC-028]
```

🔴 **CẤM nhét nhãn *chấm sai* vào `lead_self_audit.flag_classes`** — tập **ĐÃ NIÊM PHONG** theo P3=B (khoá `_sealed_P3B_S181`); `h24-signal-write.ps1` sẽ **từ chối bằng exit 2**. Chỉ chủ dự án mở tập. Đường ghi duy nhất là `error-ledger.md` ở trên.

## Việc CHỦ SỔ / CHỦ DỰ ÁN (đội không tự làm — sổ là nguồn đã ký)

1. Lật ô `YC-010` / `YC-008` cho khớp ý định thật → **rồi cả 2 tầng đếm lại**.
2. Vá dòng `YC-028` về **một dòng vật lý** (thoát `\r` hoặc đổi sang `/`) — sửa hình thức, không đổi số.
3. Vị-từ P.7 *"sổ đủ dày"* + khoá A8 *"tỉ lệ phủ sóng"* — **cả hai còn khoá**, chỉ chủ dự án gỡ.

## Cái tầng-3 KHÔNG làm

- ❌ Không đề xuất một điểm khác, không nộp một con số khác — kể cả khi số đúng nhìn rất rõ.
- ❌ Không tự ghi `error-ledger.md` (propose-only lượt này) · không chạm `flag_classes` đã niêm phong.
- ❌ Không sửa cuốn sổ, không sửa `nhip-no-probe.ps1`.
- ❌ Không đi tìm "bản mới nhất" của bất kỳ pin nào — cả 2 pin đã nhận đích danh.

END sub-score-count-auditor-S192 — VERDICT=SAI · tầng-1 SAI (1 lỗi đếm) · tầng-2 ĐÚNG (0 lỗi đếm) · 0 điểm do tầng-3 nộp
