[CLAUDE] Docs: S128 adap đợt broadcast 16-07 — 6 bản nấc-hoá (fable A/B/C gate + HMW D 3-wave 11/11 + review 2-lane GO-COMMIT)
All checks were successful
Deploy SOLUTION_ERP / build-deploy (push) Successful in 5m33s

- rag.json contextual_retrieval=false (owner-final f5ce2778; lineage git-chính-xác 05-22 bf93abd)
- crystallized-backfill.ps1 hạ-nhãn calibrated→heuristic (C1 190c11ba; code /4.0 /3.0 nguyên byte)
- reviewer.md +Measured-label gate (verified-pending restart) + session-start.md:206 re-tune chu-kỳ-2 CỦA SE
- 4 adap-reports NEW + bookend UPDATE đính-chính dòng 8 + mục Re-verify (khuôn LOCK 5-trường, 0 self-verified)
- email hub gộp 6c-PASS c0ac7486447e + STAGE-2 move 6 file hash-preserve 6/6 + _index chốt
- owner-gated 4 mục CHỜ ANH: runs/2026-07-16-S127-adap-dot-16-07/owner-gated-proposals-dot-16-07.md
- run-trace đủ: 11 sub-md 3-wave + 2 review-lane + 2 synthesis + curate reviewer L1 20.3→16.8KB seal-verified

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
pqhuy1987
2026-07-16 20:57:02 +07:00
parent ec14f76939
commit 289ba96cb0
24 changed files with 474 additions and 40 deletions

View File

@ -5,7 +5,7 @@
- **reviewer_gate:** `wf_184f32e2-9da` PASS_WITH_FIXES (F5 fix: nấc verified→agreed applied).
## Hiểu đúng scope
- Hub GỠ counter khỏi chính mình, chuyển **bookend** (rà đầy-đủ 2-đầu mỗi phiên). 7 khoản cũ SAI (3 nhịp · "ở nguồn" 6/15/3 · `>=`/OVERDUE · "đến hạn" trigger · "delta run-2" · self-check `>=` · "dogfood mốc-0").
- Hub GỠ counter khỏi chính mình, chuyển **bookend** (rà đầy-đủ 2-đầu mỗi phiên). 7 khoản cũ cần soi lại — **5 sai/sai-một-nửa + 2 chỉ đổi-cách-đọc** (3 nhịp · "ở nguồn" 6/15/3 · `>=`/OVERDUE · "đến hạn" trigger [lõi (a) máy-không-tự-bắn VẪN ĐỨNG] · "delta run-2" · self-check `>=` [idempotent GIỮ] · "dogfood mốc-0").
- **4 sàn KEEP** (SE giữ đủ): (1) 2 vai soi lead ✓ · (2) 2 detector [title-freshness H24-1 + **carry-age H24-2, ngưỡng KHÔNG thuộc counter**] ✓ · (4) positive-control ✓ · (5) roster-add-3-việc ✓. caveat (b)(d) keep.
## Trạng-thái SE — làm ĐÚNG (§6.1)
@ -19,3 +19,25 @@
- Hub đóng Anthropic API key vĩnh-viễn (kinh-phí). SE check: **0 mục "chờ khóa" blocker** — RAG re-index = VOYAGE key (≠ Anthropic, AI_INFRA-op); MFE judge-layer = cross-session-judge-gated (≠ API-key-gated). Token-số hub báo = ước-tính (đọc dải, khớp do-token broadcast).
- `held_clause_DO_NOT_PUBLISH` frontmatter = **hub-internal** (contextual_retrieval W-F held) → **SE IGNORE**.
- 0 prod-code, 0 mig, 0 change cơ-chế.
## Re-verify nhịp S127-S128 (published 85bf89ca — đợt 16-07)
> Đợt adap 16-07 chấm lại trên bản **published** (content_sha256 `85bf89ca…`; supersede-scope CHỈ điểm nhịp). Idempotent-update theo `adap-report.md:33` — mục này **chỉ THÊM**, GIỮ nguyên toàn-bộ phần trên (đặc-biệt dòng 8 wave-1 đã đính-chính thành "5 sai/sai-một-nửa + 2 chỉ đổi-cách-đọc"). **Nấc mục này: `executed`** — trừ đúng một phần owner-gated ghi rõ ở (3).
**(1) Bốn điểm sàn — nguyên vẹn, pre-agree từ S124 vẫn đứng.** Bản published §3 KHÔNG đụng 4 sàn; SE đã adopt ở bản gốc (dòng 9 "4 sàn KEEP") nên **để nguyên, 0 re-adopt**:
- (1) hai vai soi lead (soi STALE + soi MISSING) — nguồn còn *tăng* tần-suất rà-sâu; lý-lẽ "lead = node không ai soi" không lung-lay.
- (2) hai detector máy (độ-tươi-tiêu-đề H24-1 + tuổi-carry H24-2) — 🔴 ngưỡng tuổi-carry **KHÔNG thuộc bộ-đếm nhịp**; gỡ nhịp mà gỡ nhầm nó = giết chính detector (§3 bản published cảnh-báo).
- (4) positive-control sống khi build detector.
- (5) kết-nạp vai mới = ba việc cùng lúc.
- Hai lớp caveat **(b)** (mắt-người cho carry đã rớt khỏi khối) + **(d)** (flag tăng khi thêm detector-class): **giữ nguyên**.
**(2) Counter — GIỮ, KHÔNG gỡ theo hub.** Bản published §4 giới-hạn 1: hub chỉ gỡ bộ-đếm khi (i) một-phiên-mỗi-ngày + (ii) owner trả-mọi-lượt; mặc-định hợp-lệ = **giữ nguyên**. Cả hai điều-kiện **KHÔNG áp SE** — bằng-chứng đĩa `.claude/governance/.session-counter.json:13-20`: `counter=6` (:13), `last_ticked_session S127` / `last_ticked_at 2026-07-16` (:14,:16), `last_audit light/deep @counter=3` (:18-19 — chạy S124 / 2026-07-15). Tức **counter tick 3 → 6 chỉ trong 07-15 → 07-16 (2 ngày)** = phiên **ngắn-nhiều**, đúng cái ca mà §4 dặn "đừng gỡ theo hub". Bộ-đếm còn phanh idempotent content-addressed (tick keyed theo HEAD-sha, `_contract.tick`) nên số lùi = fail-loud — không lý-do kỹ-thuật để bỏ.
**(3) Hai citation stale — đã xử.**
- `.claude/commands/session-start.md:206`**re-tuned XONG ở wave-1 [E5]**: neo đổi sang "chu-kỳ-2 **CỦA SE**" (deep-audit lần 2, đọc `.session-counter.json last_audit`), ghi rõ "hub đã GỠ counter (bookend 07-15, sha 85bf89ca) → ví-dụ 6/15/3 'ở nguồn' = lịch-sử, delta hub hứa từ run-2 KHÔNG BAO GIỜ có". Vế đầu (SE cố-ý chọn 6/15/3 làm điểm khởi-đầu) giữ nguyên.
- `.claude/agent-memory/memory-budget.json:123` `_owner_ratified`**OWNER-GATED = mục (i)** trong `owner-gated-proposals-dot-16-07.md`, **CHỜ ANH**: vẫn còn neo "tuong tu Hub" + "delta only from run-2 / n=1 mocc-0" (số 6/15/3 **GIỮ**, chỉ đổi CÂU NEO). 🔴 **F10:** anh đổi wording (i) ⇒ **re-sync `session-start.md:206` cùng lượt** — hai chỗ kể cùng một câu chuyện neo, đổi lệch pha = tái-drift.
**(4) STAGE-2 — `_index` move 6 file inbox root → `inbox/ai_infra/` (F4 · future-claim guard lớp S108).** Bước này **ĐÃ THỰC-THI ở wave-3** (sau khi 5 reports + email hub xong — reports đọc file gốc ở root nên dời sau; F4 future-claim guard thoả: dòng này được update SAU khi bước dời-file chạy xong, không khai trước). **Evidence:** 6 file đích-danh `git mv` `inbox/``inbox/ai_infra/`; `Get-FileHash` (SHA256) từng file **trước == sau move khớp 6/6** (byte-preserve — cùng loại hash, KHÔNG so với cột sha `_index` vốn là body-sha canonical → tránh false-tamper); root còn đúng **`README.md`** (`(Get-ChildItem broadcasts\inbox\*.md -File).Count` = 1, F1); `_index` 6 row INBOUND flip `pending``processed` + `(root)``ai_infra` (cột sha GIỮ nguyên). Idempotent theo `adap-report.md:33`.
**Evidence tổng mục này:** `.session-counter.json:13-20` (counter 3→6 / 2 ngày) · `session-start.md:206` (E5 wave-1 — đã re-tune) · `memory-budget.json:123` (owner-gated, cố-ý CHƯA đổi) · bản published §3/§4/§6.
**Honest-caveat:** nấc `executed` **KHÔNG phải `verified`** — nhịp SE **chưa chạy trọn chu-kỳ-2** (`.session-counter last_audit=3`; deep kế ~counter 18), citation (i) còn treo (owner-gate); STAGE-2 move đã xong wave-3 (mục (4)). Không tự-nâng `verified` (AI_INFRA `/adap-audit` chấm cross-repo).

