# S93 (2026-06-29) — PE tree project-code (anh Kiệt) + adopt Harness-16 MFE (2-workflow)

> HMW-mode ON. 2 việc: (1) sản phẩm PE prod-verified · (2) governance adopt 0-production-code. ~9 agent/workflow spawn.

## Task 1 — PE: cây Duyệt NCC node Dự án hiện MÃ thay tên dài (prod-verified Run #473 `8ee8f3e`)

**Anh Kiệt FDC (Zalo + screenshot):** node 📁 Dự án trong cây "Năm > Dự án > Hạng mục > Phiếu" hiện TÊN dài ("Phân xưởng homecare 75 tấn/ngày và các hạng mục") → "bắt mã dự án nhé" (tên quá dài, user thấy vướng).

**Chẩn:** `PurchaseEvaluationsListPage.tsx` tree render `pg.projectName` (line 452). `PeListItem` có `projectName` nhưng KHÔNG `projectCode`; BE list query select `p.Name` không `p.Code`. → cross-stack tight (1 field BE→FE) = em-main solo nhanh hơn fan-out.

**Fix (7 file, 17+/10−, NO migration):**
- BE: `PurchaseEvaluationListItemDto` +`ProjectCode` (positional record) + thread `x.p.Code`/`p.Code` vào **3 projection** (List 622 + Inbox 739 + ListApproved-from-evaluation `CreateContractFromEvaluationFeatures:178`) + search PE khớp thêm `p.Code`.
- FE 2 app SHA-mirror: `PeListItem` +`projectCode`; tree node render `pg.projectCode || pg.projectName` + tooltip=tên + sort theo code (fallback name).
- **3 DTO construction site** — `replace_all` bắt 2, grep `new PurchaseEvaluationListItemDto(` bắt site #3 (`e.ProjectId, p.Name,` không có `x.` prefix → thoát replace_all) → BE build đỏ CS7036 → fix. **Bài học `feedback_cardinality_change_grep_consumers`: đổi positional record = grep MỌI construction site.**

**Verify:** dotnet build 0/0 · npm build ×2 PASS · test **434** (45D+389I). Commit `8ee8f3e` → cicd **Run #473/#359 PASS** ~5m23s: bundle admin `xz8FdmLN`→**`CDn40vpV`** / user `CA8Rla2w`→**`CoPmPBg7`** (JS rotate, CSS frozen logic-only); Mig prod=59 unchanged; smoke 4×200. **NEXT UAT anh Kiệt:** node 📁 hiện FLOCK02/RMIT01 (mã) thay tên; nếu ô khoanh là Hạng-mục (không phải Dự-án) → đổi sang work-item code (1 phút).

## Task 2 — adopt Harness-16 MFE (memory-fidelity-EVAL), commit `9580098`, 0 production code

**Flow:** `/check-email AI_INFRA` (0 thư directed mới) + `/adap-apply` (33 broadcast vs 23 report) → **MỚI = Harness-16 MFE (3 broadcast 29/06)**; H15-v3-sub-load-channels = covered-S83 + fold; 8 broadcast cũ = verify-covered (name-drift).

