Files
2026-08-07 14:44:17 +07:00

38 KiB
Raw Permalink Blame History

N3 — LANE E: TRỤC BỆNH (9 lớp lỗi xuyên suốt × 12 triệu chứng TC)

  • lane: E / 6 — lăng kính CHIỀU NGANG, cắt qua mọi GĐ. 4 lane A/B/C/D soi dọc từng GĐ ⇒ mù chỗ nối; lane này soi bệnh nào tái diễn qua nhiều GĐwave nào thật sự chữa bệnh nào.
  • nguồn gốc: broadcasts/inbox/ai_infra/2026-08-04-Governance-upgrade-pack-phased-thu-chinh.md:70-95 (bảng 12 TC + 4 dòng chú thích cố-ý-để-chữ) · …-phu-luc-spec-pitfall.md:40-60 (9 lớp lỗi, toàn văn).
  • đã có: sub-invest-fitmap-S180.md §2 §3 · sub-review-n2-S180.md · run.md (bảng lead tự soi 9 lớp — kiểm lại, không gật).
  • luật đo của lane: KHÔNG ĐO ĐƯỢC hợp lệ và được khuyến khích; mọi 0-hit kèm control-dương; hai số lệch ⇒ hỏi "đếm CÁI GÌ" trước khi hỏi "ai sai".
  • read-only, propose-only. Ghi đĩa trong lúc làm, không dồn cuối.

§0 — Ghi trước khi đo (để lượt sau đối chứng được ý định)

Bốn ca lead khai "giẫm NGAY HÔM NAY" là bốn ca lead có lợi khi nó đúng (chúng chống lưng kết luận "9/9 lớp SE đều có ca thật ⇒ PROJECT-FIT cao"). Vì vậy thứ tự đo của lane này là: đo 4 ca đó trước, bằng lệnh chạy được, với control-dương, rồi mới đi tiếp phần còn lại. Nếu bốn ca đó đứng thì kết luận của lead mạnh hơn; nếu đổ thì đổ đúng chỗ đắt nhất.

Hai ca MỚI phát sinh trong chính chuỗi N1→N2 cũng được soi ở đây (đề bài giao): (a) N1 hạ cánh 7.049 B / 6-của-9-mục placeholder sau 202K token; (b) N2 xử vụ số-lệch bằng cách tuyên một bên thắng trong khi thật ra là lệch ĐƠN VỊ.


§1 — 9 LỚP LỖI × SE (kiểm lại bảng lead, không gật theo)

Bảng tổng — verdict của lane E trên từng dòng lead

LỚP lead nói lane E kết luận ghi chú 1 dòng
1 quên ghi vật chứng lúc mở giẫm GIỮ #53-family; lane này bổ sung ca thứ 10 = chính tôi
2 thợ rèn không có dao ×3 hôm nay GIỮ 3/3 — và nặng hơn lead khai mỗi ca có thêm tầng lỗi lead chưa đếm (dưới)
3 chấm chéo lần-1 KHÔNG ĐẠT GIỮ ring1 32Đ/6T · N2 PASS_WITH_FIXES 5 MAJOR
4 exit-0 ≠ không cờ GIỮ governance-detectors.ps1 tự khai "Exit 0 always"
5 số chép tay trôi GIỮ STATUS:8 mega-line
6 neo số dòng chết ngay khi sinh 1 ca GIỮ + LEAD SÓT 2 CA 3 neo cùng lệch +2; 1 neo chết ngay tại commit sinh ra nó
7 tuyên gấp-đầy-đủ thân mục lục GIỮ N1 7.049 B; lane E bổ sung: guard byte mù
8 nhãn đã-đóng hẹp hơn phạm vi hôm nay CHƯA ĐO — cần awk 'NR>=48&&NR<=55' docs/HANDOFF.md đo ở §1.4
9 cưỡng chế tuyên mà chưa có máy 2 món (không 3) CHƯA ĐO — cần grep tools-whitelist + session_ctx_kb đo ở §1.5

§1.1 — LỚP-6 (neo số dòng) — lead ĐÚNG 1/3, SÓT 2

Lead khai đúng một neo. Lane E đo cả file docs/STATUS.md và tìm ba neo tự-trỏ, cả ba lệch đúng +2:

# neo ở nội dung neo đích THẬT bây giờ lệch ai tìm
N-1 docs/STATUS.md:8 bundle prod → canonical ở `:479` Bundle hash live ở :481 +2 lead
N-2 docs/STATUS.md:8 Policies/Menu keys — canonical bảng `:470-471` Policies :472 · Menu keys :473 +2 LANE E (lead sót)
N-3 docs/STATUS.md:463 đã re-ground 2 lần SAU S168 (`:474` S170 · `:476` +S176) S170 ở :476 · S176 ở :478 +2 LANE E (lead sót)

Lệnh tái lập (chạy được, đã chạy):

python -c "import io,re; L=io.open('docs/STATUS.md',encoding='utf-8').read().split('\n');
[print(n,repr(s[max(0,m.start()-90):m.end()+10])) for n,s in enumerate(L,1) for m in re.finditer(r':(\d{2,4})(-(\d{2,4}))?\`',s)]"

Đối chứng vị trí thật: awk 'NR>=467 && NR<=482' docs/STATUS.md → 472 = | Policies |, 473 = | Menu keys |, 476 = | User memory | (chứa S170), 478 = | Sub-agents | (chứa S176), 481 = **Bundle hash live (prod):**.

🔴 Phát hiện nặng nhất của mục này — N-3 CHẾT NGAY TẠI COMMIT SINH RA NÓ. git log -S':474 S170' -- docs/STATUS.md → commit 57e672f (S179 closeout). Mở đúng commit đó:

