Files
solution-erp/.claude/agent-memory/investigator-codebase/archive/2026-05-q4.gist.md
2026-08-03 10:53:28 +07:00

8.1 KiB
Raw Blame History

investigator-codebase/2026-05-q4 — gist

distill-gen: 1 source-verbatim: .claude/agent-memory/investigator-codebase/archive/2026-05-q4.md (3 entry + 1 header-sự-kiện integrity → 4 cụm) pointer-style: substring

TỔNG-HỢP (3-5 ý)

  • Trỏ-tới ≠ tồn-tại: MEMORY.md từng trỏ file archive này khi nó VẮNG trên đĩa — nội-dung chỉ còn trong git d2f52ba, dựng lại S69; lô S29-S37 vẫn khai là chỉ nằm trong git chưa kéo về đĩa. Chỉ mục trí-nhớ phải kiểm bằng phép CHẠM ĐĨA.
  • Mỗi chỉ-số phải khai kèm CÁCH ĐẾM: DbSet=77 nhưng bảng SQL=84 (đếm .ToTable() trong ModelSnapshot, KHÔNG đếm DbSet — sót 7 Identity); docs sai CẢ HAI CHIỀU trong cùng lượt đo (FE pages 53<65 under-count, menu key 85>53 over-count); 3 số tin được nhất = mig / gotcha / git.
  • Khuôn tốt nhất khi có module anh em đã chạy thật = đọc thẳng handler của nó (ProposalFeatures.cs:403-486) rồi liệt phần thiếu; nhưng spec tự mâu-thuẫn phải gắn cờ ngay: ApprovalWorkflow.cs:72 khai Level KHÔNG OR-of-N (ngược trí-nhớ cũ), enum ApplicableType THIẾU Travel + mig ExtendApplicableTypeForWorkflowApps Up/Down RỖNG.
  • Port khuôn phải soi hình-thái repo đích: BVAAU 7-agent là bản vẽ Phase 0 codebase RỖNG chưa thực-chiến — SOLUTION_ERP chọn split backend/frontend (thay domain/infra) cho hợp 2 FE.

Entries

