Closeout 2 task: (1) PE tree node Du an hien MA du an (8ee8f3eRun #473 prod-verified) (2) adopt Harness-16 MFE memory-fidelity-EVAL (9580098, 2-workflow PASS). - STATUS + HANDOFF: prepend S93 (mega-line via PowerShell, S92->Prev). - session log 2026-06-29-S93-pe-projectcode-harness16-mfe.md. - error-ledger E-006: AS-10 2nd-fire recurrence (WF1 3-agent residual caught+reverted; WF2 explicit-return-only -> 0 residual) + containment guard verified S93. - harvest (B3 single-writer APPEND): investigator-codebase (MFE ground-truth extraction-spec) + reviewer (MFE adoption review WF2 PASS) diaries. - user-MEMORY index compacted 23.7->7.8KB (hook), all 38 entries kept, vocab-collision lesson folded into 2-workflow entry. State unchanged (Mig 59 · 88 tables · 434 test · gotcha 76 · bundle CDn40vpV/CoPmPBg7). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
6.8 KiB
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) + threadx.p.Code/p.Codevào 3 projection (List 622 + Inbox 739 + ListApproved-from-evaluationCreateContractFromEvaluationFeatures:178) + search PE khớp thêmp.Code. - FE 2 app SHA-mirror:
PeListItem+projectCode; tree node renderpg.projectCode || pg.projectName+ tooltip=tên + sort theo code (fallback name). - 3 DTO construction site —
replace_allbắt 2, grepnew 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ọcfeedback_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.7memoryDelta-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:mfeconfig +eval/mfe/(seed 12-câu stable-id + README) + engine §H + artifact-row + C3-comment + wiresession-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átreplace_allvì 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 … evalsau 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.