git show 57e672f:docs/STATUS.md  →  S170 ở dòng 476, S176 ở dòng 478

Tức tại chính thời điểm viết, neo :474/:476 đã trỏ sai. Hub viết "neo số dòng chết ngay khi sinh"; ở SE ca này chết đúng lúc sinh, không cần đợi ai chèn dòng. Nặng gấp đôi: câu chứa nó là ghi-chú của lead-stale-auditor FLAG-6 đang tự khen "chính dòng này chép ra cái luật mà nó vi phạm" — rồi vi phạm thêm một luật nữa ngay trong câu đó.

Đối chiếu N-1 và N-2: cả hai đúng lúc sinh, chết sau.

  • git log -S'canonical ở :479'50e6d8c; mở ra: bundle ở dòng 479 ✔ đúng lúc sinh.
  • git log -S'canonical bảng :470-471'88e7ecf; mở ra: Policies 470, Menu keys 471 ✔ đúng lúc sinh.

Hai chế độ chết khác nhau trong cùng một file: drift-sau-khi-sinh (N-1, N-2) và born-dead (N-3). Thuốc khác nhau: loại 1 cần neo-bằng-chuỗi; loại 2 cần kiểm tại chỗ lúc viết (vị-từ máy: mở file, đọc dòng, so nội dung).

🔴 Vòng ngoài — LỚP-6 ăn thịt thuốc chữa LỚP-5. Luật B1 của SE ("KHÔNG chép số, trỏ canonical") là thuốc cho LỚP-5. Ba neo trên chính là B1 đang thi hành, và cả ba đều hỏng vì được cài bằng số dòng. Tức: thuốc chữa LỚP-5 được xây trên đúng cái bệnh LỚP-6. Đây là LỚP-2 ở cấp học thuyết, không phải cấp một vai. Đề xuất N4: wave nào đụng B1 phải đổi hình thức neo (chuỗi tìm được / tên row) chứ không chỉ vá 3 con số.


§1.2 — LỚP-2 ca (a) harvest-curator F-05 — GIỮ, ĐÚNG NGUYÊN VĂN

  • Vết ở runs/2026-08-07-S180-bookend-open/sub-harvest-curator-open-S180.md:23-26: entry S173 "Corruption 24 hit/11 file"baseline giao không khai ĐƠN-VỊ; đo lại grep -rc (DÒNG) = 22/11 · grep -ro | wc -l (LẦN) = 24/11.
  • Bài học chống đúng bẫy đó nằm ở runs/2026-08-01-S168-bookend-close/sub-harvest-curator-close-S168.md (29.299 B), dòng 269273, nguyên văn: "baseline chuyển giao PHẢI ghi kèm đơn-vị: 22 dòng / 24 lần / 11 file".
  • File đó chưa về nhà (nợ F-01 của chính vai) ⇒ vai đi lại đúng bẫy 6 phiên sau.
  • 🔸 Vệ sinh thước — sắc thái tôi phải khai: grep -c "S168" .claude/agent-memory/harvest-curator/MEMORY.md = 2 (control-dương grep -c "S17" = 2, thước sống). Hai hit đó là mention nằm trong entry S179, không phải entry S168sub-ring1-audit-open-S180.md:13 đã đo độc lập: 4 marker = 2/5/2/2 ở NGUỒN, 0/0/0/0 ở đích. ⇒ "chưa harvest" đúng ở cấp entry, và ai đo bằng grep -c "S168" một mình sẽ đọc nhầm thành "đã harvest". Chính là bẫy đơn-vị lần thứ hai trong cùng một ca — lần này là đơn-vị mention ⟂ entry.

§1.3 — LỚP-2 ca (b) lead-stale-auditor.mdGIỮ, và nặng hơn lead khai (3 tầng, không 1)

Lead chỉ nêu :45. Đo thật, dòng 45 mang ba lỗi chồng nhau, và có tầng thứ tư ở dòng 41:

tầng nội dung đo
T1 stale-count ví dụ ghi canonical "= 54" canonical THẬT STATUS.md:473 = 113
T2 neo chết trỏ STATUS.md:19 dòng 19 hiện là đoạn "Vòng kiểm chặn lead 3 lần: D-4…"không liên quan menu key
T3 tiền-đề bốc hơi ví dụ nói "CLAUDE.md ghi ~60 menu key" grep -rn "60 menu key" CLAUDE.md docs/CLAUDE.md = 0 hit; control-dương grep -inc "menu" CLAUDE.md = 4 (thước sống), grep -inE "menu.key" CLAUDE.md = 1 hit ở :62 nhưng là menu-key KeHoachKyKet, không có số
T4 (dòng 41) "Gặp thứ không xếp được vào 5 class dưới" + bảng :45-495 hàng enum thật memory-budget.json lead_self_audit.flag_classes = 12 phần tử = 6 view-* + 6 gap-* ⇒ thiếu view-claim-broader-than-sample

T4 nặng hơn T1-T3 vì T1-T3 nằm ở cột "Ví-dụ SE" (minh hoạ, có thể là ca lịch sử), còn T4 là câu lệnh ràng buộc ("CẤM tự chế class") — sub đọc persona sẽ thấy json có 6 mà bảng có 5, và không có luật nào bảo phải tin bên nào.

