31 KiB
31 KiB
sub-investigator-2 — spec-cách-làm draft (Giai đoạn B, fable-real single deep-pass)
Ghi TĂNG-DẦN trong lúc làm (chống #53, bài S123). Trạng thái: HOÀN TẤT (6/6 việc ground-truthed + spec'd). Engine: fable-real-single · investigator-codebase · 2026-07-16 · run S127-adap-dot-16-07 Nguồn: spec-invest-cach-lam-16-07-2026.md + sub-reviewer-1-verdict.md (verdict A) + 6 broadcast inbox (hash 6/6 verified ở run.md)
Trạng thái ground-truth per việc
- Việc 1 (bản 5) — rag.json — GT XONG (LỆCH-1 vị-trí: file trong repo SE)
- Việc 2 (bản 1) — re-verify nhịp 4 mục — GT XONG (a/b/c/d đều verified đĩa)
- Việc 3 (bản 2) — 3-câu-hỏi × 7 vòng lặp — GT XONG (bảng 7×3 + seal-gap loop 2/7 confirmed)
- Việc 4 (bản 3) — nhãn đã-đo — GT XONG (C1+C2 verified; sweep ứng viên 3 = 0 độc-lập mới, 2 borderline cùng-lớp)
- Việc 5 (bản 4) — n-a nắm-hướng — GT XONG (hub tự khai §6/§7)
- Việc 6 (thư 0) — adap-reports ×5 + email gộp — GT XONG (khuôn LOCK + send-email 6c/7 + WAL:12)
VIỆC 1 (bản 5, f5ce2778) — flip contextual_retrieval true→false
Ground-truth (TỰ MỞ đĩa)
| Anchor | Đĩa nói | vs verdict A |
|---|---|---|
D:\...\SOLUTION_ERP\.claude\rag.json:26 |
"contextual_retrieval": true, |
✓ KHỚP (nhưng file ở repo SE — xem LỆCH-1) |
...\rag.json:31 |
rationale "Flag true but per v1.3 §12.1 + §9.4: ... Evaluate per eval recall@5 trial week 3." — trial 2026-06-16 treo, không chạy |
✓ KHỚP |
AI_INFRA\claude-rag\lib\projects.py:39 |
"contextual_retrieval": False, # OWNER-FINAL 2026-07-16 (s100)... — default khung ĐÃ false + owner-final rationale sẵn |
✓ KHỚP (mirror — SE KHÔNG sửa) |
AI_INFRA\.claude\rag.json:33 |
hub tự config false từ 2026-05-26 (rationale :38) |
(bổ sung — khớp claim bản 5 "default false từ cuối tháng Năm") |
projects.py:54 cfg.setdefault |
chỉ merge key THIẾU → SE override true THẮNG default |
Xác nhận hedge "đúng sẵn" KHÔNG áp SE ✓ |
Spec execute
- File đích:
D:\Dropbox\CONG_VIEC\SOLUTION\SOLUTION_ERP\.claude\rag.json(TRONG repo SE — KHÔNG đụng AI_INFRA) - Diff:
- Line 26 before:
"contextual_retrieval": true,→ after:"contextual_retrieval": false, - Line 31 before:
"contextual_retrieval_rationale": "Flag true but per v1.3 §12.1 + §9.4: SOLUTION_ERP chunks self-contained (gotchas, patterns, decisions) → Contextual Retrieval prepend likely wasteful. Evaluate per eval recall@5 trial week 3." - after (đề xuất):
"contextual_retrieval_rationale": "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-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."
- Line 26 before:
- Lệnh verify (chạy được):
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'])" # expected output: False (đồng thời chứng JSON parse OK — không vỡ file) - Owner-gate: KHÔNG cần gate mới — hub-owner đã chốt fleet-wide + anh đã gõ
/adap-applytrong đề bài S127 (consent per-invocation). Quyền SE sửa = tiền lệ S41 tự sửaexclude_pathscùng file. Báo anh trong closeout + báo hub 1 dòng (gộp email Việc 6). Hiệu-lực index chờ re-bootstrap = AI_INFRA-op (KHÔNG tự chạy bootstrap.py — charter v2, cần VOYAGE key). - Lane D: HMW-worker mechanical ✅ (edit in-repo 2 dòng + verify; KHÔNG cross-repo write)
- Acceptance D: lệnh verify trên in
False+git diff --statchỉ 1 file.claude/rag.json.
VIỆC 2 (bản 1, 85bf89ca) — re-verify nhịp: 4 mục (a)-(d)
Ground-truth (TỰ MỞ đĩa)
| Anchor | Đĩa nói | vs verdict A |
|---|---|---|
docs/governance/adap-reports/2026-07-15-Governance-h17-cadence-update-bookend.md:8 |
...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"). |
✓ KHỚP — "7 khoản cũ SAI" lệch bản published (broadcast §2: "năm thành sai hoặc sai một nửa, hai khoản đổi cách đọc"; reviewer_gate M-1 fold "3-chỗ") |
.claude/commands/session-start.md:206 |
Honest-caveat: hub nói rõ "số của các em..." ... Chỉnh lại sau chu-kỳ-2 — n=1 ở hub là mocc-0, chưa ai được bán "đã chứng minh hiệu-quả" |
✓ KHỚP — stale: neo "n=1 ở hub / mốc-0 hub" (hub ĐÃ GỠ counter → không bao giờ có run-2 hub; typo "mocc-0") |
.claude/agent-memory/memory-budget.json:123 _owner_ratified |
"...anh chot 6/15/3, 'tuong tu Hub'... Re-tune after cycle-2 (H24 caveat (c): the real delta only appears from run-2; n=1 at the hub is mocc-0...)" |
✓ KHỚP — stale cùng class: "tuong tu Hub" + neo run-2 CỦA HUB (nay không tồn tại) |
.claude/governance/.session-counter.json:13-20 |
counter=6, last_ticked S127 (07-16), last_audit light/deep@3 (S124, 07-15) → tick 3→6 trong 2 ngày |
✓ KHỚP verdict A "(c) GIỮ counter — phiên ngắn-nhiều, điều-kiện gỡ hub (1-phiên/ngày + trả-mọi-lượt) KHÔNG áp" |
broadcasts/_index.md:33-38 |
6 row INBOUND 2026-07-16, tất cả pending + folder (root) |
✓ KHỚP — khuôn move: header :11 "pending (ở inbox/ root) → processed (đã MOVE vào inbox//)" |
Spec execute (4 sub-việc)
2a — sửa adap-report bookend dòng 8
- File đích:
D:\...\SOLUTION_ERP\docs\governance\adap-reports\2026-07-15-Governance-h17-cadence-update-bookend.md - Diff dòng 8: before
...chuyển **bookend** (rà đầy-đủ 2-đầu mỗi phiên). 7 khoản cũ SAI (3 nhịp · ...)→ after...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").— GIỮ nguyên enumeration 7 mục, chỉ sửa phân-loại tổng + chèn 2 note ngoặc. - Verify:
Select-String -Path "docs\governance\adap-reports\2026-07-15-*.md" -Pattern "5 sai"→ 1 hit;-Pattern "7 khoản cũ SAI"→ 0 hit. - Gate: không — đây là đính-chính khớp bản published (derived-flush class). Lane D: HMW-worker ✅.
2b — 2 citation stale re-tune (neo cycle-2 CỦA SE)
- File 1:
.claude/commands/session-start.md:206— before:**Chỉnh lại sau chu-kỳ-2** — n=1 ở hub là mocc-0, **chưa ai được bán câu "đã chứng minh hiệu-quả"**.→ after (đề xuất):**Chỉnh lại sau chu-kỳ-2 CỦA SE** (deep-audit lần 2, xem .session-counter.json last_audit). Hub đã GỠ counter (bookend 07-15, sha 85bf89ca) → ví-dụ 6/15/3 "ở nguồn" = lịch-sử, KHÔNG còn mốc hub để so; delta hub hứa từ run-2 KHÔNG BAO GIỜ có (hub gỡ trước run-2) — **chưa ai được bán câu "đã chứng minh hiệu-quả"**.(giữ vế đầu dòng 206 nguyên: "SE chọn cùng 6/15/3 là điểm khởi-đầu anh CỐ Ý chọn"). - File 2:
.claude/agent-memory/memory-budget.json:123_owner_ratified— before chứa'tuong tu Hub'+Re-tune after cycle-2 (H24 caveat (c): the real delta only appears from run-2; n=1 at the hub is mocc-0, so nobody may sell 'proven effective' yet)→ after (đề xuất, ASCII-safe giữ style file):"owner-decisions-15-07-2026 Q2 -- anh chot 6/15/3 (dat thoi diem do hub CUNG dung 6/15/3; hub GO counter 2026-07-15 bookend 85bf89ca -> vi-du 'o nguon' nay la LICH-SU, khong con moc hub). HONEST-CAVEAT khi bao hub: SE chon 6/15/3 = DELIBERATE STARTING POINT cua owner, NOT copy vo-thuc. Re-tune after cycle-2 CUA SE (deep-audit lan 2 tinh tu .session-counter.json last_audit; delta hub hua tu run-2 khong bao gio co - hub go truoc run-2), nobody may sell 'proven effective' yet." - Verify:
Select-String -Path ".claude\agent-memory\memory-budget.json" -Pattern "mocc-0|tuong tu Hub"→ 0 hit; JSON parse OK:python -c "import json; json.load(open(r'.claude\agent-memory\memory-budget.json', encoding='utf-8')); print('OK')". session-start.md:Select-String -Pattern "n=1 ở hub"→ 0 hit. - Gate:
_owner_ratifiedlà lời-chốt CỦA ANH → wording đổi cần anh XÁC NHẬN 1 dòng (không đổi 6/15/3, chỉ đổi câu neo). Lane D: soạn diff = HMW-worker; APPLY memory-budget.json chờ anh OK (session-start.md:206 = doc dẫn-xuất, worker apply được).
2c — counter GIỮ NGUYÊN (0 diff)
- Không sửa gì. Ghi vào adap-report: điều-kiện gỡ của hub (§4 bookend: 1-phiên/ngày + owner-trả-mọi-lượt) KHÔNG áp SE — bằng-chứng đĩa: counter 3→6 trong 2 ngày (
.session-counter.json:13-16). Lane D: đưa vào text adap-report Việc 6.
2d — STAGE-2 move 6 file inbox root → inbox/ai_infra/ + flip 6 row _index
- Khuôn hiện tại (đĩa):
_index.md:11— pending (root) → processed (MOVE vàoinbox/<from>/). 6 file:2026-07-16-ai_infra-to-se-huong-dan-adap-4-ban-moi.md+2026-07-15-Governance-h17-cadence-update-bookend.md+ 4 file2026-07-16-Governance-*.md. - Diff:
git mv broadcasts/inbox/<6 file>.md broadcasts/inbox/ai_infra/+_index.md6 row:pending→processed,(root)→ai_infra(sha cột GIỮ). - Verify:
(Get-ChildItem broadcasts\inbox\*.md).Count→ 0 file .md còn ở root;Get-FileHash3 file spot-check sau move == sha-prefix trong _index (byte-preserve);Select-String -Path broadcasts\_index.md -Pattern "\(root\)"→ 0 hit ở 6 row đó. - Thứ-tự: move SAU KHI adap-reports ×5 viết xong (Việc 6) — vì adap-report cần đọc file gốc; move là bước chốt xử-lý. Lane D: HMW-worker ✅ (mechanical, có verify hash).
VIỆC 3 (bản 2, 291550ff) — inventory 3-câu-hỏi × 7 vòng lặp SE
Ground-truth: bảng 7 vòng × 3 câu (mọi anchor TỰ MỞ đĩa)
| # | 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) |
Kết luận inventory (input cho adap-report bản 2)
- q1: KHÔNG có bom instrument-đông-cứng loại hub — mọi trigger đọc live; snapshot đông-cứng duy nhất (
budget.measured) có 0 consumer tự-động (bị ignore chủ-động, evidencememory-selfimprove-audit.ps1:18,110). Standing-note: CẤM wire trigger tương-lai vàobudget.measured— nếu cần thì tái-cơ-sở như bài hub. - q2: GAP THẬT tập trung ở 2 vòng CÓ MOVE (loop 2+7): có bảo-toàn-byte kỷ-luật-tay + pointer-check A7, KHÔNG có niêm-phong máy (kho-mới = kho-cũ + phần-thêm đúng byte + khối-dời là substring nguyên văn). Khớp seed verdict A.
- q3: mọi vòng có LÀM đều tách tầng + có phanh (hysteresis/keep-floor/strike/precondition/distill-guard/interlock).
Spec execute
- File đích:
docs/governance/adap-reports/2026-07-16-Governance-tang-luu-tru-so-cai-va-bai-hoc-instrument-dong-cung.md(NEW, REPORT-FORMAT LOCK 5 trường — khuônadap-report.md:13-19) - Nội dung: nấc
executed(inventory tự-áp = chính hành-động adopt; 3 câu hỏi đã chạy trên 7 vòng) · evidence = bảng trên (file:line) · tailored = "port nguyên 3 CÂU HỎI; ngưỡng/số hub KHÔNG chép (SE đã có phanh riêng A4/A5/A6 từ H11)" · honest-caveat = seal-gap loop 2+7 + đề-xuất-chờ-anh. - Đề-xuất chờ anh (KHÔNG build wave này): codify bước seal-verify sau move vào nghi-thức curate (md5 file trước/sau +
Select-String -SimpleMatchđầu/cuối khối-dời trong archive = substring-containment) — mức NGHI-THỨC/doc-checklist, chưa viết tool (đúng mandate bản 2 "KHÔNG bảo bạn chép công-cụ"). - Verify: file tồn tại + đủ 5 trường (
Select-String -Pattern "nac G-011|evidence|tailored|honest") + có từ "niêm-phong" trong caveat. - Lane D: HMW-worker mechanical ✅ (transcribe từ bảng draft này — KHÔNG cần tự điều-tra lại); seal-verify codify = CHỜ-ANH.
- Acceptance D:
Test-Path docs\governance\adap-reports\2026-07-16-Governance-tang-luu-tru-so-cai-va-bai-hoc-instrument-dong-cung.md→ True; grep 5 trường đủ.
VIỆC 4 (bản 3, 190c11ba) — kiểm-kê nhãn "đã-đo" + xử 2 ứng viên + câu cửa-duyệt
Ground-truth kiểm-kê (grep calibrat|measured|empirical|đã-đo toàn scripts/*.ps1 + hmw.js + memory-budget.json)
| Ứng viên | Đĩa nói | Phân loại |
|---|---|---|
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 verdict A — nhãn sống bằng uy-tín |
C2 memory-budget.json:89 "measured_token_estimate": 55000 |
TÊN field mang "measured"; note :90 tự khai "honest mid estimate (~19K byte-measured + ~36K harness-injected-est)"; :92 khai "NOT actively subtracted by the current scripts" = 0 consumer tự-động | ✓ KHỚP verdict A — metadata giàu ≠ phản-chứng |
| Ứng viên 3? | KHÔNG có hằng-số mới: hmw.js 0-hit; các MEASURED khác đều là đo-live-mỗi-run hoặc probe-có-artifact: mfe-eval.ps1:266 "(MEASURED, not target-then-force)" = computed live; spawn-model-audit.ps1:33,45 = probe S126 thật; wal-recovery-test.ps1 EMPIRICAL = execute-and-measure per-run (ca0/ca3 "Declared, not hidden" :375); agent-frontmatter-eol-check.ps1:65,304 = computed-from-measured per-run; memory-selfimprove-audit.ps1:283,304,322 "calibration-interim" = miễn-trừ visible sẵn |
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, xem Việc 3 loop 5) → OK-by-architecture, note "byte-governor snapshot" :145 đã visible. (b) memory-budget.json:65 "VN-diacritic hot-memory ~3.0-3.5 byte/tok" = NGUỒN của /3.0 — không provenance, nằm trong honest_caveats |
(b) xử cùng C1 (1 class) |
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 3 §5 cũng đóng lối văn-xuôi (toàn cảnh-báo-giả).
Spec execute (4 sub-việc)
4a — C1: hạ-nhãn (lối-thoát 3 "bỏ nhãn đo-lường") — comment-only, 0 behavior change
- File:
scripts/crystallized-backfill.ps1— 2 chỗ::25before# (4) CALIBRATED RANGE: token headroom is a RANGE [bytes/4 .. bytes/3.0], NOT the→ after# (4) HEURISTIC RANGE (convention, NOT measured): token headroom is a RANGE [bytes/4 .. bytes/3.0], NOT the:117before# calibrated RANGE (invariant 4): tok_low = optimistic (bytes/4), tok_high = worst (bytes/3.0)→ after# 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)
- Cùng-lớp đã grep (0 diff thêm):
mfe-eval.ps1:166-167,180dùng /4.0-/3.0 nhưng KHÔNG nhãn calibrated (khai RANGE honest) → giữ.memory-budget.json:65thêm đuôi(convention -- chua do tokenizer that tai SE; dinh-chinh 58f5afd8)— gộp gate với 2b. - Verify:
Select-String -Path scripts\crystallized-backfill.ps1 -Pattern "calibrat" -CaseSensitive:$false→ 0 hit; chạypowershell.exe -ExecutionPolicy Bypass -File scripts\crystallized-backfill.ps1→ exit 0, output giữ dòng "tok RANGE [low..high]". ⚠️ giữ pure-ASCII PS 5.1 (gotcha #30). - Lane: HMW-worker ✅.
4b — C2: chọn lối-thoát — CHỜ ANH chọn 1 trong 2
- Option-iii (bỏ nhãn, sạch nhất): rename key
measured_token_estimate→token_floor_estimate(memory-budget.json:89). Điều-kiện tiên-quyết D:Grep "measured_token_estimate"toàn repo → nếu >1 file (docs/adap-reports nhắc tên) thì update mọi ref cùng commit; consumer script = 0 (đã khai :92, grep re-confirm). - Option-ii (miễn-trừ visible, ít-chạm): giữ tên, thêm sibling field
"_measured_label_exemption": "NAME says measured but value = honest MID-ESTIMATE (19K byte-measured + ~36K harness-injected-est, not byte-countable locally) -- exemption per san-su-that 190c11ba 3-loi-thoat; phep kiem lam no truot = re-run _s112_remeasure procedure"ngay sau :89. - Verify (either): JSON parse OK + grep key mới/exemption 1 hit.
- Lane: CHỜ-ANH chọn → worker apply. (Gộp cùng câu hỏi gate 2b — 1 lần hỏi.)
4c — câu cửa-duyệt vào checklist reviewer
- File:
.claude/agents/reviewer.md— anchor:35### 2. Apply 5-category checklist→ append 1 mục (cuối section):**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. - Caveat: agent .md không hot-reload → nấc
verified-pending(restart/spawn-test sau). - Verify:
Select-String -Path .claude\agents\reviewer.md -Pattern "TRƯỢT"→ ≥1 hit. - Lane: HMW-worker ✅.
4d — adap-report bản 3
- File:
docs/governance/adap-reports/2026-07-16-Governance-vong-tu-bao-tri-thu-nam-san-su-that-nhan-da-do.md(NEW, 5 trường). Nấcexecuted(sau 4a/4c) — riêng 4b theo lối anh chọn. Evidence = bảng kiểm-kê + positive-exemplars có sẵn (thư đính-chính 58f5afd8 = negative-control đã chạy;wal-recovery-test.ps1+spawn-model-audit.ps1= measured-đúng-nghĩa). Honest-caveat: máy-quét cuối-phiên của hub KHÔNG port (tuỳ-chọn per bản 3 §4 — "luật + câu cửa-duyệt mới là phần chuyển được"); văn-xuôi ngoài scope. - Lane: HMW-worker ✅.
VIỆC 5 (bản 4, 9234a7aa) — n-a nắm-hướng: CHỈ adap-report
- Ground-truth: broadcast §6 "Chưa cần làm gì cả — bản này để nắm hướng" + §7 "chưa build, chưa dùng thử" — hub tự khai. ✓ KHỚP verdict A n-a + CẤM copy mục 2.
- File đích:
docs/governance/adap-reports/2026-07-16-Governance-session-logic-tach-session-vat-ly-huong-van-hanh-moi.md(NEW, 5 trường) - Nội dung: nấc
agreed(nắm-hướng; 0 hành-động theo chỉ-định hub §6 — KHÔNG phải n-a-vì-không-fit, mà hub-chỉ-định-chưa-làm; reviewer #2 chốt wording nấc). Evidence = precursor SE ĐÃ CÓ (mapping 5-vòng: gặt=harvest-curator · soi-lead=H24 2-vai · tự-đo=MFE/H17 · nén-kho=sleep-recovery+archive-gate · sàn-sự-thật=Việc-4-đợt-này; + H22 WAL/pause·/tiep+ counter content-addressed = đúng hướng "điểm dừng chủ-động"). Honest-caveat: KHÔNG mô tả mục 2 như thứ SE sẽ áp (hub chưa build — trích §7). - Verify: file tồn tại + chứa trích
"chưa build, chưa dùng thử"+ 0 câu "SE sẽ áp mục 2". - Lane D: HMW-worker ✅.
VIỆC 6 (thư 0, 181a6d19) — adap-reports ×5 + email hub GỘP 1 thư
Ground-truth khuôn
- REPORT-FORMAT LOCK:
adap-report.md:13-19— đúng 5 trường {id-broadcast · nấc G-011 (agreed|executed|verified-pending|n-a — KHÔNG tự khai verified) · evidence đo THẬT (commit-sha·file·byte/dòng) · tailored+skip-vì-sao · honest-caveat}; idempotent update (:33); Write-tool only (:43). - Email khuôn:
send-email.md:24-34— id<YYYY-MM-DD>-se-to-ai_infra-<slug>, sha canonical strip-\r+strip-1-leading-newline (🔴 CẤMGet-Content -Raw— :28), Write tool, selftest-stamp 6c NGAY sau Write, log_indexbước 7 CÙNG LƯỢT (bài reconcile S123_index.md:75); to=ai_infra → không cần bản CC. - WAL:12 (đĩa): ask do-token = pending (errata batch hub) · ask #2 bookend ĐÃ RESOLVE S127 ✓ KHỚP verdict A row 0 — đừng đóng ask do-token trong email.
Spec execute
- 5 file adap-reports:
2026-07-15-Governance-h17-cadence-update-bookend.md— UPDATE (sau 2a): thêm mục "Re-verify nhịp S127": 4 sàn nguyên · counter GIỮ + evidence 3→6/2-ngày · 2 citation re-tuned · nấcexecuted.- Bản 2 — NEW (Việc 3).
- Bản 3 — NEW (Việc 4d).
- Bản 4 — NEW (Việc 5).
- Bản 5 — NEW: nấc
executed+ evidence = diff rag.json:26/:31 + commit-sha + verify-outputFalse; honest-caveat "hiệu-lực index chờ re-bootstrap (AI_INFRA op); data cũ giữ nguyên tới re-index (broadcast §3)".
- Email GỘP: id đề-xuất
2026-07-<ngày-gửi>-se-to-ai_infra-adap-dot-16-07-bao-nac→broadcasts/outbox/ai_infra/. Body ≤ ~1 trang: nấc per-bản ×5 (1 dòng/bản) + ack thư 0 (3 ghi-nợ hub = acknowledge-only, không cần SE làm gì) + 1 dòng "contextual_retrieval flipped false (rag.json SE) — chờ re-bootstrap" + 1 dòng counter-GIỮ (điều-kiện gỡ hub không áp: phiên ngắn-nhiều, 3 tick/2 ngày) + ask do-token GIỮ pending. Full-grammar VN outward (harness-7). Reviewer-gate outward trước gửi (send-email.md:37 — wave này = HMW-review Harness-9 2-workflow phủ). - Thứ-tự D: 4a/4c/2a/2b-đợi-gate → 5 reports → email (6c stamp + bước 7 cùng lượt) → STAGE-2 move (2d) → closeout.
- Verify: 5 file tồn tại đủ 5 trường; email selftest-stamp PASS +
_indexOUTBOUND +1 row;git log --onelinecác commit scope[CLAUDE] Docs:/Governance. - Lane D: HMW-worker ✅ toàn bộ (input = draft này); riêng thứ-tự phải giữ.
PHÂN-LANE D tổng + gate chờ anh (gộp 1 lần hỏi)
| Việc | Lane | Ghi chú |
|---|---|---|
| 1 | HMW-worker | in-repo SE (LỆCH-1); verify python parse |
| 2a | HMW-worker | đính-chính khớp published |
| 2b | ½ worker ½ CHỜ-ANH | session-start.md = worker; memory-budget.json _owner_ratified = anh OK wording |
| 2c | 0-diff | text vào report bản 1 |
| 2d | HMW-worker | chạy CUỐI, hash-verify trước move (check-email.md:28) |
| 3 | HMW-worker (transcribe) | seal-verify codify = CHỜ-ANH (backlog) |
| 4a | HMW-worker | comment-only, ASCII #30 |
| 4b | CHỜ-ANH chọn iii/ii | rồi worker apply |
| 4c | HMW-worker | verified-pending restart |
| 4d+5+6 | HMW-worker | theo khuôn LOCK + send-email 6c/7 cùng lượt |
3 gate chờ anh (1 câu hỏi gộp): (i) wording mới _owner_ratified (2b — không đổi 6/15/3) · (ii) C2 lối-thoát: rename vs exemption-note (4b) · (iii) seal-verify curate ritual = codify doc-checklist hay defer (Việc 3).
Self-acceptance (spec ③) — tự check trước return
- 6 việc × 4-trường {file-đích · diff before→after · lệnh verify · gate} + phân-lane D
- ≥5 evidence file:line TỰ MỞ (đếm được ~18: rag.json:26/:31 · projects.py:39/:54 · AI_INFRA rag.json:33/:38 · bookend-report:8 · session-start.md:206 · memory-budget.json:4/:65/:89/:92/:123/:144 · .session-counter.json:13-20 · _index.md:11/:33-38/:75 · backfill:25/:117-119/:126-131 · mfe-eval:166-180 · selfimprove-audit:18/:110 · wal-flush:12-23 · detectors:833-845 · measure:14-41 · sleep-cmd:28/:52-60 · adap-report.md:13-19 · send-email.md:28/:31-33 · check-email:20-28 · WAL:12 · reviewer.md:35)
- ≥1 LỆCH explicit (LỆCH-1 vị-trí file Việc 1) + các KHỚP có thử-phá (xem addendum LỆCH section)
- Per việc ≥1 acceptance chạy được cho D
- Draft = file DUY NHẤT được ghi; 0 file khác chạm; 0 store_memory
Mục LỆCH vs verdict A (adversarial log — cập nhật dần)
LỆCH-1 (Việc 1 — VỊ-TRÍ file, không phải giá-trị): config cần flip nằm TRONG repo SE, KHÔNG phải AI_INFRA
- Spec B (lead brief) nói: "Việc 1 nằm ở repo khác:
D:\Dropbox\CONG_VIEC\AI_INFRA\**— tìm config RAG per-project SE trong khung AI_INFRA". - Đĩa nói: file per-project của SE =
D:\Dropbox\CONG_VIEC\SOLUTION\SOLUTION_ERP\.claude\rag.json(TRONG repo SE). Cơ chế:AI_INFRA\claude-rag\lib\projects.py:43-56 load_project_config()walk-up từ cwd tìm.claude/rag.jsonper-repo;cfg.setdefaultchỉ merge key THIẾU → keycontextual_retrievalCÓ trong file SE nên override default False của khung. - Giá-trị verdict A KHỚP đĩa 100%: SE
rag.json:26="contextual_retrieval": true,✓ ·:31rationale"...Evaluate per eval recall@5 trial week 3."treo (trial 2026-06-16 không chạy) ✓ · mirrorprojects.py:39=False+ commentOWNER-FINAL 2026-07-16 (s100)ĐÃ có sẵn phía hub ✓. - Phía AI_INFRA KHÔNG cần sửa gì:
AI_INFRA\.claude\rag.json:33đãfalse(từ 2026-05-26, rationale :38) +projects.py:39đãFalseowner-final. SE chỉ sửa file của mình. - Hệ-quả lane D: Việc 1 KHÔNG phải cross-repo-write → HMW worker mechanical ĐƯỢC (edit in-repo 2 dòng), không cần lead-solo cross-repo. AI_INFRA chỉ-đọc để verify mirror (đã verify lượt này).
- Hedge bản 5 "có thể đúng sẵn" KHÔNG áp SE — CONFIRMED trên đĩa: SE override explicit
trueline 26 → phải flip (khớp verdict A).
Addendum — các KHỚP đã THỬ PHÁ (adversarial log, không chỉ xác nhận mù)
| Anchor verdict A | Cách thử phá | Kết quả |
|---|---|---|
| rag.json:26/:31 | Nghi file verdict A trỏ = AI_INFRA rag.json → mở CẢ HAI file + trace cơ-chế load (projects.py:43-56) |
Giá-trị khớp ở file SE; AI_INFRA:33 đã false → LỆCH-1 (vị-trí, spec theo đĩa) |
| bookend-report dòng 8 "7 khoản SAI" | Đối chiếu ngược bản published §2 + reviewer_gate M-1 ("năm-sai-hai-đổi-cách-đọc 3-chỗ") | KHỚP lệch-thật — report SE viết theo draft cũ trước fold M-1 |
| session-start.md:206 | Đọc cả block :185-206 xem caveat có tự-đứng không cần hub không | Stale THẬT: neo "n=1 ở hub"/run-2-hub nay không tồn tại (hub gỡ trước run-2, bookend §4) |
memory-budget.json _owner_ratified |
Grep line-number thật (:123, verdict A không ghi số dòng) + xem 6/15/3 có phải đổi không | Chỉ đổi CÂU NEO, số giữ — khớp scope verdict A "(c) GIỮ counter" |
| counter "phiên ngắn-nhiều" | Mở .session-counter.json đếm tick thật thay vì tin mô-tả |
3→6 trong 07-15→07-16 (2 ngày) = đúng điều-kiện-KHÔNG-gỡ |
| backfill:117-119 "calibrated" | Grep cùng-lớp `/4.0 | /3.0` toàn scripts xem verdict A có sót site nào |
| "bản 2 seed: budget.measured STALE consumer ignore" | Mở selfimprove-audit :18/:110 + kiểm archive-gate/backfill có đọc budget.measured không |
Cả 2 script đo live, 0 automated reader → seed ĐÚNG và còn MẠNH hơn (0 reader, không chỉ 1 reader-ignore) |