Files
solution-erp/.claude/workflows/runs/2026-08-07-S180-adap-upgrade-pack-phased/sub-invest-fitmap-S180.md
2026-08-07 13:57:44 +07:00

256 lines
47 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# sub-invest-fitmap-S180 — BẢN-ĐỒ ÁP-DỤNG gói nâng cấp 7 GĐ cho SOLUTION_ERP
> **Vai:** investigator-codebase (N1, `/fable-real`, Fable 5) · **Phiên:** S180 (2026-08-07)
> **Đầu vào đã ghim:** spec `spec-adap-upgrade-pack-phased-07-08-2026.md` + 4 thư `broadcasts/inbox/ai_infra/2026-08-04-Governance-upgrade-pack-phased-*` (33.156 + 46.416 + 30.502 + 9.970 = 120.044 B — ĐÃ ĐỌC TRỌN cả 4, không đọc qua tóm tắt).
> **Trạng thái file:** GHI DẦN TRONG LÚC LÀM (chống #53). Mục nào chưa xong sẽ có nhãn `[ĐANG ĐO]`.
> **Ràng buộc thi hành:** `KHÔNG ĐO ĐƯỢC` là verdict hợp lệ · 0-hit kèm control-dương · 4 ô hub để chữ (TC-02/03/07/10) GIỮ NGUYÊN CHỮ · khoản vượt-khung đánh dấu `VƯỢT-KHUNG`.
---
## §0 — Hub đòi gì (tóm trung thực từ 4 thư gốc)
**Thư chính (33.156 B, sha khai `43db2cf0`):** 7 GĐ tuần tự có luật điều-kiện-vào (GĐ trước *đã thi công* HOẶC `không áp dụng` có khai) + luật nấc 5 bậc `đã gửi → đã nhận → đã đồng ý → đã thi công → đã được kiểm chứng` (nấc cuối CHỈ hub cấp) + luật bằng chứng (lệnh chạy được; không dịch được ⇒ `KHÔNG ĐO ĐƯỢC`). Bảng bệnh 12 TC là **hợp đồng nghiệm thu**: GĐ nào không trỏ về ≥1 TC là đồ chơi. 4 ô cố ý để chữ: TC-02 *chưa có dụng cụ* · TC-03 *chưa đủ mẫu* · TC-07 *chưa có dụng cụ* · TC-10 *KHÔNG ĐO ĐƯỢC*. GĐ-4 kéo sớm được (độc lập GĐ-2/3/5); GĐ-5 phụ thuộc môi trường (`không áp dụng` nếu không có hạn mức ≠ tụt lại). Sàn chức năng bắt buộc nếu adopt = đoạn in đậm món 2 + 6 luật rút ra; hình thức tự do, CẤM chép hình thức hub. Track table 6 kho; se thuộc nhóm hub hỏi tiến độ mỗi phiên.
**Phụ lục spec-pitfall (46.416 B, sha khai `49287ce7`):** 9 lớp lỗi xuyên suốt (LỚP-1..9) + per-GĐ {sàn chức năng · bẫy đã giẫm · nghiệm thu}. Điểm đáng chú ý: hub tự khai KHÔNG neo commit-hash vì toàn bộ hash trích dẫn xuyên đợt đã rời nhánh sau history-rewrite → neo bằng tên vật chứng + lệnh tái lập.
**Khuôn (30.502 B, sha khai `98e31fad`):** Phần A fit-map 7 dòng (điền GĐ-0, mỗi dòng `áp dụng`/`không áp dụng`+lý-do/`hoãn`+điều-kiện-gỡ; lệnh tự kiểm `grep -c '^| GĐ-[0-6]'` = 7 — chạy trên tệp bản đồ, KHÔNG chạy trên tệp khuôn vì khuôn chứa bảng 7 dòng thứ hai → ra 14). Phần B khuôn báo cáo 10 mục (tối thiểu bắt buộc: bằng-chứng-đã-ghi-đĩa + kết-luận-mọi-khoản + bằng-chứng-chạy-được + nấc-tự-khai-đúng-luật ≤ *đã thi công*, khai theo TỪNG GĐ). Phần C danh mục kiểm v1: A0-1..A0-4 (ghi đĩa ngay) + A1..A10 (sàn chức năng, chủ yếu GĐ-4) + A11..A16 (chống adapt-thiếu; A16 MỚI: khai máy-hay-tay).
**Luật chấm điểm (9.970 B, sha khai `c24699f0`):** ĐÃ KÝ 04-08-2026, mã dấu `RC-pqhuy1987-04-08-2026-15-05-00` (xuất hiện đúng 1 lần trong bộ). Công thức `điểm = max(0, 10 số MỤC bị lặp từ lần ≥2)` — trừ theo MỤC không theo lần, lần đầu không trừ. 4 tầng (điều phối tự chấm → vai đọc sổ đếm độc lập → vai 3 kiểm PHÉP ĐẾM cấm chấm lại → chủ dự án quyết cuối). Niêm phong im-lặng cần 3 mốc `emit_ts`/`redisplay_ts`/`first_owner_msg_ts`; thiếu mốc 3 = *chờ niêm phong*. Nguồn đếm = SỔ là chính, transcript là gương; **chưa có số phủ sóng thì in "KHÔNG ĐO ĐƯỢC", CẤM in điểm**. Đo TRẢI NGHIỆM chủ dự án, cấm trộn với phép đo kỹ thuật. Kho adopt GĐ-4 áp thẳng không cần hub ký lại; hình thức đổi được, công thức + 3 mốc + ranh giới tầng thì KHÔNG.
**Nguồn-thật đối chiếu:** bản đang nằm ở `broadcasts/inbox/ai_infra/` có frontmatter `status: DRAFT` + `reviewer_gate: PENDING` + `nac: draft` — xem phát hiện F-1 bên dưới (§4).
---
## §1 — TRỤC 1: 7 GĐ × trạng-thái SE thật
### GĐ-0 — Tiếp nhận và bản đồ áp dụng
**Hub đòi:** 4 món trên đĩa + hash khớp · tệp theo dõi tiến độ per-khoản · dòng "đã nhận" trong sổ liên lạc · fit-map 7 dòng không dòng trống · gửi báo cáo tiếp nhận (ghi kho mình).
**SE đã có:**
- 4 món ĐÃ trên đĩa: `broadcasts/inbox/ai_infra/2026-08-04-Governance-upgrade-pack-phased-*.md` (ls xác nhận 33.156/46.416/30.502/9.970 B — khớp byte hub khai).
- Hash verify 4/4 **OK canonical** bằng máy có sẵn `scripts/stamp_verify.py` (exit=0; canonical = strip `\r` → split 2nd `---` → strip 1 leading `\n` → sha256 utf-8). Lệnh tái lập: `python scripts/stamp_verify.py broadcasts/inbox/ai_infra/2026-08-04-Governance-upgrade-pack-phased-*.md`.
- ⚠️ Ghi nghề: phép tự chế (split `'---\n'` naive) cho MISMATCH cả 4 — nếu tin phép tự chế đã kết luận sai "tamper". Máy canonical mesh ĐÃ có thì dùng máy (đúng bài feedback_h18 hash-verify-trước-khi-áp).
- Sổ liên lạc TỒN TẠI: `broadcasts/_index.md` (append-only, cột `sha256(12)` + `verify` ✓/✗, INBOUND/OUTBOUND) — hạ tầng A0-3 có sẵn.
- Kênh báo cáo TỒN TẠI: `broadcasts/outbox/ai_infra/` (15+ báo cáo se→hub, gần nhất 2026-07-26) + khuôn `/adap-report` (`.claude/commands/adap-report.md`) + kho `docs/governance/adap-reports/`.
- Run-folder S180 này + spec-pin = phôi "tệp theo dõi tiến độ".
**SE thiếu (đo được):**
- 🔴 Dòng "đã nhận" cho bộ 4 món: `grep -n "upgrade-pack-phased" broadcasts/_index.md` = **0 hit** (control-dương: `grep -c "harness-22"` = 3 → thước sống). ⇒ A0-3 CHƯA LÀM dù thư đã nằm inbox 2 ngày (mtime 08-05).
- Fit-map 7 dòng: chưa tồn tại (file này = nguyên liệu để lead dựng; §5 dưới có bản đề xuất).
- Tệp theo dõi tiến độ liệt từng khoản A0-1..A16: chưa có.
- Adap-report tiếp nhận: chưa gửi (spec xác nhận "CHƯA ÁP — 0 adap-report").
**Xung đột:** không.
**Điều kiện vào:** thoả (bộ đã nằm hộp thư chung). **Nấc hiện tại: giữa "đã nhận" (vật lý trên đĩa) và "đã nhận" (đúng luật — thiếu dòng sổ)**. Việc còn lại của GĐ-0 ước < 1 giờ máy: 1 dòng sổ + fit-map + tệp theo dõi + report.
---
### GĐ-1 — Nền chuẩn đặt tên, áp về phía trước
**Hub đòi:** 1 văn bản chuẩn duy nhất phủ 6 nhóm tên + luật lane đơn trị · 1 vai giữ chuẩn quyền hẹp 2 lớp · sổ đổi tên chỉ-thêm-không-xoá cột "đã quét những đâu" (lệnh + số hit thật) · máy soi tên cổng, báo-cáo-thôi trước, in mẫu số · đối chứng 2 chiều + phản chứng · luật giữ-nguyên-tên-cũ + di trú 6 bước.
**SE đã có (mảnh, đo được):**
- Máy quét governance-MD: `scripts/governance-detectors.ps1` (1.964 dòng, 17 lưới: C1..C12 + H24-1..5 + H25×2 liệt bằng `grep -n "Write-Section" scripts/governance-detectors.ps1` = 20 hit gồm helper). Trong đó **C3 vocab-fork** = soi 1-khái-niệm-nhiều-tên.
- **Tách "con số lái thoát" vs "con số báo-cáo-thôi"** đúng nguyên văn GĐ-1(v) hub: `Write-InformFlag` counted SEPARATELY, "NEVER folded into $script:FlagCount" (`governance-detectors.ps1:65-72`, anti-Goodhart owner-set); output 2 dòng `TOTAL FLAGS` `INFORM-ONLY` (`:1941+`).
- Sổ họ-hàng-gần: `docs/governance/vocab-alias-map.md` **append-only, single-writer em-main, có cột lý-do-đổi, khai frozen-set** (sessions/ archive/ runs/ broadcasts/ không viết lại "giữ nguyên tên " chính luật này áp cho THUẬT NGỮ).
- Quy ước tên đang SỐNG rải rác: run-folder `YYYY-MM-DD-S<N>-<topic>` (90 folder tuân thủ `ls .claude/workflows/runs/ | wc -l` = 90) · sub-file regex máy đọc `^(sub-.+|.+-return)\.md$` (`governance-detectors.ps1` C11 body regex này BẢN S159 sau ca tên lọt lưới S153) · roster INFORM-only đọc SỐNG từ agent frontmatter, không hardcode (C11 body "a NEW monitor auto-joins").
- Bài học chống-hardcode-số đã thành văn trong máy: `hmw.js:9` + comment `:57` *"KHÔNG chép số — lesson S108, tái @S151: '17/17' viết cứng đã stale khi roster lên 20"*.
- Form-check vai: `scripts/agent-frontmatter-eol-check.ps1` (tồn tại, `ls scripts/`).
**SE thiếu:** (1) **VĂN BẢN CHUẨN DUY NHẤT** phủ 6 nhóm (tên vai · nhãn lớp kiểm · thư mục run · tệp mốc phiên · nhãn tác vụ · tên sổ) hiện tán xạ trong personas/commands/engine-doc; (2) **vai giữ chuẩn** không tồn tại; (3) **sổ đổi tên cho TÊN-MÁY-ĐỌC** (vocab-alias-map chỉ cho thuật ngữ, KHÔNG cột "đã quét những đâu" dạng lệnh+hit); (4) **máy soi TÊN chuyên trách** C3/C11 soi vocab + khuôn FLAG, không soi 6 nhóm tên; (5) di trú 6 bước thành văn.
**Ca bệnh TC-11 thật của SE:** tên `sub-ctx-audit-*` lọt lưới C11(b) filter `^sub-<role>[-.]` (S153, đã S159 vết trong chính detector body: *"mirror of the C11(b) filter fix — ctx-audit FLAG-6"*); marker `_tiep-1.md` ghi sha 7-ký-tự khi 7 marker khác ghi 40 (S158, form-drift cùng loại marker).
**Xung đột:** không chỉ thiếu.
**Điều kiện vào:** GĐ-0 thi công CHƯA (đang làm). **SE KHÔNG khai `không áp dụng` GĐ-1 được một cách thật thà** (chưa chuẩn-duy-nhất tương đương kiểm được) GĐ-1 chốt mở khoá các sau.
---
### GĐ-2 — Lưới ghi đĩa và sổ mục lục vật chứng
**Hub đòi:** lane ghi nguyên văn mọi cửa phản biện · vai điểm danh cấm-sửa · máy điểm danh 4 vị từ (vắng/rỗng/cụt/nén-quá-tay) + vị từ bộ-tệp-nội-bộ-thư-mục · 3 nhịp (đầu phiên/sau-lượt-đắt/cuối phiên) · sổ mục lục 2 tầng trần-đo-bằng-lệnh trỏ-không-chép · điểm danh 2 nguồn ghi chênh lệch.
**SE đã có:**
- **Lane ghi nguyên văn:** run-folder TRACKED FLAT `run.md + sub-<role>-<i>.md + <stage>-synthesis.md` (`hmw.js:9` mode B, Harness-10) 90 folder; spec-pin trước spawn (H21); chính file này instance sống.
- **Máy đếm mồ-côi:** `scripts/nhip-no-probe.ps1` vế `run-chua-gom` orphan run-folder theo DUAL-ACCEPT port nguyên văn `tiep.md:40-53` (header script tự khai). Vị từ "vắng synthesis" = .
- **Gate con trỏ mục lục:** `scripts/memory-archive-gate.ps1` A7 L1-GATE mọi substring-pointer trong `<sub>/archive/_INDEX.md` phải resolve (SimpleMatch) + file exists + **size>0** PASS/FAIL. = vị từ VẮNG + RỖNG + MỤC-NÁT cho tầng agent-memory.
- **Sổ mục lục 2 tầng cho agent-memory:** MEMORY.md (L1 HOT) + `archive/_INDEX.md` (sha-keyed substring) per-role; **trần sống ở config**: `memory-budget.json` key `archive_gate.autoinject_cap_bytes` script ĐỌC khoá, thiếu key in `CONFIG-THIEU(...)` KHÔNG default (`nhip-no-probe.ps1` header contract (4)); `session_ctx.py` `_require_budget_kb` cùng triết . = đúng "trần tệp cấu hình chung, tài liệu trỏ khoá".
- **3 nhịp:** đầu phiên (bookend @open + Sàn-3) · cuối phiên (khối instruments `session-end.md:164`: measure-agent-memory + memory-archive-gate + crystallized-backfill + nhip-no-probe + mfe-eval AUTO mỗi closeout) · **sau-lượt-đắt: một phần** harvest per-turn primary (`hmw.js:9` C4) nhưng không máy điểm danh BẮT BUỘC ngay-sau-mỗi-lượt-đắt.
- **Vai quan sát cấm-sửa:** cặp obs `{harvest-curator, tooling-auditor}` chạy VÔ-ĐIỀU-KIỆN @session-end (`closeout-sentinel.ps1` header default -Roles); INFORM-only; ràng "cấm sửa" cưỡng chế bằng **git-diff commit-gate backstop** (error-ledger AS-10/G-015 propose-only sub vẫn Bash-write được, backstop THẬT diff-gate).
- **Secrets-sweep phủ trọn session-dir:** `session_ctx.py::secrets_sweep` rglob (S153: `_mind` tự vào lưới) "đích ghi nằm trong vùng quét mật" cho sessions/.
- **Bằng chứng lưới hoạt động thật @S180:** WAL verify-block "#53: 6/6 vai nặng dính, recover 6/6 **mất 0 byte**" nhờ artifact-đổ-ruột.
**SE thiếu:** (1) máy điểm danh **4-vị-từ hợp nhất trên run-folder** vị từ CỤT (thiếu đầu/thân) NÉN-QUÁ-TAY (so tự cùng đơn vị) chưa máy; AS-17 skeleton-ruột-rỗng + AS-19 nén-rơi-ý đều đang **nghi-thức, error-ledger tự khai "chưa cơ-khí-hoá"**; (2) **mục lục SỐNG cho runs/** `ls .claude/workflows/runs/ | grep -i index` = 0 hit (control-dương: cùng lệnh ls đếm được 90 folder) tầng-A "gói theo loại" trong hmw.js/tiep.md prose, tầng-B mục-lục-sống KHÔNG (nhip-no đếm tổng, không liệt ); (3) **điểm danh 2 nguồn** (đĩa mục lục, ghi chênh) chưa chưa mục lục; (4) khuôn-tối-thiểu tệp nguyên văn (tiêu đề + model tự khai + input ghim + kết luận) chưa thành văn bắt buộc mới END-line (AS-20 guard `END <slug> — VERDICT=`).
**Điều kiện vào:** GĐ-1 thi công hoặc miễn CHƯA THOẢ (GĐ-1 chưa).
---
### GĐ-3 — Nghi thức hai đầu phiên và cổng chặn bằng mã lỗi
**Hub đòi:** 4 nhãn lệch nghi thức (quên/tự-ý-bỏ/suy-giảm-hợp-lệ/bị-chặn) kèm vị từ đĩa · vai kiểm chỉ-đối-chiếu · vòng hỏi ngược đóng-khi-0-dòng-trống · cổng lỗi thang 4 trạng thái · tiền kiểm chi-phí-0 đầu MỌI cửa chọn cửa bằng ts-TRONG-tệp · vai kiểm 2 đầu phiên · luật tự trị 3 bậc · trần chi phí cửa hay dùng.
**SE đã có:**
- **Vai kiểm 2 đầu phiên ĐÚNG NGUYÊN VĂN:** cặp `lead-stale-auditor` + `lead-gap-auditor` spawn **VÔ-ĐIỀU-KIỆN mỗi đầu phiên** (`session-start.md:269`) **và MỌI closeout** (`session-end.md:119`), HÌNH B @S149. `ring2-audit` AUTO sau cặp, PIN đích-danh run-folder tươi (cấm glob-latest).
- **Đèn nợ 4 cửa dừng:** `nhip-no-probe.ps1` gọi tại `session-start.md:269` · `session-end.md:118` · `tiep.md:154` · `pause.md:113` cả 4 chỗ in "probe KHÔNG chặn"; vế-set canonical = chính script (`session-end.md:207`, gate đo nguyên văn dòng in chống stale).
- **Tiền kiểm chi-phí-0 khi nối mạch:** Sàn-3 probe @/tiep (WAL S180 dòng đầu: "Sàn-3 SẠCH 5/5") + `mind-check` ~140-300ms không chặn (`tiep.md:169`) + **anchor bằng carrier-commit `git log --diff-filter=A -1 -- <marker>`** (S158 chính "ts ghi TRONG tệp/lịch sử, KHÔNG tin mtime OS"; 8/8 resolve, sống-sau-squash by construction).
- **Máy FAIL-LOUD exit0 ( răng thật, chọn lọc):** `session-counter-tick.ps1` regression/missing-head exit0 no-write, fault-inject 5/5 @S149 (`session-start.md:246`); `h24-signal-write.ps1` class ngoài enum-đóng exit0 (header (1)).
- **Cửa-sau cho cửa-chết-sớm (lưới lùi):** `closeout-sentinel.ps1` M5 FLAG "audit đo rồi như chưa đo" nếu closeout thiếu delta role-dir; positive-control 5/5 lịch sử (`session-end.md:125`).
- **Theo dõi tái phạm:** error-ledger **2-strike promote** (header) AS-17 đã dùng thật (S150+S151 = 2-strike).
- **Luật tự trị (dạng SE):** hạ tầng ACTIVE-MARKS `.claude/governance/ACTIVE-MARKS.md` + 4 lệnh `/user-mark-{active,active-high,medium,disable}` (`ls .claude/commands/`) = posture tự-trị owner-gán dấu RC. **CHƯA ĐO** nội dung đủ "3 bậc" (tự · hồnhánh an toàn · hỏi khi mơ-hồ+phá-huỷ) cần `grep -n "bậc\|tự vá\|an toàn" .claude/governance/ACTIVE-MARKS.md`.
- Nhãn "suy-giảm-hợp-lệ" đã VĂN HOÁ dùng: nhip-no "probe-loi (khong chan)" · C12 note "MEASURED NOTHING... a 0 outside the window is not a green" · WAL ERRATA-block @S180 (3 ERRATA lead tự khai).
**SE thiếu / XUNG ĐỘT:**
- 🔴 **XUNG ĐỘT TRIẾT LÝ (lớn nhất cả gói):** hub GĐ-3 = "cổng CHẶN bằng mã lỗi, thang 4 trạng thái (trọn/thiếu-có-tên/không-xác-định/xung-đột)" thuốc căn cho TỰ-Ý. SE doctrine ngược: `governance-detectors.ps1` "**Exit 0 always (never fails build). FLAGs are advisory**" (`:1963`) + `closeout-sentinel` "exit ALWAYS 0, READ verdict-line" + probe-không-chặn 4 cửa. SE chặn-trước chỉ 2 máy (tick, signal-write) + hmw checkpoint throw (`hmw.js:131-132`); còn nghi-thức = lưới-sau + người. Hub tự nói sàn chức năng chỉ nâng không hạ chuyển detectors/sentinel sang lái-mã-thoát = **ĐỔI CƠ CHẾ → VƯỢT-KHUNG, cần anh + AI_INFRA**. Ghi cả 2 bên: hub ("cửa cổng trả lỗi thì không bỏ qua được"); SE (đèn không chặn điểm dừng người vắng vẫn thoát được phiên an toàn, đúng TC-07 của chính hub).
- 4 nhãn CHƯA thành văn như enum (SE AS-signature taxonomy 20 GIÀU HƠN nhưng KHÁC TRỤC: action-signature nhãn-ý-định; map được quên/tự-ý qua E-011/AS-15).
- Vòng hỏi ngược 5-cột đóng-khi-0-trống: chưa khuôn; gần nhất = bảng disposition từng-dòng (feedback S119) + FLAG-khuôn C11.
- Thang exit 4 trạng thái: không tồn tại bất kỳ máy nào.
- Tiền kiểm "đầu MỌI cửa": mới chắc /tiep + session-start; `/check-email`, `/adap-*`: **CHƯA ĐO** cần `grep -n "probe\|Sàn-3\|san-3" .claude/commands/check-email.md .claude/commands/adap-apply.md`.
- Trần chi phí cửa-hay-dùng: KHÔNG dụng cụ đo per-cửa (khớp TC-10 hub) SE doctrine "đo BYTE, CẤM quy token" (S158). Khai `KHÔNG ĐO ĐƯỢC` + nếu adopt thì trần = hướng-dẫn + nghĩa-vụ-khai (đúng chữ hub).
**Điều kiện vào:** GĐ-1 thi công/miễn CHƯA.
---
### GĐ-4 — Sổ yêu cầu chủ dự án và cơ chế chấm điểm (kéo sớm được)
**Hub đòi:** sổ 3 khối (việc-giao/sở-thích/phàn-nàn) lời NGUYÊN VĂN + vĩnh viễn cấm tái dụng · 2 mục mồi (làm-thẳng + lằn-ranh-đỏ liệt ; tự-trị-khi-vắng) · ghi-NGAY cắm vào tệp-luôn-nạp · tra-sổ-trước-khi-hỏi 2 chỗ · máy 0-phí phân biệt "chưa-có-dữ-liệu"⟂"đo-và-bằng-0" · đèn nợ mọi cửa dừng số-dán-nguyên-văn · vai đọc sổ 4 thấu kính + vai soi vai · thu hẹp vai cùng lượt · luật chấm điểm đã (công thức max(0,10mục-lặp2) · 4 tầng · 3 mốc niêm phong · thiếu phủ-sóng in KHÔNG ĐO ĐƯỢC cấm in điểm).
**SE đã có (mảnh — nhưng đây là GĐ SE HỔNG NHIỀU NHẤT):**
- Khung "đèn nợ + máy 0-phí" ĐÃ SẴN đúng chuẩn hub từng chi tiết: nhip-no-probe = read-only, exit-0, luôn-in, lỗi in " lỗi không chặn", đọc config không default **chỉ THIẾU 2 vế dữ liệu** (đang-treo, nhắc-lần-2) **không có sổ nguồn**.
- Ý thức "chưa-có-dữ-liệu 0": đã cài 2 máy (`nhip-no` CONFIG-THIEU in-line; C12 "MEASURED NOTHING" note). Khuôn để mở rộng sẵn.
- Tệp-luôn-nạp tồn tại đúng nghĩa: CLAUDE.md + auto-memory MEMORY.md (auto-inject mỗi lượt) chỗ cắm kỷ-luật-ghi-NGAY hợp lệ; kỷ luật ghi-ngay hiện cho MEMORY ("user explicitly asks... save immediately") nhưng KHÔNG sổ-yêu-cầu làm đích.
- Mảnh dữ liệu rải: việc-được-giao WAL chain + HANDOFF + `docs/changelog/migration-todos.md`; sở-thích 61 file auto-memory (`ls .claude/auto-memory/*.md | wc -l` = 61; **đề bài lead ghi 60 — số thật 61**, lệnh kèm) Why/How-to-apply nhưng KHÔNG nguyên-văn, KHÔNG mã-vĩnh-viễn, KHÔNG đếm-lần-nhắc; **lời-phàn-nàn: 0 chỗ chứa** `grep -rln "sở-thích\|phàn nàn" .claude/commands/ docs/governance/*.md` = **0 hit** (control-dương: "điểm dừng" cùng fileset = 3 file).
- 2 mục mồi: nguyên liệu SẴN ACTIVE-MARKS (tự-trị-khi-vắng, RC-mark owner-ký) + các lằn-ranh-đỏ ĐÃ RẢI trong feedback memories (đổi chế=anh · số nhịp=quyền anh · prod inspect-before-change · wipe owner-gated · outward report-before-stamp · "máy rộng UI hẹp" 409-rào) **chưa LIỆT KÊ 1 chỗ** đúng A6 (hub: cấm tả bằng tính từ).
- Bảo vệ tập-tín-hiệu-đóng (A10): **CÓ MÁY THẬT** `h24-signal-write.ps1` từ chối class ngoài enum (exit0, "a monitor may NOT invent a class") + dải `_frozen_until_owner` máy không được reset (nợ của owner). Phép thử A10 "đẩy nhãn lạ máy phải từ chối" = CHẠY ĐƯỢC HÔM NAY.
- Trần tự cột nguyên văn: khuôn sẵn (memory-budget.json pattern + "Keep entry 1.5K chars" gotcha #53).
- **Chấm điểm: 0 tồn tại** `grep -rn "chấm điểm" .claude/commands/*.md` = 0 hit thật (1 hit `rerank_score` khác nghĩa; control-dương cùng fileset "điểm dừng" = 3 file). Không tầng, không niêm phong, không khối in 2 cửa. SE thậm chí không nghi thức "hỏi anh chấm điểm" TC-12 SE = **vắng cơ chế hoàn toàn** (nặng hơn hub: hub treo, SE chưa từng sinh điểm).
**SE thiếu:** trọn sổ 3 khối + vĩnh viễn + máy 2 số + 2 vế đèn mở rộng + vai đọc sổ + định nghĩa A5 hỏi-lại-không-thông-tin-mới (hiện chỉ họ hàng: luật-4 hub SE "hỏi lại phải trả phí viện dẫn" CHƯA thành văn CHƯA ĐO: cần grep "viện dẫn" auto-memory) + toàn bộ luật chấm điểm.
**Xung đột/VƯỢT-KHUNG:** (a) luật chấm điểm hub bảo "áp thẳng không cần lại" NHƯNG thi hành = sửa `session-start.md`+`session-end.md` (in khối 2 cửa) + đẻ/gán 2 vai tầng-2/3 + "thu hẹp vai cùng lượt" (lead-gap-auditor đang soi phần yêu-cầu-chủ? chồng lấn phải chuyển giao khai) theo nguyên tắc SE (đổi nghi-thức 2 cửa + roster = quyền anh) đây **VƯỢT-KHUNG cục bộ: cần anh gật trước khi wire**, nội dung luật không cần hub lại. (b) Sổ 3 khối đặt "lane quản trị" = artifact mới cạnh WAL/HANDOFF nguy nguồn-đôi với WAL chain (SE luật "checklist = VIEW derive, CẤM file nguồn-đôi" `tiep.md:181`) thiết kế phải chọn: sổ = NGUỒN cho yêu-cầu-anh, WAL = mạch việc; ranh giới cần vẽ kẻo giẫm sàn-3.
**Điều kiện vào:** chỉ cần GĐ-1 (độc lập GĐ-2/3/5, hub cho kéo sớm) TC-01/TC-12 của SE đau thật ưu tiên cao.
---
### GĐ-5 — Cửa gọi mô hình đắt tiền
**Hub đòi:** mọi cửa đắt do chủ + tham số model tường minh · điều phối chỉ đóng-gói cấm diễn-giải-lại · cửa biên dịch ý định chỉ-ra-bản-nháp · gói ngữ cảnh 5 mảnh khai-chưa-có · sổ lượt-đắt khung-nhìn ghi-ngay-lúc-dựng-thư-mục · vai mới vào danh sách hợp lệ trước · vật chứng CHUNG GỐC.
**SE đã có (GĐ GẦN XONG NHẤT — phần lớn tương đương hoặc mạnh hơn):**
- **Cửa chỉ-anh-gõ:** H21 per-invocation `/fable-real`·`/fable-clone` chỉ sống trong lượt anh , không persist (`.claude/commands/fable-{real,clone}.md` tồn tại; `fable-real-runbook.md` §2.1-bis INVOCATION; CLAUDE.md khối operating-posture: "per-invocation, KHÔNG persist (H21)").
- **Tham số model tường minh + audit:** worker-tier-pin 14/14 opus+max (S124, frontmatter) · `TIER2_EXPECTED_FULL_ID` single-source (`hmw.js:73`) · `scripts/spawn-model-audit.ps1` PA-2b resolved-vs-expected (INFORMATIONAL, header tự khai) · **đo thật S126: 0-mismatch, control no-tier→opus dù lead=Fable** (`session-start.md:51`).
- **Spec-file 3-mục** (engine propose lead verify+ghi worker theo spec, H21) = họ hàng "cửa biên dịch ý định"; spec S180 này instance (4 khối: đề-bài/cách-làm/checklist/bất-biến đủ mục-tiêu/phạm-vi/acceptance/điều-cấm).
- **Vật chứng CHUNG GỐC ĐÚNG NGUYÊN VĂN:** fable-run HMW-run cùng đổ `.claude/workflows/runs/` (run-folder này = fable-real, nằm cạnh 89 folder khác); sổ riêng không tồn tại nên không "đường dẫn thứ hai".
- **Gói ngữ cảnh chuẩn hoá:** `tiep_reload` nạp NỀN theo khoá `memory-budget.json` (B1 cấm chép danh sách tệp `tiep.md:183`) + lớp mềm `_mind` + WAL-reconciled + `ctx-verifier` trả BẢN NẠP-LẠI 15 dòng + **LEAD-PHAI-NHAC-LAI chi-tiết-chỉ-biết-nếu-đã-đọc** ("đã nạp suông KHÔNG tính, metadata ts/hash KHÔNG tính") mạnh hơn khai-chưa-có của hub vế chống-nạp-giả.
- **Ghi-ngay-lúc-dựng:** mode-B em-main scaffold run-folder @P1 TRƯỚC fan-out (`hmw.js:9`); spec-pin trước spawn.
- Recovery lượt-chết: R5 3-nấc + dòng-sống-kể-cả-chết-giữa-chừng đã chứng minh @S180 (7 vai #53, 0 byte mất).
**SE thiếu / làm KHÁC (khai mục-6 khuôn báo cáo, không phải xin lỗi):**
- **Sổ lượt-chạy-đắt dạng KHUNG NHÌN: KHÔNG ** dữ liệu phân tán (WAL chain ghi verdict + engine-stamp `[engine: …]` trong diary từng vai + run-folders). 1 view {thời điểm · loại · đề bài · con trỏ · kết luận} chưa tồn tại. Chi phí dựng thấp (grep-derive từ runs/ + stamps).
- **Cửa duyệt chủ-dự-án giữa spec-nháp thi công:** SE KHÁC HÌNH anh duyệt ĐẦU ( lệnh + vai + đề bài), spec do LEAD verify rồi worker chạy luôn trong CÙNG invocation; hub muốn spec-nháp quay lại chủ duyệt rồi mới thi công. Với văn hoá SE (anh = đã trao), giữ cách SE hợp lệ theo "sàn chỉ nâng"; ghi làm-khác + do.
- "Điều phối cấm diễn-giải-lại lời chủ": SE chưa luật thành văn + chưa rào-nguyên-văn; hub tự khai chế của chính họ đang "bỏ qua khai" adopt mức LUẬT-THÀNH-VĂN trước, máy sau.
- Bẫy-3 hub (đăng vai TRƯỚC khi dùng): SE bài học cùng họ (E-009 custom-workflow không kế thừa guard; "17/17" stale) **CHƯA ĐO** ca "vai mới thiếu đăng nuốt ức" đúng nghĩa: cần grep error-ledger "roster\|đăng ".
**Điều kiện vào:** GĐ-1+GĐ-2 thi công/miễn + hạn mức hạn mức THẬT (phiên này chạy Fable). Không rơi vào nhánh `không áp dụng`.
---
### GĐ-6 — Niêm phong đồng bộ và bảng gốc
**Hub đòi:** cổng đồng bộ 4 tầng dán kết quả · trace ngược phạm-vi-tự-phình · cổng điểm danh số-kỳ-vọng-suy-từ-danh-sách + mutation-test · điều-kiện-vào-danh-sách trọn-gói-1-commit · đối chứng tên 2 chiều lần cuối · bảng gốc 12-TC mỗi-ô-số-kèm-lệnh · bản nháp dấu chờ-ký mã-dấu-trống · quét đồng bộ tài liệu tick-từng-cái · báo cáo cuối.
**SE đã có:**
- Họ hàng cổng-4-tầng: drift-audit tháng (CLAUDE.md:121 vừa chạy S179, verdict `tooling-auditor = PASS_WITH_FLAGS — 8`) + C2/B3 derived-staleness vs STATUS canonical + ring1/ring2 đối kháng (WAL S180: ring1 32Đ/6T · ring2 21Đ/0T) nhưng đó DOC-drift + lead-claim audit, **chưa phải trace ý-tưởng→spec→việc-thật 4 tầng**.
- Số-kỳ-vọng-suy-từ-danh-sách: pattern ĐÃ C11 (informRoles live-read) + hmw.js roster (không chép số); **mutation-test cho cổng roster: KHÔNG CÓ**.
- Bản-nháp-dấu chờ ký: **cơ chế RC-mark ĐÃ CÓ VÀ ĐANG DÙNG** `ACTIVE-MARKS.md` chứa dấu dạng `RC-pqhuy1987-<ts>` do anh cấp (fable-real-runbook.md trích RC-mark thật; luật hub món-4 cũng dùng đúng format RC này cùng chuẩn mesh).
- Quét đồng bộ tài liệu: khuôn tick-list trong nghi thức drift-audit (rules.md §6.49.4 dẫn theo CLAUDE.md:121).
- Khai máy-hay-tay (A16): VĂN HOÁ (AS-19 tự khai "nghi-thức, chưa cơ-khí-hoá"; drift-audit khai "em-main chạy thủ-công"; LỚP-9-fix S100 gỡ cron-claim ghost) **BẢNG A16 hợp nhất chưa có**.
**SE thiếu:** cổng đồng bộ 4 tầng + trace ngược tự-phình + mutation-test + bảng gốc 12-TC (chưa tồn tại §2 file này phôi) + báo cáo cuối.
**Điều kiện vào:** MỌI trong phạm-vi-áp-dụng đã thi công XA NHẤT, đúng thiết kế. Không làm đây trước khi các trước xong.
---
## §2 — TRỤC 2: 12 TC × bệnh SE
> 4 ô hub để CHỮ (TC-02·03·07·10) — GIỮ NGUYÊN CHỮ, chỉ thêm bằng chứng định tính phía SE, KHÔNG điền số.
| TC | SE bệnh? | Bằng chứng đo được trên kho SE (lệnh/đường dẫn) |
|---|---|---|
| **TC-01** nhắc nhiều lần mới làm | **CÓ (định tính; SỐ: KHÔNG ĐO ĐƯỢC — chưa có sổ đếm lần-nhắc, đúng cái GĐ-4 dựng)** | Ca thật: mất-uỷ-quyền-owner phải hỏi lại 3 lượt (`auto-memory/feedback_absence_looks_like_clean.md` "slot-index tái-dụng xoá IM-LẶNG... hỏi lại 3 lượt"); owner S165 phải ra luật `/pause` liệt từng đầu việc việc rơi (`feedback_pause_track_plan_progress.md`) |
| **TC-02** cho làm thẳng vẫn hỏi | **GIỮ CHỮ HUB: *chưa có dụng cụ*.** SE cũng 0 phép đếm. Định tính: SE ĐÃ chế mark-làm-thẳng (ACTIVE-MARKS + `/user-mark-active*` 4 lệnh, `ls .claude/commands/`) + luật derived-flush-không-gate (`feedback_derived_flush_execution.md`) thuốc-phân-biệt-2-loại mầm, phép đếm hỏi-lại chưa |
| **TC-03** model mạnh hiểu đúng hơn | **GIỮ CHỮ HUB: *chưa đủ mẫu*.** Định tính SE cùng chiều: `feedback_high_to_max_multiagent_quality.md` (Max cross-stack); S171 "đầy-đủ đúng" (invest 44KB bị 3 lane reviewer lật MEMORY.md S171); no-tieropus mặc định đo S126 |
| **TC-04** vật chứng lượt đắt sót | **CÓ — NẶNG NHẤT, và lưới đã dựng đang trả lãi** | Phiên S180: **7/7 vai #53** (WAL verify block ghi 6/6; coordinator xác nhận tôi = vai 7) nhưng "recover 6/6 mất 0 byte" nhờ ghi-đĩa-trong-lúc-làm; tally 72-cận-dưới qua S162 (`feedback_agent_return_garble_recover.md`); ca ngược-#53 S149-L1 (return OK đĩa KHÔNG) |
| **TC-05** vai soi ghi-đĩa cấm-sửa | **CÓ nhu cầu, ĐÃ CÓ 70%:** cặp obs {harvest-curator, tooling-auditor} vô-điều-kiện @close (`closeout-sentinel.ps1` header) + sentinel M5 + INFORM-only; ràng cấm-sửa = G-015/AS-10 git-diff backstop (error-ledger). Thiếu: máy 4-vị-từ (xem GĐ-2) |
| **TC-06** nghi thức tự-ý-bỏ | **CÓ — đo được:** drift-audit trễ 6 ngày tự khai (`CLAUDE.md:121` "trễ 6 ngày so hạn 08-01"); cả một lỗi sinh ra từ bệnh này: E-011/AS-15 "nghi-thức chạy tắt, máy lớp nghi-thức-có-chạy-không" (error-ledger); thuốc-tái-phạm ĐÃ (2-strike promote) |
| **TC-07** chủ vắng máy đứng chờ | **GIỮ CHỮ HUB: *chưa có dụng cụ*.** SE 0 bộ đếm đứng-chờ. chế chống sẵn: /pause·/tiep 1-đường (H22) + WAL + ACTIVE-MARKS autonomy + probe-không-chặn-điểm-dừng (thoát phiên an toàn không cần anh). WAL S180 "next: chờ anh chọn (a)(b)(c)" = đứng-chờ KHAI tại lằn ranh hợp lệ, không đếm được |
| **TC-08** audit trong dòng chỉ bắt cái sống lâu hơn | **CÓ — ca chuẩn + thuốc đã uống:** H2-F3 S149 coverage-miss (10 lượt invest 0 delta sổ, ngoài lưới C11(b) by-design MEMORY.md S149); thuốc = closeout-sentinel (cửa-sau, positive-control 5/5) + bookend @open bắt lọt phiên trước |
| **TC-09** chỗ ngồi lệch model không ai biết | **CÓ bệnh-gốc (nỗi sợ), MÁY ĐÃ DỰNG VÀ ĐO 0-mismatch:** `scripts/spawn-model-audit.ps1` (PA-2b) + `TIER2_EXPECTED_FULL_ID` (`hmw.js:73`) + đo S126 control-âm/dương đủ (`session-start.md:51`). Lệnh tái lập: `powershell -ExecutionPolicy Bypass -File scripts/spawn-model-audit.ps1` |
| **TC-10** đo tiêu thụ per-cửa | **GIỮ NGUYÊN CHỮ HUB: KHÔNG ĐO ĐƯỢC.** SE cũng không tồn tại dụng cụ; doctrine S158 "đo BYTE, CẤM quy token" (`MEMORY.md` S158). Nếu adopt trần: trần = hướng dẫn + nghĩa vụ khai khi vượt, đúng chữ hub |
| **TC-11** tên duy nhất, không rớt máy đọc | **CÓ — ≥3 ca:** `sub-ctx-audit-*` lọt C11(b) filter (S153 S159, vết trong detector body); `_tiep-1.md` sha 7-char vs 40 (S158); "17/17" hardcode stale (`hmw.js:57` comment). Máy soi tên tổng: chưa (GĐ-1) |
| **TC-12** chấm điểm treo | **CÓ — dạng nặng hơn hub: VẮNG CƠ CHẾ HOÀN TOÀN.** `grep -rn "chấm điểm" .claude/commands/*.md` = 0 hit thật (control "điểm dừng" = 3 file). Hub: điểm treo chờ chủ; SE: điểm chưa từng được sinh ra |
---
## §3 — TRỤC 3: 9 lớp lỗi × ca SE (đồng thuận nền lead 9/9 — bổ sung ca + file:line của invest)
| LỚP | SE giẫm? | Ca (của lead bổ sung invest) |
|---|---|---|
| **LỚP-1** quên ghi lúc mở | **RỒI, nhiều lần** | #53-family (7 vai @S180); S175 spawn TASK-RỖNG sống nhờ run.md dựng trước (MEMORY.md S175 META); ngược-#53 S149-L1 return-OK-đĩa-KHÔNG. Thuốc SE = scaffold @P1 + spec-pin trước spawn |
| **LỚP-2** thợ rèn không dao | **RỒI — gốc S149 + 3 ca lead đo HÔM NAY** | Gốc: "SE = rules-đủ máy-thiếu, 0 script GHI counter" (S149); lead @S180: harvest-curator mắc bẫy đơn-vị bài-học-nằm-trong-file-chính-nó · `lead-stale-auditor:45` chính stale-count · `ring2-audit:4` ghi "5 class" khi enum 6 (nguồn: run.md cùng thư mục tôi KHÔNG đo lại, tin điều kiện, đánh dấu lead-measured) |
| **LỚP-3** chấm chéo lần-1 KHÔNG ĐẠT mặc định | **RỒI — và SE đã lập kế hoạch có vòng vá** | S171 miễn-trừ 63 + 6 acceptance gãy khi chạy thật (MEMORY.md S171); S179 C7 bắt 2 MAJOR trong chính bản (commit `57e672f`); S180 ring1 32Đ/**6T** (WAL). Cấu trúc N1N5 của spec này TỰ CHỨA vòng phản biện = đúng thuốc |
| **LỚP-4** exit-0 không cờ | **RỒI — ca tươi HÔM NAY** | ERRATA lead 1 @S180: BƯỚC 0.9 tuyên "all=0" SAI khi 4 thư chưa áp (WAL verify block; control-dương loi-do-luong=1). SE đồng thời ĐÃ thuốc cấu trúc: tách TOTAL INFORM-ONLY 2 dòng (detectors `:1941+`) đọc thiếu dòng 2 tái phạm |
| **LỚP-5** số chép tay trôi | **RỒI, kinh niên — đã lên LUẬT B1** | Persona neo "40" stale tới 71 (S169); "17/17" (`hmw.js:57`); STATUS:467 công-thức-chữ tự-huỷ "trừ Designer+Snapshot cho 71 không phải 72" (WAL S180 NẶNG NHẤT ring1 tự tìm); thuốc = B1 trỏ-canonical-không-chép-số (CLAUDE.md nhiều chỗ) + C2/B3 detector |
| **LỚP-6** neo số dòng chết ngay sinh | **RỒI** | Lead @S180: `STATUS:8` trỏ `:479` row thật `:481`; bẫy "con-trỏ-số-dòng-vào-sổ-tái-sinh" (`feedback_resume_premise_reverify.md`); thuốc ĐÃ chuẩn: archive `_INDEX.md` substring-anchor + máy resolve `memory-archive-gate.ps1` A7 |
| **LỚP-7** tuyên gấp-đầy-đủ thân mục lục | **RỒI — kể cả CHÍNH FILE NÀY hôm nay** | AS-17 skeleton-ruột-rỗng 2-strike S150/S151 (error-ledger); S157 coordinator chặn skeleton @202K; **@S180: tôi bị coordinator bắt đúng lớp này** 7.049B khung đầy đủ, ruột 15%, sau 202K token đọc (datum §4) |
| **LỚP-8** nhãn đã-đóng hẹp hơn phạm vi | **RỒI** | Lead @S180: slot (70) `~~ĐÓNG~~` rider H24-2 còn sống; citation-trap gen-2 lây-qua-trích-dẫn 3 đời/1 wave (`feedback_citation_trap_selfreference.md`); permission-matrix header quên CÂY S122S164 (SKILL.md tự khai "dư-lượng bất-đối-xứng") |
| **LỚP-9** cưỡng chế tuyên chưa máy | **RỒI, ≥5 ca — và có văn hoá tự khai tốt** | Lead @S180: `tools-whitelist-no-teeth` · `session_ctx_kb` 0-reader · `pull_warn_days` khoá trống; +H18 S100 cron-claim CronList=0 (`feedback_h18_ghostwire_stamp_integrity.md`); +per-L keys tự khai GHOST-WIRE ngay trong doc (`session-start.md:119-121` " số hành-vi"); +S168 command-sống-trong-comment (`feedback_dryrun_finds_promised_but_unlanded.md`). A16 (khai máy/tay) = đúng thuốc, SE nên adopt nguyên khoản |
---
## §4 — Phát hiện ngoài đề bài · xung đột · VƯỢT-KHUNG · datum
1. **F-1 — 4 thư đang ở nấc DRAFT phía hub:** frontmatter cả 4 = `status: DRAFT` + `reviewer_gate: PENDING` + `nac: draft`, TRONG KHI thư chính tuyên "khi phát, mỗi món đi kèm dấu xác thực nội dung trạng thái đã duyệt; bản nháp thì không " hash canonical LẠI KHỚP 4/4. hoặc hub phát bản chưa flip nhãn, hoặc nhãn nấc không nằm trong vùng hash. **Không tự phán — nêu ở mục phản-biện-gửi-hub (khuôn B mục 8) khi adap-report.** KHÔNG chặn GĐ-0 phía SE (hash khớp = nội dung toàn vẹn).
2. **Datum LỚP-7 tự thân @S180 (ghi theo lệnh coordinator):** invest này đọc 202K token/27 tool-use nhưng chỉ đổ 7.049B (~15%) ra đĩa trước khi bị nhắc bản-đồ-về-lớp-lỗi tự giẫm đúng LỚP-7/LỚP-2 đang lập bản đồ. trong-phiên: nhát Edit này. Bài: **tỉ-lệ-đổ-ruột (byte-trên-đĩa / token-đã-đọc) là tín hiệu giám sát được** đề xuất thêm vào khuôn C11(b)/AS-17 dưới dạng ngưỡng mềm.
3. **Xung đột lớn duy nhất: exit-0-advisory ⟂ cổng-chặn-mã-lỗi** (chi tiết GĐ-3). VƯỢT-KHUNG anh + AI_INFRA. Các mục còn lại THIẾU chứ không NGƯỢC.
4. **VƯỢT-KHUNG cần anh (4 khoản):** (a) đổi chế độ exit của lớp detector/sentinel; (b) wire luật chấm điểm vào 2 cửa phiên + vai tầng-2/3 + thu-hẹp-vai-cũ; (c) sổ-3-khối = artifact lane quản trị mới cạnh WAL (nguy nguồn-đôi cần vẽ ranh); (d) đẻ vai mới (giữ-chuẩn-tên / đọc-sổ) đụng điều-kiện-vào-danh-sách trọn-gói (GĐ-6 (iii)) + roster.
5. **SUPERSEDE = 0 việc un-do phía SE** (bộ 5-phần 03-08 chưa từng phát; inbox chỉ 4 file 08-04 `ls broadcasts/inbox/ai_infra/ | grep 2026-08-0` khớp; đồng thuận nền lead).
6. **Số kho lệch nhỏ so đề bài giao (dùng số ĐO, kèm lệnh):** runs = **90** folder (đề bài: 87) `ls .claude/workflows/runs/ | wc -l`; auto-memory = **61** (đề bài: 60) `ls .claude/auto-memory/*.md | wc -l`; gotchas "87 mục": **CHƯA XÁC NHẬN** `grep -c "^## " docs/gotchas.md` = 19 ĐẾM SAI THƯỚC (header cấp-2 mục #n); cần `grep -cE "^#{2,4} #[0-9]+" docs/gotchas.md` hoặc đọc header file để lấy pattern thật. KHÔNG dùng 87 khi chưa tự đếm.
7. **Nhịp hub-hỏi-tiến-độ:** se thuộc nhóm bị hỏi MỖI PHIÊN (thư chính, bảng track) GĐ-0 đóng sớm giá trị quan hệ mesh, không chỉ nội bộ.
---
## §5 — Fit-map 7 dòng (Phần A khuôn — BẢN ĐỀ XUẤT, lead + anh quyết)
| Giai đoạn | Tên | Quyết định (đề xuất) | do / điều kiện | Người làm | Mốc dự kiến |
|---|---|---|---|---|---|
| GĐ-0 | Tiếp nhận bản đồ áp dụng | **áp dụng** | đang làm dở phiên này; còn: dòng đã-nhận `_index`, fit-map file rời, tệp theo dõi A0..A16, adap-report | em-main | S180-S181 |
| GĐ-1 | Nền chuẩn đặt tên | **áp dụng** (tailored) | KHÔNG khai không-áp-dụng được (chưa chuẩn-duy-nhất); viết 1 văn bản HỢP NHẤT trỏ máy sẵn (C3/C11/alias-map) + sổ đổi tên máy-đọc; vai-giữ-chuẩn = chờ anh (VƯỢT-KHUNG (d)) | em-main + investigator | wave 1 |
| GĐ-2 | Lưới ghi đĩa + mục lục vật chứng | **áp dụng** (nâng từ ~70%) | thêm vị-từ CỤT + NÉN-QUÁ-TAY (cơ-khí-hoá AS-17/AS-19) + mục-lục-sống runs/ + điểm danh 2 nguồn | em-main | wave 2 |
| GĐ-3 | Nghi thức 2 đầu + cổng lỗi | **áp dụng MỘT PHẦN — phần cổng-mã-lỗi HOÃN** | 4 nhãn + vòng-hỏi-ngược + liệt-kê-cửa-có-tiền-kiểm = áp; đổi exit-0gate = điều-kiện-gỡ-hoãn: anh + AI_INFRA quyết xung đột triết | em-main (phần áp) | wave 3 |
| GĐ-4 | Sổ yêu cầu chủ + chấm điểm | **áp dụng — sổ TRƯỚC, chấm điểm CHỜ ANH GẬT wire** | TC-01/TC-12 SE đau thật; sổ 3 khối + máy + 2 vế đèn = việc máy; khối chấm điểm đụng 2 cửa phiên = VƯỢT-KHUNG (b) | em-main + anh | wave 4 (sổ) · wave 4b (điểm, gated) |
| GĐ-5 | Cửa gọi model đắt | **áp dụng phần THIẾU nhỏ; phần lõi khai "đã có tương đương/mạnh hơn"** | đã có: per-invocation + tier-pin + spawn-audit + chung-gốc + ctx-pack chống-nạp-giả; thiếu: sổ-khung-nhìn lượt đắt + luật truyền-nguyên-văn thành văn; cửa-duyệt-spec = làm-KHÁC khai (mục 6 khuôn B) | em-main | wave 5 (nhẹ) |
| GĐ-6 | Niêm phong + bảng gốc | **hoãn** | điều kiện gỡ: mọi áp-dụng đạt *đã thi công*; khi gỡ: cổng 4 tầng + trace-ngược + mutation-test + bảng gốc 12-TC + bản-nháp-dấu (RC-mark sẵn) | em-main + anh | sau wave 5 |
Tự kiểm khi lead chép sang file bản đồ thật: `grep -c '^| GĐ-' <tệp-bản-đồ>` = 7 (chạy trên tệp bản đồ, KHÔNG trên khuôn/không trên file này file này bảng trên cũng 7 dòng, nhầm mẫu số ra 14, đúng bẫy hub cảnh báo).
---
## §6 — Thứ tự wave sơ bộ (cho N4 tham khảo — N4 mới là người chốt)
> Bất biến gói: mỗi wave trỏ ≥1 TC; điều-kiện-vào = wave trước thi-công hoặc miễn-có-khai.
- **W0 (đóng GĐ-0)** dòng "đã nhận" vào `broadcasts/_index.md` + tệp bản-đồ 7 dòng + tệp theo dõi A0-1..A16 + adap-report tiếp nhận. **TC chữa: điều kiện tồn tại của mọi TC.** Phụ thuộc: không. Chi phí: <1 giờ. Làm S180/S181.
- **W1 (GĐ-1)** chuẩn-tên hợp nhất + sổ-đổi-tên máy-đọc + (tùy anh) vai giữ chuẩn. **TC-11.** Phụ thuộc: W0. do đứng sớm: luật điều-kiện-vào GĐ-2..5 đều neo GĐ-1, SE không khai miễn được.
- **W2 (GĐ-2 nâng)** vị từ CỤT/NÉN (cơ-khí AS-17/19) + mục-lục-sống runs/ + điểm-danh-2-nguồn. **TC-04, TC-05.** Phụ thuộc: W1 (tên artifact chuẩn trước khi viết máy soi). Đây wave trả lãi nhanh nhất #53 7-vai/phiên bệnh đắt nhất đang chảy máu.
- **W3 (GĐ-3 phần áp)** 4 nhãn thành văn + vòng-hỏi-ngược khuôn + liệt từng-cửa-có-tiền-kiểm + luật tự-trị-3-bậc đối chiếu ACTIVE-MARKS. **TC-06, TC-07, TC-08.** Phần cổng-mã-lỗi: treo chờ anh+hub (không chặn wave sau hub cho GĐ-4 độc lập GĐ-3).
- **W4 (GĐ-4 sổ)** sổ 3 khối + vĩnh viễn + máy 2-số + nối 2 vế vào nhip-no + 2 mục mồi từ ACTIVE-MARKS + A5/A6 thành văn. **TC-01, TC-02(dụng cụ), TC-12(nền).** Phụ thuộc: W1. **W4b (chấm điểm)**: sau khi anh duyệt wire 2 cửa công thức + 3 mốc + 4 tầng giữ nguyên ruột theo luật đã .
- **W5 (GĐ-5 phần thiếu)** sổ-khung-nhìn lượt đắt (derive từ runs/ + engine-stamp) + luật truyền-nguyên-văn. **TC-03(nền mẫu), TC-09(duy trì), TC-04.** Nhẹ, thể ghép W2.
- **W6 (GĐ-6)** chỉ mở khi W1-W5 thi công: cổng 4 tầng + bảng gốc 12-TC + mutation-test + bản-nháp-dấu + báo cáo cuối cho hub. **TC-12 (tô xanh có bằng chứng) + toàn bảng.**
## §7 — Vét ô CHƯA ĐO (đợt 2, sau lệnh đổ-ruột của coordinator)
1. **Luật tự-trị 3-bậc (GĐ-3):** `grep -n "bậc|tự vá|mơ hồ" .claude/governance/ACTIVE-MARKS.md` 1 hit duy nhất "bậc-MẠNH" (tín hiệu Sàn-3, KHÁC nghĩa). **thang 3-bậc dạng hub (rõ→tự-vá · mơ-hồ→nhánh-an-toàn · hỏi-khi-phá-huỷ) CHƯA thành văn**; SE posture-mark owner-ký (Active-High/Active/Medium/Disable) = trục KHÁC (ai-được-tự-trị-đến-đâu per-cơ-chế, không phải cây-quyết-định-khi-vắng). Khoản GĐ-3(vii): CHƯA LÀM, nguyên liệu = 2 mục mồi GĐ-4 + ACTIVE-MARKS.
2. **Tiền kiểm ở cửa phụ (GĐ-3):** `check-email.md:45` FAIL-SOFT "check-email loi (khong chan)" cùng khuôn nhip-no nhưng đó **fail-soft, KHÔNG phải tiền-kiểm-soi-cửa-đã-đóng**. Cửa `/check-email`, `/adap-*`: **không có tiền kiểm** khi làm GĐ-3, liệt từng-cửa phải khai 2 cửa này "không sinh tệp mốc / chưa tiền kiểm".
3. 🔄 **BÁC MỘT PHẦN nền lead (lead mời bác):** lead xếp `pull_warn_days` khoá trống vào LỚP-9 ghost-wire. Đo lại: `check-email.md:48` khai **"🔒 `pull_warn_days` CỐ Ý để TRỐNG anh không đặt số @S148, script cấm tự chế mặc-định"** + vế-4 đã ĐỔI VAI thành chỉ-báo-sức-khoẻ-nghi-thức. đây **owner-gated-empty CÓ KHAI**, không phải "cưỡng chế tuyên chưa máy" máy , số quyền anh, sự trống ĐƯỢC khai đúng chỗ. 2 món ghost-wire còn lại của lead (tools-whitelist-no-teeth · session_ctx_kb 0-reader) tôi KHÔNG bác chưa đo lại, giữ nhãn lead-measured.
4. **Đếm gotchas:** 2 thước đã thử đều hỏng (`^## ` = 19 header-cấp-2 mục; max token `#N` = `#482` dính "Run #482" CI, không phải gotcha). **tổng gotcha = KHÔNG ĐO ĐƯỢC bằng thước đã thử; canonical = row trong `docs/STATUS.md` (đúng B1)** người sau muốn đếm phải mở file xem format đánh số inline rồi mới viết regex, đừng dùng số 87 của đề bài khi chưa tự đếm.
5. **A5 họ-hàng ("hỏi lại phải trả phí viện dẫn"):** `grep -rln "viện dẫn" .claude/auto-memory/*.md` = **0 hit** (control-dương: cùng thư mục ls được 61 file; cụm này nằm trong THƯ HUB luật-4, không phải memory SE). A5 chưa thành văn phía SE xác nhận kết luận GĐ-4.
6. **GĐ-5 bẫy-3 (vai mới thiếu đăng ký):** `grep -n "roster|đăng ký" docs/governance/error-ledger.md` = **0 hit** (control-dương: cùng file đọc được AS-13..AS-20 đầu phiên này). SE **chưa có hồ-sơ ca giẫm** bẫy này; họ hàng gần nhất = "17/17 stale" (hardcode-count) E-009 (custom-workflow không kế thừa guard). Khi GĐ-6 làm điều-kiện-vào-danh-sách, đây bẫy PHÒNG chứ không phải bẫy ĐÃ chảy máu.
**END sub-invest-fitmap-S180 — VERDICT=PHỦ-ĐỦ-7GĐ-12TC-9LỖI; 1 xung đột triết lý (exit-0 ⟂ cổng-chặn); 4 khoản VƯỢT-KHUNG; 1 bác-một-phần nền lead (pull_warn_days = owner-gated-empty có khai); GĐ-5 gần xong nhất, GĐ-4 hổng nhất; W0 đóng được ngay hôm nay.**