**2-workflow mandate (Harness-9):**
- **WF1 IMPLEMENT** `wf_4c63e1bd-99e` (3 agent ground-truth: lead-denominator-spec + sub-role-denominator + cross-harness-map). **Bắt 1 BLOCKING vocab-fork** (xharness reviewer): "memory-fidelity" ĐÃ là H6.7 `memoryDelta`-routing-fidelity → đặt tên H16 = **MFE = memory-fidelity-EVAL**, ghi alias-map §H, KHÔNG seed `$aliasSets` (2-khái-niệm-1-từ ≠ fork-to-merge). **#53 recover-from-disk:** sub-role-denominator agent return rỗng nhưng ĐÃ ghi finding vào diary trước → em-main đọc lại.
- **AS-10 2nd-fire dogfood:** 3 WF1-agent (return-only) tự-ghi agent-memory (diary + archive-self-curate + stray `project_s92_*` mis-named) → git-diff post-P2 containment bắt ALL → em-main revert (giữ cicd-monitor PE-harvest). Guard HELD. → ledger E-006 recurrence.
- **em-main author** (single-writer, 8 artifact): `scripts/mfe-eval.ps1` (deterministic NO-API ASCII#30 exit-0: LEAD coverage-FIT token-RANGE live-read-cap + age-band flag-not-cut + Goodhart-anchor strikes/RCA · SUB per-role coverage đo-thật content-word-match defeat-leading-verb · sub-workflow N/A · prose-role→N/A KHÔNG 0%) + `budget.json:mfe` config + `eval/mfe/` (seed 12-câu stable-id + README) + engine §H + artifact-row + C3-comment + wire `session-start §2.1.6`/`session-end §L.b(c)` opt-in + agents/README S93. Judge layer = SCAFFOLD-only (honest: số chưa nghĩa tới khi age-mature + independent judge).
- **WF2 REVIEW** `wf_13e3d35a-023` (3 lane) = **PASS 0-blocking, RETURN-ONLY honored (0 residual** — WF2 thêm "do NOT write" prompt → instruction-fix worked): code-gate re-derived denom-29 to-the-digit + leading-verb-trap adversarial-probed-DEFEATED; cross-harness READ-ONLY-budget proof (1 write-op=.mfe-state.json) + 0-conflict; honesty 5-floor + live-numbers-KHỚP-§H (S81 stale-config trap KHÔNG tái). 2 minor → fixed (read_only_scope caveat + README judge-cost wording).

**MFE đo SE hiện tại:** LEAD denom **29 item** (4 mark + 13 AS + 5 guard + 7 gotcha, dedup-by-AS-cross-reference) / 220K = **1.5%** FIT thừa; Goodhart strikes 21/RCA 9. SUB: impl-backend 94% · impl-frontend 85% · reviewer/inv-codebase 88% · cicd 100% · 3 prose-role N/A.

**Artifact:** adap-report `2026-06-29-Governance-harness-16-mfe.md` + `2026-06-21-Governance-harness-15-v3-sub-load-channels.md` (covered/folded) + email `outbox/ai_infra/2026-06-29-se-to-ai_infra-harness-16-mfe-report.md` (hash `da768330…`) + `.gitignore` state-file. commit `9580098` push (docs-only CI-skip).

## Lessons
- **Cardinality/positional change = grep MỌI consumer** (`feedback_cardinality_change_grep_consumers`) — site #3 thoát `replace_all` vì viết khác prefix; chỉ grep construction-site toàn repo mới lộ.
- **Vocab-collision on adoption** — adopt khái-niệm-có-tên → grep term-collision (tên mới có thể đã mang nghĩa khác trong hệ); 2-workflow review là cái bắt được (1-workflow self-chấm sẽ trượt). alias-map ≠ seed-detector (2-concept-1-word KHÔNG phải fork-to-merge). Folded vào memory `feedback_harness9_l2_recovery_2workflow_adap`.
- **AS-10 instruction-fix:** workflow-agent frontmatter "update MEMORY before return" đấu với return-only → prompt PHẢI override tường-minh ("do NOT write ANY file") + git-diff post-P2 = net. WF1 (không override) → 3 residual; WF2 (override) → 0 residual.
- **MFE dogfood "đóng vòng":** detector D1 OOM đầu phiên (STATUS mega-line 61K-char) = "đã-nạp khổng-lồ nhưng dùng được %?" — đúng câu hỏi MFE trả lời.

## State THẬT (GIỮ NGUYÊN — Task 2 = 0 production code; Task 1 NO-migration)
**Mig 59 · 88 bảng · 434 test (45D+389I) · gotcha 76 · menu 54 · bundle admin `CDn40vpV`/user `CoPmPBg7` · prod 17 user/7 NCC.**

## 🔴 NEXT
- **Anh:** ⚠️ restart CLI (MFE opt-in + wire session-start/end + agents/README no hot-reload) · UAT eoffice node Dự án hiện mã (anh Kiệt).
- **Em (carry):** monthly **2026-07-01 (2 ngày) GẤP** — re-tier STATUS/HANDOFF mega-line (detector D1 **OOM do bloat** = tooling vỡ, không chỉ "khó Read") + ef-core SKILL Mig→59 + docs/CLAUDE Budget-removed + 3 vocab-fork alias-map. + curate test-specialist/FD L1 WATCH (carry). MFE retention chạy `/session-start … eval` sau restart.
- **Pending product:** Section B cột Dự-án wire · Ngưỡng giá CEO Mig 54 Designer UAT · "C" chuyển phiếu→dự án chờ spec.