[cao] B4-A — META: con-trỏ chết đã phục-hồi (file archive vắng đĩa, nội-dung git-only)

  • VIỆC: S69 phát-hiện MEMORY.md dẫn archive/2026-05-q4.md (kèm stub curate S40 + footer) mà đĩa không có file.
  • KẾT-LUẬN: nội-dung thực nằm git-only ở d2f52ba; file được dựng lại, chứa 3 entry FIFO tháng 5 tràn ra; lô S29-S37 VẪN nằm nguyên trong git d2f52ba chứ chưa kéo về đĩa.
  • BÀI-HỌC: trỏ-tới ≠ tồn-tại. Chỉ mục trí-nhớ phải được kiểm bằng phép chạm đĩa — đọc chỉ mục thấy "có mục" là cảm-giác đủ giả.
  • BẤT-NGỜ: hai phần của cùng một lô archive kết-thúc ở HAI NƠI khác nhau (đĩa + git) mà chỉ mục chỉ khai một — còn một nửa dữ-liệu chỉ tra được nếu biết đúng commit (đầu mối cho lead — xem _lienfile-notes-batchB.md #6). → substring:"d2f52ba"

[cao] B4-B — S40 STATE GROUNDING: đo lại 7 con số, docs sai 4

  • VIỆC: đối-chiếu 7 chỉ-số trạng-thái giữa docs và mã nguồn.
  • KẾT-LUẬN: khớp: Migrations=40 (.../Persistence/Migrations/*.cs, cuối = AddAttendances) · Gotchas=55 (đếm ### N.) · git clean. Lệch: DbSet=77 nhưng bảng SQL=84 (77 + 7 Identity — docs 84 ĐÚNG, phép đếm DbSet sai 7) · Endpoints=211 (docs ~223) · FE pages 36+29=65 (docs 53, đếm thiếu) · Menu key=53 hằng (docs 85, đếm thừa). 3 số tin được nhất = mig / gotcha / git.
  • BÀI-HỌC: đếm bảng phải đếm .ToTable() trong ModelSnapshot, KHÔNG đếm DbSet — DbSet bỏ sót bảng Identity. Rộng hơn: mỗi chỉ-số cần khai kèm cách đếm, vì cùng một tên ("số bảng") có nhiều phép đếm cho nhiều số.
  • BẤT-NGỜ: docs SAI theo cả hai chiều trong cùng một lượt đo (under-count FE pages 53<65, over-count menu key 85>53) ⇒ không thể suy "docs luôn lạc-hậu theo hướng thiếu". → substring:"AddAttendances"

[cao] B4-C — P11-A WorkflowApps pre-flight: khuôn có sẵn, spec tự mâu-thuẫn 2 chỗ

  • VIỆC: pre-flight nối 4 module Leave/OT/Travel/Vehicle vào bộ máy duyệt.
  • KẾT-LUẬN: schema pin sẵn từ Mig 39 (Office/{Module}.cs đều có ApprovalWorkflowId? + CurrentApprovalLevelOrder? + WorkflowAppStatus 5-state khớp ProposalStatus); code mới là SKELETON Application/Office/WorkflowAppsFeatures.cs:11-15 (chỉ Create+List). Mẫu soi gương HOÀN HẢO = ProposalFeatures.cs:403-486 (flatten Steps.OrderBy(Order).SelectMany(Levels.OrderBy(Order)) → chỉ số cấp toàn-cục → allLevels[CurrentApprovalLevelOrder-1] → khớp actor → UPSERT opinion → tăng con-trỏ/DaDuyet). Thiếu: 4 bảng {Module}LevelOpinion (Mig 41+), 3 route/controller, 4 seed WF, FE Detail+Opinion.
  • BÀI-HỌC: khi có module anh em đã chạy thật, khuôn tốt nhất là đọc thẳng handler của nó rồi liệt phần thiếu — rẻ hơn thiết-kế lại từ spec.
  • BẤT-NGỜ: 2 mâu-thuẫn gắn cờ ngay: (a) ApprovalWorkflow.cs:72 khai Level KHÔNG OR-of-N (1 ApproverUserId/Level) — NGƯỢC trí-nhớ cũ "OR-of-N", đòi verify lại; (b) enum ApplicableType THIẾU Travel (có Leave=5/OT=6/Vehicle=7/ItTicket=8) và mig ExtendApplicableTypeForWorkflowApps có Up/Down RỖNG (enum-only, không đụng DB). → substring:"ExtendApplicableTypeForWorkflowApps"

[vừa] B4-D — S39: rút khuôn 7-agent từ BVAAU

  • VIỆC: đọc 8 file .claude/agents/ của BVAAU (~22K) để tách trục vai.
  • KẾT-LUẬN: 4→7 trục research(2)/implement(2)/quality(3); ranh giới: repo interface = domain, EF config = infra, test = test-specialist; cả 7 vai đều có 5 RAG MCP (+search_code BM25 +store_memory +list_projects). SOLUTION_ERP giữ 6 skill và chọn split backend/frontend (thay domain/infra) cho hợp 2 FE.
  • BÀI-HỌC: port khuôn phải soi hình-thái repo đích — trục chia của dự-án nguồn không tự đúng ở đích.
  • BẤT-NGỜ: BVAAU Phase 0 codebase RỖNG ⇒ toàn bộ khuôn 7-agent là bản vẽ chưa qua thực-chiến; "VIPIX guide" được dẫn nhưng không verify được vì file miss. → substring:"BVAAU"

Phụ-lục token (coverage)

(chép TRỌN token-list section investigator-codebase/2026-05-q4 của proposal curator — lưới coverage-diff)

  • gotcha#: 0 token dạng #N — chỉ có phép đếm "Gotchas=55 (### N.)"
  • surprise (nhãn ⚠️/đối-lập nguyên-văn): "⚠️ ApprovalWorkflow.cs:72 nói Level KHÔNG OR-of-N (1 ApproverUserId/Level) — KHÁC memory cũ 'OR-of-N', verify lại" · "⚠️ enum ApplicableType THIẾU Travel (có Leave=5/OT=6/Vehicle=7/ItTicket=8); ExtendApplicableTypeForWorkflowApps mig empty Up/Down (enum-only)" · "DbSet=77 nhưng SQL tables=84 … DbSet count sai 7" · "Endpoints=211 (docs ~223)" · "FE pages … =65 (docs 53 under-count)" · "Menu keys=53 const (docs 85 over-count)" · "BVAAU Phase 0 codebase RỖNG → aspirational template chưa battle-test" · "VIPIX guide claim KHÔNG verify được (file miss)" · header: "the file was absent on disk (content was git-only d2f52ba)"
  • guard: "Boundary: repo interface=domain, EF config=infra, test=test-specialist" · "Verbatim — byte-exact, no reflow" (rào chép archive) · "3 số tin cậy nhất = mig/gotcha/git" (rào tin-cậy chỉ-số)
  • root-cause: "tables phải count ToTable KHÔNG DbSet" (phép đếm sai nguồn ⇒ lệch 7 bảng Identity)
  • file:line: Application/Office/WorkflowAppsFeatures.cs:11-15 · ProposalFeatures.cs:403-486 · ApprovalWorkflow.cs:72 · Office/{Module}.cs (không số dòng) · .../Persistence/Migrations/*.cs · .claude/agents/ (8 file ~22K)
  • định-danh khác: commit d2f52ba (nguồn git-only) · Mig 39 · Mig 41+ (dự-kiến) · mig AddAttendances (mới nhất) · mig ExtendApplicableTypeForWorkflowApps (Up/Down rỗng) · WorkflowAppStatus 5-state ↔ ProposalStatus · tag [cross-project, bvaau, port] · [state-grounding, docs-drift, s40] · [pre-flight, p11-a, workflowapps]

Bổ-sung coverage @P3-gate S170 — ⚠️ LƯỚI GREP THUẦN, KHÔNG PHẢI DỮ KIỆN (đoạn trích sau mỗi token là phần ĐẦU DÒNG verbatim chứa token — dòng archive là mega-line nên đoạn trích thường KHÔNG liên-quan token; CHỈ dùng để coverage-diff grep trúng, đọc nội-dung thì tra verbatim theo token — reviewer P3 @S170)

  • Mig 38 — - 2026-05-30 (P11-A WorkflowApps wire pre-flight): 4 module Leave/OT/Travel/Vehicle. Schema pin ĐÃ CÓ SẴN (Mig 39): Office/{Module}.cs đều có `A…