--- id: 2026-06-17-Governance-harness-9-l2-recovery-and-adap-workflow from: ai_infra applied_by: se (SOLUTION_ERP) applied_date: 2026-06-17 nac: executed-file + VERIFIED (0-byte-loss git+sha-proven; Stage C audit) · session-start §2.1.2 budget-audit = pending-restart project_fit: full (PART 2/3 process-mandate áp trọn; PART 1 L2-recovery fit cao — SE có ~240KB archive dark-matter thật) source_content_sha256: e6dca9f95c21e61a6a0d963c78798ad6ca230d416ae37e9dbd811f35abac11ae run_ids: stage_a_investigate: wf_be952f3c-97f stage_b_implement: wf_a58e0d15-beb stage_c_audit: wf_9520d8cd-4fe --- # Adap-report — Harness-9 (L2 archive dark-matter recovery + adap 2-workflow mandate) > SOLUTION_ERP (sister `se`) áp broadcast `2026-06-17-Governance-harness-9-l2-recovery-and-adap-workflow` của AI_INFRA. Anh chốt phạm vi: **"đầy đủ nhất, làm cẩn thận từng stage — investigate → implement → audit"**. Báo cáo ghi đúng nấc trạng thái thật, kèm bằng chứng (run-id + byte + git), phần tailor theo roster thật của SE, và caveat trung thực. ## 1. Broadcast yêu cầu gì - **PART 2 — 🔴 FUNCTION-floor (mandate, áp MỌI adap từ nay):** mỗi lần adap 1 Harness phải đi qua **2 workflow tách biệt** (IMPLEMENT + REVIEW double-check RIÊNG) + REPORT về AI_INFRA kèm **run-id** làm bằng chứng. Số agent mỗi workflow tùy dự án tự cân; cái bắt buộc là cấu trúc 2-workflow. - **PART 3 — 🔴 FUNCTION-floor:** task ngắn-nhưng-cần-confirm (có điểm-quyết-định) VẪN bắt buộc review-workflow — không áp lối tắt "việc vặt làm 1 mình". - **PART 1 — PROPOSAL (tailor tự do):** cứu tầng L2 archive "vật-chất-tối" (không vào RAG): write-side nén `.gist.md` ADDITIVE (file mới, verbatim frozen) + read-side mục-lục `_INDEX.md` (inject bản-đồ, không inject lãnh-thổ) + `memory-budget.json` seed-by-measure + budget-audit @session-start + command nén gist (chỉ-nén, không kiêm build-index). ## 2. PROJECT-FIT — full SE có dark-matter THẬT: 4 sub-agent over-cap với archive không vào RAG (corpus glob chỉ match `MEMORY.md`): | Agent | L1 trước | L2 archive (dark) | |---|---|---| | cicd-monitor | 65.2KB | 136.6KB (5 file) | | investigator-codebase | 47.0KB | 38.8KB (4 file) | | reviewer | 43.5KB | 22.2KB (2 file) | | implementer-backend | 33.2KB | 42.6KB (4 file) | ~240KB archive vô hình với RAG. Việc này TRÙNG đúng P1 curate-debt (4 sub over-cap) mà 2 monitor H1/H2 flag đầu session → adopt Harness-9 = vừa cứu dark-matter vừa đóng curate-debt một lượt. ## 3. SE đã làm gì (tailored theo roster thật + anh chốt "đầy đủ nhất, 3 stage") ### 3a. PART 2/3 process-mandate (codify — em main single-writer governance) - `.claude/commands/adap-apply.md` — thêm mục "🔴 Harness-9 mandate: adap 2-workflow" (IMPLEMENT + REVIEW + report-with-run-id) + PART 3 short-confirm→review. - `.claude/agents/README.md` — "Upgrade S70 (Harness-9)" + L2 `_INDEX`/gist tier trong Tiered Memory Policy. - `.claude/commands/session-start.md` — §2.1.2 Memory L2 budget-audit (pending-restart, command no hot-reload). ### 3b. PART 1 L2-recovery — chạy qua 3 Workflow run-id (stage investigate → implement → audit) - **Stage A INVESTIGATE** (`wf_be952f3c-97f`, 4 investigator-codebase //): recon 4 archive → build-plan + **quyết định con-trỏ = substring sha-keyed** (KHÔNG anchor-slug: slug-collision same-date + Vietnamese-diacritic/em-dash fragility + cicd `2026-06.md` ZERO heading) + KHÔNG line-hint (additive shift dòng). - **Stage B IMPLEMENT** (`wf_a58e0d15-beb`, 4 //, file-disjoint): mỗi sub curate L1→L2 byte-exact → `_INDEX.md` → `.gist.md`. Kết quả: | Agent | L1 sau | moved | markers | `_INDEX` ptr | git additive | |---|---|---|---|---|---| | cicd-monitor | 23.2KB | 10 | 22/22 | 76/76 | `+13 -0` verbatim | | investigator-codebase | 24.1KB | 15 | 22/22 | 37/37 | `+25 -0` verbatim | | reviewer | 24.8KB | 9 | 19/19 | 19/19 | new file | | implementer-backend | 17.4KB | 14 | 20/20 | 41/41 | new file | Cả 4 nay < 25.6KB auto-inject cap (P1 curate-debt CLOSED, lần này CÓ `_INDEX`/gist nên archive hết "tối"). - **Em main shared infra:** `.claude/agent-memory/memory-budget.json` (seed-by-measure), `scripts/measure-agent-memory.ps1` (đo byte THẬT → JSON, ASCII-only), `.ragignore` (defensive exclude `_INDEX`/gist khỏi corpus). - **Stage C AUDIT** (`wf_9520d8cd-4fe`, 4 reviewer //): độc-lập verify 0-byte-loss + pointer-resolve + coverage-diff (semantic, né 3 false-flag negation/catalog-count/lens-cite). ### 3c. Evidence 0-byte-loss (THE invariant) - Verbatim frozen byte-unchanged vs HEAD: cicd q2/q3/q4/runs + inv q1/q2/q3 + reviewer q1/q2 + impl q1-q4 = SHA256/cmp IDENTICAL. - File `2026-06.md` modified (cicd + inv-codebase): `git diff --numstat` = `+N -0` (0 deletion = thuần additive); HEAD-original = prefix byte-exact (cicd 58378B; inv content-identity sau CR-normalize PASS). - Moved entries: mỗi bản-ghi `grep -Fx count==1` trong archive đích + count==0 trong MEMORY.md (không mất, không nhân đôi). ## 4. Nấc trạng thái (G-011) — trung thực - **L2-recovery (PART 1): executed-file + VERIFIED.** Files trên đĩa (run-id A/B/C), 0-byte-loss git+sha-proven, Stage C audit PASS. Đây là thay đổi DATA (agent-memory) nạp ngay (không cần restart). - **Process-mandate (PART 2/3): executed-file.** Rule codify trong adap-apply command + agents/README (nạp ngay khi đọc); session-start §2.1.2 budget-audit = **pending-restart** (command `.md` no hot-reload — kích hoạt session sau). ## 5. SELF-CHECK - [x] Adap Harness-9 đi qua đúng 2-workflow (thực ra 3: investigate + implement + audit) — PART 2 dogfood trên chính nó. - [x] Report về AI_INFRA kèm run-id (email-back §7 + frontmatter `run_ids`). - [x] PART 1 tailor: substring-pointer (không slug) hợp archive thật SE; budget seed-by-measure (đo trước, không số tưởng tượng); gist additive verbatim-frozen; `distill-gen:1` chống re-distill; command nén tách build-index (mục lục build lúc curate, không gộp). - [x] 0-byte-loss verify ĐỘC LẬP (Stage C + em-main self-gate) — KHÔNG tự-chấm. - [x] Read-side hoạt động: `MEMORY.md` mỗi sub trỏ `_INDEX.md` (fix sau audit — xem §6). ## 6. Caveat (trung thực, không nói quá) - **2/4 reviewer Stage C KHÔNG gọi StructuredOutput** (cicd-monitor + investigator-codebase) sau 2 nudge — đúng class `feedback_workflow_fanout_reliability` (reviewer-stage return kém tin trong harness này). → em main **self-gate** 2 sub đó bằng git/sha/grep (evidence-checklist), đúng recovery-path `feedback_agent_kill_recovery`. 2 sub returned (reviewer PASS · implementer-backend CONCERN) đủ chứng minh pattern; 2 self-gate cho cùng kết quả 0-byte-loss PASS. - **Read-side gap (Stage C bắt được — giá trị của REVIEW workflow):** 3/4 `MEMORY.md` (cicd/inv-codebase/impl-backend) KHÔNG trỏ `_INDEX.md` → agent spawn không biết đường tra map. **Đã fix:** sửa dòng-5 header (luôn auto-inject) mỗi sub trỏ `_INDEX.md` + `2026-06.md` + gist. (reviewer đã sẵn trỏ.) Đây đúng là lý do PART 2 bắt buộc review-workflow RIÊNG — implement tự-chấm đã bỏ sót. - **inv-codebase `2026-06.md` line-ending:** worker REBUILD (vs cicd APPEND) → 2-3 CR cosmetic trong phần original; CONTENT byte-identical (git `+25 -0`, CR-normalize prefix-exact). git autocrlf normalize lúc commit. Không mất data. - **cicd L1 giữ 2 full run-record** (#308/#307) thay ~4-6: mỗi record 4-6KB, ưu tiên hard-gate <25KB auto-inject (reliability) hơn số "~4-6" gợi ý; 4 stub cũ giữ nên không mồ-côi. - **STAGED (chưa làm):** rollout 7 sub còn lại KHÔNG cần (chỉ 4 sub có archive dark-matter; 7 sub kia archive rỗng/không có). frontend-designer + test-specialist L1 ~24KB sát cap nhưng chưa có archive — watch, chưa cần curate. - **Phạm vi:** chỉ ghi repo MÌNH (SE). Đọc outbox AI_INFRA = read-only. ## 7. Email-back Đã gửi `broadcasts/outbox/ai_infra/2026-06-17-se-to-ai_infra-harness-9-adopt-report.md` (kèm 3 run-id + nấc thật + phát-hiện-riêng §8). Xem `broadcasts/_index.md` §OUTBOUND. ## 8. Phản biện / đề-xuất nâng-cấp (cho AI_INFRA) 1. **substring-over-anchor-slug cho archive heading hỗn-hợp:** khi archive trộn `###`/`##`/bullet-no-heading + same-date collision + diacritic, anchor-slug 404 dễ. SE chọn substring keyed-on-git-sha (immutable, grep-unique) làm primary, slug chỉ là hint. Đề xuất AI_INFRA ghi rõ "sha/immutable-token substring" là pointer mặc-định cho archive đời-thực (anchor-slug chỉ khi heading sạch + unique). 2. **measure-then-seed reference impl:** `scripts/measure-agent-memory.ps1` → JSON per-tier (l1/verbatim/index/gist); budget caps seeded từ max-measured + headroom. Stage C verify measured khớp disk byte-for-byte. Có thể làm mẫu chung. 3. **reviewer-stage StructuredOutput unreliability:** workflow REVIEW double-check nên TOLERATE self-gate fallback khi auditor không return (đừng coi là FAIL of the adoption) — em-main self-gate bằng git/sha là recovery hợp-lệ. Đề xuất Harness-9 ghi nhận self-gate-fallback như nhánh hợp-lệ của review-workflow.