Files
solution-erp/docs/governance/harness-11-engine.md
pqhuy1987 d29187902a
All checks were successful
Deploy SOLUTION_ERP / build-deploy (push) Successful in 6m30s
[CLAUDE] Docs: S181 closeout — bookend @close 21 FLAG, va 20 + 2 loi lead tu gay
Bookend @close chay du 6 vai + 2 vai KIEM vong. Ket qua dat nhat cua phien.

Con-DO:
- tooling-auditor  PASS_WITH_FLAGS 6  (F-1 o canonical Sub-agents 26 -> 28,
  la dich cua 5 con-tro B1 ⇒ 1 o sai = 5 con-tro resolve sai)
- harvest-curator  GATE-FAIL 6        (F-03: cong thuc cot-A MU khi phien
  khong mo run-folder ⇒ A∖B = ∅ ⇒ bao PASS trong khi 7/7 vai thung.
  DAT-ao do CAU TRUC — may khong hong, may HOI SAI CAU)
- lead-stale-auditor 9 FLAG · lead-gap-auditor 6 FLAG

Con-KIEM:
- ring1-audit 26 DAT / 5 TRUOT — thach-CLEAN THUNG mat "skill sach" cua H1:
  ef-core-migration heading tu mau thuan (vua tro STATUS canonical vua ghi
  "moi nhat = row cuoi bang", row cuoi = Mig 71, dia = 72).
- ring2-audit 14 DAT / 0 TRUOT — 15/15 FLAG trung vat that, 0 gan oan.

🔴 HAI LOI LEAD TU GAY, ca hai do phep do doc lap bat:
1. Tu MO RONG tham quyen: viet "Chu du an phan P7 ve (ii)" tren vat GUI HUB,
   trong khi so quyet-dinh ma chinh bao-cao tro toi ghi "CHUA phan, VAN TREO".
   Anh noi "OK lam het roi khep tron di" = uy quyen chay not, KHONG phai phan
   noi dung. Da ha chu 3 site. Anh bac thi go, 1 luot.
2. Sweep "roster 23->28" TOAN CUC an vao 2 anh chup DONG BANG (STATUS:15 ky
   S159-S160 · :478 lineage S153). Bang chung noi-tai: o :15 moi so lang gieng
   cung dong van gia tri cu, CHI roster nhay. Da hoan ca 2 ve 23.
   ⇒ LUAT: literal trong segment " S…" = ANH CHUP, CAM sweep theo pattern.

Va them: vi pham C1 dong-bang be-mat-do (ghi STATUS/HANDOFF trong luc 4 vai
dang do; vai gap chung bang chinh phep do cua no: 285/54 -> 287/56). RCA
C1-S181 vao error-ledger, kem khai NO CHUA TRA: 0 cong may nao chan.

Da xu 20/21 FLAG: seed 9/9 nhat ky vai · re-stamp 20 slug mo + 3 moi · RC
-21-42-10 vao ACTIVE-MARKS kem PHAM VI KY · va cong thuc cot-A · YC-007..012
loi anh nguyen van · 2 bai hoc vao auto-memory.

§L.c gate: vong 3/5 (khong-nhip V3 trio, V4 nen-ngu) | phep DAT 4 / TRUOT 0.
mind-check closed-mode: dat=10 TRUOT=0 exit 0. _end da ghi (FROZEN).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-07 23:31:01 +07:00

103 KiB
Raw Blame History

Harness-11 — Engine bộ-nhớ-và-governance TỰ-BẢO-TRÌ (SE canonical)

Adopt S75 (2026-06-18) — AI_INFRA broadcast 2026-06-18-Governance-harness-11 + checklist (inbox broadcasts/inbox/ai_infra/). Áp qua 2 workflow (IMPLEMENT wf_c5e5844e-7c1 + REVIEW) per mandate ⑤. adap-report → docs/governance/adap-reports/2026-06-18-Governance-harness-11.md.

🔑 Đây là CANONICAL cho engine governance của SE. Doc khác (agents/README, session-start/end) TRỎ về đây, KHÔNG copy luật (B1 dogfood — một-chỗ-đổi).

🔭 Phạm-vi (S79 consolidate · S81 +§G): doc gốc Harness-11 (PHẦN A-D) nay gom thêm §E (User-Mark H-12/13 canonical §P) + §F (Harness-14 Eval/Budget/Outcome) + §G (Harness-15 memory-budget per-agent token-based, S81) — 1 engine governance hợp-nhất (mirror AI_INFRA "harness-all" consolidation). Ledger mark = .claude/governance/ACTIVE-MARKS.md.

🔑 Nguyên-lý lõi: "tự-bảo-trì" = luôn-TỰ-BIẾT khi có drift (detector tự-động, NÊU-CỜ ngay) CHỨ KHÔNG tự-viết-lại nội-dung/luật. DÒ tự-động; SỬA do người-chủ-trì (em-main) làm trên cờ. BAR-KHÔNG-HẠ = một-người-ghi (single-writer) — "tự-bảo-trì" TUYỆT-ĐỐI KHÔNG miễn-trừ chốt này.


Bản-đồ artifact (engine SE)

Cấu phần Artifact Nấc
PHẦN A — hot-mem auto-archive scripts/memory-archive-gate.ps1 + .claude/agent-memory/memory-budget.json (archive_gate params) + session-end.md §L.b mechanized DRY-RUN planner + convention trigger (no-OS-hook)
PHẦN B — derived→canonical + freshness luật B1 (dưới) + scripts/governance-detectors.ps1 (C2 staleness) detector mechanized + fix gated qua người
PHẦN C — 3 grep detector scripts/governance-detectors.ps1 (C1/C2/C3 + C4 self-exclusion + C5 resolve-condition) mechanized NO-API, DÒ+FLAG-only
PHẦN D — orchestration doc này (3-tier + 1-direction) + session-start.md/session-end.md/ultra-on.md cadence + hmw.js checkpoint mix mechanized + convention
PHẦN E — User-Mark (H-12/13, canonical §P) + RC-signature doc này §E (cơ-chế P1-P10) + .claude/governance/ACTIVE-MARKS.md (sổ-cái + display) + 4 lệnh /user-mark-* (interface) + session-start §2.1.4/session-end §L.b(h) (display) convention (report-trước-đóng-dấu P4) + mechanized (display gắn-lệnh-phiên + tool-deny settings P9)
PHẦN F — Harness-14 Eval/Budget/Outcome doc này §F (3-mức maturity + method) + eval/ golden-set harness (F.2) + memory-budget.json/measure-agent-memory.ps1 (F.3 = PHẦN A) eval = executed-file + convention (manual) · budget = mechanized ALIGNED · outcome-correlation/hit-rate = Mức-2 tool-pending-data
PHẦN G — Harness-15 memory-budget per-agent (token) +v2 §G.4 +v3 §G.5 doc này §G (SÀN floor + 3-tầng token + §G.4 hot-feed-lớn / L2-L3-bỏ-trần / %-print / ranh-giới-vai-trò + §G.5 full-parity 220/60/50 + spawn-fill-to-budget) + memory-budget.json (harness_floor + token_governor v3 + spawn_fill_directive + archive_gate.value_protect) + session-start §2.1.5+§2.1.6 + session-end §L.b(c) 2-governor mechanized (byte ⟂ token config) + sàn-chức-năng = convention; v3 (1)=config · (2)(3)=convention
PHẦN H — Harness-16 MFE (memory-fidelity-EVAL) doc này §H (coverage/retention method + maturity-tier) + scripts/mfe-eval.ps1 (deterministic NO-API) + eval/mfe/ (seed + README) + memory-budget.json (mfe config) + READS token_governor (single-source, never writes) + session-start §2.1.6/session-end §L.b(c) opt-in deterministic $0 = executed-file + runtime-smoke (S93) · judge = SCAFFOLD-only (Mức-2 chờ age+independent-judge) · READS-not-writes budget
PHẦN I — Harness-17 vòng tự-cải-thiện (Đo→Tinh-chỉnh→Kiểm) doc này §I + scripts/memory-selfimprove-audit.ps1 (C1 spec-audit NO-API) + .claude/governance/reinject-ledger.md (B2 CG-1) + COMPOSE mfe-eval.ps1(A2)/memory-archive-gate.ps1(archive)/governance-detectors.ps1(change-gov) + session-start §2.1.7/session-end §L.b(c) C1 spec-audit + A2 MFE + HCV-proxy = mechanized · B1/B2/B3 refine + C2 spot-check = convention · C3/CG-2 = REUSE §D.3/§G.2(b)
Canonical state (nguồn-chuẩn) docs/STATUS.md CURRENT STATE table

PHẦN A — Hot-mem auto-archive by budget (🟡 TAILORED)

SE-present từ Harness-9 (L2 archive byte-exact + _INDEX substring-pointer + gist). Harness-11 thêm 3 tham-số chống-thrash + standing-gate:

  • A1 byte-gate @session-endmemory-archive-gate.ps1 đo byte mỗi agent-memory/<sub>/MEMORY.md vs cap. (Trigger = session-end.md §L.b convention người-kích — engine no-OS-hook.)
  • A2 additive MOVE — bản-cũ-nhất → archive/<YYYY-MM>.md, NEVER overwrite (runtime-proven h910-curate: +N -0 byte-exact).
  • A3 _INDEX pointer-only — 1 dòng/bản-ghi, con-trỏ substring sha-keyed (memory-budget.json:19).
  • A4 hysteresis — dồn tới DƯỚI low_watermark = 0.85 × cap (không dừng ở vạch). [param archive_gate.low_watermark_ratio]
  • A5 keep-floor — luôn giữ ≥ keep_floor_entries (5) bản-ghi gần nhất, không vét sạch.
  • A6 2-strike — chỉ ĐỀ-XUẤT dồn khi over-cap ở 2 lần kiểm liên-tiếp (strike_threshold), chống alert-fatigue.
  • A7 NO-API L1-eval — sau dồn: (i) resolve-con-trỏ (mọi pointer _INDEX grep-định-vị được trong archive) + (ii) byte-0-loss (tổng trước = sau). grep + measure only, KHÔNG API.

🟡 Con-số (cap 25600, 0.85, 5, 2) = TAILOR. SE chọn DRY-RUN planner (in kế-hoạch + người duyệt) thay auto-move — vì move = đụng memory canonical (D6/D9, không tự-ghi).

