Files
solution-erp/docs/changelog/sessions/2026-06-29-S93-pe-projectcode-harness16-mfe.md
pqhuy1987 ea075bac00 [CLAUDE] Docs: S93 closeout — PE project-code (Run #473) + Harness-16 MFE adopt + harvest
Closeout 2 task: (1) PE tree node Du an hien MA du an (8ee8f3e Run #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>
2026-06-29 19:01:19 +07:00

6.8 KiB
Raw Blame History

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). PeListItemprojectName 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 sitereplace_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 xz8FdmLNCDn40vpV / user CA8Rla2wCoPmPBg7 (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.