8.1 KiB
8.1 KiB
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:72khai Level KHÔNG OR-of-N (ngược trí-nhớ cũ), enumApplicableTypeTHIẾU Travel + migExtendApplicableTypeForWorkflowAppsUp/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.mddẫnarchive/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 gitd2f52bachứ 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?+WorkflowAppStatus5-state khớp ProposalStatus); code mới là SKELETONApplication/Office/WorkflowAppsFeatures.cs:11-15(chỉ Create+List). Mẫu soi gương HOÀN HẢO =ProposalFeatures.cs:403-486(flattenSteps.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:72khai Level KHÔNG OR-of-N (1 ApproverUserId/Level) — NGƯỢC trí-nhớ cũ "OR-of-N", đòi verify lại; (b) enumApplicableTypeTHIẾU Travel (có Leave=5/OT=6/Vehicle=7/ItTicket=8) và migExtendApplicableTypeForWorkflowAppscó 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_codeBM25 +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:72nói Level KHÔNG OR-of-N (1 ApproverUserId/Level) — KHÁC memory cũ 'OR-of-N', verify lại" · "⚠️ enumApplicableTypeTHIẾU Travel (có Leave=5/OT=6/Vehicle=7/ItTicket=8);ExtendApplicableTypeForWorkflowAppsmig 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-onlyd2f52ba)" - 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) · migAddAttendances(mới nhất) · migExtendApplicableTypeForWorkflowApps(Up/Down rỗng) ·WorkflowAppStatus5-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…