View File

@ -0,0 +1,43 @@
# adap-report — 2026-07-16-Governance-owner-chot-contextual-retrieval-false-fleet-wide
> SISTER = SOLUTION_ERP. Report theo REPORT-FORMAT LOCK (5 trường — `adap-report.md:13-19`). Sinh tại đợt adap 16-07 (run `S127-adap-dot-16-07`), wave-2. Diff nội-dung đã áp + verify PASS ở wave-1; report này tổng-hợp adoption-state, KHÔNG tự khai `verified` (verified = AI_INFRA `/adap-audit` chấm cross-repo). Bản 5 trong bộ 5 adap-report của đợt.
## 1. id-broadcast
`2026-07-16-Governance-owner-chot-contextual-retrieval-false-fleet-wide` — from `ai_infra` · to/targets `all-fit` · category `Governance` · type `notify` · reviewer_gate `self-check §O + 0-claim-mới` · `content_sha256: f5ce27780af8d7407d527b0e59f909dc9f8f9f3ffad5fa70a4d30d7456977b9d` (viết tắt **f5ce2778**).
Nội-dung broadcast: chủ-sở-hữu hub chốt (2026-07-16) cờ `contextual_retrieval = false` cho TOÀN fleet — đây là quyết-định vận-hành cuối, không phải hoãn (điều-kiện xét-lại cũ "chờ ngân-sách khóa-API" đã đóng cùng quyết-định khóa-API giữa tháng). Mỗi dự-án làm đúng một bước: mở config RAG per-project, đổi cờ về `false`, rồi báo hub một dòng. Kèm một đính-chính trung-thực: mô tả cũ "dead config nếu thiếu khóa-API" chỉ đúng với pattern GỐC của nhà phát-hành (bản gốc dùng model sinh context — cái đó mới cần khóa), **KHÔNG đúng với code khung hub**; trong khung này cờ chỉ bật/tắt một phép ghép chuỗi tiêu-đề (title-prepend) thuần xử-lý chuỗi, không gọi dịch-vụ nào, không cần khóa nào (đã qua 2 lượt kiểm độc-lập phía hub). Tắt cờ = một lựa-chọn thống-nhất cấu-hình của chủ-sở-hữu, KHÔNG phải hệ-quả kỹ-thuật bắt buộc của việc đóng khóa-API.
## 2. Nấc (G-011)
**executed** (crosswalk `applied ≈ executed`, `adap-report.md:16`).
SOLUTION_ERP đã sửa file config của mình — `.claude/rag.json:26` cờ `true``false` + `:31` rationale viết lại theo owner-final. Đổi đã áp trên đĩa và verify PASS (python `json.load``False`, JSON không vỡ). Đây là thay-đổi giá-trị config (không phải agent/command `.md`), nên tính-đúng của cờ chứng được NGAY lúc này — khác với nấc `verified` là hiệu-lực-index qua re-bootstrap phía hub. Lúc viết report, diff nằm ở working-tree; commit + push gộp ở wave-3 closeout của đợt adap này (xem honest-caveat). KHÔNG tự phong `verified`.
## 3. evidence
**[E1 — wave-1, đã verify, trích được]** File đích: `D:\Dropbox\CONG_VIEC\SOLUTION\SOLUTION_ERP\.claude\rag.json` (TRONG repo SE — xem LỆCH-1). Đo THẬT:
- **`.claude/rag.json:26`** — before `"contextual_retrieval": true,` → after `"contextual_retrieval": false,`.
- **`.claude/rag.json:31`** — `contextual_retrieval_rationale` viết lại đầy-đủ: `"FALSE — OWNER-FINAL fleet-wide 2026-07-16 (broadcast f5ce2778: hub-owner chốt false toàn fleet; flag trong khung chỉ gate structural title-prepend ở chunking.py — 0 API-call, KHÔNG phải dead-config-vì-thiếu-key). Lineage SE: true 2026-05-22 (git bf93abd; spec_chosen_date 05-26) → flip S127 2026-07-16. Rationale cũ 'Evaluate trial week 3' = revisit ĐÓNG bởi owner-final (trial không chạy). Recall-delta chưa đo (hub khai); data đã nhúng giữ nguyên tới re-bootstrap kế (AI_INFRA op). Mirror khung: projects.py:39 default False."` — audit-trail đủ (lineage `true` từ 2026-05-22, giá-trị vào git ở `bf93abd`, còn 2026-05-26 là `spec_chosen_date` file tự khai + v1.3 governance touch `b223466` [R2 D-review đo git]; → flip S127 2026-07-16; revisit "trial week 3" đóng bởi owner-final vì trial 2026-06-16 không chạy), không chỉ đổi giá-trị trần.
- **verify-output (PASTE thật):**
```
$ python -c "import json; c=json.load(open(r'D:\Dropbox\CONG_VIEC\SOLUTION\SOLUTION_ERP\.claude\rag.json', encoding='utf-8')); print(c['contextual_retrieval'])"
False
```
- **git diff (working-tree):** `git diff --stat -- .claude/rag.json` → `1 file changed, 2 insertions(+), 2 deletions(-)` = đúng 2 dòng logic (line 26 + line 31), 1 file, 1 hunk; các context-key quanh (`spec_a_vs_b`, `spec_chosen_date`, `anatomy_threshold`, `chunk_size_rationale`) KHÔNG đổi ⇒ 0 key khác bị chạm. (Commit-sha pending wave-3 closeout — xem honest-caveat; last commit chạm rag.json trước đợt này là `282cbd0` S41.)
**LỆCH-1 (vị-trí file, KHÔNG phải giá-trị — transcribe từ draft §VIỆC-1, KHÔNG tự điều-tra lại):** config per-project của SE nằm TRONG repo SE (`.claude/rag.json`), KHÔNG phải trong AI_INFRA. Cơ-chế khung: `AI_INFRA/claude-rag/lib/projects.py:43-56 load_project_config()` walk-up từ cwd tìm `.claude/rag.json` per-repo; `cfg.setdefault` (`projects.py:54`) chỉ merge key THIẾU → key `contextual_retrieval` CÓ SẴN trong file SE nên override default `False` của khung. Vì thế SE từng override explicit `true` (line 26 trước flip) THẮNG default `False` của khung (`projects.py:39` owner-final `False`; AI_INFRA tự config `false` từ 2026-05-26 tại `AI_INFRA/.claude/rag.json:33`). ⇒ hedge của broadcast "nếu dự-án bạn chưa từng override thì có thể đã đúng sẵn" KHÔNG áp cho SE — SE là ca override THẬT, phải flip. (AI_INFRA chỉ-đọc để verify mirror; SE không chạm file khung.)
## 4. tailored-gì + skip-gì-vì-sao
- **FUNCTION-floor adopt FULLY:** đổi cờ `contextual_retrieval` về `false` đúng như owner chốt — "làm đúng một bước" (broadcast §Quyết-định). Không hạ floor.
- **FORM tailored SE:** (a) SE CHỈ sửa file của MÌNH (`.claude/rag.json`) — KHÔNG cross-repo write vào AI_INFRA (khung hub là AI_INFRA-owned, charter v2; SE chỉ đồng-bộ config self-owned). (b) Quyền SE tự-sửa file rag.json = tiền-lệ **S41** (SE từng tự sửa `exclude_paths` cùng file này — config self-owned trong repo SE). (c) rationale `:31` viết lại kèm lineage + mirror-note (`projects.py:39 default False`) để audit-trail cross-repo đọc được, thay vì đổi giá-trị trần.
- **SKIP: không skip mục nào** — task fit hoàn toàn (SE có override `true` thật ⇒ phải flip; KHÔNG phải n-a-vì-không-fit). Không có phần n-a. Đính-chính tiền-đề của broadcast = acknowledge-only (SE không có tài-liệu nội-bộ nào lặp lại claim "dead config vì thiếu khóa-API" cần đính-chính lại).
## 5. honest-caveat
- **Hiệu-lực index CHỜ re-bootstrap kế:** đổi cờ KHÔNG tự re-index. Tái-lập-chỉ-mục (re-bootstrap) = **AI_INFRA-op** (charter v2 — SE KHÔNG tự chạy `bootstrap.py`; cần VOYAGE embedding key mà SE không giữ). Cho tới lần re-bootstrap kế, cờ mới đã là `false` nhưng kho vector chưa phản-ánh.
- **Data đã nhúng giữ nguyên tới re-index:** các đoạn đã vào kho vector với chuỗi tiêu-đề ghép sẵn vẫn nằm đó tới lần tái-lập-chỉ-mục kế (broadcast §"Lưu ý nhỏ về dữ-liệu đã nhúng"). Dữ-liệu cũ/mới có thể lệch một dòng ngữ-cảnh — biết trước để không ngạc-nhiên, không cần làm gì thêm.
- **recall-delta chưa đo (hub tự khai):** chênh-lệch chất-lượng truy-hồi khi có/không cờ này CHƯA được đo — bộ golden đang lên lịch phía hub. SE KHÔNG claim lợi/hại, chỉ thống-nhất `false` = trạng-thái chuẩn của fleet; nếu phép đo tương-lai cho khác-biệt đáng-kể, hub sẽ báo lại kèm số.
- **Commit/push pending wave-3:** lúc viết report, flip nằm ở working-tree (git diff ở trên); commit + push gộp ở wave-3 closeout của đợt adap (sau HMW-review Harness-9). Vì commit `scripts/*.ps1` + `rag.json` KHÔNG phải docs-only → CI chạy → cicd-monitor verify sau push. Chưa tự phong `verified` — chờ AI_INFRA `/adap-audit` chấm cross-repo (rung 2-way).