§1.4 — LỚP-2 ca (c) ring2-audit.md:4 "5 class" — GIỮ

  • ring2-audit.md:4 nguyên văn: "ĐỌC OUTPUT của lead-stale-auditor (view LỆCH source, 5 class view-*) + lead-gap-auditor (cái BỊ THIẾU, 6 class gap-*)".
  • Đo enum: view-* = 6 (stale-count · stale-status · stale-header · stale-role-desc · residual-asym · claim-broader-than-sample) · gap-* = 6 ✔. ⇒ vế gap ĐÚNG, vế view SAI — lệch bất-đối-xứng trong cùng một câu.
  • Class thứ 6 vào enum @S172 theo owner (memory-budget.json:190 _class_added_S172, slot 68). ⇒ drift sống ≥5 phiên.
  • 🔴 Bổ sung lane E — drift này đã bị NHÌN THẤY rồi ĐI VÒNG chứ không vá: runs/2026-08-05-S173-bookend-open/sub-lead-gap-open-S173.md:10 viết "12 class (5 view-* = vai-stale · 6 gap-* = vai-GAP · +1 view-claim-broader-than-sample mới)" — công thức 5+6+1 là cách kể để khỏi phải sửa persona. Đây là mẫu Goodhart: rời tập-đo (đổi hình dạng cách đếm thay vì vá nguồn). Wave nào chạm enum phải vá cả 2 persona, không chỉ ring2.

§1.5 — LỚP-8 (nhãn "đã đóng" hẹp hơn phạm vi) — GIỮ, và lỗ THỦNG ĐÃ TO GẤP ĐÔI SAU KHI ĐÓNG

Lead khai: slot (70) ~~ĐÓNG @S179~~docs/HANDOFF.md:50 mà rider lỗi máy H24-2 ở :51 còn sống. Đúng — nhưng lead khai NHẸ hơn sự thật.

(1) Nhãn đóng, có thật: docs/HANDOFF.md:50 = "(70) Tách 2 sổ đếm H24 — trung thực đang XOÁ streak ĐÓNG @S179", đóng dựa trên bằng chứng đĩa scripts/h24-signal-write.ps1 mang slot 70 ở 3 chỗ (:66 :164 :247).

(2) Rider ở :51 mô tả một lỗi MÁY KHÁC, không nằm trong phạm vi cái được đóng: detector H24-2 dựng segment từ marks[0] ⇒ mọi thứ nằm TRÊN marker đầu tiên không bao giờ được đọc.

(3) Lỗi đó CÒN SỐNG trong mã, đo được — scripts/governance-detectors.ps1:892-897:

$marks = [regex]::Matches($raw, '(?m)^\*\*(?:[^\x00-\x7F]+\s*)?NEXT\s+(?:anh|em)\b')
$segs  = @()
    $start = $marks[$i].Index                      # <-- segment DAU bat dau o marks[0]
    $end   = if ($i+1 -lt $marks.Count) { $marks[$i+1].Index } else { $raw.Length }
    $segs += $raw.Substring($start, $end - $start) # <-- phan TREN marks[0] boc hoi

(4) Đo LỖ THỦNG HÔM NAY (HEAD 55894a0) — tái lập bằng CHÍNH regex của detector:

