---
name: feedback_harness9_l2_recovery_2workflow_adap
description: Harness-9 adopt (S70) — adap 2-workflow mandate + L2 archive _INDEX/gist dark-matter recovery + self-gate-fallback when reviewer no-return
metadata: 
  node_type: memory
  type: feedback
  originSessionId: 64e448e7-56cf-4e11-8afd-a178dbe7646b
---

Adopt AI_INFRA Harness-9 (S70, 2026-06-17, commit `f36aab8`). Hai phần:

**PART 2/3 mandate (🔴 áp MỌI adap từ nay):** mỗi adap 1 Harness = **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. Task ngắn-nhưng-cần-confirm (có điểm-quyết-định) VẪN bắt buộc review-workflow — KHÔNG lối tắt "việc vặt làm 1 mình". Codify `.claude/commands/adap-apply.md` + `agents/README` Upgrade S70.

**PART 1 L2-recovery (SE tailored):** archive `agent-memory/<sub>/archive/*.md` KHÔNG vào RAG (corpus chỉ match `MEMORY.md`) = "vật-chất-tối". Fix per over-cap sub: `archive/_INDEX.md` (mục-lục 1-dòng/bản-ghi + con-trỏ **substring sha-keyed**, Ctrl-F fallback, KHÔNG anchor-slug/line-hint) + `<period>.gist.md` (nén 4-field, `distill-gen` counter, verbatim FROZEN additive) + `MEMORY.md` L5 header trỏ `_INDEX.md` (read-side discovery). `.claude/agent-memory/memory-budget.json` seed-by-measure (`scripts/measure-agent-memory.ps1`) + budget-audit @session-start (`session-start.md §2.1.2`) + `.ragignore` guard. S70 rollout = 4 over-cap sub (cicd-monitor/investigator-codebase/reviewer/implementer-backend) → cả 4 <25KB auto-inject cap (đóng P1 curate-debt lúc S70). ⚠️ **Re-opened S71** do same-role race ghi MEMORY chung lúc fan-out (reviewer 36.7KB/inv 29.8KB) → **re-closed sau curate L1→L2 (curate `wf_f32987b8-03f`)**; lesson + fix cơ-chế ở [[feedback_harness10_run_trace]] #2 (custom workflow PHẢI copy return-delta-guard).

**Why:** curate L1→L2 mù (như S66 cicd) tạo dark-matter không-tra-cứu-được. `_INDEX` map + gist làm archive retrievable lại — curate + recovery là CÙNG 1 motion.

**How to apply:**
- **Pointer = substring keyed on git-sha** (immutable, grep-unique). Anchor-slug 404 dễ khi archive trộn heading-level + same-date collision + Vietnamese-diacritic/em-dash. KHÔNG line-hint (additive append shift dòng).
- **0-byte-loss = bất biến số 1:** verbatim FROZEN (git numstat `+N -0` additive — 0 deletion); gist = file MỚI; curate-move byte-exact append CUỐI. Verify git/sha, KHÔNG tin self-report.
- **self-gate-fallback (recovery):** reviewer-stage workflow hay no-StructuredOutput (#53 family) → em-main self-gate bằng git/sha/grep = nhánh HỢP-LỆ của review-workflow, KHÔNG coi là FAIL của adopt (S70: 2/4 reviewer no-return → self-gate → 4/4 PASS).
- **REVIEW-workflow riêng có giá-trị thật:** Stage C bắt read-side gap (3/4 MEMORY.md không trỏ `_INDEX`) mà implement tự-chấm bỏ sót → đúng lý-do PART 2 tách 2 workflow.

Link: [[feedback_workflow_fanout_reliability]] · [[feedback_agent_kill_recovery]] · [[feedback_aiinfra_adap_channel]] · [[feedback_monthly_drift_audit]].