PHẦN B — Derived-doc TRỎ canonical, KHÔNG copy (🔴 FUNCTION-FLOOR)

  • B1 — derived TRỎ canonical: tài-liệu-dẫn-xuất (CLAUDE.md root/docs, skills/*/SKILL.md, agents/README) KHÔNG copy volatile-token (mig#·test#·gotcha#·table#·bundle-hash·model) — TRỎ docs/STATUS.md (canonical). Lý-do: một-chỗ-đổi-N-chỗ-drift = nguồn drift #1 (chứng-minh sống: root CLAUDE.md kẹt mig 53 qua S70-S74).
  • B2 — giữ readability: dữ-kiện-ổn-định (tech-stack, module-table, convention) GIỮ inline đọc-được; CHỈ pointer cái HAY-đổi (tránh pointer-soup). Exemplar sẵn: docs/PROJECT-MAP.md (0 count-token, 241 dòng).
  • B3 — freshness-DETECT: governance-detectors.ps1 (detector C2) grep volatile-token derived vs canonical → FLAG lệch (KHÔNG tự sửa).
  • B4 — fix GATED qua người: FLAG → em-main xem diff → ghi (single-writer). KHÔNG đường tự-ghi-thẳng. (Mechanized backstop: git-diff commit-gate + run-folder TRACKED.)

PHẦN C — 3 bộ dò grep tất-định (🔴 FUNCTION-FLOOR MANDATE)

Tất cả ở scripts/governance-detectors.ps1 — NO-API (grep/measure only), DÒ+NÊU-CỜ-only (không tự sửa). Chạy @session-start (D1) báo cờ.

  • C1 broken-pointer — grep ref nội-bộ (gotcha #N > max · [[wikilink]] target thiếu) → FLAG dangling.
  • C2 derived-staleness (= B3) — count-token derived vs STATUS canonical (+ cross-check disk: mig = ls Migrations/*.cs excl Designer/Snapshot; gotcha = max ### N. trong gotchas.md) → FLAG mismatch + 'canonical-itself-stale' nếu STATUS lệch disk.
  • C3 vocab-fork — alias-set (seed: wave-folder↔run-trace, Dự trù PRO↔Ngân sách PRO, two-tier↔all-inherit) → FLAG khi ≥2 biến-thể cùng sống.
  • C4 self-line exclusion 🔴 — detector loại path tự-mô-tả (governance-detectors.ps1, harness-11-engine.md, broadcasts/**, runs/**) TRƯỚC khi FLAG → 0 self-match.
  • C5 resolve-condition 🔴 — mỗi FLAG kèm resolve: <điều-kiện-gỡ-cờ>. 2-strike anti-repeat = convention em-main áp (detector stateless per-run; KHÔNG over-claim mechanized-2-strike cho detector).

PHẦN D — Engine điều-phối (🔴 FUNCTION-FLOOR)

D.1 — Bảng-nhịp 4-lớp (SE-present, cadence-file)

  • D1 session-start = DÒ+BÁOsession-start.md §2.1.1 monitor RE-REPORT + §2.1.2 budget-audit + chạy governance-detectors.ps1 báo cờ (KHÔNG sửa). INFORM-only.
  • D2 session-end = BẢO-TRÌ+archivesession-end.md §L (byte-gate A + harvest-GATE 5-trục + gác-cờ chưa xử-lý).
  • D3 per-turn = chắt-lọc-APPEND — harvest-LIỀN sau mỗi fan-out (ultra-on.md P3, C4 primary), qua em-main.
  • D4 threshold = workflow-gate — chạm hệ-trọng → bắt qua Workflow (hmw.js:76 checkpoint THROW = mechanized tripwire). run-id = bằng-chứng.

D.2 — Tách-an-toàn 3-tầng (🔴 NHÃN-HOÁ EXPLICIT — đây là chuẩn-hoá H11)

🧪 Phép-thử-ranh-giới tất-định: hỏi "thao-tác này có git-diff vô-hại-ngữ-nghĩa không?" → CÓ = tầng AUTO; chạm prose/luật/con-trỏ/thẩm-quyền/copy = tầng DÒ+FLAG. KHÔNG tin nhãn "máy-móc thôi mà" — xét git-diff THẬT.

Tầng Cái gì Đường-đi
D5 — AUTO (semantic-null) dồn-archive ADDITIVE (byte-0-loss) · dựng-lại _INDEX · APPEND-chắt-lọc gist · đo-byte tự-động OK (có A7 NO-API gate bảo-chứng)
D6 — DÒ + NÊU-CỜ mọi thứ chạm prose/luật/con-trỏ-mục/thẩm-quyền/copy-chéo (3 detector C + monitor H1/H2) chỉ FLAG → em-main soạn bản sửa (KHÔNG nhánh tự-ghi)
D7 — OWNER-APPROVE đổi-luật · đổi-thẩm-quyền · ghi-lan derived · đổi-tên-khái-niệm · nâng-guard chính-thức anh (project-owner) duyệt trước hiệu-lực — vận-hành-hoá bởi report-trước-đóng-dấu §E.2 (đổi-luật cấp-governance đi qua quy-trình 4-bước + chữ-ký RC)

D.3 — Bốn chốt chống-tự-hỏng

  • D8 khoá-chiều 1-CHIỀU 🔴 (codify mới H11) — DÒ chỉ đi canonical → derived (bắt derived cũ). TUYỆT-ĐỐI KHÔNG lấy giá-trị từ derived ghi ngược canonical. (Vd: detector đọc STATUS so root CLAUDE.md; KHÔNG bao giờ đọc root CLAUDE.md ghi vào STATUS.)
  • D9 chỉ-APPEND single-writer 🔑 BAR-KHÔNG-HẠ — mọi ghi-bộ-nhớ = APPEND qua em-main; KHÔNG sub tự ghi đè memory-chính/luật. Mechanized: store_memory strip mọi sub (runtime S48 0/8) + hmw.js SCHEMA return-delta-only.
  • D10 ghi qua file-tool only — Write/Edit, KHÔNG shell-append (tránh mojibake/$-expansion = gotcha #61). hmw.js:111 cấm Bash-write MD. (convention — Bash residual chưa block cứng.)
  • D11 archive = MOVE-không-XOÁ — byte 0-loss (md5sum/grep-Fxf artifact _ledger.md:14).

PHẦN E — User-Mark (Harness-12/13) + chữ-ký RC quyết-định = canonical §P (🔴 FUNCTION-FLOOR)

Adopt S79 (2026-06-20) — AI_INFRA 2026-06-19-Governance-harness-all-update (User-Mark) + …rc-signature + canonical §P (P1-P10). Neo + cưỡng-chế quyết-định cấp-governance (luật/chính-sách/kiến-trúc/harness) để không-quên + không-giảm-bằng-cảm-tính. KHÔNG dùng cho vận-hành/tác-vụ thường-ngày (P6 scope-discriminator).

🔑 3 cấu-phần (B1 phân-vai): §E này = CƠ-CHẾ (codify §P P1-P10 cho SE) · ledger = .claude/governance/ACTIVE-MARKS.md (SỔ-CÁI + display, single-writer em-main) · interface = 4 lệnh /user-mark-active-high|active|medium|disable. Cấp do em-main gán + anh confirm (KHÔNG agent tự-phán cảm-tính — P8).

E.1 — Chữ-ký + 4 cấp + binding (P1·P2·P3·P8)

  • P1 Chữ-ký: mỗi mark mang RC-pqhuy1987-dd-mm-yyyy-hh-mm-ss (REUSE format rc-signature, timestamp lúc anh sign-off). Bằng-chứng-có-niêm: minh-oan · tranh-luận-bằng-bằng-chứng (debate khi ruling mâu-thuẫn) · trách-nhiệm-2-chiều. Forward-only (no-retrofit từ 2026-06-20).

  • P2 4 cấp deterministic (anh-instruction trực-tiếp, KHÔNG design-invention) — trực-giao với tầng-an-toàn D5-D8:

    Cấp Hành-vi xác-định (P8) Vi-phạm
    🔴 Active-High bắt-buộc phải làm (cao nhất) error-ledger.md §L.a RCA (P9)
    🟢 Active follow + nhắc-lại xuyên-suốt nhắc-lại (KHÔNG mandate RCA-tự-động)
    🟡 Medium neo quyết-định chưa-rõ; follow nhưng skippable
    📦 Disable tắt (reversible, giữ audit-trail)
  • P3 Binding nhị-phân: có stamp = LỆNH · không stamp = đang BÀN (thảo-luận ≠ lệnh execute).

  • P8 No-cảm-tính: mỗi cấp = hành-vi DETERMINISTIC, KHÔNG agent tự-phán. "Tự-skip-workflow tiết-kiệm-token" = lệch → theo rule TƯƠNG-ĐỐI H6.1 (substantive→HMW · trivial→solo), KHÔNG số-magic.

E.2 — Flow DACI report-trước-đóng-dấu + scope-check (P4·P6 = vận-hành-hoá D7, 🔴 floor)

Đổi-luật cấp-governance đi qua các bước, KHÔNG được tắt (4 lệnh /user-mark-* thực-thi):

  1. Scope-check (P6): "Có đổi CANONICAL §-rule / authority-routing không? KHÔNG → đây là work-flow → KHÔNG mark." (User-Mark = Gov-decision, KHÔNG task-execution.)
  2. Adjust-Gov (P4): soạn nội-dung luật mới — em-main single-writer D9, KHÔNG fan-out.
  3. Double-check (P4): quét §A-§E + error-ledger.md Active-Guards + ACTIVE-MARKS.md + governance-detectors.ps1 C3 tìm mâu-thuẫn (cross-harness / vocab-fork).
  4. 🔴 Báo anh kèm 3-7 tiêu-chí khách-quan (P4): điểm-đau đã-xảy-ra-thật · khối-lượng · chất-lượng (KHÔNG quy-mô-đội / thời-gian-tuổi); cấp đề-xuất; §-target; supersedes?; mâu-thuẫn đã-rà. CHỜ anh confirm. KHÔNG stamp trước báo-cáo.
  5. Stamp (anh confirm): RC-pqhuy1987-dd-mm-yyyy-hh-mm-ss → ghi ACTIVE-MARKS.md + áp §-change vào canonical.

NEW vs D7-cũ = scope-check tường-minh (P6) + rà-mâu-thuẫn (bước 3) + 3-7 tiêu-chí khách-quan (P4). D7 vốn = "owner duyệt trước hiệu-lực"; §E.2 làm rõ QUY-TRÌNH, KHÔNG tạo flow song-song (tránh C3).

E.3 — Cưỡng-chế 2-kênh, KHÔNG hook (P9 — = XÁC-NHẬN cái SE đã chứng-minh)

Kênh Vi-phạm Cưỡng-chế Bằng-chứng SE sẵn-có
Behavioral-mark ghi error-ledger.md §L.a (AS-table) + RCA convention (kỷ-luật người+AI) §L.a 2-strike-promote đã chạy
Tool-action-mark permission-DENY.claude/settings*.json (deny-absolute) — KHÔNG hook (hook fails-open = observability-only) mechanized (config) — xem D10: Bash residual chưa block cứng = gap honest E-006/AS-10 (error-ledger.md): hook fails-open → store_memory allowlist-strip = gate THẬT; git-diff = backstop

E.4 — Lifecycle + storage/SHOW (P5·P7)

  • P5 Lifecycle: con-trỏ-XUÔI 1-chiều (mark-mới supersedes: mark-cũ) + cập-nhật status/cấp mark-cũ (downgrade HOẶC →Disable). 🔴 supersede mark Active-High = anh-confirm RIÊNG (KHÔNG auto-downgrade). KHÔNG freeze-immutable (git-history audits; anh sửa/đổi-ý qua re-stamp). Disable ≠ revert-rule (tách-bạch).
  • P7 Storage + SHOW: ledger .claude/governance/ACTIVE-MARKS.md (single-writer em-main B3; P7 location-agnostic). 🔴 SHOW @session-start §2.1.4 + @session-end §L.b(h) status-filtered: Active-High + Active HIỆN rõ · Medium tóm-tắt · Disable/superseded ẨN.

E.5 — Objective-only + neo-lý-tính (P10 = rules.md §6.6, 🔴 floor)

  • Adopt/giảm function bằng điểm-đau + khối-lượng + chất-lượng KHÔNG quy-mô-đội / KHÔNG thời-gian-tuổi; "overkill/quá-mức-solo-dev/cảm-tính/cũ-rồi-nên-bỏ" = BÁC.
  • AI = neo-lý-tính: gặp quyết-định biện-minh bằng cảm-giác → em-main nêu-cờ + bác trên cơ-sở khách-quan, KHÔNG xoa-dịu. Thẩm-quyền phán "cần/thừa" = tầng xuyên-dự-án (AI_INFRA), KHÔNG dự-án đơn-lẻ. (Bối-cảnh: rule nảy từ audit thật — 1 dự-án từ-chối chức-năng chống-lách-engine bằng "quá mức solo-dev"; điều-phối ban-đầu cũng xoa-dịu trước khi được chỉnh.)

PHẦN F — Harness-14: Eval / Budget / Outcome (🟡 method TAILORED + 🔴 rule-floor)

Adopt S79 (2026-06-20) — AI_INFRA 2026-06-20-Governance-harness-14-adopt + checklist-14. Cơ-chế đo chất-lượng + định-cỡ bộ-nhớ trên nguyên-lý nền: mọi con-số suy từ nhu-cầu thật, KHÔNG đặt-cứng tùy-tiện. 🔴 rule bắt-buộc (time/age = false-proxy) đã codify ở mark RC-…10-29-11 + rules.md §6.6 — §F này = phương-pháp + trạng-thái-độ-chín honest.

4 nguyên-lý nền: ① suy-ra-từ-nhu-cầu KHÔNG đặt-cứng (cấm "số ma-thuật") · ② loại proxy-sai (time/age/quy-mô-đội) · ③ chỉ-báo phục-vụ kết-quả (tối-ưu chỉ-báo bỏ kết-quả thật = kinh-tế-giả) · ④ trung-thực về độ-chín.

F.1 — Trạng-thái độ-chín 3 MỨC (🔴 honest — KHÔNG nâng mức thấp lên cao)

  • Mức 1 LÀM-ĐƯỢC-NGAY: eval-precision (đo chất-lượng truy-xuất) — SE CÓ harness chạy thật (xem F.2).
  • Mức 2 ĐANG-TÍCH-LŨY (có công-cụ ĐO, CHƯA đủ data ra số): budget-theo-hit-rate (cần nhật-ký truy-cập memory) + tương-quan-outcome (cần nhiều tuần đánh-giá). 🔴 Cổng dữ-liệu: dưới ngưỡng → DỪNG, giữ quy-ước đo-được, KHÔNG bịa số.
  • Mức 3 TẦM-NHÌN-XA (tạm gác): trần "nhiễu ngữ-cảnh" — không mốc-cứng đáng-tin theo nghiên-cứu → sao-bắc-đẩu định-hướng, KHÔNG ép số.

F.2 — Eval-precision (🟡 — SE đã CÓ, map onto, honest)

SE đã có RAG golden-set harness (KHÔNG phải gap): eval/golden-set-solution_erp.jsonl (14 query: 11 pos + 3 neg) + eval/evaluator.md (Spec-A strict, recall@5 gate ≥0.7, rerank ≥0.7 per-query confident-hit [gate aggregate avg-rerank 0.65], Case A/B/C/D triage) + eval/trial-state-lock.json (baseline recall@5=1.0, chunk-drift 5%). Nguyên-lý H-14 áp:

  • Cỡ golden-set suy từ độ-chính-xác mong-muốn (công-thức cỡ-mẫu) KHÔNG đặt-cứng — hiện 14 query là quy-ước-đo-được; khi mở-rộng → suy theo confidence-level.
  • Chống nhồi-từ-khóa: query test KHÔNG lặp nguyên-văn từ-khóa tài-liệu đích (đo năng-lực thật, không trúng-vì-trùng-chữ).
  • Ngưỡng theo đường-nền tương-đối (so trial-state-lock baseline + biên tụt nhỏ) KHÔNG mốc tuyệt-đối tự-đặt; mẫu-số động (tỉ-lệ theo số query thật-có).
  • 🟡 Honest nấc: harness EXISTS + well-specified nhưng weekly-Friday MANUAL (evaluator.md chạy MCP search_memory tay), CHƯA automated trong scripts/; RAG re-index = AI_INFRA-owned op. → executed-file + convention (manual gate), KHÔNG mechanized-CI. KHÔNG overclaim "tự-chạy".

F.3 — Budget bộ-nhớ (🟡 ALIGNED — đo-thật, KHÔNG số-ma-thuật)

  • Đã ALIGNED: memory-budget.json cap = seed-by-MEASURE (scripts/measure-agent-memory.ps1, _note "SEEDED BY MEASUREMENT NOT imagined headroom"); archive_gate = hysteresis 0.85 + keep-floor-5 (newest-protection) + 2-strike — 0 núm decay-theo-tuổi (≙ mark RC-…10-29-11). Trần = hệ-quả (dung-lượng ÷ tốc-độ-thay-mới qua A4 hysteresis), KHÔNG retention-by-age. Cross-ref PHẦN A.
  • 🟡 Hit-rate sizing = Mức 2 chờ-tích-lũy: SE chưa có công-cụ đếm-lượt-truy-cập-memory → budget giữ quy-ước đo-được (đo byte thật). KHÔNG trình như "đã suy từ hit-rate".

F.4 — Outcome (🔴 floor + 🟡 tích-lũy)

  • 🔴 Chống kinh-tế-giả (Goodhart) — tức-thì: cắt chất-lượng tiết-kiệm token → làm-lại → tốn HƠN (mark/§6.6 + H8.2 "KHÔNG hạ model"). Mỗi chỉ-báo tự-động (recall/hit-rate/byte) gắn câu hỏi "có làm anh chốt-OK sớm hơn không". Áp NGAY, không chờ data.
  • 🔴 Ground-truth = đánh-giá chủ-dự-án (đo gián-tiếp qua số-lần-làm-lại); chỉ-báo tự-động chỉ là trung-gian.
  • 🟡 Tương-quan chỉ-báo↔đánh-giá-người = Mức 2 chờ-tích-lũy: SE chưa có công-cụ thu-đánh-giá + đếm-rework có cấu-trúc (error-ledger §L.a RCA = mầm gần nhất) → cần nhiều tuần mới khẳng-định tương-quan. KHÔNG bịa số tương-quan "đẹp".

Tổng nấc §F (honest, checklist-14): 🔴 floor (loại proxy time/age 4 mục + outcome 2 mục) = ĐẠT qua mark + §6.6 + §F.4. 🟡 method = eval-precision executed-file + convention (manual, không mechanized-CI) · budget ALIGNED mechanized (config no-decay) · outcome-correlation + hit-rate = Mức-2 tool-pending-data (KHÔNG trình như xong). Các con-số AI_INFRA tự-đo (cỡ golden-set, recall) = bằng-chứng của HỌ, KHÔNG mục-tiêu áp-cứng cho SE.


PHẦN G — Harness-15: Ngân-sách bộ-nhớ per-agent (token-based) — SÀN + 3 tầng, BẮT BUỘC dùng đủ (🔴 FUNCTION-FLOOR + 🟡 number anh-owner) +v2 §G.4 +v3 §G.5

Adopt S81 (2026-06-20) — AI_INFRA 2026-06-20-Governance-harness-15-memory-budget + checklist-15 (inbox broadcasts/inbox/ai_infra/). Áp qua 2-process (IMPLEMENT em-main single-writer D9 + REVIEW workflow) per mandate §6. adap-report → docs/governance/adap-reports/2026-06-20-Governance-harness-15-memory-budget.md.

Adopt-delta S82 (2026-06-21) — AI_INFRA 2026-06-20-Governance-harness-15-v2-hot-feed-update (type: update · supersedes_scope = tier-1-sizing + L2/L3-caps ONLY). Re-verify CHỈ phần đổi → §G.4 (Tầng-1 hot-feed-lớn + L2/L3 bỏ-trần + %-print 2-đầu-phiên + ranh-giới-vai-trò). Phần sàn-chức-năng gốc (§G.1-G.3) KHÔNG đổi. adap-report → 2026-06-21-Governance-harness-15-v2-hot-feed-update.md.

Adopt-delta S83 (2026-06-22)anh owner-directive trực-tiếp (KHÔNG broadcast): full AI_INFRA parity (lead 220K · mem-sub 60K · wf-sub 50K) + spawn-fill-to-budget (sub Tầng-1 = MEMORY.md byte-cap + spawn-prompt giàu) → §G.5. Sửa self-shrink S82. Mark H-15 v3-delta (ACTIVE-MARKS.md).

Adopt-delta S94 (2026-06-29)anh owner-directive trực-tiếp (KHÔNG broadcast): lead 220K→380K (SE-specific override để chứa full canonical read-set ~368K; lead KHÔNG còn AI_INFRA-parity, subs giữ 60K/50K). ⚠️ ~97% fill = context-rot trade-off owner-accepted (honest_caveat §5); trần budget ⟂ harness Read-25K/call — mega-line STATUS/HANDOFF VẪN cần re-tier mới Read-trọn (cap raise KHÔNG unblock Read). §G.5 body giữ S83-record (no-retrofit), số sống = budget.json live-read. Mark H-15 v4-delta RC-pqhuy1987-29-06-2026-23-25-50 (ACTIVE-MARKS.md).

🔑 Cốt-lõi: ngân-sách bộ-nhớ = mức TẬN-DỤNG-TỐI-THIỂU phải đạt, KHÔNG phải trần để dè-xẻn. Tiết-kiệm-token = quên-việc (rơi trạng-thái giữa phiên) = KHÔNG tiết-kiệm thật (làm-lại tốn HƠN — cùng họ Goodhart §F.4/§6.6). Khoảng-trống quan-sát hay rơi đúng vào chính LEAD (lead tự-nạp kiến-trúc/luật nhưng bỏ quên trạng-thái-công-việc) → §G.2(c) vá đúng chỗ đó.

G.1 — Mô-hình = SÀN cố-định + 3 tầng được-quản-lý (A1/A2/A3)

  • SÀN-harness (A1, đo-được): phần cố-định mỗi spawn = tool-schema + framing + persona/role + lead-pasted base-doc-slice + prompt. SE TỰ đo (KHÔNG mượn số AI_INFRA): persona đo-thật .claude/agents/*.md (4.3KB13.3KB ≈ 1.3K4.0K tok /3.3); tool-schema+framing harness-injected SE ước-lượng-riêng (trùng AI_INFRA ~21K vì cùng-họ-toolset Read/Write/Edit/Bash/Grep/Glob/Skill/RAG, KHÔNG mượn-số) → floor ≈ 55K measured-estimate (S112 re-measure — 21K cũ under-count: đoán tool-schema+framing ~7K thực ~30-50K) → owner-set reserve 100K (was round-up 30K; cap RIÊNG SE) (memory-budget.json:harness_floor). Honest: persona = đo-thật-byte; phần harness-injected = ƯỚC-LƯỢNG (không byte-count cục-bộ được).
  • A3 tách-nhà chống-đếm-trùng: persona + lead-docs thuộc SÀN, KHÔNG đếm vào L1-managed. L1-managed = own agent-memory + archive _INDEX + work-state block (memory-budget.json:harness_floor._note).
  • 3 tầng managed (A2 — cập-nhật v3 §G.5): Tầng-1 = HOT-FEED LỚN per-role (lead 220K · agent-ký-ức 60K · agent-workflow 50Kanh-set FULL AI_INFRA parity S83 v3, supersede self-shrink S82; nạp đầy 4 bucket WIP·lỗi-lặp·tồn-đọng·quyết-định-chờ) · L2/L3 BỎ TRẦN (on-demand, no artificial tier-cap, chỉ chặn bởi cửa-sổ-ngữ-cảnh model). 🔴 con-số = quyền CHỦ-DỰ-ÁN (anh) — em-main THỰC-THI-đúng-số + BÁO-% (KHÔNG tự-tinh-chỉnh), xem §G.4/§G.5 (token_governor).

G.2 — 6 sàn-CHỨC-NĂNG bắt-buộc (🔴 — map onto SE, honest mechanized-vs-convention)

Sàn SE map Nấc Cơ-chế-hóa vs quy-ước
đo-SÀN (A1) persona đo-thật-byte TRỰC-TIẾP (Get-ChildItem, KHÔNG qua measure-agent-memory.ps1 — script đó chỉ đo agent-memory-tier byte = byte-governor, KHÁC floor) + harness-injected ước-lượng + round-up 21K→30K runtime(đo)→executed-file mechanized (byte-count trực-tiếp) + convention (ước-lượng harness-injected + round-up)
(a) nạp-đầy L1 nguyên-tắc dùng-đủ-ngân-sách, no-token-saving, no-garbage (token_governor._note) executed-file → runtime mỗi spawn convention (kỷ-luật nạp)
(b) cắt theo GIÁ-TRỊ archive_gate.value_protect (gotcha/anti-pattern/recurring/root-cause GIỮ-L1 bất-kể tuổi) ⟂ keep-floor newest-5 (recency) = 2 trục bảo-vệ trực-giao = mark RC-…10-29-11 áp xuống tầng-bộ-nhớ executed-file convention (em-main judge; patterns = grep-hint DRY-RUN advisory, KHÔNG auto-exclude)
(c) work-state block @start session-start §2.1.5 LEAD nạp+phát-biểu: roadmap đang-chạy + việc-dở + quyết-định-chờ + lỗi-lặp-lại executed-file → runtime mỗi phiên convention (kỷ-luật đầu-phiên, vá khoảng-trống-LEAD)
(d) 3 tệp-chốt L1 (1) persona .claude/agents/<name>.md + (2) own agent-memory/<name>/MEMORY.md auto-inject + (3) MEMORY-PACK slice (hmw.js args) — đã CÓ SẴN SE executed-file convention (verify-declare)
(e) 2-governor byte (tiers/archive_gate) ⟂ token (token_governor) — giữ CẢ HAI, KHÔNG gộp (đo 2 thứ khác: file-trên-đĩa ≠ ngữ-cảnh-nạp) executed-file mechanized (2 config tách)

G.3 — Tùy-chỉnh (🟡) + honest tổng

  • 🟡 con-số SÀN (SE tự-đo 30K) · con-số 3 tầng (theo khối-lượng ERP nhiều-module) · hình-thức work-state block (SE = session-start REPORT + carry-list). Con-số AI_INFRA (~21K) = bằng-chứng HỌ, KHÔNG áp-cứng SE.
  • Honest nấc tổng: mechanized = chỉ (e) 2-config byte+token + đo-SÀN (qua measure script); 5/6 sàn-chức-năng = CONVENTION (nạp-đầy · cắt-giá-trị · work-state · 3-tệp-chốt = kỷ-luật người+AI). KHÔNG nhận "mechanized" cho kỷ-luật. value_protect.patterns = grep-hint DRY-RUN (advisory FLAG), KHÔNG enforced auto-exclude (archive-gate giữ DRY-RUN, em-main quyết — D6).
  • token≈byte/3.3 (VN thật; byte/4 = cận-trên → headroom THẬT lớn hơn). Floor = đo-được không-exact (honest-note b). Agent chưa-có-archive (database-agent/investigator-api/...) → phần "_INDEX theo ngân-sách" moot với chúng (honest-note d).

G.4 — Harness-15-v2 delta (S82): Tầng-1 hot-feed LỚN + L2/L3 bỏ-trần + %-print + ranh-giới vai-trò

Delta chồng lên §G.1-G.3 (gốc KHÔNG đổi). Re-verify CHỈ 2 phần đổi + 1 tool mới. Broadcast 2026-06-20-Governance-harness-15-v2-hot-feed-update (supersedes_scope = tier-1-sizing + L2/L3-caps ONLY).

  • (1) Tầng-1 = HOT-FEED LỚN (🔴 SÀN-kiến-trúc): phần luôn-nạp phải DÀY (đừng để mỏng) — nạp đầy 4 bucket nội-dung-công-việc: WIP work-state · lỗi-lặp/anti-pattern/gotcha (value_protect §G.2(b), giữ bất-kể tuổi) · tồn-đọng · quyết-định-chờ. Bằng-chứng nền: Tầng-1 mỏng → lead bỏ quên việc nhiều phiên liên-tiếp (đúng bệnh H15 chữa). Per-role: lead 220K · agent-ký-ức 60K · agent-workflow 50K (token_governor.tier1_hotfeed_tokens) — anh-set FULL AI_INFRA parity (S83 v3 §G.5), supersede S82 self-shrink.
  • (2) L2/L3 BỎ TRẦN (🔴 SÀN-kiến-trúc): gỡ cap cứng L2=6K/L3=4K → on-demand kéo-về tự-do, không hạn-mức-tầng nhân-tạo, chỉ chặn bởi cửa-sổ-ngữ-cảnh model. on-demand nên KHÔNG chiếm-chỗ thường-trực (no always-cost).
  • (3) %-print 2 đầu-phiên (🔴 tool mới): session-start §2.1.6 (composition Tầng-1 theo %/bucket) + session-end §L.b(c) (% sau-nạp + Headroom). Ước-lượng-tỉ-lệ đủ. Headroom > 0 mà CÒN nội-dung giá-trị-cao = under-fill (SAI) → nạp tiếp; Headroom = cờ-báo, KHÔNG phải đích-tiết-kiệm.
  • (4) Ranh-giới vai-trò (🔴 governance): con-số budget = quyền CHỦ-DỰ-ÁN (anh), KHÔNG phải AI-lead. em-main = (i) thực-thi đúng-số (no-truncate, kéo từng bucket tới target) + (ii) báo-% 2-đầu-phiên cho anh quyết. Sửa framing S81 "lead-authority" (nhầm AI-lead ↔ chủ-dự-án). Cùng tinh-thần mark RC-…10-29-09 (AI = neo-lý-tính, anh quyết) + report-before-stamp.
  • Honest đánh-đổi (v2 §5): Tầng-1 lớn = rot CAO HƠN trên phần always-loaded — chấp-nhận có-chủ-đích (quên-việc tệ hơn rot), KHÔNG phải "rot biến mất". SÀN = kiến-trúc (hot-feed lớn + L2/L3 on-demand), KHÔNG phải con-số. Nấc honest: (1)(2) = config mechanized (token_governor) · (3)(4) = convention (kỷ-luật người+AI: nạp-đủ + báo-% + anh-quyết-số).

G.5 — Harness-15-v3 delta (S83 2026-06-22): full AI_INFRA parity + spawn-fill-to-budget (anh owner-directive)

Delta chồng lên §G.4 (gốc KHÔNG đổi). anh owner-directive trực-tiếp (KHÔNG qua broadcast AI_INFRA) — con-số = quyền chủ-dự-án (§G.4 (4)). Mark = ACTIVE-MARKS.md H-15 v3-delta.

  • (1) FULL AI_INFRA parity (🔴 anh-set): lead 220K · mem-sub 60K · wf-sub 50K (token_governor.tier1_hotfeed_tokens). ⚠️ [Harness-20 L.D neo-supersede S103] lead 220K = giá-trị S83 tại thời-điểm delta này; S94-override→380K (SE-specific, lead KHÔNG còn AI_INFRA-parity — canonical = budget.json live-read; subs giữ 60K/50K). GIỮ 220K lịch-sử-dòng-dõi KHÔNG rewrite. SUPERSEDE S82 self-estimate (lead 60K / sub 20K-16K "vì SE nhỏ hơn / byte-cap binds") — đó là AI tự-co-nhỏ, đúng cái mark RC-…01-58-01 cấm. anh: "Giờ là 220k → đầu phiên nạp thêm tier1_lead cho đủ."
  • (2) Sub Tầng-1 = MEMORY.md (byte-cap) + SPAWN-PROMPT (🔴 sửa hiểu-nhầm S82): byte-cap MEMORY.md (30720B ~9.3K tok) CHỈ LÀ 1 LÁT của Tầng-1 sub — prompt-spawn em-main viết (relevant gotcha + state + full task-context + docs/memory liên-quan) nạp PHẦN CÒN LẠI tới token-budget. ⇒ 60K/50K KHÔNG phải "headroom vô-dụng" (bác lập-luận S82 "byte-cap binds first"); nó là target em-main NẠP-ĐẦY qua prompt giàu (spawn_fill_directive).
  • (3) Spawn-fill discipline (🔴 convention): khi SPAWN bất-kỳ sub/workflow-agent → nạp context tới budget bằng prompt GIÀU giá-trị-công-việc (gotcha + state + task-context + docs/memory), KHÔNG nạp rác. Hot-load token đầu = token GIÁ-TRỊ-NHẤT (chắt-lọc qua nhiều giai-đoạn). RECONCILE agents/README "≤8K brief": heuristic cũ gác RETURN-truncation #53 (nay vá bằng memoryDelta return + recover-disk) → INPUT KHÔNG starve nữa, nạp giàu.
  • Honest nấc: (1) = config mechanized (token_governor số mới). (2)(3) = convention (kỷ-luật em-main viết-prompt-giàu mỗi spawn — KHÔNG tool-ép; cùng họ §G.2 "5/6 convention"). value-gate (highest-value, no-garbage) = judge em-main, không auto-enforce.

PHẦN H — Harness-16: Memory-Fidelity-EVAL (MFE) — đo nạp-vs-nhớ-vs-dùng (🔴 FUNCTION-FLOOR + 🟡 method)

Adopt S93 (2026-06-29) — AI_INFRA 3 broadcast 2026-06-29-Governance-harness-16-{memory-fidelity-eval,mfe-update,cd-judge-sub-update}. Canonical artifact → scripts/mfe-eval.ps1 + eval/mfe/ + memory-budget.json:mfe (KHÔNG copy luật số ở đây — B1).

🔴 VOCAB (C3 — bắt buộc tách nghĩa): "memory-fidelity" ĐÃ tồn tại ở H6.7 = memoryDelta-routing-fidelity (delta về đúng agent-memory/<role> single-writer). Harness-16 = memory-fidelity-EVAL (MFE) = coverage/RETENTION (hot-feed có giữ-được tập must-remember không). 2 nghĩa khác nhau — luôn gọi MFE cho nghĩa H-16. Cặp alias đã ghi governance-detectors.ps1 C3 $aliasSets (ghi-nhận, KHÔNG flag drift).

Vì sao: %-print (§G) đo đã-NHÉT bao nhiêu vào Tầng-1 (ước theo độ-dài). MFE đo tiếp: agent có giữ/dùng cái đã nhét không — đã-nạp ≠ nhớ-ra ≠ dùng-đúng.

H1 — Sàn deterministic ($0, NO-API, mfe-eval.ps1):

  • LEAD Coverage-FIT — must-remember denominator (status-field, KHÔNG grep): marks Active(-High) (ACTIVE-MARKS.md) + AS-class + Active-Guards (error-ledger.md) + recurring-gotchas (gotchas.md), dedup (gotcha/guard mà AS-row trỏ #N/AS-N → gộp vào AS; merge_guard_to_as toggle). FIT = byte-span → token-RANGE [bytes/4 .. bytes/3.0] vs cap live-read token_governor.tier1_hotfeed_tokens.lead_tokens (S93: 29 item ~2.53.3K tok / cap-live 220K = 1.5% → FIT thừa; ⚠️ cap S94→380K budget.json, mfe live-read tự-đúng — 220K = snapshot S93, KHÔNG hardcode).
  • age-band — FLAG old-but-still-required, KHÔNG cắt theo tuổi (mark RC-…10-29-11); drop chỉ khi status đổi.
  • Goodhart-anchor — in strikes_total + RCA_entries (error-ledger) cạnh coverage; strikes tăng mà coverage cao = điểm nói dối. KHÔNG self-grade.
  • SUB per-role coverage — denom = anti-pattern/NEVER trong agents/<role>.md; numer = còn-mang trong diary agent-memory/<role>/MEMORY.md (KHÔNG project/user MEMORY.md — bẫy trùng-tên H15-v3); match = exact-id OR ≥2 content-word sau stop-list (đánh bại bẫy leading-verb-9/9-giả). ĐO-THẬT (S93: impl-backend 94% · impl-frontend 85% · reviewer 88%; role prose-only → N/A KHÔNG "0%"). SUB-WORKFLOW (fan-out ephemeral) = N/A by-design (kênh ký-ức = memory-pack lead bơm).

H2 — Judge scaffold (Branch A, -Judge, OPT-IN cadence-gated): seed eval/mfe/sample-questions.json (12 câu, stable-id anchored RC/gotcha#/AS#, immutable, time-stamped — gieo NGAY để vài tháng sau đo age-retention). Scorer RỖNG. 🔴 con-số nhớ/dùng CHƯA có nghĩa tới khi (a) câu-hỏi đủ-chín-tuổi (b) trọng-tài độc-lập khác-phiên; tự-chấm-cùng-phiên = vô-nghĩa.

H3 — Quyết-định 2-ca: Coverage<100%/vượt-trần = thiếu-CHỖ → TĂNG budget (anh quyết số); nhớ-thấp-dù-đủ-chỗ = rot → SẮP-XẾP-LẠI (ưu-tiên-giá-trị). Tăng-chỗ KHÔNG cứu rot.

🔴 READ-ONLY trên token_governor — MFE đọc caps (single-source), KHÔNG ghi/auto-tune (owner-authority §G.4(4) — coverage thấp KHÔNG được tự bơm cap).

Honest nấc: H1 deterministic = executed-file + runtime-smoke S93 (chạy thật, 3-tier OK). H2 judge = SCAFFOLD-only (chưa scorer → KHÔNG nhận "đã đo độ-nhớ"). token = RANGE (char/4 ≠ token thật, VN ~3.0-3.5 byte/tok). Wire = opt-in session-start §2.1.6 + session-end §L.b(c) (no-param = như cũ). Cross-harness 0-conflict (additive vs §F eval-precision/§G budget/archive-gate-byte/detectors-drift; trùng value_protect = same-set CỐ Ý).


PHẦN I — Harness-17: Vòng tự-cải-thiện bộ-nhớ (Đo → Tinh-chỉnh → Kiểm) (🔴 FUNCTION-FLOOR + 🟡 method)

Adopt S95 (2026-07-01) — AI_INFRA 2 broadcast 2026-06-30-Governance-{harness-17-memory-self-improvement, checklist-harness-17} (hash verify MATCH ✓ cả 2 · reviewer_gate: PASS). Áp qua 2-workflow (Harness-9 mandate) + 1 deep-reverify (anh-directed): WF1 wf_f085d7c4-d78 (ground-truth reuse-anchor + draft) + WF2 wf_8e73c1d6-ee6 (3-lane review PASS 0-blocking) + WF3 wf_6f44eddf-680 (fault-injection teeth-proof + integration + cross-doc, PASS 0 application-defect). Artifact mới: scripts/memory-selfimprove-audit.ps1 + .claude/governance/reinject-ledger.md. KHÔNG copy luật số ở đây — B1.

Vì sao (đóng "vòng hở"): nhánh eval (§H MFE) mới ĐO fidelity rồi in số rồi DỪNG — thấy mục-sàn rớt khỏi hot-mem nhưng KHÔNG có cơ-chế HÀNH-ĐỘNG. H17 nối 2 khâu thiếu: Tinh-chỉnh (tín-hiệu→hành-động, có chốt-dừng) + Kiểm (spec-compliance audit). Bộ-nhớ ⇒ tài-sản được quản-trị, kiểm-được theo bản đặc-tả.

🔴 VOCAB (C3 — bắt buộc tách nghĩa, KHÔNG seed $aliasSets): chữ "coverage" nay 3 nghĩa — (1) H2 harvest-curator "Coverage" = 0-silent-miss mọi sub/run đã-chạy · (2) §H MFE SUB "coverage" = role-floor còn-mang-trong-diary · (3) H17 A1 "HCV" (harvest-coverage, said-vs-kept) = cái sub NÓI-ra (return) vs cái GIỮ-lại (memory). Luôn gọi HCV cho nghĩa H17. Giống H16 memory-fidelity: 2-3-khái-niệm-1-từ = KHÔNG seed detector (seed → false-flag), chỉ ghi alias-map + C3-comment (governance-detectors.ps1). "audit" (C-KIỂM) gọi spec-audit tránh đụng monthly-drift-audit. Từ mới reinject/floor-rot/build-gap/signal→action = grep 0-match toàn docs/ (WF1 Agent-D) → SẠCH.

A — ĐO (Eval) — 2 sàn:

  • A1 HCV (harvest-coverage, said-vs-kept): so cái sub NÓI trong return vs cái GIỮ trong memory → bắt mất-mát âm-thầm khi cô-đặc. SE: harvest-curator H2 trục Coverage (0-silent-miss, convention) + §H MFE SUB per-role coverage (retained-side, mechanized) + HCV proxy mới trong memory-selfimprove-audit.ps1 (run-trace runs/<id>/ sub-*.md có *-synthesis.md = file-exists deterministic). 🟡 Honest: tỉ-lệ said-vs-kept = calibration-interim (caveat 3, cò-báo-đuôi KHÔNG vạch-chất-lượng); per-item-L1-presence cho AS/guard/gotcha = partial build-gap (MFE age-band chỉ đo marks-có-date). HCV proxy hiện N/A-idle (run gần nhất = return-delta-only mode, 0 sub-*.md để chấm) → A1-HCV = cơ-chế-sẵn-sàng CHƯA-có-mẫu-đo (script tự in N/A minh-bạch), KHÔNG phải đã-đang-đo (WF2-L3 honest-completeness).
  • A2 load-fidelity (fit + %thực-giữ per-tier): = §H MFE (mfe-eval.ps1 LEAD Coverage-FIT + SUB per-role). REUSE-cite, KHÔNG rebuild.

B — TINH-CHỈNH (Refine) — 3 sàn: (loop = tầng D6 DÒ+NÊU-CỜ; em-main = D9 writer; anh = quyết-số)

  • B1 bảng ánh-xạ tín-hiệu → hành-động (4 loại — map thẳng cơ-chế SE hiện-có, KHÔNG dựng mới):

    Tín-hiệu Ngưỡng phát-hiện Hành-động Cơ-chế-SE (neo) Nấc
    floor-rot (mục-sàn RỚT khỏi hot-mem) MFE age-band FLAG old-but-still-required (mfe-eval.ps1) + status vẫn Active reinject VERBATIM từ canonical → em-main APPEND L1 + ghi reinject-ledger MFE age-band + work-state block session-start §2.1.5 + reinject-ledger (B2) detect=mechanized · reinject=convention
    repeat ≥ 2 (lặp ≥2 phiên) error-ledger 2-strike + MFE Goodhart strikes_total promote → pattern/anti-pattern (episodic→procedural) error-ledger §L.a 2-strike-promote + harvest-curator INFORM + value_protect giữ-L1 promote=convention · strike-count=mechanized
    old + valueless (cũ ∧ hết-giá-trị) archive-gate: over-cap ∧ ngoài keep-floor-5 ∧ KHÔNG khớp value_protect ∧ 2-strike cold-archive → MOVE byte-0-loss + con-trỏ _INDEX §A memory-archive-gate.ps1 (hysteresis 0.85) planner=mechanized DRY-RUN · MOVE=convention (D5)
    raw (chưa cô-đặc) L1 entry verbose/>~1.5K char (gotcha #53 risk) distill → nén + đẩy verbatim L2 + gist /sleep-recovery-memory-l2 command (gist-compress additive) + _INDEX/gist (S70) distill=convention (command-assisted) · pointer-resolve=mechanized

    🔴 Đính-chính: /sleep-recovery-memory-l2 = COMMAND thật (.claude/commands/, 12.6KB) — KHÔNG phải "chỉ convention pattern"/skill (WF1 Agent-C nhầm; em-main verify). Distill JUDGMENT vẫn convention.

  • B2 CG-1 termination (reinject-ledger): .claude/governance/reinject-ledger.mdgit-tracked · append-only · single-writer em-main (D9). 🔴 TÁCH khỏi memory-budget.json (file đó = quyền cấp-ngân-sách anh §G.4(4); trộn = AI lấn quyền). Rule: mỗi item reinject ≤1 lần / N=3 phiên; đo-lại vẫn thiếu → ESCALATE anh (build-gap? tăng-budget? đổi-placement — mirror MFE H3 2-ca), KHÔNG tự-reinject-lần-2. Chống reinject-loop vô-hạn che build-gap.

  • B3 phép-thử-ranh-giới build-gap vs floor-rot (chỉ floor-rot mới kích reinject):

    🧪 "Item ĐÃ TỪNG hiện-diện trong hot-mem/diary/canonical-ledger ở phiên trước KHÔNG?" (grep git log -p các ledger + agent-memory/<role>/MEMORY.md + archive/) → = floor-rot (cơ-chế có, chỉ RỚT → reinject OK) · KHÔNG = build-gap (chưa dựng → đi DỰNG cơ-chế qua D7 nếu chạm luật, KHÔNG reinject). Chốt: floor-rot = ĐÃ-tồn-tại ∩ CÒN-giá-trị ∩ RỚT-khỏi-L1; thiếu 1 vế → KHÔNG reinject (ca rớt-mà-hết-cần = archive-gate đúng-đắn; ca chưa-dựng = build-gap).

C — KIỂM (Audit / spec-audit) — 5 sàn:

  • C1 spec-compliance checker deterministic LIVE: scripts/memory-selfimprove-audit.ps1 (NO-API, ASCII #30, exit-0, emit CRITERIA+GAP set KHÔNG frozen-tally — chạy LIVE mỗi lần vì đo artifact-SỐNG). 3 mặt: (a) write-gov/D9 [A1 tool-scope sub KHÔNG store_memory · A2 hmw.js SCHEMA return-delta · A3 propose-only decl] · (b) change-gov/D8 [COMPOSE governance-detectors.ps1 child-invoke exit-0, KHÔNG re-grep = tránh fork C3] · (c) distillation-spectrum [mỗi over-cap agent có raw→_INDEX→gist]. 🔴 Honest: D9 enforce qua tool-scope + SCHEMA (A1/A2 mechanized), KHÔNG OS-hook (.claude/settings.json KHÔNG có hook store_memory — AS-10/E-006 fails-open); A3 = PROXY (phrase-presence ≠ enforce). Chứng "guard WIRED", KHÔNG "runtime KHÔNG-THỂ vi-phạm". Runtime-verified S95: A1/A2/A3/B1/B2 PASS, C-spectrum bắt frontend-designer over-cap GAP (răng thật).
  • C2 3 spot-check người: harvest-fidelity + đúng-verdict + provenance-integrity = convention (harvest-curator 5-trục Fidelity/Placement + reviewer verdict + session-end §L.b(f) gate). MÁY-không-tự-quyết → người soi.
  • C3 single-writer (loop propose-only): = D9 (§D.3). REUSE-cite. 🔴 Honest: "store_memory-strip mọi sub" = hook AI_INFRA runtime, KHÔNG có .js trong repo SE — SE enforce tại-chỗ = tool-scope (sub read-only tools: chỉ READ verb, 0 store_memory) + hmw.js SCHEMA return-delta-only. (Sửa overclaim tiềm-ẩn.)
  • C4 provenance 2-chiều: phân-biệt entry chủ-tự-viết (default) vs thu-hoạch-từ-sub (có spawn-record) = hmw.js:53-63 memoryDelta 4-field + session-end §L.b(d). 🟡 partial (nhãn ngầm, chưa tag tường-minh). ⚠️ field-set LỆCH: hmw.js {task·verdict·learned·surprise} (runtime-return) ≠ session-end {agent·task·nấc·evidence} (harvest-record) — 2 schema 2 tầng khác nhau (return vs record), KHÔNG assume đồng-nhất; 2-chiều-tag tường-minh = build-thêm nhỏ (defer, honest).
  • CG-2 high-value MIỄN hạ-bậc-theo-tuổi: = §G.2(b) value_protect + mark RC-…10-29-11. REUSE-cite. Tuổi KHÔNG phải cớ cắt (pain/volume/quality).

Cadence wire (D.1): session-start §2.1.7 = loop-DÒ (chạy spec-audit + MFE báo CRITERIA+GAP + reinject-ledger CG-1 check, INFORM-only) · session-end §L.b(c) = loop-REFINE-propose (B1 signal→action → em-main APPEND single-writer). KHÔNG lệnh tự-động đơn-nhất (caveat 1: walkthrough thủ-công người-điều-phối; khối-đo exit-0 riêng-lẻ).

Placement-constraint (WF1 Agent-D, 0 hard-conflict): ① reinject-ledger TÁCH khỏi budget.json · ② reinject = promote-COPY L2→L1, nguồn archive INTACT (D11 no-conflict) · ③ loop = D6-tier dưới D9 (CG-1 escalate ≙ E.2 report-before-stamp).

Honest nấc tổng §I (10 sàn 🔴 ĐẠT): mechanized = C1 spec-audit (a/b/c) + A2 MFE + strike-anchor + HCV-proxy file-exists. Phần lớn B/C = CONVENTION (đúng checklist H17 tự nói: chỉ 2 sàn-đo A + spec-checker + gắn-nhãn-nguồn = cơ-chế-hoá; còn lại kỷ-luật người+AI). 5 caveat H17 (giữ trong doc): (1) "vòng chạy thông" = walkthrough THỦ-CÔNG người-điều-phối nối, KHÔNG lệnh-tự-động-đơn-nhất · (2) judge recall/apply = STUB (số CHƯA nghĩa tới khi sample-q chín-tuổi + trọng-tài độc-lập khác-phiên) · (3) ngưỡng HCV = calibration-interim · (4) tự-soi: vòng đo agent-công-nhân CHƯA đo chính khâu-meta (điểm-mù) · (5) cô-đặc mới có NÉN, verify-trước-khi-giữ CHƯA dựng.


PHẦN J — Harness-18: Kiện-toàn kiến-trúc (4 khuôn-mẫu additive) + frontier-method self-audit (🔴 FUNCTION-FLOOR + 🟡 form)

Adopt S100 (2026-07-02) — AI_INFRA broadcast 2026-07-02-Governance-{harness-18-architecture-consolidation, checklist-harness-18} (content_sha256 re-compute MATCH ✓ cả 2; ⚠️ frontmatter cả 3 broadcast đợt này thiếu field reviewer_gate — 24 broadcast trước đều có; gate-evidence nằm trong body "dogfood 2 phiên · cổng-kiểm ba-làn PASS" → SE áp với reasoning ghi tường-minh + flag format-regression về AI_INFRA). Áp qua 2-workflow Harness-9: WF1 investigate wf_50a817ce-a69 (3 lane investigator-codebase, return-delta MODE-A) + WF2 review wf_955643c3-f7d (re-run S101 2026-07-03 — gốc wf_31ea3985-92c mất theo CLI-restart → re-run fresh; verdict PASS_WITH_CONCERNS 0-BLOCKING: Lane-A detector-teeth PASS fault-inject-4/4 · Lane-B ledger PASS_WITH_CONCERNS [1 CONCERN workflows/README.md:51 nhãn-cũ→FIXED S101] · Lane-C PARTIAL [codify+n-a+containment first-hand ✓; frontier-hash+reviewer_gate dựa record-S100 do broadcast-inbound vắng repo]; Lane-C #53-garble→recover first-hand). Additive — KHÔNG thay đợt nào trước. Broadcast chị-em 2026-07-01-…-harness-frontier-assessment: content_sha256 MISMATCH khi re-compute (4 biến-thể canonicalization đều lệch; 2 file H18 MATCH → phép canonical đúng, body đã lệch stamp) → HELD-integrity: KHÔNG codify rule từ nó, CHỈ chạy self-audit vô-hại (kết quả dưới); chờ AI_INFRA verify/re-stamp.

J.A — Freshness-detector nâng-cấp (3 sàn 🔴 — mechanized, fault-inject 4/4 + real-repo verified S100):

  • mismatch-only + ratio-band confidence: governance-detectors.ps1 C2 chỉ flag khi count-token LỆCH canonical (kể-lại-đúng = IM — fault-inject case-2); sev theo ratio-band — gần-canonical 0.52.0 = MED (stale-total khả-tín), xa = LOW (count cục-bộ-module) — sửa lớp FP cũ |diff|≥10=MED vốn NGƯỢC (S98 verify: 8/8 MED đều FP; post-fix real-repo: MED derived-stale 11→0, giữ 3 vocab-fork known).
  • scan-range theo dải THẬT: $derivedDocs fixed-list → glob động (ALL .claude/skills/*/SKILL.md + ALL .claude/commands/*.md) — vá lớp-mù commands/ nơi "(68)" sống ~11 phiên (H1 F3 S99).
  • exclusion: self-exclusion 6 path + $ExcludeExact (pre-existing, re-verified 0 self-match).
  • 🟡 Honest: FP-guard baseline|S\d{2} skip-line = blind-spot có-chủ-đích (dòng chứa "Baseline" KHÔNG quét — dòng "130 PASS" session-start đã B1-pointer TAY S100); sev = confidence KHÔNG phải existence (total-cổ-đại "77 test"/440 → LOW advisory vẫn hiện).

J.B — Vệ-sinh sổ-ghi: retire runs/_ledger.md two-beat (🔴 đo-bắt-thật + nghỉ-hưu-trung-thực + sweep):

  • Đo (WF1-L3, evidence-grade): ledger true-orphan-catch = 0/15 row lifetime (đều open+close cùng-ngày 06-18; chỉ legend) · folder/disk-scan H2 bắt thật 4+ vụ memory-delta orphan (S57 · post-S57bis 4-MISS · S98 ×3 · S99 cicd#485) · mode-A ephemeral (default S93+) → ledger coverage workflow gần đây = 0/8. Đính-chính ground-truth: "S71 harvest/ rỗng" = wording tiêu-chí trong session-start, KHÔNG phải vụ catch — run-folder-orphan lifetime = 0 ở CẢ 2 cơ chế.
  • Caveat-3 parity (honest): replacement KHÔNG "proven bắt tốt hơn" trên run-folder-orphan data (0 incident 2 phía) — căn cứ retire = coverage-cấu-trúc (mode-A 0/8) + chi-phí duy-trì + đã cần disclaimer-note S98 chống nhầm, KHÔNG phải catch-rate.
  • Nghỉ-hưu: 1 dòng 🧊 header _ledger.md (đảo-ngược = gỡ dòng; 15 row GIỮ NGUYÊN — dời-đi không xoá). Orphan-authority = folder-scan: runs/<id>/run.md*-synthesis.md VẮNG/0-byte (dual-accept harvest/ run cũ).
  • Sweep 6 mandate-consumer + cites (mechanized-grep _ledger exact — 5 "ledger" khác tên trong repo, tránh C3-fork): runs/README.md ×7 (:3/:38/L1/L2/§C6-header/:117/:127) · workflows/README.md ×2 (:20/:34-B3) · session-start.md §2.1.1-H2 · session-end.md §L.b(f) · agents/harvest-curator.md ×3 (:28/:44/:52-cite) · agents/README.md G-015-cite · + agent-memory/harvest-curator/MEMORY.md baseline re-ground. HISTORY class (session-log/adap-report/archive/runs-synthesis) GIỮ NGUYÊN.

J.C — Bracket phân-bổ model: 1 ĐẠT + 2 n-a-by-owner-mandate (🔴 điều-kiện xét-lại VIẾT RA):

  • Precondition raw-economics ĐÚNG (Fable > Opus 4.8 giá) NHƯNG directive 🔴 S66 "chất-lượng trên chi-phí" (anh-chốt, mọi sister) GIỮ — mechanism nay = worker-tier-pin S124 (TOÀN-ROSTER frontmatter opus+effort:max — số vai canonical → docs/STATUS.md §Sub-agents, B1 KHÔNG chép số ở đây; thay all-inherit H8) → KHÔNG demote lớp-việc nào dưới worker-tier opus; escape-hatch per-task tier:'opus' (hmw.js) GIỮ = cơ-chế hạ-bậc-theo-việc ĐÃ TỒN TẠI khi cần. 4 lớp không-hạ + 2-đầu = vacuously-held (mọi vai đang top-tier). Promote-list 🟡 = n-a (không gì để nâng).
  • Điều-kiện xét-lại (C3-floor, viết ra — đo được): NẾU anh đảo H8 HOẶC áp-lực chi-phí thật xuất hiện → dựng bracket theo checklist H18-C, so ≥3-run eval vs baseline TRƯỚC khi cố-định; tới lúc đó C1/C2 hết n-a. (Caveat-2 broadcast: "chi-phí ngang nhau thì khuôn-mẫu không áp" — SE = ngang-nhau-BY-DECISION.)

J.D — Đóng làn kết-quả (🔴 3 sàn — 2 ĐẠT wired + 1 REUSE):

  • D(a) spot-check tươi: wired session-end §L.b(i) — session governance/review-heavy chọn 35 artifact đã tự-qua-cổng → kiểm-lại tươi bằng ground-truth. Dogfood n=1 S100 (WF2 lane-3). 🟡 Honest: n=1 = mẫu hiệu-chỉnh (caveat-1 broadcast), CHƯA "proven".
  • D(b) reinject-on-real-miss + D(c) chốt-chặn-lặp: = REUSE §I B2 reinject-ledger.md CG-1 (≤1/N=3 + escalate anh + đo-lại phiên kế) — H17 đã dựng ĐÚNG khuôn này TRƯỚC broadcast, KHÔNG sổ mới (chống C3-fork "ledger").

Frontier-assessment self-audit (S100 — chạy dù broadcast HELD-integrity, vì self-audit vô-hại + có giá-trị riêng):

  • P1 taxonomy-claim: CLEAN — grep \bMAST\b = 0 repo-wide; error-ledger "3-axis tag" = internal scheme map Gov-v2 (KHÔNG claim external-taxonomy) → ma-trận anh-xạ n-a-legit.
  • P2 ghost-wire: 1 THẬT = cron monthly (solution-erp-skill-audit-monthly: CronList runtime = 0 job + scheduler RỖNG 2026-05-04 + S96 chạy 13:04 em-main-in-session + CronCreate harness session-scoped không persist) → honest-retire 5 file S100 (rules.md ×2 · CLAUDE.md · STATUS.md · session-start.md): audit monthly = thủ-công em-main theo cadence-pointer STATUS (function KHÔNG ghost — S44/S96 đều chạy đúng hạn; chỉ WIRING claim sai). +2 ghost-wire-config-key (mfe role_file_glob/diary_path_pattern defined-but-unread) + 1 latent blind-spot (selfimprove :147 no-tools:-skip) → defer đánh-số STATUS backlog D-1/D-2 (frontier HELD → không sửa vội). Cadence#4 + mọi auto-claim khác = WIRED hoặc disclaimed-no-daemon đúng convention G-015.
  • P3 measurer role-coverage: 3/3 script (mfe-eval + memory-selfimprove-audit + memory-archive-gate) = GLOB-LIVE, 0 hardcode roster/"11" — agent thứ 12 tự-cử (WF1-L1 file:line).
  • P4 correction-cadence proxy: ghi-nhận method, KHÔNG áp — 0 điểm-đau đo được hiện tại; áp-không-pain = chính "frontier-envy" mà broadcast cảnh-báo.

Honest nấc tổng §J (checklist 12 sàn 🔴): A 3/3 ĐẠT (mechanized + runtime fault-inject 4/4) · B 3/3 ĐẠT (đo = convention-với-số-liệu WF1-L3 · retire = executed-file reversible · sweep = mechanized-grep + executed 15 điểm) · C 1/3 ĐẠT (C3 revisit-condition executed-file) + 2/3 n-a-by-owner-mandate H8 (lý-do khách-quan viết rõ — caveat-2 broadcast) · D 3/3 ĐẠT (D-a wired + dogfood n=1 · D-b/D-c REUSE §I CG-1). Phát-biểu chủ-động: 10/12 ĐẠT + 2/12 n-a-reasoned = phủ đủ phần áp-được. Mechanized THẬT chỉ: J.A detector + J.B sweep-grep; phần còn lại = convention (KHÔNG nhận mechanized). 🟡 form 4 mục: detector-regex/ngưỡng tự đặt (ratio 0.52.0) · bracket-boundary theo H8 · sổ chốt-chặn = reinject-ledger git-tracked (REUSE) · promote-list n-a.


PHẦN K — Harness-19: "Model ảo" ensemble cho 2 vị-trí phán-quyết + thật/ảo depth-toggle (🔴 FUNCTION-FLOOR + 🟡 form ensemble-depth)

⚠️ H21 supersede-partial (S110, 2026-07-11, broadcast 2026-07-10-Governance-harness-21): marker-toggle + 2-vai-verdict-mặc-định (K.B/K.A dưới) → per-invocation owner-gõ-kèm-vai (§K.E). Định-nghĩa 2 engine + ký-ức-đổ-về-đúng-vai (K.C) + chất-lượng GIỮ NGUYÊN từ H19 — KHÔNG re-adopt.

🔒 Posture trục-SÂU (O-2 — OWNER-DELEGATED → lead-decided @S149, uỷ-quyền "Trả lời 4 câu"; spec runs/2026-07-24-S149-owner-gated-3-khoan/): posture-A — KHÔNG DỰNG trục sâu riêng cho engine-đắt; "trần tổng-lượt" không có trục để assert. Căn-cứ: depth-cost đo mode-thật thắng ~1/10 giá. Anh veto = 1 edit (HANDOFF #25). (K2 land @S150.)

Adopt S101 (2026-07-03), anh-directed (/check-email AI_INFRA + /adap-apply → "Formal adopt + RC-stamp" + "full 2-workflow"). AI_INFRA broadcast 2026-07-03-Agent-harness-19-fable-clone (content_sha256 re-compute MATCH ✓ 6909299a…; +3 broadcast model-tier cùng đợt [fable-opus ee00d253 · checklist a7ff304b · v2-pin-simple eed277f7] đều MATCH + đều có reviewer_gate: PASS → format-regression H18 [thiếu field] đã fix). Áp qua 2-workflow Harness-9: WF1 investigate wf_5f308fd8-744 (3 lane wiring+mapping+adversarial, SOUND_WITH_CONCERNS — bắt 3 floor-fidelity gap; resume-after-interruption cached) + WF2 review wf_ed5b972f-a4d (→ PASS_WITH_CONCERNS 0-BLOCKING: Lane-A mechanism PWC [1 CONCERN marker write-only no-reader → FIXED S101 thêm session-start BƯỚC 0.5b reader] · Lane-B gov-record PASS [RC-mark 3-floor verbatim + vacuous-honest, 7 refutation fail] · Lane-C adap-honesty PASS [4 hash MATCH indep + 12/12 + no-overclaim]. ⚠️ GAP-3 AS-10 fired LIVE — lanes tự-ghi reviewer-memory dù RETURN-only-intent; harness-sanctioned "intentional" → KEPT + verified → dogfood-validate §K.C "GAP-3 = convention-KHÔNG-mechanism"). Additive — KHÔNG thay H8 all-inherit / bracket / promote; chỉ THÊM ensemble + toggle cho 2 vị-trí phán-quyết.

K.A — Ánh-xạ 2 vị-trí phán-quyết vào roster SE (🔴 §7 sàn — WF1-confirmed best-fit, no superior alt):

  • (a) Cổng rà-soát cuối = reviewer (adversarial 6-category + Smart-Friend anti-rubber-stamp + live-curl falsify + phân-xử mâu-thuẫn). (b) Ground-truth/xác-minh sự-thật = investigator-codebase (truy bằng-chứng gốc file:line + sqlcmd + git, chống bịa + RCA). investigator-api EXCLUDED (external-only) · database-agent EXCLUDED (DB-only subset). = cặp dogfood S101 (WF2 3-lane reviewer · WF1 3-lane investigator-codebase). (H21 S110): cặp này = REFERENCE-EXAMPLE/likely-pick (dogfood S101/S108), KHÔNG còn auto-default — vai do anh gán đích-danh trong lệnh (§K.E), MỌI vai trong roster hiện-hành hợp-lệ (số canonical → docs/STATUS.md §Sub-agents).

K.B — Cơ-chế 2 mode thật/ảo (🔴 §4 sàn) + toggle marker (🟡 form):

  • 🧊 (retired H21 S110) Fable-real (thật, marker .claude/fable-real-mode.on CÓ): 2 vị-trí chạy 1 lần top-model trực-tiếp (sâu nhất). Fable up=single-Fable · down (H5)=single-Opus-1M per-run fallback (KHÔNG đổi mode toàn-cục).
  • 🧊 (retired H21 S110) Fable-clone (ảo, marker VẮNG = MẶC-ĐỊNH, §4 ít-kinh-phí): 2 vị-trí chạy ensemble tier-2-mạnh-nhất = N lane đa-lăng-kính CÙNG 1 vai (qua hmw.js parallel) + em-main refute + synthesize (P3/P4) = "bản sao Fable".
  • 🧊 (retired H21 S110) Toggle = 2 lệnh /fable-real (Write marker) + /fable-clone (Remove marker) mirror /ultra-on//ultra-off⚠️ semantic INVERSE: marker-VẮNG = ảo-DEFAULT (khác hmw: marker-CÓ = feature-ON). marker gitignored (verify git check-ignore ✓; commit → thật-mode stuck-ON clone = burn quota, TỆ HƠN hmw vì elevate tier). Đổi mode CHỈ khi anh gõ (§4 — KHÔNG auto theo số-dư/cảm-tính, giữ mark RC-…10-29-09).

Thay bằng §K.E per-invocation. Marker file đã xóa S110; .gitignore:92 giữ pattern phòng-hờ.

K.C — 3 floor-fidelity gap (🔴 WF1-L3 bắt — pin để stamp CÓ NGHĨA, không paperwork):

  • GAP-1 scope-creep guard: hmw.js VALID_ROLES nhận TOÀN roster (lịch-sử: 9 lúc adopt S101 → +office-document S107 → +2 monitor H1/H2 S110 anh-directed → +2 monitor H24 S121 W2; số vai canonical → docs/STATUS.md §Sub-agents, B1 KHÔNG chép số), KHÔNG gate → worker-tier-pin CHE leak qua opus (mọi vai pin opus nên mixed-roster "trông ổn" — như thời all-inherit trước nó; lượt tier:'fable' mixed-roster = rò top-model sang vai ngoài lệnh = vi phạm §3 hard-scope). → lệnh-B ensemble-run = N lane CÙNG 1 vai phán-quyết (multi-lens), KHÔNG mixed-roster fan-out.
  • GAP-2 engine-label (§5): hmw.js SCHEMA memoryDelta{task,verdict,learned,surprise} KHÔNG field engine → em-main stamp nhãn engine @P3 harvest (single-writer B3), như S101 "model-note Opus-S101". = convention KHÔNG mechanism.
  • GAP-3 AS-10 fragment: mỗi run-trace ghi *-synthesis.md residual + lane giữ Bash (AS-10 fails-open) → "1 vai = 1 trí-nhớ" qua N lane giữ CHỈ bởi em-main single-writer. → N lane RETURN-only, em-main ghi 1 MEMORY entry/vai (+ nhãn engine).

K.D — 3 floor-point RC-stamped (🔴 §9 — RC-pqhuy1987-03-07-2026-17-46-35, ACTIVE-MARKS.md): (1) 🧊 lead LUÔN top-model (KHÔNG đụng) [retired H21/mtv3 S110] → MỚI: lead = frontier-class do anh chọn per-session {Fable 5 | Opus 4.8 — 1M MAX} (model-tier-v3 2026-07-11); CẤM Sonnet/Haiku-class ghế lead; owner-chọn-hạng-hai ≠ outage → 0 caveat/0 revert-nghĩa-vụ · (2) 🧊 CHỈ 2 vị-trí phán-quyết chạm top-model, CHỈ chế-độ thật do anh gõ (KHÔNG auto) [retired H21 S110] → MỚI: top-model deep-run CHỈ trong lượt lệnh engine-đắt anh gõ KÈM VAI đích-danh (H21) — không còn 2-vị-trí-mặc-định, không còn mode · (3) mọi vai khác giữ model mặc-định (roster-tier). ⚠️ VACUOUSLY-MET-for-SE (dated, thời điểm stamp S103-era): dưới all-inherit + Fable-outage, reviewer+investigator-codebase ĐÃ top-model (Opus-1M) → point-2 grant 0 runtime-delta; point-3 trivially-held (thời all-inherit S66 không có "vai khác" tier-thấp). (S124 → worker-tier-pin: point-3 nay giữ theo nghĩa MỚI — "vai khác" = worker-tier opus cố-định; point-2 xem S108-update cuối đoạn.) Stamp KHÔNG overclaim runtime-delta; value = future-proof floor + governance-record. (S108 update: Fable-UP + first-real-run → point-2 grant hoạt-động THẬT lần đầu — 2 vị-trí single-Fable deep ⟂ worker-draft pin tier-2 Opus; "vacuously-met" KHÔNG còn là trạng-thái thường-trực, tùy BƯỚC 0.6 probe per-session.)

K.E — H21 per-invocation + spec-file kết-tinh (🔴 sàn 5-điểm, adopt S110 — supersede K.B toggle):

Lệnh Engine Cách chạy
/fable-real <vai> <đề-bài> lệnh-A single top-model 1 vai anh gán chạy 1 lần top-model THẬT (deep pass; Fable up → single-Fable · outage → single-Opus-1M/run)
/fable-clone <vai> <đề-bài> lệnh-B ensemble tier-2 N lane đa-lăng-kính CÙNG 1 vai (hmw.js parallel) + em-main refute+synthesize
  • (i) Vai owner-gán per-invocation: <vai>roster (investigator-codebase · investigator-api · implementer-backend · implementer-frontend · frontend-designer · database-agent · office-document · test-specialist · reviewer · cicd-monitor · tooling-auditor · harvest-curator · lead-stale-auditor · lead-gap-auditor ← +S121 W2, H24 · harness-eval · harness-refine · harness-audit ← +S141, bộ-ba đồng-kiểm memory · ring1-audit · ring2-audit · ring4-audit ← +S145, round-KIỂM ×3 [tooling-harvest · soi-lead · nén-ngủ]). 🔴 Danh-sách này là BẢN SAO — nguồn thật = hmw.js VALID_ROLES (khối hằng-số VALID_ROLES, tra bằng tên KHÔNG bằng số dòng — [n6] line-range cũ :22-36 đã lệch khi enum dài thêm); lệch ⇒ tin hmw.js. Số vai canonical → docs/STATUS.md §Sub-agents (B1). Thiếu/sai vai → em-main hỏi anh 1 dòng, KHÔNG tự đoán. Hiệu-lực CHỈ lượt đó (không marker, không sticky-mode). VALID_ROLES = ĐỦ roster: 2 monitor H1/H2 bổ sung S110 anh-directed (10→12) → +2 monitor H24 S121 W2 (12→14) → +3 trio-memory S141 (14→17)+3 round-KIỂM ring1-audit/ring2-audit/ring4-audit S145 (17→20) — lệnh-B trọn roster. 🔴 Số canonical → docs/STATUS.md §Sub-agents, KHÔNG chép số ở đây. (🧊 limitation cũ "2 monitor ∉ 10-vai → fail-soft default-subagent" + H6-design "monitor ngoài workflow" superseded điểm này; monitor vẫn INFORM-only, lane RETURN-only.)
  • (ii) Spec-file pipeline (mỗi run engine-đắt PHẢI sinh): .claude/workflows/runs/<run-id>/spec-<tên-tính-năng>-<dd-mm-yyyy>.md — 3-heading CỐ-ĐỊNH: [1] Tính-năng/đề-bài (13 câu) · [2] Cách implement (bước + quyết-định + ràng-buộc + đường-chết) · [3] Checklist (vai + deliverable + acceptance đo được). Luồng: engine propose-only → lead verifyLEAD ghi (single-writer) → worker Opus MAX thực-thi THEO spec bơm qua args (hmw.js KHÔNG đọc file spec).
  • (iii) 4 ghi-chú trung-thực (🔴 phải hiện-diện — nấc owner-gated, KHÔNG code-enforced §X8):
    • (a) owner-gated tầng LỆNH + kỷ-luật lead cho việc CHỌN/ELEVATE vai, KHÔNG code-enforced — đường code tier:'fable' vẫn tồn-tại, hmw.js KHÔNG ép vai-nào-được-elevate. (REC-3 2026-07-13: hmw.js GIỜ code-enforce vai-INVALID — typo ∉ VALID_ROLES → STOP-HARD throw; đó là guard typo, KHÁC gate vai-elevation vẫn là discipline.) Bảo-đảm elevation = MỌI đường truy về lượt owner-gõ (kỷ-luật), không phải guard chặn.
    • (b) lệnh/alias = cách anh gán vai NHANH — hệ KHÔNG tự chọn vai, vẫn phải anh gõ.
    • (c) spec-file do lead ghi SAU khi verify — engine không tự ghi.
    • (d) run chấm/verify CŨNG sinh spec (kế-hoạch xử issue = "cách làm" cần kết-tinh, không chỉ run implement).
  • (iv) Map sàn 5-điểm: ① spec-file mỗi run · ② worker thực-thi THEO spec · ③ chỉ chạy khi owner gõ lệnh · ④ vai owner-gán đích-danh · ⑤ lead KHÔNG tự-ý gọi engine-đắt.
  • (v) Honest nấc K.E: codify S110 + dogfood run-1 = chính lượt adopt này (spec-file 2026-07-11-h21-mtv3-adopt); mechanized = 0 (convention + git-tracked spec làm audit-trail — KHÔNG guard code-enforced).

Honest nấc tổng §K: value THẬT ≠ cost (broadcast §8 "ensemble không rẻ hơn nhiều về token thô") mà = anti-consensus-catch (dogfood S101 WF2 Lane-B bắt workflows/README:51 stale-label token-exact-sweep sót, commit f229b07 — run-folder ephemeral, cite COMMIT) + formalize ensemble-heavy-judgment + thật/ảo depth-toggle owner-control + Fable-outage timeliness. Nấc = designed + dogfooded (ensemble-pattern proven S101; thật-mode toggle first-real-run S108 2026-07-10 — 2-lane single-Fable song song 2-đầu-khác-trục review chính fable-real-runbook.md, verdict FAIL-then-fixed đúng Smart-Friend, form kết quả → runbook §5.5). Mechanized THẬT (pre-H21, 🧊 marker-toggle retired S110) = CHỈ marker-toggle (Write/Remove gitignored, verify-idiom) + hmw.js parallel-lanes; scope-guard + engine-label + single-writer = convention (em-main kỷ-luật, hmw.js không gate vai). RC-sig + command .md = executed-file, verified-pending-restart (no hot-reload). S110 H21-update: marker-toggle retired (mechanized-marker không còn); per-invocation = owner-gated convention + spec-file git-tracked.


PHẦN L — Harness-20: Fix-all-structure (sửa drift ĐỦ-TẦNG khi supersede) (🔴 FUNCTION-FLOOR quy-trình + 🟡 form)

Adopt S103 (2026-07-06) — AI_INFRA broadcast 2026-07-03-Governance-harness-20-fix-all-structure (content_sha256 re-compute MATCH ✓ bd714a33…; reviewer_gate: PASS + nac PUBLISHED). Áp qua 2-workflow Harness-9: WF1 implement+verify wf_55ef6778-a0d (Lane-C exhaustive sweep) + WF2 review (fable-clone ensemble, run-id ghi dưới). Additive — bổ-sung governance-detectors.ps1 (§C detector DÒ; fix-all-structure ĐẢM-BẢO bản-sửa đủ-tầng), KHÔNG thay.

L.A — Nguyên-lý (🔴 §1-2 sàn): supersede/đổi 1 quy-tắc governance → drift KHÔNG tự biến mất; sót ở 4 tầng: NHÌN (mục-lục/bảng/sơ-đồ) · NGUỒN (văn-bản chuẩn — tiêu-đề + MỌI mệnh-đề active) · DẤU (sổ chữ-ký/hash) · DẪN-XUẤT (guide/template/onboarding) + 🔴 PERSONA (.claude/agents/*.md — nạp-lại MỖI spawn = drift độc-hại nhất, dễ sót nhất). Anti-pattern SỬA-LỆCH-TẦNG: sửa 1 tầng để tầng khác cũ = TỆ HƠN không-sửa (mâu-thuẫn + nếu tầng-cũ = authoritative → reader nhận quy-tắc SAI). Thứ-tự đúng: đủ-tầng > không-sửa > sửa-lệch-tầng.

L.B — 4 bước (🔴 §3 sàn): (1) Quét cạn-kiệt grep token/hash/tên-policy TOÀN-KHO (KHÔNG chỉ nơi-nhớ). (2) Phân 4 nhóm mỗi hit: ĐANG-SAI (mô-tả current sai → sửa + note-supersede) · LỊCH-SỬ-DÒNG-DÕI (saga có neo mốc → GIỮ) · DẪN-XUẤT (guide/template → update/note-đầu) · SNAPSHOT-THEO-NGÀY (chụp thời-điểm → GIỮ). (3) Sửa HẾT ĐANG-SAI mọi tầng (nhìn + tiêu-đề-nguồn + mệnh-đề active + dấu). (4) KHÔNG rewrite LỊCH-SỬ. + 🔴 Kiểm 2-đầu khác-trục (ground-truth + adversarial) chống "cùng-góc-cùng-điểm-mù".

L.C — Ánh-xạ SE (🟡 form + honest): SE = convention (grep + phân-loại = kỷ-luật người, KHÔNG cơ-chế-hóa auto-fix — trùng nấc D6 DÒ-only). Complements: detector PHÁT-HIỆN (C1/C2/C3), fix-all-structure ĐẢM-BẢO bản-sửa đủ-tầng. Adoption-checklist 6-mục = SE thực-hành từ S96-monthly (nay đặt-TÊN + neo floor). SE đã dogfood pattern (S100 J.B sweep 15-điểm/8-file _ledger-retire; S101 workflows/README:51 2-đầu bắt sweep-sót) — H20 = codify cái ngầm-có.

L.D — Dogfood n=1 THIS session (🔴 executed — 2 live-application):

  • Model-note sweep (F2/F3 recheck-broadcast live-fix): BƯỚC 0.6 bắt runtime S103 = Opus (Fable outage lại; per-session flip S98-Fable→S101-Opus→S102-Fable→S103-Opus) → thêm data-point tầng running-note: agents/README.md:3 (PERSONA-tier) · session-start.md:37 · session-end.md:113 (Co-Authored-By "hiện=Fable"→Opus = ĐANG-SAI thật). LỊCH-SỬ-SAGA GIỮ: agents/README:12 (H8-caveat) + STATUS/HANDOFF S98-blurb. STATUS/HANDOFF mega-line current-claim → cập-nhật @session-end blurb (natural update-point).

  • 220K→380K superseded-pointer: engine §G.5 "lead 220K" = S83-value, S94-override→380K → neo-supersede (GIỮ 220K + note "→S94 380K", KHÔNG rewrite lịch-sử).

  • 2-đầu-catch (🔴 Harness-20 §4 dogfood value — REVIEW bắt sweep-gap thật): fable-clone review wf_3c5c37cb-aa2 (Lane-C PASS; 2 lane #53-garble→recover, Lane-C phủ redundant) bắt 2 DẪN-XUẤT stale-trailer docs/rules.md:220 + docs/guides/multi-agent-setup-guide.md:428 (Opus 4.74.8) mà sweep-đầu-1 SÓT → FIXED. Phân-loại 4-nhóm L.B đúng: 2 DẪN-XUẤT (sửa) vs ~14 sessions/*.md:3 "Opus 4.7" = SNAPSHOT-THEO-NGÀY (GIỮ NGUYÊN, session-log mốc-cũ tháng-5). = đúng §4 "2-đầu-khác-trục bắt sửa-tầng-nhìn-quên-tầng-nguồn".

Honest nấc §L: convention (KHÔNG mechanized auto-fix — nhánh chỉ-DÒ per CAVEAT "auto-WRITE luật = mối-nguy #1"). Dogfood n=1, CHƯA phổ-quát. Mechanized THẬT = CHỈ grep (detector); phân-loại + sửa = người.


PHẦN M — crystallized-backfill (measure-then-fill) + bảng-số ngân-sách + run-loop 2-tầng + Applied%-no-key (🔴 FUNCTION-FLOOR + 🟡 form)

Adopt S103 (2026-07-06) — AI_INFRA 4 broadcast owner-directive + 1 reference, content_sha256 re-compute MATCH ✓ cả 6: harness-full-recheck-crystallized-backfill (94c78d1d, F1-F4) · session-cmd-budget-display-runloop (d47333e0) · harness-16-nokey (a1dc3a20…, reviewer_gate PASS-WITH-FIXES) · Agent-memory-hygiene-mechanization (43c9e56f…, A/B/C) · reference consolidation-crystallization-measurement (5bba339b…). 2-workflow: WF1 implement wf_55ef6778-a0d (2 script + Lane-C verify; selftest exit-0 ×2 + fault-inject teeth) + WF2 review (run-id ghi dưới). Additive.

M.A — crystallized-backfill (🔴 F4 NEW function): scripts/crystallized-backfill.ps1 (NO-API DRY planner). "measure-then-fill" = đo REAL-token headroom hot-feed → đổ crystallized cold-tier vào chỗ-trống để KHÔNG phí trần. 🔴 DISTINCT crystallization (§I distill): distill = NÉN-về-nguồn giữ time-invariant; backfill = NGƯỢC, ĐỔ-vào-trống (consolidation Mục 1). 🔴 5 sàn bất-biến: (1) default target=0=OFF (owner-authority budget.json:crystallized_backfill.target; script READ-ONLY KHÔNG auto-tune) · (2) NOT-for-sub (sub-pack lead-curate per-task) · (3) calibrated RANGE [bytes/4..bytes/3.0], headroom dùng bytes/3.0 worst-case · (4) PRECONDITION mở CHỈ khi target>0 AND measured_headroom>0 · (5) value-gated source-order gist→value-marked-archive→curated-RAG, dedup, DRY-no-pour. 🟡 Honest: hotload_sources = FILE-FLOOR ổn-định (6 file) → measured_headroom = UPPER-BOUND (peak thêm task-context biến-thiên KHÔNG trong list → real-headroom NHỎ HƠN; ~368K peak gần cap). backfill inert-today (target=0). = đúng cảnh-báo F4 "byte/4 undercount = ảo-giác còn-chỗ".

M.B — bảng-số ngân-sách (🔴 #4-Upgrade1): script in BẢNG số THẬT: cap-live / hotload-đo-bytes / tok-RANGE / measured_headroom / target / expected_backfill — MỌI số đọc-sống 0-hardcode. Wired session-start §2.1.6 + session-end §L.b(c) (bổ-sung %-print). F1-tightening: bảng-live thay prose-echo "380K" (dù SE 0-hardcoded-violation, echo session-start:122 nay có nguồn-sống thay).

M.C — run-loop 2-tầng (🔴 #4-Upgrade2 — 🟡 LARGELY ALREADY-MET honest): Tầng-1 ĐO mỗi session-end (deterministic: memory-selfimprove-audit + mfe-eval + governance-detectors + archive-gate + crystallized-backfill) → khối-số tươi (cấu-trúc chống "khai-chạy-mà-không-chạy"). Tầng-2 TINH-CHỈNH on-signal (new-gap/drift-vs-last/orphan-TĂNG/coverage-tụt → cảnh-báo ĐỎ + refine-in-session HOẶC carry-hi-prio nếu đứt-phiên; KHÔNG nuốt). Weekly full-refine backstop. 🟡 Honest ALREADY-MET: §L.b(c) ĐÃ có H17 loop-REFINE + %-print + 4 script; M.C = FORMALIZE 2-tầng-framing + khối-số-mỗi-end. Tầng-2-signal-fire dogfood CHƯA chạy thật (như hub n=1).

M.D — Applied%-no-key (🔴 H16-update mechanism): scripts/applied-eval-nokey.ps1. Cổng đối-kháng fail-closed (control-cố-ý-sai chấm-CAO→BLOCK / control-BỎ-QUÊN→BLOCK / control-thấp→PASS) + merge (loại control, KHÔNG bịa null→0) + selftest 3-ca (fault-inject FLIP-proven, bắt real-bug $script:-scope). 2-agent-pass (thí-sinh bịt-đáp-án đúng-persona / trọng-tài khác-phiên sạch-ngữ-cảnh) = DOCUMENTED runtime-via-workflow. 🔴 4 caveat: proxy-điểm-thời-gian / chung-họ-model-chưa-khử / bịt-mắt-chỉ-dặn / chưa-đo-tuổi. Honest: MECHANISM built, con-số DEFERRED (sample-Q chín + judge độc-lập khác-phiên). API-key nay TÙY-CHỌN.

M.E — F1/F2/F3 recheck (🟡 already-met): F1 (số=con-trỏ): Lane-C sweep = 0 hardcoded-violation toàn-kho, persona CLEAN → already-met (M.B retire echo). F2 (sweep-incl-persona) = §L H20. F3 (model-routing REAL-metadata): BƯỚC 0.6 ĐÃ đọc env-runtime-thật — S103 bắt Opus KHÔNG tin comment (đúng bài F3 "ghim thắng inherit khi model blank → đứt âm-thầm") → already-met + live-evidence.

M.F — memory-hygiene-mechanization (🟡 ALREADY-MET via Harness-9/11 + 🔴 C n/a): A archival = memory-archive-gate.ps1 (DRY-RUN + value_protect ADVISORY-only + keep-floor + 2-strike + A7 byte-preserve → SIDESTEP grep-gate-trap vì em-main-decides) · B drift-detector = governance-detectors.ps1 4-layer 1:1 (C1 broken-ref · C2 mismatch-only if n≠canon · C3 vocab-fork · C4 self-exclusion SEPARATE-namespace) · C launcher-allowlist = n/a-by-architecture (SE = Anthropic Workflow JS-sandbox, KHÔNG CLI-launcher; hmw.js:1-5 + workflows/README:51) · wire = §2.1.2/§2.1.3 @start + §L.b(c) @end. Đã adopt via Harness-9/11 — M.F = confirm-mapping 1:1 (KHÔNG rebuild).

M.G — consolidation (🟢 reference, no-mandate): absorb: crystallization≠backfill (§I vs §M) · staleness-check by CONTENT-diff KHÔNG mtime (harvest-curator đã làm S102 recovery byte-match) · 60K sub-reserve = owner-set KHÔNG converged-measure (đã đúng) · measurement-gap priority-1 (chưa official-tokenizer — SE dùng calibrated-range honest).

Honest nấc tổng §M: mechanized-THẬT (NO-API deterministic, selftest exit-0) = crystallized-backfill + budget-table + applied-eval-nokey gate + fault-inject-teeth. Convention = run-loop framing (M.C already-met §L.b) + fix-all sweep (§L). Inert/deferred honest: backfill target=0 (peak gần-cap → real-headroom nhỏ) · Applied% numbers DEFERRED (mechanism-only) · measure = calibrated-range KHÔNG official-API-tokenizer (measurement-gap fleet-wide). Owner-authority: mọi con-số ngân-sách READ-ONLY.


PHẦN N — Harness-22: WAL session-continuity (sổ mạch-việc + hook persist + /pause /tiep) (🔴 FUNCTION-FLOOR + 🟡 form)

Adopt S111 (2026-07-12) từ broadcast 2026-07-11-Governance-harness-22-wal-session-continuity (body-sha 3de0758a verified; ≙ AI_INFRA CANONICAL §I4 + §H1). Giải: phiên chết giữa mạch việc (limit/crash/tắt-máy/đổi-acc/chết-giữa-workflow) → mất trí-nhớ chưa-ghi + đốt-lại token. "WAL" ở đây = sổ-liên-tục-phiên — KHÁC "WAL RUN-LEDGER hai-nhịp" đã retired H18-B (trùng chữ, khác cơ-chế; alias-map awareness).

  • N.1 Sổ WAL (🔴): .claude/WAL.md ≤40 dòng, ghi-đè toàn-file KHÔNG append; chain: mục [x]/[!]/[ ] KÈM bằng-chứng lệnh (không mô-tả suông) + next: đúng 1 mệnh-lệnh + verify: ≥1 lệnh CHẠY ĐƯỢC, chạy TRƯỚC next — ground-truth thắng WAL (lệch → sửa WAL cho khớp thực-tế rồi mới đi). CẤM secret (file được commit). Template rỗng → session-end §6.4.

  • N.2 Hai tầng ghi (🔴): tầng NỘI-DUNG = lead single-writer (D9-consistent), ghi lại sau MỖI subtask đổi trạng-thái (kể cả lúc phóng + thu workflow-run). Tầng PERSIST = Stop-hook .claude/hooks/wal-flush.ps1 deterministic (PS1 — chọn path-independent vì PATH-order bash 2-context Windows ngược nhau, lead-verified S111): hook ĐƯỢC làm đúng 2 việc = git add per-path 4 path cố định {.claude/WAL.md · .claude/agent-memory/ · .claude/workflows/runs/ · .claude/sessions/} + commit CAND-only message wal: flush <ts>; hook KHÔNG-ĐƯỢC = sinh/sửa nội-dung · push · block-stop · đụng path ngoài list · exit≠0 (fail-open MỌI nhánh). Per-path add + CAND chống bẫy all-or-nothing đa-pathspec (bài học test-proven nguồn). 🔄 Cardinality 3→4 @S146 (thêm .claude/sessions/ cho session-model per-pause context-map): con-số này là LUẬT GỐC mà hook thi-hành ⇒ mọi đổi cardinality phải grep MỌI consumer cùng-commit (hook wal-flush.ps1 · Sàn-3 /tiep §0 "điểm mù" · .session-counter.json _why_this_path "outside all …" · auto-memory H22) — sửa write-site mà sót read-site = vỡ chính floor recovery (lớp S87/S88). Bản-ghi LỊCH-SỬ (adap-report có ngày · diary vai · WAL.md) KHÔNG rewrite — chúng mô-tả trạng-thái lúc đó.

  • N.3 Trạng-thái hook = VERIFIED-RUNTIME S111 CÙNG PHIÊN (nâng từ STAGED-until-verified — chống ghost-wire S100 bằng bằng-chứng THẬT): hooks-entry .claude/settings.json ghi S111 → Stop-hook HOT-RELOAD + FIRE ngay giữa phiên (KHÔNG cần restart): commit 12071c5 "wal: flush 20260712T1105" chứa ĐÚNG 4 file thuộc tập path cố định lúc S111 (WAL.md + diary invest + run.md + spec — khi đó .claude/sessions/ chưa tồn-tại; tập hiện-hành = N.2 bản 4-path @S146), CAND-commit chuẩn (settings.json/broadcasts/docs đứng NGOÀI — persist-only đúng thiết kế), 0 push. Giả-định honest-(c) nguồn "hook chỉ nạp lúc khởi-động phiên" → trên harness NÀY = hot-reload; ⚠️ ENV-DEPENDENT (data-point #2 sau skill-registry hot-reload S107/S111 — hub từng NGƯỢC kết quả, KHÔNG fleet-generalize; phiên MỚI vẫn re-check 1 lần trong pilot-checklist, không fire → thử schema phẳng). (Nấc trước khi có bằng-chứng = STAGED-until-verified: CẤM claim "đang chạy" khi chưa thấy wal:-commit do hook sinh — nguyên tắc GIỮ cho mọi hook tương-lai.)

  • N.4 Một đường recovery (🔴): /pause (chốt điểm dừng: flush-dirty → WAL-đúng-schema → commit đích-danh wal: pause TRƯỚC tuyên-bố an-toàn → DỪNG HẲN) + /tiep (đọc WAL → chạy TOÀN BỘ verify + git status + disk run-folder → lệch = tin ground-truth → thực-thi next; nhánh wf: = relaunch-cắt-gọt). MỌI con-trỏ recovery trỏ về MỘT chỗ = /tiep (kể cả anh gõ "làm tiếp" text thường); CẤM nạp lại transcript cũ. Delta session-cmd: session-start BƯỚC 0.7 WAL-check (ngoại-lệ CHỜ duy-nhất, chỉ con-trỏ) · session-end §5.0 squash wal:-trailing CHƯA-push (origin/main..HEAD, KHÔNG BAO GIỜ rewrite đã-push; squash-điểm = review-diff wal-paths, AS-10 backstop dời về đây không mất) · §6.4 reset WAL = bước cuối.

  • N.5 WAL-cho-workflow (🔴 sàn owner-nguồn): run ≥3 task HOẶC ước >5 phút = BẮT BUỘC RUN-TRACE mode (args.run — per-agent-file sub-<role>-<i>.md; chết giữa run còn vật-liệu trên đĩa); run.md +## taskList snapshot ghi TRƯỚC launch (spec đã on-disk per H21 — sàn {task-list · spec} đủ); dòng wf:<mục-đích> run= runId= args= done=k/N harvested= vào WAL NGAY SAU launch; harvest-LIỀN mỗi task xong (C4 per-turn ĐÃ CÓ — honest granularity: per-TURN ≠ per-TASK, parallel() trả cả batch cuối turn + Stop-hook cũng fire ở turn-boundary → chết GIỮA turn = returns mất, per-agent-file trên DISK là lớp cứu → /tiep đọc CẢ disk); /tiep nhánh wf: = relaunch-ĐÃ-CẮT-GỌT (grep run-id log-phiên = bằng-chứng đích-danh · harvest-hồi-tố partial-honest · relaunch CHỈ task còn lại · memory-pack RE-DERIVE TƯƠI, CẤM snapshot); resume-by-run-id = bonus SAME-SESSION-ONLY (CẤM claim cross-session). Trung-thực mất-mát tối-đa: agent song-song đang-chạy tại thời-điểm chết mất phần dở; run nhỏ ngoài diện WAL-hóa có thể mất cả run — rủi-ro chấp-nhận công-khai.

  • N.6 Commit-convention exception: commit wal: (hook-flush + /pause + WAL-reset) = ngoại-lệ DUY-NHẤT của format [CLAUDE] <scope> — máy sinh, KHÔNG Co-Authored-By, bị squash vào commit-chốt trước push (rules.md §5.2 mirror).

  • N.7 Honest (a)-(e) áp SE: (a) pilot CHƯA chạy đủ tại SE — dựng + codify + hook-FIRE-verified S111 (12071c5/67be443; script-RUN tay BỎ — bằng-chứng mạnh hơn thay thế + reviewer fault-inject 2-ca bịt nhánh 0-delta); kill-test / đổi-acc / squash-thật / pause-roundtrip-workflow = phiên mới + anh (HANDOFF pilot-checklist) · (b) SE 0 mark cấm-hook (5 Active-High không đụng); engine CAVEAT "No-OS-hook" = MÔ-TẢ hiện-trạng đã honest-update ngoại-lệ đích-danh; E.3 chỉ cấm hook-làm-GATE — persist-only 0-content tương-thích; thứ-tự codify-trước-enable tôn trọng CÙNG-COMMIT S111 · (c) schema hooks nested = default, verify ở PHIÊN MỚI, không fire → thử flat · (d) resume-run-id cross-session CHƯA kiểm-chứng — đường chính = relaunch-cắt-gọt · (e) repo SE TRONG Dropbox — 2 chiều: risk index.lock khi cloud-sync đụng git (thấp-nhưng-có; hook fail-open tự-lành lượt sau) + bonus Dropbox sync cả .git → commit local CHƯA-push vẫn sống qua tắt-máy/đổi-máy → /pause không cần push vẫn durable.

  • N.8 Probe-tại-điểm-dừng — predicate 4-vế (🔴 FLOOR + 🟡 form) — LUẬT-HOME của C7 (hub-answer, adopt S146): điểm dừng (/pause · /tiep · session-start · session-end) KHÔNG chạy việc khác, NHƯNG được phép gọi probe nếu script thoả ĐỦ 4 vế (thiếu 1 vế = KHÔNG phải probe, cấm gọi tại điểm dừng):

    • (i) read-only — chỉ ĐỌC (parse JSON/config · đo byte bằng Get-Item · liệt dir). 0 mutation, 0 network, 0 API-call.
    • (ii) KHÔNG spawn con — không Agent/Workflow/sub-vai, không Start-Process/job-nền/Invoke-Expression. Điểm dừng KHÔNG được đẻ việc mới (đó chính là cái C7 cấm).
    • (iii) KHÔNG write — không sinh/sửa/xoá file, không git add|commit|push, không đụng counter/memory/luật. Chạy 2 lần liên-tiếp phải cho cùng trạng-thái đĩa.
    • (iv) lỗi → in probe-loi (khong chan) → ĐI TIẾP — 🔴 [LOAD-BEARING]: MỌI nhánh exit 0; probe hỏng KHÔNG chặn, KHÔNG treo, KHÔNG làm /pause mất quyền tuyên-bố "an-toàn để thoát". Đây là vế biến probe từ thêm-một-điểm-hỏng thành thêm-một-hiển-thị.
    • FLOOR (🔴 bất-biến — port-nguyên khi tailor, 3 tính-chất): read-only · non-blocking (fail-open + no-hang + exit 0 mọi nhánh) · gỡ-được-không-hậu-quả (xoá lời-gọi probe khỏi thân command ⇒ mất HIỂN-THỊ, KHÔNG mất state, KHÔNG đổi nhánh quyết-định nào — đây là phép thử phân-biệt probe ⟂ gate; nếu gỡ đi mà hành-vi đổi thì nó là gate, thuộc §E.3, không thuộc N.8).
    • FORM (🟡 tailor được): wording token in ra (probe-loi (khong chan) — ASCII-only theo gotcha #30) · số vế / chuỗi định-dạng dòng-nợ · vị-trí gọi trong thân command · interpreter = em-main đọc dòng in (KHÔNG phải OS-gate; exit-code không cưỡng-chế gì — nhất-quán CAVEAT No-OS-hook).
    • Reword tập-cấm (🔴 KHÔNG phải cấm-tất): luật "điểm dừng không chạy thứ khác" đọc đúng = cấm ĐẮT / cấm side-effect (spawn vai · audit-rerun · đo lại instrument · ghi memory/luật · push) — CHO PHÉP probe read-only non-blocking theo N.8. Command chỉ TRỎ engine §N.8, CẤM chép predicate sang 2 nơi (B1 derived-trỏ-canonical; predicate đổi 1 chỗ, consumer không drift).
    • Trạng-thái đo S146 (fault-inject 2-chiều, timeout 60 bọc để quan-sát no-hang): scripts/nhip-no-probe.ps1 = thoả cả 4 vế (lành → 1 dòng NHIP-NO: … đầy-đủ, exit 0 · -RepoRoot bậy → probe-loi (khong chan), exit 0, không treo; catch tổng :203-208). scripts/distill-shard-probe.ps1 = thoả (i)(ii)(iii) + no-hang, (iv) mới NỬA: nhánh có-xử (thiếu memory-budget.json :23 · thiếu key distill_trigger :27) in token + exit 0, nhưng không có try/catch tổng với $ErrorActionPreference='Stop' :17 ⇒ exception (vd -RepoRoot bậy tại Resolve-Path :18, hoặc JSON hỏng tại ConvertFrom-Json :25) thoát ra stderr + exit 1, KHÔNG in token ⇒ FLOOR đủ (read-only · non-blocking-thực-tế · gỡ-được) / FORM thiếu. Vá = bọc try/catch tổng → probe-loi (khong chan) + exit 0 (thuộc chủ-file script, KHÔNG tự sửa trong lượt này).

Honest nấc §N: mechanized-THẬT = hook-script deterministic (persist) + template + acceptance grep; convention = lead ghi nội-dung WAL sau mỗi subtask (kỷ-luật, không công-cụ-ép) + squash/reset trong thân session-end do em-main kích. Dogfood S111 = tầng nội-dung (WAL-chain thật trong phiên adopt) + script-RUN tay; hook-FIRE + full-pilot = nấc kế.


CAVEAT (trung-thực — đọc trước khi tự nhận "đã tự-bảo-trì")

  • No-OS-hook: detector + gate chạy TRONG thân session-start/end body do em-main kích — KHÔNG fully-autonomous. Đúng mức: DÒ tự-động + toàn-diện; SỬA + GÁC dựa người-chủ-trì. Ngoại-lệ đích-danh (S111 H22): Stop-hook wal-flush.ps1 persist-only (PHẦN N) — 0-content, fail-open, KHÔNG phải gate (E.3-compatible: không cưỡng-chế hành-vi, chỉ persist trạng-thái xuống đĩa); VERIFIED-RUNTIME S111 (N.3 — 12071c5 + 67be443 fire thật; STAGED-until-verified giữ làm NGUYÊN TẮC cho hook tương-lai).
  • Auto-WRITE luật/copy = MỐI-NGUY #1, CỐ Ý CHƯA LÀM — defer tới ≥2 sự-cố thật mà thủ-công thất-bại (hiện 0). Chọn nhánh chỉ-DÒ-NÊU-CỜ cho mọi thứ chạm luật/copy (1-sửa-sai → N-chỗ-sai + phá hash broadcast đóng-băng).
  • Single-writer bar-không-hạ — cám-dỗ "để nó tự sửa cho nhanh" phải dừng trước chốt D9.
  • Detector = LƯỚI giảm-sót, KHÔNG khoá-cứng — bắt @đầu/đóng-phiên (theo nhịp); giữa 2 nhịp có khoảng-mù. Phòng-thủ-nhiều-lớp, không bảo-đảm tuyệt-đối.
  • Nấc dogfood: A2/A3/D4/D9/D11 = SE runtime-mechanized SẴN (H11 = chuẩn-hoá). C1-C3 + B3 + memory-archive-gate = MỚI build S75. D5-D8 + B1 = nhãn-hoá/codify cái ngầm-có. Phân-định 'detector viết-thành-lệnh' (executed-file) ≠ 'đã chạy-quan-sát' (runtime).
  • §E User-Mark = phần-lớn CONVENTION (S79): report-trước-đóng-dấu (E.2/P4) + cưỡng-chế-hành-vi (E.3 behavioral) + neo-lý-tính (E.5/P10) = kỷ-luật người+AI, KHÔNG công-cụ-ép (đừng nhận "mechanized"). CHỈ session-display (gắn lệnh-phiên P7) + chặn-tool-ở-config (E.3 tool-action P9) = mechanized. RC-sig 3 mark Active-High đã anh-confirm-stamp S79 (ACTIVE-MARKS.md) = executed-file; 4 lệnh /user-mark-* = command .md verified-pending-restart (no hot-reload).

PHẦN O — Kỷ luật GÓI NGỮ-CẢNH khi phát lệnh cho lane (D-10 · D-12) — W5/S181 (🔴 FUNCTION-FLOOR)

Land @S181 wave W5, gói adap 7-GĐ. Nguồn đo: sub-n3-lane-d-gd56.md D-10/D-11/D-12.

O.1 — D-10: Tổng hợp = MỘT LƯỢT GỌI MỚI, CẤM nối lại lượt cũ

Khi cần tổng hợp kết quả của nhiều lane, phải mở một lượt gọi MỚI với đầu vào là các vật chứng trên đĩa. CẤM nối lại (resume) một lane cũ rồi bảo nó tổng hợp.

Lý do: lane cũ mang sẵn ngữ-cảnh riêng của nó; nối lại là để một lăng-kính đã có thiên-hướng đi chấm cả tập. Lượt mới đọc đĩa thì mọi lane vào bằng cùng một cửa.

🔴 RANH với resume-#53 — hai việc KHÁC NHAU, đừng gộp:

resume-#53 tổng hợp
Mục đích cứu vật chứng của CHÍNH lane đó khi return bị garble hợp nhất vật chứng của NHIỀU lane
Nối lại lượt cũ? ĐƯỢC (đó chính là cách cứu) 🔴 CẤM

Counter-datum giữ cho công bằng: resume @S180 KHÔNG rớt model (n=1) — ghi nhận đúng cỡ mẫu, không chép lo-ngại của hub thành lo-ngại của mình.

O.2 — D-12: mảnh ngữ-cảnh nào CHƯA CÓ thì phải KHAI, cho CẢ GÓI 5 MẢNH

Gói ngữ-cảnh chuẩn (D-11) gồm 5 mảnh. Mảnh nào chưa có ⇒ ghi đúng chuỗi (THIẾU — lý do); CẤM bỏ trống, CẤM dựng lại từ trí nhớ.

# Mảnh Nhà Trạng thái @S181
1 nền trỏ-không-chép tiep.md §3-ter (khoá tiep_reload)
2 lớp mềm mạch việc _mind-s-<N>.md + .claude/WAL.md
3 ký ức vai cắt theo trần hmw.js memory-pack slice + memory-budget.json
4 sở thích thường trực docs/governance/so-yeu-cau-chu-du-an.md khối 2 MỚI CÓ @W4/S181 (trước đó là )
5 lời chủ nguyên văn ở lane DISPATCH §O.3 dưới (chủ dự án phán P7 vế (ii) @S181) MỚI CÓ @W5b/S181

D-11 nay 5/5. (Lineage: 3/5 trước W4 → 4/5 sau W4 (mảnh 4 có nhà) → 5/5 sau P7(ii).)

O.3 — P7 vế (ii): LUẬT TRUYỀN NGUYÊN VĂN ở lane DISPATCH

🔴 NẤC CHÍNH XÁC CỦA THẨM QUYỀN (hạ chữ @S181 sau khi lead-stale-auditor FLAG-1 bắt): chủ dự án KHÔNG phán riêng về nội dung vế (ii). Lead nêu "P7(ii) là thứ duy nhất còn thực sự chặn", anh đáp "OK làm hết rồi khép trọn đi" — đó là uỷ quyền chạy nốt, KHÔNG phải phán nội dung. Lead thi hành theo bậc-1 luật tự-trị (rõ, không phá huỷ, đảo ngược được) và khai đúng nấc ở đây. ⚠️ Bản đầu viết "Chủ dự án phán @S181"tự mở rộng thẩm quyền, đúng ảnh phản chiếu của lỗi tự thu-hẹp @S179. Anh bác thì gỡ §O.3, 1 lượt. 🔸 Đây là kỷ luật của LEAD khi phát lệnh, không phải yêu cầu chủ dự án đổi cách gõ.

Ba khoản, bắt buộc cả ba:

  1. RÀO > anh: — lời chủ dự án đưa vào prompt của lane đắt phải nằm trong khối blockquote mở đầu bằng > anh:, để người/máy đọc prompt phân biệt được lời chủ với diễn giải của lead.
  2. ĐI NGUYÊN KHỐI — chép verbatim, CẤM tóm tắt, CẤM paraphrase, CẤM cắt bớt cho gọn. Cần cắt vì quá dài thì để ...giữ con trỏ tới chỗ có bản đầy đủ.
  3. KHAI THIẾU — không có lời chủ cho việc đang phát lệnh ⇒ ghi đúng chuỗi (THIẾU — lý do). 🔴 CẤM dựng lại từ trí nhớ rồi trình bày như thể đó là lời chủ.

🔴 Vì sao vế này tồn tại — rào CŨ chỉ phủ MỘT NỬA. Rào > anh: đã có từ trướcpause.md — nhưng chỉ phủ lane LƯU TRỮ (ghi vào _context FLOW). Lane DISPATCH (đưa vào prompt vai đắt) không có rào nào. Đây là ca phủ một nửa trông như đã phủ: grep > anh: ra hit, nên nhìn qua tưởng có luật.

🧊 Đính chính một khai sai chiều, giữ làm vết: N1 từng khai "SE chưa có rào > anh:"sai, rào có thật, chỉ sai phạm vi. Lane D §4b sửa lại. Bài: "chưa có""có nhưng phủ nửa" là hai chẩn đoán khác nhau và dẫn tới hai cách chữa khác nhau.

🔬 Ca sống tự quy chiếu, ghi thẳng ra: chính prompt phát cho lane D — cái lane phát hiện ra thiếu sót này — chứa 0 khối > anh:. Luật này ra đời từ một lượt vi phạm chính nó.

🔴 Luật tổng (đây là phần D-12 thật sự thêm): trước đây chỉ 1/5 mảnh có luật khai-thiếu (pause.md:53). Từ nay cả 5 mảnh chịu chung luật: thiếu thì khai, khai thì nêu lý do. Một mảnh vắng mà không ai khai thì nó trông y hệt một mảnh không cần thiết — đó là lớp lỗi vắng-mặt-trông-giống-ổn.


PHẦN P — Luật CHẤM ĐIỂM đáp-ứng-yêu-cầu (GĐ-4 / C4-10 · A9) — W4b/S181 (🔴 FUNCTION-FLOOR)

Land @S181 wave W4b. Chủ dự án đã phán P4 (đẻ vai) + P8 (wire 2 cửa) + P3 (đường ghi lại). 🔴 PHẠM VI BẤT BIẾN = ĐÚNG 5 KHOẢN dưới (luat:140) — không phải câu tóm tắt ở :23. Ai sửa 1 trong 5 khoản này là đổi luật, phải qua chủ dự án.

P.1 — Khoản 1/5: CÔNG THỨC

điểm = max(0, 10  số MỤC lặp ≥2)

Đơn vị trừ là MỤC, không phải LẦN. Một mục bị nhắc 5 lần trừ đúng 1 (luat:120), không trừ 4. Lý do: đo "có bao nhiêu thứ phải nhắc lại", không đo "tổng số lần mở miệng".

3 cách đọc BẮT BUỘC đi kèm mỗi lần in điểm (luat:53-55) — thiếu một cách là in điểm trần trụi, và điểm trần trụi thì ai cũng đọc thành "đội tốt/xấu":

  1. Điểm này đo đội có phải nghe lại không, KHÔNG đo đội giỏi hay dốt.
  2. Điểm cao không chứng minh làm đúng — chỉ chứng minh không phải nhắc lại.
  3. Điểm thấp là tín hiệu tra cứu, không phải bản án; đọc kèm danh sách mục.

P.2 — Khoản 2/5: NGUỒN ĐẾM (đã ký, không né được bằng đổi nguồn)

Nguồn đếm duy nhất = docs/governance/so-yeu-cau-chu-du-an.md, cột số lần đã nhắc. CẤM đổi sang nguồn khác để làm đẹp điểm (F-08 / lane C §H.1).

P.3 — Khoản 3/5: BỐN TẦNG, ranh CỨNG

Tầng Ai Làm gì 🔴 Ranh cứng
1 lead tự chấm theo công thức
2 vai đọc sổ đọc sổ, tự đếm lại 🔴 KHÔNG được xem điểm tầng-1 trước khi đếm xong
3 vai kiểm kiểm PHÉP ĐẾM của tầng 1+2 🔴 CẤM đề xuất một điểm khác — chỉ nói phép đếm đúng/sai
4 chủ dự án phán cuối

P.4 — Khoản 4/5: BA MỐC NIÊM PHONG (A9)

emit_ts (lúc in) · redisplay_ts (lúc hiện lại) · first_owner_msg_ts (tin nhắn đầu của chủ dự án sau khi in).

🔴 Thiếu mốc-3 ⇒ in chờ niêm phong, và KHÔNG được đẩy sang hàng-chờ-anh. Chưa có phản hồi thì điểm chưa chốt — đẩy vào hàng chờ là biến cái chưa chốt thành việc của chủ dự án.

P.5 — Khoản 5/5: ĐƯỜNG GHI LẠI KHI CHẤM SAI

Chấm sai ⇒ ghi tầng nào sai + nhãn chấm sai vào error-ledger.md. 🔴 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). Máy sẽ từ chối (h24-signal-write.ps1 exit 2). Muốn mở tập thì chỉ chủ dự án mở.

P.6 — Dòng tổng kết phải đủ 4 phần

{điểm cuối · 3 giá trị tầng · trạng thái niêm phong · liệt TỪNG mục kèm mã}. Danh sách rỗng ⇒ ghi đúng chữ "danh sách rỗng", CẤM bỏ trống.

P.7 — 🔴 LƯỢT ĐẦU PHẢI IN KHÔNG ĐO ĐƯỢC

luat:66 CẤM in điểm khi nguồn chưa đủ dày. Nguồn thưa thì máy luôn cho 10/10 (hub đã tự đo — luat:65) ⇒ in 10/10 ở lượt đầu là vi phạm ngay luật vừa adopt.

⇒ Khối chấm in KHÔNG ĐO ĐƯỢC cho tới khi sổ đủ dày, và giữ INFORM-only ≥3 phiên trước khi được phép ảnh hưởng bất kỳ cổng nào (lane F §4.2).


PHẦN Q — PHÂN LOẠI CỜ chặn ⟂ cảnh-báo (P1 = PA-2, wave W3b) — S181 (🔴 FUNCTION-FLOOR)

Chủ dự án chốt P1 = PA-2 (hai mã thoát trong MỘT máy) @S180. Phần phân loại land @S181. 🔴 CHƯA CẮM MÃ THOÁT. Xem §Q.4 — điều-kiện-vào của W3b còn thiếu một vế.

Q.1 — TIÊU CHÍ, lấy từ ranh ĐÃ CÓ (không chế mới)

scripts/memory-archive-gate.ps1:323-325 đã dựng sẵn ranh và nó đúng, chỉ chưa ai nêu thành luật chung:

"Exit non-zero only on A7 integrity failure (broken pointer / 0-byte archive). Over-cap is a FLAG (not an error) — the gate reports, a human curates."

Luật tổng:

Nhóm Nghĩa Mã thoát
TOÀN-VẸN con trỏ trỏ vào hư-không · vật chứng 0 byte · sổ và đĩa mâu thuẫn nhau 🔴 CHẶN (exit ≠ 0)
VỆ-SINH / LỆCH-SỐ / SỨC-CHỨA số dẫn-xuất cũ · tiêu đề chưa bump · vượt trần · từ-vựng rẽ nhánh 🟡 CẢNH BÁO (exit 0)

Vì sao ranh nằm ở đây chứ không ở mức nghiêm trọng: nghiêm trọng đo hậu quả, còn mã thoát quyết định có chặn người lại không. Chặn vì một con số cũ trong tài liệu = dạy người ta tắt máy. Chặn vì một con trỏ chết = đúng việc.

Q.2 — Phân loại toàn bộ dân số cờ, đo 2026-08-07 (mẫu số 64/64, không nén thành khoảng)

Lớp cờ Số Bản chất Mã thoát Vì sao
dangling-wikilink 25 [[tên]] chưa có tệp đích 🟡 cảnh báo Cố ý hợp lệ: quy ước auto-memory cho phép liên kết tới trí-nhớ chưa viết — nó đánh dấu việc nên viết, không phải lỗi. Chặn = phạt đúng thứ quy ước khuyến khích
derived-stale 18 doc dẫn-xuất chở số cũ 🟡 cảnh báo Lệch-số, sửa bằng biên tập. Đây là thứ B1 (trỏ-canonical) chữa tận gốc; chặn không làm số mới đúng hơn
H24-* 14 soi-lead 🟡 cảnh báo Đã là INFORM-only theo hợp đồng vai (KHÔNG vào TOTAL). Nâng thành chặn = đổi hợp đồng vai, không phải đổi mã thoát
vocab-fork 3 2 từ-vựng cùng sống 🟡 cảnh báo Nguy thật (2 tên cho 1 vật) nhưng không mất dữ liệu. Leo thang khi lặp, không chặn ngay
title-stale 2 tiêu đề chưa bump 🟡 cảnh báo Lệch-số thuần
diary-0-delta 1 nhật ký vai 0 delta 🟡 cảnh báo Tín hiệu vai đang mù, nhưng chưa phải mất mát đã xảy ra
broken-gotcha-ref 1 trích #91 khi max là 87 🔴 CHẶN Con trỏ trỏ vào hư-không — đúng định nghĩa A7 integrity failure ở Q.1. Đây là lớp DUY NHẤT trong dân số hiện tại đạt ngưỡng chặn

Tổng: 63 cảnh-báo · 1 chặn. Tỷ lệ này là kết quả, không phải mục tiêu — nó phản ánh kho hiện sạch về toàn-vẹn và bẩn về vệ-sinh.

Q.3 — 🔴 Vì sao 1/64 KHÔNG phải dấu hiệu tiêu chí quá lỏng

Cám dỗ ở đây là "chặn có 1 cái thì cổng gần như vô dụng" rồi nới tiêu chí cho nhiều cờ chặn hơn. Đó là Goodhart. Cổng chặn tồn tại để bắt cái chết người, không để chứng minh nó bận rộn. Nới ranh xuống lớp vệ-sinh sẽ tạo đúng thứ lane F cảnh báo: 8-12 lớp nợ tồn kêu cùng lúc ⇒ người tưởng máy hỏng rồi tắt máy — và khi đó cả cái cờ chặn thật cũng chết theo.

Q.4 — 🔴 CHƯA CẮM: điều-kiện-vào W3b còn thiếu một vế

Điều-kiện-vào W3b = P1 đã chốt ( PA-2, S180) + rider-jump W2 đã soak INFORM ≥1 phiên ( chưa — W2 land 2026-08-07, cùng ngày).

⇒ Phân loại ở trên đã xong và có thể cắm, nhưng mã thoát chưa được đổi ở bất kỳ máy nào. Mọi máy governance vẫn exit 0. Cắm khi soak đủ; đây là chặn tự tan theo thời gian, không cần ai phán thêm.