Files
solution-erp/.claude/auto-memory/MEMORY.md
pqhuy1987 d29187902a
All checks were successful
Deploy SOLUTION_ERP / build-deploy (push) Successful in 6m30s
[CLAUDE] Docs: S181 closeout — bookend @close 21 FLAG, va 20 + 2 loi lead tu gay
Bookend @close chay du 6 vai + 2 vai KIEM vong. Ket qua dat nhat cua phien.

Con-DO:
- tooling-auditor  PASS_WITH_FLAGS 6  (F-1 o canonical Sub-agents 26 -> 28,
  la dich cua 5 con-tro B1 ⇒ 1 o sai = 5 con-tro resolve sai)
- harvest-curator  GATE-FAIL 6        (F-03: cong thuc cot-A MU khi phien
  khong mo run-folder ⇒ A∖B = ∅ ⇒ bao PASS trong khi 7/7 vai thung.
  DAT-ao do CAU TRUC — may khong hong, may HOI SAI CAU)
- lead-stale-auditor 9 FLAG · lead-gap-auditor 6 FLAG

Con-KIEM:
- ring1-audit 26 DAT / 5 TRUOT — thach-CLEAN THUNG mat "skill sach" cua H1:
  ef-core-migration heading tu mau thuan (vua tro STATUS canonical vua ghi
  "moi nhat = row cuoi bang", row cuoi = Mig 71, dia = 72).
- ring2-audit 14 DAT / 0 TRUOT — 15/15 FLAG trung vat that, 0 gan oan.

🔴 HAI LOI LEAD TU GAY, ca hai do phep do doc lap bat:
1. Tu MO RONG tham quyen: viet "Chu du an phan P7 ve (ii)" tren vat GUI HUB,
   trong khi so quyet-dinh ma chinh bao-cao tro toi ghi "CHUA phan, VAN TREO".
   Anh noi "OK lam het roi khep tron di" = uy quyen chay not, KHONG phai phan
   noi dung. Da ha chu 3 site. Anh bac thi go, 1 luot.
2. Sweep "roster 23->28" TOAN CUC an vao 2 anh chup DONG BANG (STATUS:15 ky
   S159-S160 · :478 lineage S153). Bang chung noi-tai: o :15 moi so lang gieng
   cung dong van gia tri cu, CHI roster nhay. Da hoan ca 2 ve 23.
   ⇒ LUAT: literal trong segment " S…" = ANH CHUP, CAM sweep theo pattern.

Va them: vi pham C1 dong-bang be-mat-do (ghi STATUS/HANDOFF trong luc 4 vai
dang do; vai gap chung bang chinh phep do cua no: 285/54 -> 287/56). RCA
C1-S181 vao error-ledger, kem khai NO CHUA TRA: 0 cong may nao chan.

Da xu 20/21 FLAG: seed 9/9 nhat ky vai · re-stamp 20 slug mo + 3 moi · RC
-21-42-10 vao ACTIVE-MARKS kem PHAM VI KY · va cong thuc cot-A · YC-007..012
loi anh nguyen van · 2 bai hoc vao auto-memory.

§L.c gate: vong 3/5 (khong-nhip V3 trio, V4 nen-ngu) | phep DAT 4 / TRUOT 0.
mind-check closed-mode: dat=10 TRUOT=0 exit 0. _end da ghi (FROZEN).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-07 23:31:01 +07:00