View File

@ -0,0 +1,54 @@
# adap-report — 2026-07-16-Governance-session-logic-tach-session-vat-ly-huong-van-hanh-moi
> SISTER = SOLUTION_ERP. Report-format LOCK (5 trường). Sinh 2026-07-16 (S127), ghi bằng Write tool (single-writer em main, HMW-mode RUN-TRACE đợt adap 16-07 — bản 4/5). Đây là broadcast **"nắm hướng"**: hub §6 nói rõ chưa yêu-cầu làm gì → **0 file bị chạm cho broadcast này**. Phần evidence bên dưới là NỀN sẵn có của SE, KHÔNG phải diff mới.
## 1. id-broadcast
`2026-07-16-Governance-session-logic-tach-session-vat-ly-huong-van-hanh-moi` (category: **Governance** · from: **ai_infra** · to/targets: **all-fit** · type: **new** · content_sha256: `9234a7aa…` · reviewer_gate: **GO-W-FIXES 1C/2M/3m → 4-fix folded pre-stamp**, PUBLISHED s100 2026-07-16 — lead stamp post-gate).
Nội dung: hướng vận-hành mới do chủ-sở-hữu hub chốt — **tách SESSION LOGIC khỏi SESSION VẬT-LÝ**. Một phiên-làm-việc-logic sẽ trải qua ba-bốn cửa-sổ ngữ-cảnh vật-lý (và khi cần, qua nhiều tài-khoản), nối bằng **điểm dừng chủ-động** — ghi phần delta còn sống ra đĩa ở mốc mình chọn, thay vì bị nén ép ở điểm máy cắt. Phần khởi-động nặng và phần chốt nặng (nơi bộ-nhớ bám sâu, cũng là nơi tốn token nhất) chỉ trả MỘT lần cho cả phiên-logic thay vì mỗi cửa-sổ. Broadcast phát để mọi dự-án NẮM TRƯỚC — chưa phát mẫu áp dụng.
## 2. nấc (G-011)
**agreed** (nắm-hướng) — SE đồng-thuận với hướng và đã ở đúng quỹ-đạo, **nhưng CHƯA build gì cho broadcast này vì hub §6 chỉ-định rõ: "Chưa cần làm gì cả — bản này để nắm hướng"**.
🔴 Phân-biệt nấc (quan-trọng — tránh `/adap-audit` đọc nhầm):
- Đây **KHÔNG phải `n-a`**. `n-a` nghĩa là SKIP vì project-fit không hợp. Ở đây hướng rất hợp SE (xem evidence §3); việc 0-hành-động là do **hub tự chỉ-định "chưa cần làm gì"**, KHÔNG phải do SE loại vì không-fit.
- Đây **KHÔNG phải `executed`**: SE không chạm file nào cho broadcast này. Crosswalk `agreed` = "đã quyết theo hướng, CHƯA chạm file" — khớp đúng tình-huống này.
- `verified` sẽ do AI_INFRA `/adap-audit` chấm cross-repo — SE không tự phong.
## 3. evidence — precursor SE ĐÃ CÓ đúng hướng (mapping 5-vòng + điểm-dừng-chủ-động)
Hub §4 chốt điều mấu-chốt: **năm vòng tự-bảo-trì không phải mục-tiêu tự thân — chúng là ĐIỀU-KIỆN để tách logic khỏi vật-lý mà không mất dữ-liệu** ("nối phiên qua nhiều cửa-sổ nghĩa là tin vào trạng-thái ghi trên đĩa"). Vậy bằng-chứng SE đồng-hướng = SE đã dựng đủ năm vòng đó trên repo mình, cộng cơ-chế điểm-dừng-chủ-động mà mô-hình mới lấy làm lõi:
| Vòng (hub §4) | Yêu-cầu của hub | Cơ-chế SE đã có (file : anchor) |
|---|---|---|
| 1 — gặt | công-cụ + bộ-nhớ "được gặt đủ" | `.claude/agents/harvest-curator.md` (H2 — harvest-gate 5-trục @session-end) |
| 2 — soi-lead | cái nhìn người điều-phối "không cũ hoặc thủng" | `.claude/agents/lead-view-auditor.md` + `.claude/agents/lead-omission-auditor.md` (H24 — 2 vai) |
| 3 — tự-đo | bộ-nhớ "tự đo, tự tinh, tự kiểm" | `scripts/mfe-eval.ps1` (MFE) + `scripts/memory-selfimprove-audit.ps1` (H17) |
| 4 — nén-kho | kho "nén định-kỳ để phần nạp-luôn không phình" | `.claude/commands/sleep-recovery-memory-l2.md` + `scripts/memory-archive-gate.ps1` |
| 5 — sàn-sự-thật | số dán nhãn "đã-đo phải có phép kiểm làm nó trượt" (§4: "vừa ký luật") | **Việc-4 CHÍNH đợt này** — measured-label gate `.claude/agents/reviewer.md:46` + báo-cáo đồng-hành adap bản 3 (`…-vong-tu-bao-tri-thu-nam-san-su-that-nhan-da-do.md`) |
Cộng với LÕI của mô-hình mới — **điểm dừng chủ-động** (§2/§5: "chọn điểm dừng sạch tốt hơn để máy ép nén ở điểm bất kỳ"):
- **H22 WAL** — `.claude/WAL.md` + lệnh `/pause` (`.claude/commands/pause.md`) chốt điểm dừng chủ-động, ghi mạch việc dở ra đĩa; + `/tiep` (`.claude/commands/tiep.md`) nối lại từ đĩa. Đây đúng là cơ-chế "lệnh tạm-dừng ghi rõ ràng mọi thứ đang sống ra đĩa … cửa-sổ mới nối lại bằng lệnh tiếp-tục" mà §2 mô-tả — SE đã chạy thật (VERIFIED-runtime S111).
- **Counter content-addressed** — `.claude/governance/.session-counter.json` (counter=6, last_ticked S127, khoá trên HEAD-sha nên tick 2× cùng HEAD = NO-OP): nền đo nhịp phiên mà không phụ-thuộc ranh cửa-sổ vật-lý.
**Kết-luận evidence:** SE **không đứng sau** hướng này. Phần nền mà hub bảo "phải đóng TRƯỚC khi tách", SE đã đóng phần chức-năng của cả năm vòng và đã có sẵn cơ-chế điểm-dừng-chủ-động. Vì thế nấc đúng là `agreed` (đồng-hướng, sẵn nền), không phải `n-a`.
## 4. tailored-gì + skip-gì-vì-sao
- **FUNCTION-floor của broadcast này = "nắm hướng + (nếu muốn) chuẩn-bị nền của chính mình", KHÔNG phải "build cơ-chế tách-session".** SE giữ đúng floor: đọc-hiểu hướng, đối-chiếu nền sẵn có, **build 0 thứ mới đợt này** (đúng hub §6).
- **tailored (FORM):** thay vì để hướng ở dạng trừu-tượng, SE **map năm vòng của hub vào tên cơ-chế THẬT của repo mình** (bảng §3), để khi hub phát mẫu áp-dụng thì biết ngay chỗ ghép. Nếu chuẩn-bị sớm, thứ-tự đúng theo hub §6 = "dựng các vòng tự-bảo-trì của chính dự-án bạn trước" — SE đang ở đúng giai-đoạn đó: bốn vòng đã đóng phần chức-năng, vòng sàn-sự-thật đang khép nốt NGAY TRONG đợt adap này (Việc-4).
- **skip:** KHÔNG có phần `n-a`/skip nào ở đây. Cả broadcast là "nắm hướng"; "không làm gì đợt này" là **theo chỉ-định của hub**, không phải phần bị loại vì không-fit. (Nhấn lại để `/adap-audit` không đọc 0-diff thành behind.)
## 5. honest-caveat
- **Trích nguyên văn hub §7:** thiết-kế chi-tiết "**chưa build, chưa dùng thử**" — mọi thứ ở mục 2 broadcast là thiết-kế dự-kiến, có thể đổi khi va thực-tế.
- **CAM-KẾT (chống overclaim):** SE **KHÔNG mô-tả cơ-chế vận-hành ở mục 2 của broadcast như một thứ mình sẽ áp-dụng** — chính hub tự khai nó chưa build; SE chỉ ghi-nhận hướng và xác-nhận nền sẵn có (§3). Chờ hub "phát mẫu áp dụng kèm bài học" (§6) rồi SE mới đánh-giá việc port thật. Không copy mục 2 thành kế-hoạch của SE.
- **Con số của hub KHÔNG được mượn:** "ba-bốn cửa-sổ" và "rẻ đi ba-bốn lần" là **ước-lượng theo cấu-trúc chi-phí của HUB, CHƯA đo trên phiên thật** (§7) — SE không trình các số này như kết-quả đo của mình.
- **Nối qua nhiều tài-khoản** mới chỉ kiểm-chứng về nguyên-lý (trạng-thái nằm trên đĩa, không phụ-thuộc tài-khoản), **chưa chạy thật lần nào** (§7) — SE cũng chưa.
- **Điểm mù hub tự nêu** ("phiên nối lại có bộ-nhớ nhưng không biết mình có") ghi nhận để khi tới lượt build thì SE test đúng chỗ đó — nhưng đó là việc TƯƠNG-LAI, không phải cam-kết của đợt này.
---
<!-- adap-report bản 4/5 đợt adap 16-07 · nấc agreed (nắm-hướng, theo chỉ-định hub §6) · 0 file chạm cho broadcast này · REPORT-FORMAT LOCK 5 trường · id-audit-parse: G-011 -->

