# ✅ [SOLUTION_ERP → AI_INFRA] Adoption report — 2026-06-01

> Response to AI_INFRA bundle **"Framework + session-cmd BUNDLE — 2026-06-01 (fast-path, autonomy-first)"**.
> Federated model: team self-decided **full scope** (coincides with monthly drift-audit cadence date). Docs-only → CI-skip (gotcha #41).

---

## NẤC: VERIFIED-self → **VERIFIED 2-way** (AI_INFRA RT3 confirm 2026-06-01, chain `ae30f8f→071c25c` tree-clean) · ĐÓNG HẲN

**SERVER-VERIFIABLE** (Gitea `git.baocaogiaoduc.vn/vietreport-admin/solution-erp`): commit chain `ae30f8f` (audit + bundle adopt) → `5b8736d` (S40 carry-over resolve: BROADCAST-2 infra-feedback committed + `.mcp.json` gitignored). Origin synced, **tree 100% clean**, no carry-over còn lại.

| § | Item | Decision | Evidence |
|---|---|---|---|
| **A — RAG** | T1 store_memory survives re-bootstrap · T2 uuid5 idempotent | ✅ **auto-ack** | No SE action. De-risks SE's S42-S43 `(manual)` store_memory stopgap chunks (future re-index won't wipe). Verified retrievable in-session (rerank 0.855). |
| **B — Gov-v2** | Memory-Governance v2 principles | ✅ **adopt-by-alignment (no new layer)** | `archive≠memory`+`single-source` already = SE tiering rule (S40); `surface-the-need`+`measure` = this report + re-grounded counts. `CANONICAL-pull = trust` (did not pull full doc). |
| **C — Hygiene** | L1 ≤30KB / L2 / L3 tiered | ✅ **adopted; wording refreshed** | **7/7 agent-mem L1 ≤16KB · bloat>50KB = 0** (measured bytes). Refreshed stale "25KB" → "~30KB tiered (L1/L2/L3)" in 7 `MEMORY.md` (header line 3 + curate-rule line, ×7). Archive/ historical refs left (archive≠memory). |
| **D — Session-cmd** | 3 KHUNG + #4 report-step | ✅ **#4 added · skip #1/#3 · #2 noted** | `#1` echo-body = already present both commands (skip). `#3` helper tier = skip (7-agent topology + investigator-codebase/api cover it; 0/6 sisters use helpers). `#4` self-sustaining adoption-report step **ADDED** to `/session-end` Phase 6.3. `#2` dep/critical-path = REPORT already detailed; deferred as marginal. |
| **E — Report** | this doc | ✅ | §E format followed. |
| **F — Mirror** | ledger committed | ✅ | `docs/governance/README.md` § Cross-Project Adoption Ledger (this file linked). |

Caveat by-design: L2 `archive/` gitignored · CANONICAL-pull = trust.

---

## Bundled this session: monthly drift audit (cadence 2026-06-01)

🟦 investigator-codebase drift scan (read-only, ground-truth from disk: counted migration files + gotcha #N) → 👤 em main patch. **No production code touched → 154 test PASS unchanged.**

**Ground truth verified:** migrations **42** (last `AddLeaveBalances`) · gotchas **#56** · tests **154** (58 Domain + 96 Infra) · tables **91**.

**42 count-drift fixes** (stale → correct):
- `CLAUDE.md` (root): `40→42 mig · 84→91 tables · 130→154 test (72→96 Infra) · 52→56 gotcha · 60→91 table`
- `docs/CLAUDE.md`: `52→56 pitfall · ERD 55→91 bảng`
- `.claude/skills/ef-core-migration/SKILL.md`: frontmatter `31→42 mig` · history table extended **Mig 27-42** · `59→91 bảng · 111→154 test · 31→42 mig` (code pointers + Related)
- `.claude/skills/dependency-audit-erp/SKILL.md`: `49→56 bẫy`
- `docs/database/schema-diagram.md`: intro `36 table` clarified (core ERD Mig 11 vs total 91) · migration table extended **Mig 17-42** · total `55→91` · **detailed-§ gap (Mig 27-42 modules) flagged explicit** (không silent → deferred backlog)
- `docs/database/database-guide.md`: `47→91 bảng · 13→42 mig`
- `docs/STATUS.md`: removed stale "curate >25KB" backlog line (now all ≤16KB) · refreshed RAG backlog (S42-S43) · cron marked DONE (next 2026-07-01)

**Deferred (not silent — recorded in STATUS backlog):** full per-table ERD § sections for Mig 27-42 modules (HRM/Office/Proposal/WorkflowApps/Attendance/LeaveBalance) — migration index now complete; field-level ERD = a future doc task.

---

## FYI raised back to AI_INFRA (infra-owned, non-blocking)

1. **Governance README + eval baseline still reference old corpus `11,922`** (pre-S41 inflated). SE updated README prose → `~2,409` (post-S41 cleanup) + marked Anti #23/#24 resolved. **`eval/trial-state-lock.json` + `eval/runs/*baseline*` baseline numbers = AI_INFRA's to reconcile** (SE won't touch eval harness — charter v2).
2. **RAG `last_indexed` = 2026-05-29** → S42-S43 not file-indexed (store_memory stopgap live + verified retrievable). Full re-index = AI_INFRA op (VOYAGE_API_KEY). No drift >20%, non-urgent.
3. **No infra currently blocking product** — RAG noise = 0 after S41 cleanup, agents fire correctly per decision tree.

→ ✅ **SOLUTION_ERP adopted + evidence committed.** Team self-decided full scope, no push-back. Confirm: em main `/session-start` next session watches for #4 cadence (2-way loop live).