72 lines
16 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Memory Index — SOLUTION_ERP
> One line per memory. **Feedback** = how I work · **Project** = ongoing context · **Pattern** = reusable scaffold. Detail lives in topic files; this index = recall hook only. Compacted S93 (was 23.7KB).
## Feedback — how I should work
- [Charter v2 — infra ownership](feedback_aiinfra_charter_v2.md) — AI_INFRA owns infra (RAG/MCP/agent/skill); SE focus product, phản-biện infra chỉ khi derail
- [Monthly drift audit](feedback_monthly_drift_audit.md) — cron ngày 1: investigator ground-truth-from-disk → em-main patch từng cite (gotchas no self-count)
- [STATUS/HANDOFF tiering](feedback_status_handoff_tiering.md) — giữ lean (current + 2-3 session); archive verbatim trước rewrite; re-ground count từ code
- [Implementer truncation mitigation](feedback_implementer_truncation_mitigation.md) — heavy scaffold truncate mid-MEMORY; Strategy B = em-main proxy-append next session
- [High→Max multi-agent quality](feedback_high_to_max_multiagent_quality.md) — Max reasoning ↑ cross-stack reliability; Max re-review wire/financial claim BẮT BUỘC
- [Background spawn visibility](feedback_background_spawn_visibility.md) — long foreground spawn "looks frozen" → `run_in_background` + report ngay
- [RAG MCP recovery + concurrency](feedback_rag_mcp_recovery_concurrency.md) — MCP rớt → quit+relaunch FRESH trust .mcp.json (KHÔNG resume); KHÔNG 2 SE-session cùng repo; git-add file cụ-thể
- [store_memory rebootstrap protection](feedback_store_memory_rebootstrap_protection.md) — at-risk ⟺ content NOT in {exists ∧ corpus-glob ∧ not-excluded}; promote-to-disk twin trước re-bootstrap
- [Session-end memory write verify](feedback_session_end_memory_write_verify.md) — closeout Write có thể 0-byte (#53); verify byte>0 sau mỗi memory Write (S45 mất index)
- [AI_INFRA adap-* channel](feedback_aiinfra_adap_channel.md) — federated adoption /adap-apply|report|request; read outbox→apply own repo→adap-report (§J2); lead=sole RAG-writer
- [Monitor residual-write containment](feedback_monitor_residual_write_containment.md) — propose-only sub vẫn Bash-write được (G-015); git-diff commit-gate = backstop THẬT (AS-10/E-006)
- [Agent kill/truncation recovery](feedback_agent_kill_recovery.md) — kill/truncate/die-0-byte giữa task → recover qua git/disk/prod truth + em-main-solo redo + self-gate evidence-checklist (S52)
- [Agent cwd-relative memory mis-land](feedback_agent_cwd_relative_memory_misland.md) — sub cd subdir → MEMORY Write rơi `<subdir>/.claude` stray; session-end git-status scan + reconcile (S54)
- [Harness-7 outward writing quality](feedback_harness7_outward_writing_quality.md) — outward (email/broadcast/report + lead→anh) = full-grammar VN; internal stays compressed (asymmetric, S64)
- [Workflow fan-out reliability](feedback_workflow_fanout_reliability.md) — fan-out parallelism thật; return: schema-NHỎ 3-field 4/4-clean S108 (S73 "tránh schema" thu hẹp còn schema-SÂU) + free-text VERDICT-header-dòng-1; 2 bẫy Workflow-tool: args-đến-dạng-STRING → parse-guard · `tier:` hmw-only → generic dùng `model:'opus'` (S65/S73/S108)
- [Fault-injection proves teeth](feedback_faultinjection_proves_teeth.md) — chứng checker/guard có RĂNG bằng inject-lỗi-vào-cây-tạm (`-RepoRoot`) → confirm FLAG, KHÔNG chỉ happy-path PASS; boundary + anti-Goodhart-flip; verify anchor bằng chính regex script (S95)
- [Harness-9 L2-recovery + 2-workflow adap](feedback_harness9_l2_recovery_2workflow_adap.md) — mỗi adap = 2 workflow (impl+review) + run-id; L2 _INDEX/gist dark-matter recovery; self-gate khi reviewer no-schema (S70); **+ vocab-collision-check on adopt** (review bắt tên-trùng: memory-fidelity H6.7≠H16; alias-map KHÔNG seed detector, S93)
- [Stale diagnostic in background agent](feedback_stale_diagnostic_background_agent.md) — IDE diagnostic giữa agent NỀN = snapshot dở; chỉ tin build SẠCH chạy SAU agent (gotcha #68, S69)
- [Harness-10 run-trace folder](feedback_harness10_run_trace.md) — git-tracked `runs/<id>/` FLAT (`sub-*`+`*-synthesis.md`); raw-Workflow≠writeGuard→residual caught+revert; detector-tailored-out (S71-72)
- [Harness-11 engine adopt](feedback_harness11_engine.md) — engine governance tự-bảo-trì: `governance-detectors.ps1`+`memory-archive-gate.ps1`; B1 derived-trỏ-canonical; #30-via-Edit (.ps1 pure-ASCII+code-point) (S75)
- [Canonical spec over broadcast](feedback_canonical_spec_over_broadcast.md) — adap khi anh trỏ LỆNH canonical → pull command/§P/ledger, ĐỪNG phỏng-theo broadcast cô-đọng; report-before-stamp (S79)
- [Review presentation & stale config](feedback_review_presentation_and_stale_config.md) — review độc-lập bắt honesty-PRESENTATION gap + stale-config đánh-lừa reviewer; tighten-wording + re-measure TRƯỚC review (S81)
- [Derived-flush = execution](feedback_derived_flush_execution.md) — derived-doc flush khớp canonical owner-set = em-main tự làm KHÔNG gate; chỉ ĐỔI con-số/policy = quyền anh (S84)
- [Cơ-chế đúng, dữ-liệu không có](feedback_mechanism_right_data_absent.md) — lớp ×6; UAT báo "không chạy" ⇒ ĐO DỮ LIỆU PROD trước, đừng đọc/viết code (S157: auto-fill đúng, 57/62 dự án rỗng `Location`)
- [Root-cause over symptom](feedback_root_cause_over_symptom.md) — bug lặp sau band-aid → truy field/case LỆCH-quy-ước; verify "tạo lỗi MỚI còn lặp?"; +S122: được-chỉ-1-chỗ ⇒ grep cùng-lớp · bài-học-trong-context KHÔNG tự bật ⇒ chặn = LUẬT soi-được · truy-gốc ≠ tự-sửa-gốc (chi tiết trong file)
- [Cardinality change grep consumers](feedback_cardinality_change_grep_consumers.md) — đổi field single→multi = grep MỌI consumer; sửa write-site sót read-site → vỡ feature (S87/S88 PE multi-winner)
- [Prod config: inspect-before-change](feedback_prod_config_inspect_before_change.md) — đổi config prod = inspect LIVE trước (runbook STALE); backup→apply→verify-LIVE→commit; replicate mọi rule cũ + delta (S88)
- [Wipe durability — check re-seed](feedback_wipe_durability_check_reseed.md) — sau prod-wipe audit seeder: ungated per-code seed RE-ADD mỗi restart; gate sau env-flag + verify-by-restart-THẬT (S91, #75/#76)
- [Verify deployed artifact byte-level](feedback_verify_deployed_artifact_byte_level.md) — UAT "fix chưa ăn" sau deploy → curl-grep bundle prod byte-level (cache≠deploy); incognito=golden-test (S96, #77)
- [Verify prod không cần credential](feedback_prod_db_verify_integrated_auth.md) — `sqlcmd -E` qua ssh (runbook ghi đường mật-khẩu nhưng env TRỐNG; env rỗng ≠ tín hiệu đi tìm credential) · **grep DLL đã deploy để chứng BE live** (UTF-8 ⟂ UTF-16 × 2 khung; pattern dựng ở remote) · **mỗi phép đo kèm CONTROL DƯƠNG** — control `False` = hỏng THƯỚC không phải hỏng deploy · bundle CŨ = 900B SPA-fallback, đối chứng bằng dist local CÙNG app (S177)
- [Agent return-garble recover](feedback_agent_return_garble_recover.md) — #53 return = wrong-slice-of-transcript, KHÔNG phải mất việc; recover: (0) WRITE-lane→disk-truth · VERIFY-lane→em-main-re-đo-2-nguồn → (1) diary → (2) resume-in-session → (3) lead-on-behalf-từ-sub-file → (4) solo; **chống-#53 = thiết-kế ARTIFACT đổ-ruột-liên-tục, KHÔNG phải prompt** (đối-chứng nội-phiên S158); tally derive-from-body chốt @closeout (72-cận-dưới qua S162 — chi tiết + sub-class `ngược-#53`/`skeleton-nấc-2`/`engine-process-exit` + "câu garble chứa finding, đừng vứt" đều Ở TRONG FILE)
- [H18 ghost-wire + stamp-integrity](feedback_h18_ghostwire_stamp_integrity.md) — hash-verify TRƯỚC khi áp broadcast (bắt stamp-then-edit THẬT → HELD + re-stamp); ghost-wire 2 class (cron-claim CronList=0 · config-key defined-but-unread); KHÔNG stamp run-id chưa chạy (S100)
- [Resume premise re-verify](feedback_resume_premise_reverify.md) — re-verify tiền-đề từ ĐĨA trước execute; khẳng-định trạng-thái-đĩa = chạm đĩa 1 lệnh ("không-ai-được-giao" ≠ "chưa-làm"); 5 bẫy đo trong file (grep -c mega-line · no-BOM ANSI · BOM-json · acceptance-literal · con-trỏ-số-dòng-vào-sổ-tái-sinh)
- [Permission grant = 2 layers](feedback_permission_grant_two_layers.md) — cấp/verify quyền = display-layer (menu CanRead) ⟂ API-authz-layer (controller `[Authorize(Policy)]`) 2 tầng ĐỘC-LẬP; grep authz controller đích TRƯỚC khi tin grant (menu-ẩn ≠ API-đóng; `[Authorize]` trần = lỗ hổng); reviewer-adversarial bắt, em-main-solo sót (S118, #82)
- [Meta-count self-coverage blind-spot](feedback_meta_count_selfcoverage_blindspot.md) — lead ĐO tốt (~80% đúng) nhưng ĐẾM-VỀ-MÌNH sai (~13%, tập trung TRỌN ở meta-count/coverage); "vá 19 finding" khi thật 23 = con-số đóng vai đã-phủ-hết → bảng disposition TỪNG DÒNG thay số tổng; giữ kết-luận thì giữ cả caveat (S119)
- [Return terminates agent](feedback_return_terminates_agent.md) — CẤM lệnh "trả verdict TRƯỚC, làm việc SAU" (bất-khả-thi vật-lý — sub mô-tả ý-định rồi tắt, lỗi ở LỆNH lead); thứ-tự = làm→verify→return hoặc lead on-behalf sau verify-đĩa; +S123 trong file
- [Citation-trap self-reference](feedback_citation_trap_selfreference.md) — doc định-nghĩa anti-pattern TẤT-YẾU chứa mẫu đó ⇒ detector khớp-mẫu bắt chính nó, **lây qua trích-dẫn** (3 đời/1 wave); discriminator = **enclosure use⟂mention**, KHÔNG port charset-guard; vá 1 CLASS ⇒ grep MỌI matcher cùng-lớp TRONG diff (gen-2 xảy ra thật)
- [Goodhart: rời tập-đo](feedback_goodhart_leave_measurement_set.md) — "vá" bằng đổi HÌNH-DẠNG thứ đang bị đo = rời tập-đo; **flag-count giảm trông y hệt thành công** ⇒ hỏi "cái mất đi là dương-giả hay CHỨNG-NHÂN?"; kể chuyện bằng THÀNH-PHẦN không bằng tổng; +2 phép thử rẻ (trục-nào-KHÔNG-có-ca · áp-luật-cho-nhánh-anh-em)
- [Vắng-mặt trông giống ổn](feedback_absence_looks_like_clean.md) — slot-index tái-dụng xoá IM-LẶNG (mất uỷ-quyền owner, hỏi lại 3 lượt) · phép trích RỖNG đọc thành sạch (`.{50}x` vs `.{0,60}x`) · ghost-wire soi 2 CHIỀU (wired-but-declared-unwired) · **+S177 `HEAD~n` ≠ commit-trước-của-mình** (hook `wal:` chèn giữa ⇒ so bản mới với CHÍNH NÓ, "y hệt nhau" trông như phép đo hợp-lệ — dùng SHA đích danh); vá xong PHẢI grep lại bằng lệnh KHÁC
- [Claim mạnh hơn việc đã làm](feedback_claim_stronger_than_work.md) — "đã ghi/đã VERDICT" = CLAIM ĐO ĐƯỢC, đo trước khi viết; 0-hit kèm control-dương; +S166: claim ĐẢO-DẤU của vai-đo chỉ vào sổ SAU vòng-kiểm (ring2 bác F-8 cứu slot 59)
- [Edit phải có trước review](feedback_edit_must_predate_review.md) — edit-cần-review (nhất là file vai reviewer) LAND TRƯỚC lượt L3 (no-self-exempt cần vật tồn-tại trong diff); spec tự-mâu-thuẫn → fix-mới thắng footer-cũ + khai trong report (anh ratify S139)
- [Máy rộng, UI hẹp](feedback_may_rong_ui_hep.md) — nguyên tắc owner S164 ×2 quyết định: schema/BE theo ca TỔNG QUÁT (N/gộp), UI default ca HẸP (1-1), user cần thì bung — 0 đổi máy; rào cứng 409 → rào hiển thị
- [Pause phải nhớ kỹ plan-progress](feedback_pause_track_plan_progress.md) — owner S165: /pause giữa chuỗi wave = WAL/run.md liệt TỪNG đầu việc đã-review (wave + vá-số + finding treo), rà từng dòng OG trước khi tuyên xong (ca thật: gap checkbox OG-3 → gate F-1 MAJOR)
- [Guard dựng mà không ai gọi](feedback_guard_built_but_never_called.md) — máy đúng + fault-inject có răng nhưng 0 cửa gọi = chết câm; thang 2 nấc xếp vào "CÓ"; và nghi THƯỚC của mình trước khi trách máy
- [Dry-run bắt lời-hứa-chưa-land](feedback_dryrun_finds_promised_but_unlanded.md) — S168: command CHỈ SỐNG TRONG COMMENT sống sót 8 wave + 8 gate + 8 cicd + 644 test; guard-chặn-không-đường-ghi = chết câm; comment nêu tên ⇒ grep tên ngay
## Project — ongoing decisions / context
- [SOL-CCM-SP-002 signing matrix](project_sol_ccm_sp002_signing_matrix.md) — spec ký HĐ 4-GĐ, 8 pattern ký, workflow V2 trạm như PE; 🔴 3 trục hạng-mục ⟂ loại-HĐ-SP002 ⟂ khuôn-form ("loại HĐ" 2 nghĩa); model + roster + scope chốt + treo cardinality trong file
- [H22 WAL session-continuity](project_h22_wal_session_continuity.md) — sổ WAL ≤40 + Stop-hook persist VERIFIED-RUNTIME S111 (hot-reload ENV-DEP #2/#3) + /pause·/tiep 1-đường + squash wal: + FLIP run-trace ≥3-task + D10 AS-6-taxonomy-đổi; hook PS1 KHÔNG bash (PATH 3-context); pilot kill/đổi-acc pending
- [Model-tier evolution → worker-tier-pin S124](project_harness4_two_tier_model.md) — H4 two-tier → H8 all-inherit → **S124 worker-tier-pin (14/14 sub = opus+effort:max, lead owner-choice, Fable qua /fable-real)**; restart-lesson: EDIT-agent-tồn-tại/command cần restart (hot-reload ENV-DEP, agent-MỚI khác)
- [H23 spawn-precedence — ĐO S126](project_h23_spawn_precedence.md) — spawn-param tier THẮNG frontmatter hard-pin ⇒ /fable-real SỐNG · worker-pin ăn runtime (no-tier=opus DÙ lead=Fable ⇒ không inherit); đo 2026-07-16 spawn-model-audit 0-mismatch
- [Session-model direction S140](project_session_model_direction.md) — owner 2026-07-18: 5-vòng đóng (hở=khuôn bộ-ba-SUB chờ hub) → adopt phiên-LOGIC xuyên cửa-sổ; draft VC-1/2/3 nhãn-2-tầng + email b9ef5ede chờ hub; CẤM wire trước mẫu-hub + anh duyệt
- [database-agent verified + local-drift catch](project_database_agent_verified_local_drift.md) — verified-runtime S53; read-advisory DB lens bắt committed-but-unapplied-local mig (green tests+prod miss)
- [HoSoLink open-from-web browser block](project_hosolink_open_from_web_browser_block.md) — web KHÔNG click-open file:// từ https (browser block); chỉ Edge GPO `IntranetFileLinksEnabled` one-click; FE render + Copy fallback (S67)
- [Harness 1·2·3 adopt](feedback_harness_123_adoption.md) — roster 8→10 (+2 monitor INFORM-only tooling-auditor+harvest-curator) · email channel `broadcasts/` self=se; verified-runtime S50
- [7-agent split upgrade](feedback_7agent_split_upgrade.md) — multi-agent 4→7: backend/frontend split + test-specialist, budget +50%, split theo trục workload (S39)
- [Phase 10 NamGroup port](feedback_phase10_namgroup_port.md) — port 11 module; scope FULL / DB single dbo / reuse WF V2 ApplicableType / rollout per-module (S32)
- [Skeleton-first aggressive finish](feedback_skeleton_first_aggressive_finish.md) — "finish cho xong" → schema FULL + logic SKELETON defer, trade-off ghi commit + UI banner (S38)
## Pattern — reusable scaffold
- [Declarative KIND_CONFIG](feedback_declarative_kind_config_pattern.md) — single-page multi-kind CRUD via `:kind` URL + `KIND_CONFIG: Record<Kind,...>` (S29/S35)
- [Pattern 12-ter — N-satellite scaffold](feedback_within_module_n_satellite_scaffold.md) — within-module N-satellite CRUD: 1 mega file N `#region` + controller extend (S34)
- [Real-data master import](feedback_realdata_master_import.md) — Excel master data qua UNGATED DbInitializer idempotent seed → reaches prod; extract→spec→Dev-proof→cicd-check (S55, Mig 48)
- [Multi-entity create + self-committing codegen](feedback_multi_entity_create_self_committing_codegen.md) — N entity cần mã codegen TỰ-COMMIT → gen TẤT mã TRƯỚC (local) → atomic final SaveChanges no-partial (S88)
- [Prod screenshot → docx pipeline](feedback_prod_screenshot_to_docx.md) — chụp prod khoanh-đỏ chèn Word: PowerShell `CopyFromScreen`+Win32-lọc-chrome + DOM overlay + python-docx; prod xem-only (S90, #74)