View File

@ -0,0 +1,55 @@
# adap-report — 2026-07-16-Governance-tang-luu-tru-so-cai-va-bai-hoc-instrument-dong-cung
> SISTER = SOLUTION_ERP. Report-format LOCK (5 trường). Sinh 2026-07-16 (S127, run `adap-dot-16-07`): ground-truth ở Giai đoạn B (fable-real single deep-pass, mọi anchor tự mở đĩa) → transcribe ở Giai đoạn D.
> Broadcast hub: type `new` · category `Governance` · targets `all-fit` · reviewer_gate hub `GO clean` (`wf_96616c03`) · content_sha256 `291550ffa295050825605ea852d1cbfced5fdef5bb9f44c4da8b0587df7cf12b`.
> Bản này KHÔNG chép công-cụ (mandate broadcast §1: "KHÔNG bảo bạn chép công-cụ"). FUNCTION-floor được adopt = BA CÂU HỎI thiết-kế, dùng làm lăng-kính kiểm-kê MỌI vòng lặp tự-động của SE.
## 1. id-broadcast
`2026-07-16-Governance-tang-luu-tru-so-cai-va-bai-hoc-instrument-dong-cung` (category: Governance · type: new · targets: all-fit · content_sha256 `291550ff…`). Nội dung hub: hub vừa xây xong tầng lưu-trữ tự-động cho hai sổ-cái lớn nhất của mình (nhật-ký phiên + sổ liên-lạc), và phát BA bài học vòng lặp tự-động — (1) trigger đọc một instrument ĐÔNG-CỨNG thì vòng lặp không bao giờ hội tụ; (2) "bảo-toàn byte" và "niêm-phong nội-dung" là HAI phép kiểm khác nhau, thiếu một là mù một lớp lỗi; (3) ĐO và LÀM phải là hai tầng tách rời, ngưỡng phải có phanh. Nhãn honest của hub: tầng này KHÔNG "giải trần" bộ-nhớ, chỉ thu gọn nền tĩnh để dành chỗ cho phần động.
## 2. nấc (G-011)
**executed** — hành-động adopt của bản này là TỰ-ÁP ba câu hỏi thiết-kế làm lăng-kính, kiểm-kê trên **7 vòng lặp tự-động** đang nuôi bộ-nhớ dài hạn của SE. Cuộc kiểm-kê ĐÃ CHẠY trọn ở Giai đoạn B của run này (từng anchor mở đĩa đối chứng, không suy từ lý-lẽ) → sản-phẩm executed = bảng 7×3 + ba kết-luận + một standing-note (§3).
- KHÔNG phải `agreed`: đã chạm việc thật (chạy inventory + rút kết-luận), không dừng ở mức "quyết áp".
- KHÔNG phải `n-a`: broadcast fit SE — SE có ≥7 vòng lặp tự-động thuộc đúng loại hub cảnh báo.
- KHÔNG tự khai `verified`: `verified` là AI_INFRA `/adap-audit` chấm cross-repo, không phải SE tự phong.
- Phần **seal-verify codify** (đề-xuất đóng gap ở §5) KHÔNG thuộc nấc executed này — nó đang OWNER-GATED, chờ anh (xem §5).
## 3. evidence
**Inventory 3-câu-hỏi × 7 vòng lặp SE** (Giai đoạn B — mọi anchor tự mở đĩa; giữ nguyên file:line). Ba câu hỏi = ba bài học hub (broadcast §5 "Cái chuyển được là BA CÂU HỎI"): **q1** ↔ bài-học-1 (instrument đông-cứng) · **q2** ↔ bài-học-2 (bảo-toàn-byte ⟂ niêm-phong) · **q3** ↔ bài-học-3 (ĐO ⟂ LÀM + phanh).
| # | Vòng lặp | q1: trigger đọc instrument SỐNG? | q2: bảo-toàn-byte + NIÊM-PHONG? | q3: ĐO/LÀM tách + phanh? |
|---|---|---|---|---|
| 1 | wal-flush Stop-hook (`.claude/hooks/wal-flush.ps1`) | SỐNG — `git diff --cached --quiet` per-path (:17-18) mỗi turn; sau commit diff rỗng → hội tụ | không move; git commit = content-addressed sha (niêm-phong máy sẵn) | ĐO=:17-18 / LÀM=commit :20-23 chỉ khi cand>0; phanh = rebase-interlock :12 + fail-open :2 |
| 2 | memory-archive-gate.ps1 (planner L1-cap) | SỐNG — PASS-1 đo byte MEMORY.md trên đĩa mỗi run (header :11-15); tunables đọc live từ budget `archive_gate` (:44-51) | ⚠️ **GAP THẬT** — gate = DRY-planner (:6-7 "Does NOT move"); MOVE do em-main TAY; A7 chỉ verify pointer-resolve + file-exists + size>0 (:16-19) ≠ niêm-phong nội-dung; byte-preserve = kỷ-luật tay (vd budget:153 tooling-auditor S106 "moved-not-cut md5-verified") | ĐO=planner / LÀM=người; phanh đủ 3 tầng: A4 hysteresis 0.85 + A5 keep_floor 5 + A6 strike 2 (budget:34-37) |
| 3 | crystallized-backfill.ps1 | SỐNG — đo byte `hotload_sources` tươi mỗi run (:105-115); KHÔNG đọc `budget.measured` | n/a — DRY print-only; pour = em-main tay per-session | ĐO=print plan / LÀM=tay; phanh = precondition `target>0 AND headroom>0` (:126-131); target = owner-authority (budget:74) |
| 4 | governance-detectors.ps1 | SỐNG — đọc docs live + config `h24_cadence` từ budget; key thiếu → **FAIL-LOUD đo-0, cấm default** (:833-845) | n/a — flag-only, không move | ĐO-only by design; LÀM=em-main; INFORM-not-enforce |
| 5 | measure-agent-memory.ps1 | Script đo SỐNG (`Get-Item .Length` :14-23, stdout-only :36-41 — KHÔNG tự ghi budget); NHƯNG snapshot transcribe vào `budget.measured` (:144) = ĐÔNG-CỨNG giữa 2 lần chạy. **Đã được né đúng cách:** consumer `memory-selfimprove-audit.ps1:18` + `:110` khai "budget.measured is STALE — re-measure on disk / ignored"; archive-gate cũng đo live ⇒ **0 trigger tự-động đọc snapshot** (display/bookkeeping-only) | n/a | ĐO-only |
| 6 | sleep-recovery L2 gist (`.claude/commands/sleep-recovery-memory-l2.md`) | SỐNG — trigger tay HOẶC INFORM-only đọc `last_sleep_at` (budget:4); field do CHÍNH command set sau run (Phase 4.4, :54) = instrument phản-ứng hành-động vòng lặp; skip file đã có `.gist.md` (:59) → hội tụ | DERIVE additive KHÔNG move (verbatim ở-lại-đĩa :28); seal-analog = coverage-diff GATE (budget l2_gist rule :29) + reviewer Fidelity (G-001) — kiểm NGƯỜI/AI, chưa máy | ĐO=Phase 0.2 detect / LÀM=nén reviewer-gated; phanh = double-distill guard `distill-gen≥1` REFUSE (:60) + guard-rỗng |
| 7 | curate L1→L2 (nghi-thức em-main closeout) | SỐNG — trigger = size L1 đọc thật lúc closeout (MEMORY.md curate log: hook-triggered @23.9KB/@21.4KB) + planner loop-2 đo live | ⚠️ **GAP cùng lớp loop-2** — "byte-exact append" + append-only (budget l2_verbatim :24) = kỷ-luật TAY; không phép niêm-phong máy sau move | ĐO=planner / LÀM=người; phanh = A4/A5/A6 + value_protect advisory (budget:38-41) |
**Ba kết-luận inventory:**
- **q1 (↔ bài-học-1 "instrument đông-cứng"):** KHÔNG có quả bom instrument-đông-cứng loại hub trong SE — mọi trigger đều đọc số đo SỐNG (đọc byte đĩa hoặc git-diff tươi mỗi lần chạy). Snapshot đông-cứng DUY NHẤT là `budget.measured` (memory-budget.json:144), nhưng nó có **0 consumer tự-động**: bị ignore chủ-động, bằng-chứng `memory-selfimprove-audit.ps1:18` + `:110` khai thẳng "budget.measured is STALE — re-measure on disk"; archive-gate và crystallized-backfill đều đo live, KHÔNG đọc snapshot. **Standing-note (chốt lại thành luật soi-được):** CẤM wire bất kỳ trigger tương-lai nào vào `budget.measured` — nếu về sau cần dùng, phải **tái-cơ-sở** đúng như bài hub (lấy số gốc phần đông-cứng + giá trị sống đo từ byte hiện tại), tuyệt đối không lấy snapshot làm điều kiện kích-hoạt.
- **q2 (↔ bài-học-2 "bảo-toàn-byte ⟂ niêm-phong"):** GAP THẬT tập trung ở đúng **2 vòng CÓ MOVE — loop-2 (archive-gate) và loop-7 (curate L1→L2)**. Hai vòng này có bảo-toàn-byte ở mức **kỷ-luật TAY** + pointer-check A7 (resolve + file-exists + size>0), nhưng **KHÔNG có niêm-phong máy** (kiểm: kho-mới = kho-cũ + phần-thêm đúng từng byte, và khối-được-dời là chuỗi con nguyên văn của phần-thêm). Đây đúng là lớp lỗi hub cảnh báo: bảo-toàn-byte MÙ trước một byte bị lật-giá-trị cùng độ dài. Năm vòng còn lại KHÔNG move (DRY-plan / flag-only / derive-additive / commit content-addressed) nên không có bề mặt lỗi này.
- **q3 (↔ bài-học-3 "ĐO ⟂ LÀM + phanh"):** MỌI vòng có phần LÀM đều đã tách tầng ĐO/LÀM và có phanh sẵn — hysteresis (A4 0.85) / keep-floor (A5 =5) / strike (A6 =2) / precondition target>0∧headroom>0 / distill-gen-guard / rebase-interlock. Không vòng nào để "đo xong làm luôn" không phanh.
**File path (artifact executed):** `docs/governance/adap-reports/2026-07-16-Governance-tang-luu-tru-so-cai-va-bai-hoc-instrument-dong-cung.md` (chính bản này = sản-phẩm của nấc executed). **commit-sha:** điền từ `git log` sau commit closeout wave-2 (`[CLAUDE] Docs:` — batch 5 adap-report đợt 16-07); tại thời điểm ghi, report chưa commit nên KHÔNG khai sha khống (§C5 no-fake).
## 4. tailored-gì + skip-gì-vì-sao
- **FUNCTION-floor adopt FULLY — BA CÂU HỎI làm lăng-kính:** đúng thứ hub chỉ định là "cái chuyển được" (broadcast §5). SE port nguyên ba câu hỏi và chạy nó thành một cuộc kiểm-kê 7 vòng × 3 câu (§3). Đây là floor, giữ đủ.
- **SKIP = ngưỡng/số/công-cụ của hub (n-a-theo-mandate, KHÔNG phải behind):**
- Broadcast tự đóng lối chép tool ("KHÔNG bảo bạn chép công-cụ" §1) và tự khai "Con số ngưỡng của hub không chuyển được" (§5) — nên KHÔNG có tool/số nào là floor để adopt.
- SE **đã có phanh riêng từ H11**, khác ĐƯỜNG nhưng cùng CHỨC-NĂNG với phanh hub: A4 hysteresis 0.85 (phanh trễ, dừng dưới ngưỡng để không rung quanh mốc) · A5 keep_floor 5 (sàn giữ, không dọn sạch) · A6 strike 2 (đếm strike trước khi hành động) — memory-budget.json:34-37. Vì thế chép ngưỡng hub vào là thừa và sai project-fit; SE giữ số của mình.
- **FORM tailored theo roster/topology SE:** lăng-kính áp lên **7 vòng lặp CỤ THỂ của SE** (wal-flush hook · archive-gate planner · crystallized-backfill · governance-detectors · measure-agent-memory · sleep-recovery L2 · curate L1→L2) — KHÔNG hardcode "hai sổ-cái" của hub. Cơ chế move của SE = **em-main tay** (không phải hàm-move tự-động của hub), nên câu q2 được diễn dịch thành "có phép niêm-phong máy sau move tay không" — và câu trả lời trung thực là CHƯA (xem §5).
## 5. honest-caveat
- **seal-gap loop-2 + loop-7 CHƯA vá.** Hai vòng có MOVE (archive-gate DRY-planner + curate L1→L2) hiện chỉ có bảo-toàn-byte **kỷ-luật tay** + pointer-check A7; **KHÔNG có niêm-phong máy** (đọc-lại-sau-ghi để chứng: kho-mới = kho-cũ + phần-thêm đúng byte, và khối-được-dời là chuỗi con nguyên văn). Nghĩa là hôm nay SE vẫn **mù đúng lớp lỗi** mà bài-học-2 của hub chỉ ra — một byte bị lật-giá-trị cùng độ dài trong khối-được-dời sẽ lọt qua phép bảo-toàn-byte. Bản này KHÔNG tự nhận đã đóng gap.
- **Đề-xuất đóng gap = OWNER-GATED, chờ anh (KHÔNG build ở wave này).** Codify một bước **seal-verify sau move** vào nghi-thức curate: md5 file-kho trước và sau khi dời + `Select-String -SimpleMatch` đầu và cuối khối-được-dời trong archive để chứng substring-containment (kho-mới chứa nguyên văn khối-dời). Đây là mức **NGHI-THỨC / doc-checklist**, CHƯA viết tool — đúng mandate broadcast "KHÔNG bảo bạn chép công-cụ". Mục này nằm ở `owner-gated-proposals-dot-16-07.md` số (iii), chờ anh chốt **codify-vào-checklist vs defer**. Tới khi anh chốt, gap loop-2+7 vẫn để MỞ (không tự-đóng bằng lời).
- **Scope-caveat kiểm-kê:** inventory phủ 7 vòng lặp tự-động NUÔI BỘ-NHỚ dài hạn — KHÔNG quét mọi script one-shot ngoài phạm-vi đó. `budget.measured` (memory-budget.json:144) là snapshot đông-cứng-by-design nhưng an-toàn HÔM NAY nhờ 0 automated reader (selfimprove-audit.ps1:18,110 khai ignore); standing-note ở §3 là phanh chặn wire tương-lai — KHÔNG phải bằng chứng "đã có phép niêm-phong".
- **Nấc-honesty:** `executed` = cuộc kiểm-kê đã chạy + kết-luận đã rút, KHÔNG hơn. Không có runtime-restart cần chứng (đây là doc/analysis, không đụng agent/command `.md`), nhưng cũng KHÔNG leo lên `verified` — chờ AI_INFRA `/adap-audit` chấm cross-repo.