đại lượng rider khai @S179 đo lại @S180 (lane E)
dòng marker đầu tiên khớp regex :90 :172
vùng KHÔNG BAO GIỜ ĐỌC L1-89 L1-171 (trên tổng 572 dòng = 30% đầu file)
số slug carry bị nuốt 12 25 (trên tổng 54 key phân biệt = 46%)
control-dương [carry: xuất hiện 289 lần trong file ⇒ thước sống, 0-hit không do regex chết

Sau khi dán nhãn ĐÓNG, lỗ thủng KHÔNG đứng yên — nó to gấp đôi. Đúng chữ hub: "hai phạm vi lệch nhau là đường thoát, và đường thoát thì sẽ có người đi qua."

🔴 Đòn hồi quy đẹp nhất — trong 25 key bị nuốt CÓ tools-whitelist-no-teeth. Cỗ máy đo tuổi carry không nhìn thấy chính cái carry ghi rằng "có cưỡng chế được tuyên mà không có răng". LỚP-2 ở cấp MÁY, không phải cấp vai. Trong 25 key bị nuốt còn có harvest-no-s168-s171 ⇒ nợ harvest ở §1.2 cũng nằm trong vùng mù.

25 key bị nuốt (đủ danh sách, đo được): acceptance-runtime-khkk · account-trung · adap-apply-2-thu · binh-le-decision · bvaau · ctx-t9-dogfood · ctx-verifier-no-self-append · e7-cot-chet-khkk · endline-sub-md · harvest-no-s168-s171 · harvest-orphan-s159-tongquan · hmw-subfile-index-collision · hmw-width-vs-roster · mind-tran-nen-moi-cua · orphan-retro-harvest-s159 · pe-phanquyen · ring5-audit-gap · synthesis-roll-s159-s160 · tiep-3ter-seed-unwired · tiep-reload-underfill · tools-whitelist-no-teeth · tra-bui-relogin · uat-s117 · uat-s133-budget-freeze · uat-s134-luyke.

🔸 Sắc thái phải khai (bẫy thước): regex đòi ^\*\* (đậm, đầu dòng). Marker ### 🔵 NEXT em @S179HANDOFF:29heading ###, KHÔNG khớp ⇒ ai đo bằng grep -n "NEXT em" sẽ ra :29 rồi kết luận lỗ chỉ 28 dòng — sai 6 lần. Phải đo bằng chính regex của detector (đúng bài học feedback_faultinjection_proves_teeth). Con số đúng là :172.

§1.6 — LỚP-9 (cưỡng chế tuyên mà chưa có máy) — LEAD SAI THÊM MỘT MÓN: 2/3 ĐỔ, KHÔNG PHẢI 1/3

Lead đã tự hạ 3 → 2 món sau khi N1 bác pull_warn_days. Lane E đo nốt 2 món còn lại, đúng chỗ N1 tự khai "chưa đo lại 2 món kia":

món lead giữ lane E đo verdict
session_ctx_kb 0-reader @S146 .claude/agent-memory/memory-budget.json:8 _session_ctx_kb_reader = "🔄 GHOST-WIRE DONG @S153 2026-07-26 (adopt 0df10df4 T7): reader THAT dau tien = scripts/session_ctx.py". Kiểm mã: scripts/session_ctx.py:528 "aux-8: the FIRST REAL READER of session_ctx_kb (closes the H18 ghost-wire)" + :563 caps = _require_budget_kb(repo_root, ['session_ctx_kb']) = fail-loud require, không phải đọc cho vui. Thêm 2 consumer: .claude/commands/pause.md:55 ("Vượt session_ctx_kb ⇒ distill") · session-start.md:120 🔴 BÁC — stale ~27 phiên. Ghost-wire ĐÃ ĐÓNG @S153
tools-whitelist-no-teeth Có thật, và SE đã tự khai ≥7 chỗ: ctx-audit.md:102 · ctx-curator.md:46 · ctx-verifier.md:42 · ring1-audit.md:57 · back-end-reviewer-style.md:133 · front-end-reviewer-style.md:142 · database-reviewer-style.md:135 — cùng một câu: "tools: khai không Write/Edit = MÔ-TẢ Ý-ĐỊNH, không phải cơ-chế chặn; backstop THẬT = git-diff commit-gate" GIỮ là CA, nhưng đã vá đúng thuốc hub (vá LỚP-9 = "hoặc viết máy, hoặc khai thẳng là chạy tay") ⇒ KHÔNG phải vết thương hở, N4 đừng mở wave cho nó

🔴 Hệ quả cho lead: session_ctx_kb đổ đúng cùng kiểu với pull_warn_days đã đổ — khai trạng-thái-quá-khứ bằng thì hiện-tại. Hai lần cùng một lỗi trong cùng một ô bảng ⇒ không phải xui, mà là LỚP-5 tác động lên chính bảng chẩn đoán LỚP-9. Khuyến nghị N4: mọi ô "ghost-wire" phải neo bằng LỆNH ĐO, không bằng tên món.

LỚP-9 có còn giẫm không? CÓ, nhưng phải lấy ca khác: feedback_dryrun_finds_promised_but_unlanded (S168) — command chỉ sống trong comment, sống sót 8 wave + 8 gate + 8 cicd + 644 test; guard-chặn-không-có-đường-ghi = chết câm. LỚP-9 thuần, chưa-khai, và do dry-run bắt ⇒ SE có thuốc (dry-run) nhưng không có máy canh thường trực.

§1.7 — Năm lớp còn lại (1 · 3 · 4 · 5 · 7): GIỮ nguyên verdict lead, không có gì để bác

LỚP ca đứng vững ghi chú lane E
1 #53-family 7 vai/phiên S180 (nay là 10, xem §2) thuốc SE = scaffold trước spawn, ĐANG trả lãi
3 ring1 32Đ/6T · N2 trả PASS_WITH_FIXES 0C/5M/6m ngay trong chuỗi này SE đã cấu trúc sẵn vòng vá (N1→N5) ⇒ đúng thuốc hub, KHÔNG cần wave
4 governance-detectors.ps1 tự khai "Exit 0 always (never fails build)" — 49 cờ vẫn exit 0 xung đột triết lý với GĐ-3 hub (N1 + N2 F-10 đã nêu)
5 STATUS:8 mega-line nhiều số stale; luật B1 có mà vẫn trôi và B1 tự cài bằng neo LỚP-6 — xem §1.1
7 N1 hạ cánh 7.049 B / 6-của-9-mục placeholder sau 202K token xem §2 ca (a)

§2 — BA CA MỚI SINH TRONG CHÍNH CHUỖI N1→N2→N3

ca đo được thuộc lớp vì sao đáng ghi
(a) N1 skeleton nấc-2 7.049 B trên đĩa, 6/9 mục [ĐANG ĐO], sau 202K token / 27 tool-use / 545 s; ruột thật grep -vE '^#{1,4} |^\s*$' | wc -l = 27 dòng / 10 heading ⇒ ~15% giá trị LỚP-7LỚP-2 (bản đồ về lớp lỗi tự giẫm chính lớp nó đang lập bản đồ) 🔴 guard "verify BYTE tăng" MÙ HOÀN TOÀN — byte > 0 và đang tăng. Vị-từ phải đo NGỮ-NGHĨA ruột. Đây là phản-chứng chạy được cho chính vá LỚP-7 của hub ("so số ký tự với nguồn cùng đơn vị"): SE không có nguồn cùng đơn vị ⇒ theo luật hub phải ghi "không đo được", vị-từ thay thế = tỉ lệ dòng-thật / heading
(b) N2 xử số-lệch bằng "tuyên một bên thắng" runs/: 88 dir90 entry85 có run.md · auto-memory: 61 file60 memory LỚP-2 (vai phản-biện-lỗi-đo giẫm đúng lỗi-đo) ∩ bẫy đơn-vị y hệt harvest-curator F-05 §1.2 Ba số không mâu thuẫn — chúng đếm ba CÁI KHÁC NHAU. Tuyên "bên nào thắng" là xoá thông tin: chênh 9085 = 5 run-folder KHÔNG có run.md chính là TC-04 đang chảy máu, và nó biến mất khỏi báo cáo ngay khi chọn một con số. Tương tự 6160 = 1 file không phải memory (nhiều khả năng MEMORY.md index) = thông tin, không phải lỗi. ⇒ luật lane E: hai số lệch thì hỏi "đếm CÁI GÌ" TRƯỚC, và GIỮ CẢ HAI kèm đơn-vị
(c) chính lane E này lượt-1 chết khi đĩa mới giữ được phần đầu; 123K token / 33 tool-use rồi return = mô-tả-ý-định LỚP-1 ∩ #53 Vai thứ 10 dính trong một phiên ⇒ #53 ở SE không phải sự cố, nó là NỀN — đúng cấu trúc LỚP-3 của hub ("lần đầu KHÔNG ĐẠT là mặc định") nhưng ở trục hạ cánh vật chứng. Datum mạnh nhất cho TC-04 trong cả gói

🔴 Điểm chung mà N4 phải dùng để xếp wave: cả ba ca đều lọt qua mọi guard hiện có vì guard đo sự TỒN TẠI (byte > 0 · file có mặt · số có mặt) chứ không đo nội dung có NGHĨA. Wave GĐ-2 nếu chỉ thêm "kiểm tệp có mặt" thì không chữa được ca nào trong ba ca này.


§3 — 12 TRIỆU CHỨNG × SE (bằng chứng đo trên kho SE)

🔴 Ràng buộc tuân thủ: bốn ô hub CỐ Ý để CHỮ (TC-02 · TC-03 · TC-07 · TC-10) — lane E GIỮ NGUYÊN CHỮ, KHÔNG điền số. Chỗ nào SE dụng cụ thì nói rõ như một đóng góp ngược cho hub, tách bạch khỏi ô của hub.

TC SE mắc? Bằng chứng đo được trên kho SE
TC-01 nhắc nhiều lần mới làm (định tính). SỐ: KHÔNG ĐO ĐƯỢC — chưa có sổ đếm lần-nhắc (đúng thứ GĐ-4 dựng) auto-memory/feedback_absence_looks_like_clean.md: mất-uỷ-quyền-owner phải hỏi lại 3 lượt · feedback_pause_track_plan_progress.md: owner S165 phải ra luật /pause liệt từng đầu việc vì việc rơi
TC-02 cho làm thẳng vẫn hỏi lại GIỮ CHỮ HUB: chưa có dụng cụ. SE cũng 0 phép đếm Định tính: SE đã có cơ chế phân biệt 2 loại — ACTIVE-MARKS + 4 lệnh /user-mark-active* + luật feedback_derived_flush_execution (derived-flush khớp owner-set = em-main tự làm, KHÔNG gate). ⇒ thuốc có mầm, phép đếm chưa có
TC-03 model mạnh hiểu đúng hơn 🟢 KHÔNG MẮC — miễn nhiễm nhờ cấu trúc khác (xem §6) Đo: ls .claude/agents/*.md = 27 (gồm README) · grep -l "^model: opus" = 26 · grep -l "^effort: max" = 26 · control-âm: grep -h "^model:" | sort | uniq -c = 26 model: opus, KHÔNG có dòng model nào khác ⇒ SE không dùng model yếu cho việc đặc tả nên nguyên nhân của TC-03 không phát sinh. Ô nghiệm thu của hub GIỮ CHỮ chưa đủ mẫu — SE không điền thay
TC-04 vật chứng lượt đắt bị sót 🔴 CÓ — NẶNG NHẤT, và NẶNG HƠN HUB (xem §5) (1) Phiên S180: 10 vai dính #53 (lane E là vai thứ 10). (2) Đo trực tiếp lưới ghi đĩa: ls -d .claude/workflows/runs/*/ = 88 thư mục · ls .claude/workflows/runs/*/run.md = 853 thư mục lượt chạy KHÔNG có tệp mô tả, đích danh: 2026-07-14-S117-pe-approve-minmax-range · 2026-07-14-S117-pe-luyke-finalize · 2026-07-22-S144-bootstrap. (3) Lưới ĐANG TRẢ LÃI: recover #53 mất 0 byte nhờ ghi-đĩa-trong-lúc-làm
TC-05 vai soi ghi-đĩa, cấm sửa CÓ nhu cầu · CÓ ~70% · vế "cấm sửa" YẾU HƠN VẺ NGOÀI (xem §5) Có: cặp quan-sát-viên {harvest-curator, tooling-auditor} vô-điều-kiện @close + sentinel M5 + INFORM-only. 🔴 Vế cấm-sửa chỉ là lời khai: tools: frontmatter không có răng (tự khai ≥7 persona, §1.6) — backstop THẬT là git-diff commit-gate, tức bắt SAU khi đã ghi, không phải chặn trước
TC-06 nghi thức bị tự ý bỏ CÓ — đo được, và SE tự khai tốt CLAUDE.md:121 tự khai drift-audit trễ 6 ngày so hạn 08-01 · error-ledger có hẳn mã lỗi cho bệnh này (E-011/AS-15 "nghi-thức chạy tắt, máy mù lớp nghi-thức-có-chạy-không") · thuốc tái-phạm đã có (2-strike promote)
TC-07 chủ vắng, máy đứng chờ GIỮ CHỮ HUB: chưa có dụng cụ. SE cũng 0 bộ đếm Cơ chế chống đã có: /pause·/tiep một-đường (H22) + WAL + ACTIVE-MARKS + probe-không-chặn ⇒ thoát phiên an toàn khi anh vắng. 🔸 Đóng góp ngược: SE có NGUYÊN LIỆU đếm được — mỗi lần đứng chờ đều để lại một dòng khai trong WAL dạng "next: chờ anh chọn (a)(b)(c)". Đó là nguyên liệu, chưa phải phép đếm; lane E không quy nó thành số
TC-08 kiểm trong-dòng chỉ bắt cái sống lâu hơn nó CÓ — ca chuẩn, thuốc đã uống một phần Ca: H2-F3 @S149 coverage-miss (10 lượt invest → 0 delta sổ). Thuốc: closeout-sentinel (cửa-SAU) + bookend @open bắt lọt phiên trước. 🔴 Ca tươi lane E: 10 vai #53 phiên này đều là dòng chết sớm, và thứ bắt chúng là lead đọc bằng mắt, không phải máy
TC-09 chỗ ngồi lệch model không ai biết 🟢 KHÔNG MẮC — máy đã dựng VÀ đã đo (xem §6) scripts/spawn-model-audit.ps1 + TIER2_EXPECTED_FULL_ID (hmw.js:73); đo @S126 0-mismatch, control âm/dương đủ (session-start.md:51). Cộng đo lane E ở TC-03: 26/26 persona pin opus+effort: max, 0 ngoại lệ
TC-10 đo tiêu thụ theo từng cửa GIỮ NGUYÊN CHỮ HUB: KHÔNG ĐO ĐƯỢC. SE cũng không tồn tại dụng cụ Doctrine SE @S158: "đo BYTE, CẤM quy token". 🔸 Đóng góp ngược (nói rõ, KHÔNG điền số vào ô hub): ở SE, mức tiêu thụ TỪNG LƯỢT GỌI có tồn tại dưới dạng dữ liệu, được ghi tay vào run-trace (ví dụ run.md:25 ghi lượt N1 = 202K token / 27 tool-use / 545 s). ⇒ cái SE thiếu là bộ TỔNG HỢP, không phải quan sát. Nếu hub cũng có sẵn số per-lượt trong log thì bài toán nhỏ hơn hub tưởng
TC-11 tên duy nhất, không rớt máy đọc tên cũ CÓ — ≥3 ca sub-ctx-audit-* lọt filter C11(b) (S153 → vá S159) · _tiep-1.md sha 7-ký-tự vs 40 (S158) · "17/17" hardcode stale (hmw.js:57). Máy soi tên tổng: chưa có ⇒ GĐ-1 không khai miễn được
TC-12 chấm điểm bị treo 🔴 CÓ — NẶNG HƠN HUB (xem §5) grep -rn "chấm điểm" .claude/commands/*.md = 0 hit, control-dương "điểm dừng" = 3 file ⇒ thước sống. Hub: điểm treo vì chờ chủ. SE: điểm chưa từng được sinh ra

Tổng: 10/12 mắc · 2/12 không mắc (TC-03, TC-09).


§4 — 🔴 KIỂM HỢP ĐỒNG NGHIỆM THU (GĐ ↔ TC) — "giai đoạn không trỏ về bệnh nào thì là đồ chơi"

4.1 — Bản đồ xuôi (chép từ cột "Chữa ở giai đoạn", thu-chinh:76-87)

TC-01→GĐ-4 · TC-02→GĐ-4 · TC-03→GĐ-5 · TC-04→GĐ-2 · TC-05→GĐ-2 · TC-06→GĐ-3 · TC-07→GĐ-3 · TC-08→GĐ-3 · TC-09→GĐ-5 (quét lại GĐ-6) · TC-10→GĐ-3 · TC-11→GĐ-1 · TC-12→GĐ-4

4.2 — Bản đồ NGƯỢC (kiểm điều kiện "mỗi GĐ ≥ 1 TC")

TC trỏ về verdict theo LUẬT HUB
GĐ-0 Tiếp nhận + bản đồ áp dụng KHÔNG CÓ TC NÀO 🔴 ĐỒ CHƠI theo đúng chữ của hub
GĐ-1 Nền chuẩn đặt tên TC-11 đạt
GĐ-2 Lưới ghi đĩa + mục lục TC-04, TC-05 đạt (2 TC)
GĐ-3 Nghi thức 2 đầu + cổng mã lỗi TC-06, TC-07, TC-08, TC-10 đạt (4 TC) — nhưng xem 4.4
GĐ-4 Sổ yêu cầu chủ + chấm điểm TC-01, TC-02, TC-12 đạt (3 TC)
GĐ-5 Cửa gọi model đắt TC-03, TC-09 đạt — nhưng SE KHÔNG MẮC cả hai, xem §6
GĐ-6 Niêm phong + bảng gốc TC-09 (quét lại) + bảng gốc 12-TC đạt

4.3 — 🔴 LỖ HỔNG 1: GĐ-0 không trỏ về bệnh nào ⇒ theo luật hub phải LOẠI

Hub tự viết ở thu-chinh:72: "Đây là hợp đồng nghiệm thu của cả gói: mỗi giai đoạn phải trỏ ngược về ít nhất một cái bệnh, nếu không thì nó là đồ chơi." Quét cả 12 dòng bảng bệnh: không dòng nào ghi "GĐ-0" ở cột Chữa ở giai đoạn.

Lane E KHÔNG đề nghị loại GĐ-0 — đề nghị nêu ngược cho hub, vì đây là lỗi của LUẬT, không phải của GĐ-0: GĐ-0 là điều kiện tồn tại của 6 GĐ còn lại (không tiếp nhận thì không có gì để thi công), nên nó thuộc loại enabling, không thuộc loại chữa bệnh. Hai đường ra hợp lệ, hub chọn:

  1. Hub sửa luật: thêm ngoại lệ tường minh "GĐ-0 là giai đoạn enabling, miễn điều kiện trỏ-về-TC" — rồi mọi nhà khỏi phải tự chế lý lẽ.
  2. Hub gán TC cho GĐ-0. Ứng viên tự nhiên: TC-06 (nghi thức bị tự ý bỏ) — vì bước "ghi dòng đã nhận vào sổ liên lạc" chính là nghi thức dễ bỏ nhất, và SE đang bỏ nó thật: grep "upgrade-pack-phased" broadcasts/_index.md = 0 hit, control-dương harness-22 = 3 hit.

🔸 Cảnh báo cho N4: sub-invest-fitmap-S180.md:238 (§6, W0) điền ô "TC chữa" bằng câu "điều kiện tồn tại của mọi TC". Đó không phải một TC — đó là viết chữ vào ô đòi mã. Nếu N4 dùng nguyên câu đó, cả gói sẽ có một wave không chịu ràng buộc nghiệm thu nào. Phải chọn 1 trong 2 đường trên và khai ra.

4.4 — 🔴 LỖ HỔNG 2: TC-10 có nhãn giai đoạn nhưng KHÔNG AI CHỮA

TC-10 được gán GĐ-3, nhưng ô nghiệm thu của chính hub ghi: "KHÔNG ĐO ĐƯỢC — hub khai thẳng: chưa có dụng cụ; trần là hướng dẫn kèm nghĩa vụ khai khi vượt". Đọc kỹ: GĐ-3 không sinh ra dụng cụ đo tiêu thụ; nó chỉ đặt trần + bắt khai khi vượt. ⇒ với TC-10, GĐ-3 là khai báo, không phải thuốc.

⇒ Theo chiều ngược của cùng hợp đồng: TC-10 là triệu chứng duy nhất không có giai đoạn nào thực sự chữa. Ba ô để-chữ còn lại khác hẳn:

  • TC-02: GĐ-4 dựng sổ 3 khối (thuốc thật), chỉ phép đo là thiếu.
  • TC-03: GĐ-5 siết cửa model (thuốc thật), chỉ mẫu là thiếu.
  • TC-07: GĐ-3 dựng nghi thức 2 đầu + luật tự trị (thuốc thật), chỉ bộ đếm là thiếu.
  • TC-10: không có thuốc, cũng không có đo.

🔴 Phân biệt mà cả N1 lẫn N2 chưa tách bạch: chữa (remedy) ⟂ nghiệm thu (measurement). Bốn ô để-chữ của hub là lỗ NGHIỆM THU; chỉ TC-10 là lỗ CHỮA. Trộn hai thứ này sẽ dẫn tới hai sai lầm ngược chiều: (a) mở wave để "chữa" TC-02/03/07 trong khi thuốc đã có, chỉ thiếu thước; (b) yên tâm với TC-10 vì thấy nó đã có nhãn GĐ-3.

4.5 — Kết luận hợp đồng

GĐ-đồ-chơi = 1 (GĐ-0, do luật hub thiếu ngoại lệ) · TC-không-ai-chữa = 1 (TC-10). Mười một TC còn lại đều có ít nhất một GĐ chữa thật.


§5 — BỆNH SE MẮC NẶNG HƠN HUB (ngoài TC-12 mà N1 đã nêu)

TC hub SE vì sao nặng hơn
TC-12 (N1 nêu — lane E xác nhận) cơ chế đã ký 04-08-2026, đang chờ mốc-0 0 cơ chếgrep -rn "chấm điểm" .claude/commands/*.md = 0 hit (control-dương "điểm dừng" = 3 file) hub treo một cái đã có; SE chưa từng sinh ra cái đó. Khoảng cách là một bậc, không phải một nấc
TC-04 (lane E bổ sung) LỚP-1: "hub mắc nhiều lần trong cùng một phiên" 10 vai / 1 phiên (S180) + 3 thư mục lượt chạy không có run.md (nêu đích danh ở §3) Ở hub là sự cố lặp; ở SE là NỀN — mọi vai làm-việc-dài đều dính, chỉ vai return-1-dòng thoát (3/3 CLEAN). Khác nhau về bản chất phân bố, không phải tần suất
TC-05 (lane E bổ sung) muốn vai soi ghi-đĩa không được sửa SE vai, nhưng "không được sửa" = lời khai, không phải sandbox — và carry ghi đúng điều đó (tools-whitelist-no-teeth) nằm trong vùng mù 46% của H24-2 (§1.5) Hub biết mình thiếu; SE tưởng mình có. Trạng thái tin sai vào một cái khoá không tồn tại nguy hiểm hơn trạng thái biết mình không có khoá

§6 — BỆNH SE KHÔNG MẮC ⇒ khai KHÔNG ÁP DỤNG có khaitiết kiệm wave

TC vì sao SE miễn nhiễm bằng chứng + control tiết kiệm gì
TC-03 "model thường hiểu lệch đặc tả" SE không dùng model thường ở bất kỳ chỗ ngồi nào — worker-tier-pin toàn roster grep -h "^model:" .claude/agents/*.md | sort | uniq -c26 model: opus, và KHÔNG có giá trị nào khác (control-âm mạnh: chỉ cần 1 persona pin sonnet là dòng thứ hai hiện ra) · grep -l "^effort: max" = 26/26 Phần TC-03 của GĐ-5 khai không áp dụng — SE không cần cửa "chọn model đúng", chỉ cần giữ nguyên pin. ⚠️ Vẫn GIỮ CHỮ ô nghiệm thu của hub (chưa đủ mẫu): SE miễn ở nguyên nhân, chưa đạt ở thước
TC-09 "chỗ ngồi được cấp model đắt mà không ai biết" Máy soát đã dựng và đã chạy scripts/spawn-model-audit.ps1 (PA-2b) + TIER2_EXPECTED_FULL_ID (hmw.js:73); đo @S126 = 0-mismatch, control âm/dương đủ (session-start.md:51) GĐ-5 phần TC-09 khai không áp dụng — đã có tương đương; GĐ-6 giữ vế "quét lại" (rẻ: chạy lại đúng 1 script đã có)

GĐ-5 chỉ còn phần THIẾU nhỏ (sổ-khung-nhìn lượt đắt + luật truyền-nguyên-văn thành văn) — trùng kết luận N1 §5, nhưng lý do khai miễn của lane E mạnh hơn: N1 khai miễn dựa trên "đã có"; lane E khai miễn dựa trên control-âm đo được (không tồn tại persona nào lệch pin).

🔸 Chống lạc quan: hai ô miễn ở trên là miễn theo nguyên nhân, KHÔNG phải "đã nghiệm thu". Khi báo cáo về hub phải viết đúng nhãn không áp dụng kèm lý do kiểm được (luật nấc, thu-chinh:103); cấm viết đã được kiểm chứng — nấc đó chỉ hub cấp.


§7 — Bốn ô để-CHỮ: lane E đã tuân thủ ra sao (tự kiểm)

ô hub ghi lane E ghi có điền số không?
TC-02 chưa có dụng cụ giữ nguyên chữ + nêu thuốc-có-mầm phía SE KHÔNG
TC-03 chưa đủ mẫu giữ nguyên chữ ở ô nghiệm thu; con số 26/26 là đo persona SE, nằm ở cột bằng-chứng-SE, không đặt vào ô hub KHÔNG
TC-07 chưa có dụng cụ giữ nguyên chữ + khai SE có nguyên liệu (dòng khai chờ trong WAL), không quy thành số KHÔNG
TC-10 KHÔNG ĐO ĐƯỢC giữ nguyên chữ + đóng góp ngược: dữ liệu per-lượt có tồn tại ở SE dưới dạng ghi tay ⇒ thiếu bộ tổng hợp, không thiếu quan sát KHÔNG

Theo đúng câu của hub: "một bảng gốc thật thà tám dòng có giá hơn mười hai dòng đẹp mà bốn dòng bịa."


§8 — Ba khuyến nghị cho N4 (propose-only, KHÔNG tự thi hành)

  1. Đừng để W0 đi tiếp với ô "TC chữa" ghi "điều kiện tồn tại của mọi TC". Chọn một trong hai đường ở §4.3 rồi khai ra trong adap-report — đây là phản biện gửi ngược hub, cùng hạng với F-1 của N1.
  2. Tách wave theo trục chữanghiệm thu (§4.4). Wave "dựng thuốc" và wave "dựng thước" khác nhau về chi phí, rủi ro và người làm; gộp lại sẽ khiến TC-02/03/07 bị làm thừa và TC-10 bị bỏ quên.
  3. Wave GĐ-2 phải có ít nhất một vị-từ đo NGHĨA, không chỉ đo TỒN TẠI (§2). Ba ứng viên rẻ, đo được ngay: (a) tỉ lệ dòng-thật / heading của mỗi sub-file · (b) đếm thư mục lượt chạy thiếu run.md (hôm nay = 3, có tên) · (c) chạy detector bằng chính regex của nó trên HANDOFF rồi đo vùng-không-đọc (hôm nay = L1-171 / 25 key / 46%).

§9 — Datum phát sinh khi đang viết chính lane này (ghi để không mất)

Va chạm tệp tạm giữa các lane chạy song song. Lane E soạn phần §3-§8 ra một tệp tạm dùng chung rồi nối vào tệp lane; giữa hai lượt, tệp tạm bị một lane khác ghi đè bằng nội dung của họ (nội dung lane GĐ-5/GĐ-6). Phát hiện được chỉ vì lane E kiểm nội dung tệp trước khi nối (head + grep chuỗi đặc trưng), thay vì nối mù.

  • Thuộc lớp: cùng họ với carry hmw-subfile-index-collision — mà carry đó nằm trong 25 key bị H24-2 nuốt (§1.5). Tức bệnh đã được ghi nhận, nhưng cỗ máy đo tuổi carry không nhìn thấy nó, nên nó không bao giờ già đi để được xử.
  • Vì sao đáng ghi cho N4: nếu wave nào dựng "mục lục sống runs/" hay bất kỳ máy gom-nhiều-lane nào, tên tệp trung gian phải mang định danh lane; nối-mù giữa các lane song song là đường mất dữ liệu im lặng — không lỗi, không ngoại lệ, chỉ sai nội dung.
  • Vị-từ chống rẻ tiền: trước khi nối tệp tạm, grep -c "<chuỗi đặc trưng của chính mình>" phải > 0. Đây đúng dạng "đo NGHĨA thay vì đo TỒN TẠI" ở §8 mục 3.

END sub-n3-lane-e-benh — LANE E (trục bệnh) HOÀN TẤT.

9LỚP 9 giẫm / 1 ca bác (session_ctx_kb) · 12TC 10 mắc / 2 không mắc · 1 GĐ-đồ-chơi (GĐ-0) · 1 TC-không-ai-chữa (TC-10) · lead sót 3 ca (2 neo LỚP-6 + lỗ LỚP-8 to gấp đôi)


§10 — ERRATA nội bộ lane E (append-only, không sửa đè entry cũ)

Bảng tóm ở §1 được viết TRƯỚC khi đo, nên hai ô còn ghi CHƯA ĐO:

  • Ô LỚP-8 — đã đo xong, kết quả ở §1.5: GIỮ, và lỗ thủng to gấp đôi sau khi dán nhãn ĐÓNG (L1-171 · 25/54 key · 46%).
  • Ô LỚP-9 — đã đo xong, kết quả ở §1.6: BÁC 1 trong 2 món lead giữ (session_ctx_kb đã đóng ghost-wire @S153).

Giữ nguyên chữ CHƯA ĐO ở §1 làm vết thứ tự thao tác (đo sau khi khai ý định), đúng doctrine append-only. Khi đọc, §1.5/§1.6 thắng §1.