Files
solution-erp/docs/governance/harness-11-engine.md
pqhuy1987 33d519eda0 [CLAUDE] Docs: adopt User-Mark (H-12/13 canonical §P) + Harness-14 + RC-signature (S79)
Áp canonical §P đầy-đủ (P1-P10) khi anh gõ /user-mark-active-high "áp đầy-đủ
chính-xác nhất theo AI_INFRA". 0 production code.

- 4 lệnh /user-mark-{active-high,active,medium,disable} (DACI report-before-stamp)
- ledger .claude/governance/ACTIVE-MARKS.md (4 cấp Active-High/Active/Medium/Disable
  + display-filter) + 3 mark Active-High stamped anh-confirm
  (RC-pqhuy1987-20-06-2026-10-29-09/10/11 = objective-criteria/User-Mark/time-age)
- harness-11-engine.md §E (P1-P10) + §F (Harness-14 3-mức maturity honest)
- rules.md §6.6 objective-criteria (KHÔNG quy-mô-đội / KHÔNG thời-gian-tuổi)
- session-start §2.1.4 + session-end §L.b(h) mark-display
- 4 Workflow: invest wf_82337f7f-95c + review wf_a7cbe93e-912
  + align-re-review wf_9d3beebb-a95 (§P 10/10) + H14-review wf_4d4eba6f-8a0 (§F 6/6)
- completeness-gate H-6→H-13 ĐẠT (H-8 11/11 inherit no-[1m])
- 3 adap-report + email ai_infra (7b8615b3) + check-email STAGE 2

State THẬT GIỮ NGUYÊN: Mig 57 · 88 bảng · 354 test · gotcha 71 · bundle CsJetgZH/BVS0ApIm.
Restart CLI để activate 4 lệnh + session-cmd (no hot-reload).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 10:53:23 +07:00

167 lines
21 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

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

# 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):** 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)** — 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 |
| 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ỗ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ÁO** — `session-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Ì+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.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.
---
## 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ì.**
- **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).