Tiep chuoi adap 7-GD. Sau luot nay: 7/10 wave DONG.
W5 (GD-5):
- Va spawn-model-audit.ps1 4 ve. Bug that nang hon spec ta: 5 phien gan
nhat deu wf=0 => may thay 0 lane ma van in "TOTAL FLAGS: 0". Sau va:
phien S180 = 24/24 lane, co mau so, co dong KHAI khi phien do != moi nhat.
Fault-inject 2 chieu tren cay tam (workflow-only + flat-only).
- D-3: hmw.js sentinel MODEL_INHERIT, het nhanh undefined-im-lang.
- D-10 + D-12: harness-11-engine PHAN O. D-11 nay 4/5 (manh 5 = P7 ve ii).
- §6 tracking: khai lam-KHAC/manh-hon 5 dong, khong tu phong "da kiem chung".
W4b (GD-4, P8 + P4):
- Luat cham diem = harness-11-engine PHAN P, 5 khoan BAT BIEN.
- Khoi cham wire 2 cua phien + rao KHONG DO DUOC + INFORM-only >=3 phien
+ tach do-day-du-khi-chay (cong may) voi tan-suat (quyen chu du an,
CAM tich no) theo thu hub 2026-08-07.
- P4: cap 20->30 du 2 mirror => slot (75) DONG (28 vai <= 30, het LOUD-skip).
- 2 vai moi score-counter (tang-2) + score-count-auditor (tang-3), ranh cung
viet thang vao persona. Seed measured{} VA thu muc nhat ky - may soi ten
bat lead seed nua voi (thieu nhat ky => mfe-eval loai vai khoi phep do).
Khai thang: acceptance W4 o-1 grep '^ST-' = 0 vi so dang BANG (dem dung dang
= 2, dat ve chat); khong be bang de chieu regex. 2 vai moi + khoi cham chi an
tu RESTART ke.
Con lai: W3b (cho soak >=1 phien), W5b (cho P7 ve ii), W6 (moc ky cua anh).
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
96 KiB
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 (inboxbroadcasts/inbox/ai_infra/). Áp qua 2 workflow (IMPLEMENTwf_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-end —
memory-archive-gate.ps1đo byte mỗiagent-memory/<sub>/MEMORY.mdvs cap. (Trigger =session-end.md §L.bconvention người-kích — engine no-OS-hook.) - A2 additive MOVE — bản-cũ-nhất →
archive/<YYYY-MM>.md, NEVER overwrite (runtime-provenh910-curate: +N -0 byte-exact). - A3
_INDEXpointer-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). [paramarchive_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
_INDEXgrep-đị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.mdroot/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/*.csexcl 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ÁO —
session-start.md §2.1.1monitor RE-REPORT + §2.1.2 budget-audit + chạygovernance-detectors.ps1báo cờ (KHÔNG sửa). INFORM-only. - D2 session-end = BẢO-TRÌ+archive —
session-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.mdP3, C4 primary), qua em-main. - D4 threshold = workflow-gate — chạm hệ-trọng → bắt qua Workflow (
hmw.js:76checkpoint 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_memorystrip 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.aRCA (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):
- 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.)
- Adjust-Gov (P4): soạn nội-dung luật mới — em-main single-writer D9, KHÔNG fan-out.
- Double-check (P4): quét
§A-§E+error-ledger.mdActive-Guards +ACTIVE-MARKS.md+governance-detectors.ps1 C3tìm mâu-thuẫn (cross-harness / vocab-fork). - 🔴 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.
- Stamp (anh confirm):
RC-pqhuy1987-dd-mm-yyyy-hh-mm-ss→ ghiACTIVE-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 ở markRC-…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-lockbaseline + 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.mdchạy MCPsearch_memorytay), CHƯA automated trongscripts/; 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.jsoncap = 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 (≙ markRC-…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 (inboxbroadcasts/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.jsonlive-read. Mark H-15 v4-deltaRC-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.3KB–13.3KB ≈ 1.3K–4.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 50K — anh-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 "
_INDEXtheo 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.mdH-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.jsonlive-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 markRC-…01-58-01cấ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_governorsố 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ề đúngagent-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 đã ghigovernance-detectors.ps1C3$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_astoggle). FIT = byte-span → token-RANGE [bytes/4 .. bytes/3.0] vs cap live-readtoken_governor.tier1_hotfeed_tokens.lead_tokens(S93: 29 item ~2.5–3.3K tok / cap-live 220K = 1.5% → FIT thừa; ⚠️ cap S94→380Kbudget.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 (markRC-…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 diaryagent-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 VÀ (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): WF1wf_f085d7c4-d78(ground-truth reuse-anchor + draft) + WF2wf_8e73c1d6-ee6(3-lane review PASS 0-blocking) + WF3wf_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ớireinject/floor-rot/build-gap/signal→action= grep 0-match toàndocs/(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-traceruns/<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, 0sub-*.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.ps1LEAD 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 Activereinject 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.a2-strike-promote + harvest-curator INFORM +value_protectgiữ-L1promote=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-strikecold-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-l2command (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.md— git-tracked · append-only · single-writer em-main (D9). 🔴 TÁCH khỏimemory-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 -pcác ledger +agent-memory/<role>/MEMORY.md+archive/) → CÓ = 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 [COMPOSEgovernance-detectors.ps1child-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.jsonKHÔ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-onlytools: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-63memoryDelta 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+ markRC-…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 fieldreviewer_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 investigatewf_50a817ce-a69(3 lane investigator-codebase, return-delta MODE-A) + WF2 reviewwf_955643c3-f7d(re-run S101 2026-07-03 — gốcwf_31ea3985-92cmấ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 CONCERNworkflows/README.md:51nhã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ị-em2026-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.ps1C2 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.5–2.0 = MED (stale-total khả-tín), xa = LOW (count cục-bộ-module) — sửa lớp FP cũ|diff|≥10=MEDvố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:
$derivedDocsfixed-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: "S71harvest/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>/córun.mdmà*-synthesis.mdVẮNG/0-byte (dual-acceptharvest/run cũ). - Sweep 6 mandate-consumer + cites (mechanized-grep
_ledgerexact — 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.mdG-015-cite · +agent-memory/harvest-curator/MEMORY.mdbaseline 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-tasktier:'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 3–5 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.mdCG-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 (mferole_file_glob/diary_path_patterndefined-but-unread) + 1 latent blind-spot (selfimprove:147no-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.5–2.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 broadcast2026-07-03-Agent-harness-19-fable-clone(content_sha256 re-compute MATCH ✓6909299a…; +3 broadcast model-tier cùng đợt [fable-opusee00d253·checklista7ff304b·v2-pin-simpleeed277f7] đều MATCH + đều córeviewer_gate: PASS→ format-regression H18 [thiếu field] đã fix). Áp qua 2-workflow Harness-9: WF1 investigatewf_5f308fd8-744(3 lane wiring+mapping+adversarial, SOUND_WITH_CONCERNS — bắt 3 floor-fidelity gap; resume-after-interruption cached) + WF2 reviewwf_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-apiEXCLUDED (external-only) ·database-agentEXCLUDED (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.onCÓ): 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 (verifygit 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ữ markRC-…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.jsVALID_ROLES nhận TOÀN roster (lịch-sử: 9 lúc adopt S101 → +office-documentS107 → +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ượttier:'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.jsSCHEMAmemoryDelta{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.mdresidual + 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.jsVALID_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 ⇒ tinhmw.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ỂMring1-audit/ring2-audit/ring4-auditS145 (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 (1–3 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 verify → LEAD ghi (single-writer) → worker Opus MAX thực-thi THEO spec bơm quaargs(hmw.jsKHÔ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).
- (a) owner-gated tầng LỆNH + kỷ-luật lead cho việc CHỌN/ELEVATE vai, KHÔNG code-enforced — đường code
- (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+verifywf_55ef6778-a0d(Lane-C exhaustive sweep) + WF2 review (fable-clone ensemble, run-id ghi dưới). Additive — bổ-sunggovernance-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-trailerdocs/rules.md:220+docs/guides/multi-agent-setup-guide.md:428(Opus 4.7→4.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 ~14sessions/*.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) · referenceconsolidation-crystallization-measurement(5bba339b…). 2-workflow: WF1 implementwf_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-sha3de0758averified; ≙ 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.ps1deterministic (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 addper-path 4 path cố định {.claude/WAL.md·.claude/agent-memory/·.claude/workflows/runs/·.claude/sessions/} + commit CAND-only messagewal: 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 (hookwal-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.jsonghi S111 → Stop-hook HOT-RELOAD + FIRE ngay giữa phiên (KHÔNG cần restart): commit12071c5 "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-danhwal: pauseTRƯỚ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ánhwf:= 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.7WAL-check (ngoại-lệ CHỜ duy-nhất, chỉ con-trỏ) ·session-end §5.0squashwal:-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.4reset 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-filesub-<role>-<i>.md; chết giữa run còn vật-liệu trên đĩa); run.md +## taskList snapshotghi TRƯỚC launch (spec đã on-disk per H21 — sàn {task-list · spec} đủ); dòngwf:<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);/tiepnhá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.2mirror). -
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: riskindex.lockkhi 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 →/pausekhô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ánhexit 0; probe hỏng KHÔNG chặn, KHÔNG treo, KHÔNG làm/pausemấ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 0mọ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 60bọc để quan-sát no-hang):scripts/nhip-no-probe.ps1= ✅ thoả cả 4 vế (lành → 1 dòngNHIP-NO: …đầy-đủ, exit 0 ·-RepoRootbậ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ếumemory-budget.json:23· thiếu keydistill_trigger:27) in token +exit 0, nhưng không có try/catch tổng với$ErrorActionPreference='Stop':17⇒ exception (vd-RepoRootbậy tạiResolve-Path:18, hoặc JSON hỏng tạiConvertFrom-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).
- (i) read-only — chỉ ĐỌC (parse JSON/config · đo byte bằng
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.ps1persist-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+67be443fire 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.mdverified-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.mdD-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 | — | 🔴 THIẾU — chờ chủ dự án phán P7 vế (ii); rào > anh: hiện chỉ phủ lane LƯU TRỮ (pause.md:53), chưa phủ lane phát lệnh |
⇒ D-11 nay 4/5 (trước W4 là 3/5). Mảnh 5 là mảnh duy nhất còn thiếu, và nó chặn W5b.
🔴 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":
- Điểm này đo đội có phải nghe lại không, KHÔNG đo đội giỏi hay dốt.
- Điểm cao không chứng minh làm đúng — chỉ chứng minh không phải nhắc lại.
- Đ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).