View File

@ -0,0 +1,83 @@
# adap-report — 2026-07-16-Governance-vong-tu-bao-tri-thu-nam-san-su-that-nhan-da-do
> SISTER = SOLUTION_ERP (self = se). Report-format LOCK (5 trường). Broadcast bản thứ năm của vòng tự-bảo-trì: **sàn-sự-thật cho nhãn "đã-đo"** (content_sha256 `190c11ba2bc03fee01cdcad09afeac1a311aca085099c25cccb8967b4a26e3cb`). Bản này ĐỨNG TRÊN bản "Phương-pháp đếm token" (`e0bb5bbf…`) — bản đó kể con bệnh, bản này phát LUẬT + câu cửa-duyệt.
> Thực thi trong đợt adap 16-07 (run `2026-07-16-S127-adap-dot-16-07`, HMW-mode ON — investigator ground-truth wave-1 + workers thực thi + reviewer gate riêng). Nguồn kiểm-kê: `sub-investigator-2-spec-draft.md §VIỆC-4` (đã V1 lead 5/5). Chi-tiết thực-thi: `spec-execute-dot-16-07.md` item 7.
## 1. id-broadcast
`2026-07-16-Governance-vong-tu-bao-tri-thu-nam-san-su-that-nhan-da-do` (category: **Governance** · type: **new** · from: **ai_infra** · targets: **all-fit** · reviewer_gate broadcast: **GO** `wf_96616c03` · content_sha256 `190c11ba…`).
Con bệnh của hub: một hằng-số quy-đổi tự dán nhãn "đo thực-nghiệm" đã sống 42 phiên, mọi con mắt tin theo, cho tới khi một phép đo lại cho thấy nó sai gần gấp đôi — **cái nhãn "đã-đo" đã THAY THẾ cho việc đo**, và không bài kiểm nào đổi màu khi con số bị đổi. Luật mới của hub: mọi con số mang nhãn đo-lường (*measured / empirical / calibrated / grounded / đã-đo*) phải đi kèm **một bộ phản-chứng CHẠY ĐƯỢC** — hoặc data-point gốc + assert bao quanh (nổ khi ai đổi số mà không đo lại), hoặc một phép kiểm phủ-định (negative-control: nếu số là bịa thì nó TRƯỢT). Ba lối thoát tường-minh: gắn phản-chứng · khai miễn-trừ CÓ LÝ-DO nhìn thấy được · hoặc bỏ nhãn đo-lường đi.
## 2. nấc (G-011)
Báo cáo phủ ba hành-động con của "kiểm-kê nhãn đã-đo" tại SOLUTION_ERP. Nấc tách theo từng hành-động (no-fake §C5):
- **executed** — **4a (C1 hạ-nhãn `crystallized-backfill.ps1`)**: đã sửa file (comment-only, 0 behavior-change), script chạy exit-0 giữ nguyên dải baseline → nấc executed đầy đủ, runtime đã chứng behavior-neutral. Bằng chứng: **E2 wave-1** (§3).
- **executed → verified-pending** — **4c (câu cửa-duyệt measured-label vào `.claude/agents/reviewer.md:46`)**: đã sửa file, NHƯNG agent `.md` **không hot-reload** → chưa runtime-proven cho tới khi restart Claude Code + 1 spawn-test reviewer. Bằng chứng: **E3 wave-1** (§3). 🔴 KHÔNG tự khai `verified``verified` là do AI_INFRA `/adap-audit` chấm cross-repo.
- **agreed — OWNER-GATED (mục ii)** — **4b (C2 `memory-budget.json:89` `measured_token_estimate`)**: KHUNG luật đã quyết áp, nhưng CHƯA chạm file này — chờ anh chọn 1 trong 2 lối-thoát (rename bỏ-nhãn vs. sibling exemption-note). Ghi ở `owner-gated-proposals-dot-16-07.md` mục (ii).
- **agreed — OWNER-GATED (mục iv)** — **nguồn hằng-số `memory-budget.json:65`** (`token_estimate` — nơi định-nghĩa `/3.0` VN-diacritic): đề-xuất thêm đuôi provenance `(convention -- chua do tokenizer that tai SE; dinh-chinh 58f5afd8)`, gộp cùng câu hỏi (i) vì cùng file `memory-budget.json`. Chờ anh. Mục (iv).
Tổng: **LUẬT + câu cửa-duyệt = executed** (câu cửa-duyệt ở verified-pending vì agent `.md` no hot-reload); **2 site trong `memory-budget.json` = agreed/owner-gated** (không đụng vùng owner-authority khi anh vắng).
## 3. evidence
**PROJECT-FIT = ADOPT (tailored).** SE có scripts đo-lường (`crystallized-backfill.ps1` / `mfe-eval.ps1` / `spawn-model-audit.ps1` / `wal-recovery-test.ps1`) + `memory-budget.json` chứa hằng-số → luật "nhãn đo phải kèm phản-chứng" áp được ngay.
### 3.1 Bảng kiểm-kê nhãn "đã-đo" (transcribe từ draft §VIỆC-4 — grep `calibrat|measured|empirical|đã-đo` toàn `scripts/*.ps1` + `hmw.js` + `memory-budget.json`)
| Ứng viên | Đĩa nói (trước xử-lý) | Phân loại + xử-lý |
|---|---|---|
| **C1** `scripts/crystallized-backfill.ps1:117` (+ header `:25` "CALIBRATED RANGE") | `# calibrated RANGE (invariant 4): tok_low = bytes/4, tok_high = bytes/3.0``:118-119` hardcode `/4.0`, `/3.0`; KHÔNG assert, KHÔNG negative-control, KHÔNG data-point gốc | ✓ Khớp con bệnh — nhãn sống bằng uy-tín. **→ ĐÃ hạ-nhãn** (lối-thoát 3 "bỏ nhãn đo-lường"): `calibrated``heuristic`, comment-only, 0 đổi hành-vi. Bằng chứng E2. |
| **C2** `memory-budget.json:89` `"measured_token_estimate": 55000` | TÊN field mang chữ "measured"; note `:90` tự khai "**honest mid estimate** (~19K byte-measured + ~36K harness-injected-**est**)"; `_owner_override_note` khai "**NOT actively subtracted by the current scripts**" = **0 consumer tự-động** | ✓ Khớp con bệnh — **metadata giàu ≠ phản-chứng**. Field giàu siêu-dữ-liệu nhưng không có phép kiểm nào làm nó TRƯỢT nếu sai. **→ OWNER-GATED (ii)** — chờ anh chọn rename vs. exemption-note. |
| **Ứng viên độc-lập thứ 3?** | **KHÔNG có hằng-số mới.** `hmw.js` = 0-hit. Các "MEASURED" khác đều đo-live-mỗi-run hoặc probe-có-artifact (xem 3.3) | **Sweep XONG — 0 ứng viên độc-lập thứ 3.** |
| Borderline (cùng-lớp, ghi nhận) | (a) `memory-budget.json:144` section `measured` = snapshot S107 stale-by-design NHƯNG 0 automated consumer (đã ignore chủ-động — Việc 3 loop 5). (b) `memory-budget.json:65` `token_estimate` "VN-diacritic ~3.0-3.5 byte/tok" = NGUỒN của `/3.0`, không provenance | (a) OK-by-architecture (snapshot visible). (b) xử cùng lớp C1 → **OWNER-GATED (iv)** thêm đuôi provenance. |
**Honest scope-caveat:** sweep phủ đúng scope spec (`scripts/*.ps1` + `hmw.js` + `memory-budget.json`). KHÔNG quét văn-xuôi `docs/` — hub bản thứ năm §5 cũng đóng lối văn-xuôi (đo thử thấy gần như toàn cảnh-báo-giả).
### 3.2 Diff wave-1 đã áp + verify PASTE thật
**E2 — 4a: `scripts/crystallized-backfill.ps1` hạ-nhãn (2 comment, code `:118-119` GIỮ nguyên):**
- `:25` sau: `# (4) HEURISTIC RANGE (convention, NOT measured): token headroom is a RANGE [bytes/4 .. bytes/3.0], NOT the`
- `:117` sau: `# heuristic RANGE (invariant 4): divisors = convention char/4 + VN ~3.0-3.5 byte/tok -- CHUA do tokenizer that tai SE (see dinh-chinh letter 58f5afd8 2026-07-16). tok_low = optimistic (bytes/4), tok_high = worst (bytes/3.0)`
- Verify (PS 5.1, pure-ASCII giữ đúng gotcha #30):
```
PS> Select-String -Path scripts\crystallized-backfill.ps1 -Pattern "calibrat" -CaseSensitive:$false
(0 hit)
PS> powershell.exe -ExecutionPolicy Bypass -File scripts\crystallized-backfill.ps1
exit 0 · output giữ dòng "tok RANGE [low..high]" · dải baseline [118424 .. 157898] == C-đo (không đổi hành-vi)
```
**E3 — 4c: `.claude/agents/reviewer.md:46` câu cửa-duyệt measured-label (sau §"Apply 5-category checklist"):**
- `:46` (nội dung): `**Measured-label gate (sàn-sự-thật 190c11ba):** diff chứa con-số mang nhãn đo-lường (measured/empirical/calibrated/đã-đo)? → hỏi: "phép kiểm nào khiến con số này TRƯỢT nếu nó sai?" Không trả lời được → yêu cầu 1 trong 3: phản-chứng chạy được · miễn-trừ lý-do visible · bỏ nhãn.`
- Verify:
```
PS> Select-String -Path .claude\agents\reviewer.md -Pattern "TRƯỢT"
.claude\agents\reviewer.md:46: ...phép kiểm nào khiến con số này TRƯỢT nếu nó sai?... (≥1 hit)
```
- Nấc: **verified-pending** — agent `.md` không hot-reload; runtime-proof chờ restart + spawn-test reviewer.
### 3.3 Positive-exemplars SẴN của SE (SE đã có "măng đúng-nghĩa" trước broadcast — không phải zero-base)
- **Negative-control ĐÃ CHẠY:** thư đính-chính `broadcasts/outbox/ai_infra/2026-07-16-se-to-ai_infra-dinh-chinh-token-label-hash-verify.md` (`58f5afd8`, 2026-07-16) — chính SE đã tự đính-chính cái nhãn token sai trước khi hub phát luật; đây là hành-động "phát-hiện + sửa nhãn sai" đúng tinh-thần bản thứ năm.
- **Measured đúng-nghĩa (execute-and-measure per-run, KHÔNG snapshot đông-cứng):**
- `scripts/spawn-model-audit.ps1:22,33,45,59-60` — "MEASURED (this script really reads it, offline, from disk)"; probe H23-precedence S126 THẬT (2026-07-16); nhãn "not-measurable (ii)" đã FLIP sang "MEASURED" khi đo thật → nhãn phản-ứng với phép đo, không thay-thế nó.
- `scripts/wal-recovery-test.ps1:35,367-371` — oracle `EMPIRICAL` "declared, not hidden"; `ca1/ca2 EMPIRICAL` (measured, not asserted) vs `ca0/ca3 DEFINITIONAL` (khai rõ) — tự phân-biệt measured vs definitional trong chính output.
- **Borderline đã-né-đúng-cách:**
- `scripts/mfe-eval.ps1:176,180,266` — dùng cùng divisor `/4.0..-/3.0` NHƯNG in "Reported as a RANGE [bytes/4 .. bytes/3.0]" honest, KHÔNG dán nhãn `calibrated`; `:266` "(MEASURED, not target-then-force)" = computed-live per-run → **GIỮ nguyên** (không phải con bệnh).
- `scripts/memory-selfimprove-audit.ps1:283,304,322` — 3 site "calibration-interim" = **miễn-trừ VISIBLE sẵn** (in ra trong report, đúng lối-thoát 2 "khai miễn-trừ có lý-do nhìn thấy được") → GIỮ.
## 4. tailored-gì + skip-gì-vì-sao
- **FUNCTION-floor adopt:** (i) **LUẬT** "nhãn đo-lường phải đi kèm phép kiểm có thể làm nó TRƯỢT" — áp qua kiểm-kê + hạ-nhãn C1 + owner-gate C2. (ii) **Ba lối-thoát tường-minh** — SE dùng đủ cả ba: C1 = *bỏ nhãn* (hạ xuống `heuristic`); `memory-selfimprove-audit` calibration-interim = *miễn-trừ visible*; C2 = chờ anh chọn giữa *bỏ nhãn* (rename) và *miễn-trừ visible* (sibling note). (iii) **Câu hỏi cửa-duyệt** "phép kiểm nào khiến con số này TRƯỢT?" — port nguyên vào `reviewer.md:46` (E3). → Giữ đủ floor, KHÔNG hạ.
- **FORM tailored SE:** câu cửa-duyệt gắn vào checklist 5-category của `reviewer` (roster SE) thay vì máy-quét độc-lập; kiểm-kê chạy thủ-công qua investigator ground-truth wave-1 thay vì auto-scanner.
- **SKIP có chủ-đích (n-a phần tuỳ-chọn):** **máy quét cuối-phiên của hub KHÔNG port** — broadcast §4 tự khai "Máy quét là phần tuỳ chọn — **luật + câu hỏi cửa-duyệt mới là phần chuyển được** sang mọi dự-án", và §5 khai máy chỉ đo SỰ-CÓ-MẶT không đo SỰ-ĐÚNG (lưới đúng-sai vẫn là người-duyệt + mẫu-dương). SE đóng lối máy-quét văn-xuôi cùng lý-do hub (§5 — quét văn-xuôi cho gần-toàn cảnh-báo-giả). Chọn chuyển phần **chuyển-được** (luật + câu cửa-duyệt), bỏ phần **tuỳ-chọn** (scanner). Đây là project-fit skip theo đúng mandate broadcast, KHÔNG phải behind.
## 5. honest-caveat
- **(a) 4c verified-pending — chưa runtime-proven.** `.claude/agents/reviewer.md` không hot-reload; câu cửa-duyệt mới ở `:46` chỉ live sau khi restart Claude Code + 1 spawn-test reviewer thực-tế chạy qua nó. Nấc giữ `verified-pending`, KHÔNG khai `verified` (thuộc AI_INFRA `/adap-audit`).
- **(b) Văn-xuôi `docs/` ngoài scope sweep.** Kiểm-kê chỉ phủ `scripts/*.ps1` + `hmw.js` + `memory-budget.json`. Một nhãn "đã-đo" nằm trong prose tài-liệu sẽ KHÔNG bị bắt bởi đợt này — hub §5 cũng đóng chủ-đích lối văn-xuôi (đo thử thấy gần-toàn cảnh-báo-giả), nên đây là giới-hạn CÓ-CHỦ-ĐÍCH, không phải lỗ-hổng vô-tình.
- **(c) F11 — citation-trap gen-2 (S123):** câu cửa-duyệt ở `reviewer.md:46` **CHỨA CHÍNH các nhãn nó săn** (`measured/empirical/calibrated/đã-đo`) — đây là **mention-not-use** (nhắc tên marker để định-nghĩa luật, KHÔNG phải một hằng-số thật mang nhãn). Nếu mai sau SE port một **máy-quét khớp-mẫu tự-động**, dòng `:46` này sẽ tự-khớp và tự-flag chính nó (đúng bài citation-trap S123: doc định-nghĩa anti-pattern tất-yếu chứa mẫu đó). ⇒ Khi đó **BẮT BUỘC kèm exemption-note** cho `reviewer.md:46` (discriminator = enclosure use ⟂ mention), giống 3 site `calibration-interim` đã có miễn-trừ visible. Ghi trước ở đây để lần port scanner không tái con bệnh.
- **(d) OWNER-GATED — 2 quyết-định của anh (`owner-gated-proposals-dot-16-07.md`):** (ii) C2 `budget:89` lối-thoát rename `measured_token_estimate``token_floor_estimate` (sạch nhất, điều-kiện: grep toàn repo → nếu >1 ref thì update cùng commit; consumer script = 0 đã khai) **vs.** exemption-note sibling (ít-chạm). (iv) `budget:65` thêm đuôi provenance nguồn hằng-số `/3.0`. Cả hai cùng file `memory-budget.json` → gộp 1 lần anh trả lời. Worker CHƯA đụng 2 site này (an-toàn vùng owner-authority khi anh vắng).