diff --git a/.claude/WAL.md b/.claude/WAL.md index a8213ab..62e6b33 100644 --- a/.claude/WAL.md +++ b/.claude/WAL.md @@ -7,9 +7,10 @@ chain: [x] fable-clone invest ensemble 5 lane (wf_e7896ca6-901) — 4/5 structured + lane visibility garble#53 → em-main-solo recover [x] synthesize → ghi spec-file 3-mục (runs/2026-07-12-S113-supplier-import-v2-invest/spec-supplier-import-v2-12-07-2026.md) + 30 token thật extract [x] anh Kiệt CHỐT: D1=A(Mã NCC=Code) · D2(Code=cổng public, MST=cảnh-báo-mềm, existing-public giữ, import-scope) · D3(nới quyền cập-nhật-danh-mục, không admin-only) → spec §DECISIONS updated -[!] HMW Opus implement — implementer-backend (Mig 64+dedup-MST+PublishCmd+template+authz-loosen+re-bake-token) ⟂ implementer-frontend (2-app: badge+publish+filter+template-btn+editable-Code+MST-warn) — ĐANG spawn parallel -[ ] test-specialist ≥15 test + reviewer + build + commit + deploy + cicd verify +[x] FE (implementer-frontend) DONE — npm×2 PASS, 2 dialog+2 page SHA256-identical (badge+Công-bố+filter+file-mẫu+Mã-editable+MST-warn) +[!] BE (implementer-backend) #53-GARBLE+INCOMPLETE — scaffold OK (Mig 64+entity/config/DTO/queries/2-folder/interface) NHƯNG SupplierExcelImportService.cs=0-marker(service-core CHƯA)+controller+seed CHƯA → build VỠ → SendMessage-resume afffdc4f2abacfd74 finish service-rewrite/controller/seed ĐANG chạy nền +[ ] BE-resume về → em-main build slnx 0/0 + test-specialist ≥15 + reviewer + commit + deploy + cicd -next: 2 implementer về → em-main verify contract khớp + build slnx + npm×2 → test-specialist → reviewer → commit → deploy -verify: spec-file §DECISIONS + §API-CONTRACT chốt; session chết → /tiep đọc WAL → spec có sẵn + decisions chốt → check 2 implementer done? (agent-memory diary) → tiếp test/review (KHÔNG re-invest, KHÔNG re-ask decisions) -wf: implementer-backend+frontend | HMW-implement-parallel | BE⟂FE-disjoint | SPAWNING | resume=verify-contract→test→review→deploy +next: chờ BE-resume → build slnx verify → test-specialist → reviewer → BÁO anh review → deploy +verify: BE landing verify bằng git + grep service markers (IsPublic/NormalizeMst/BuildTemplate) — 0=chưa xong; session chết → /tiep check service-markers+build TRƯỚC khi tin BE done (KHÔNG re-invest, KHÔNG re-ask decisions, FE đã DONE đừng làm lại) +wf: implementer-backend(resume) | HMW-implement | BE-service-core-finish | RESUMING | resume=build-slnx→test→review→deploy diff --git a/.claude/agent-memory/implementer-frontend/MEMORY.md b/.claude/agent-memory/implementer-frontend/MEMORY.md index 706ebda..05b7a9c 100644 --- a/.claude/agent-memory/implementer-frontend/MEMORY.md +++ b/.claude/agent-memory/implementer-frontend/MEMORY.md @@ -6,6 +6,14 @@ --- +## 🆕 S113 (2026-07-12) — Supplier import v2 FE ×2 app (anh Kiệt owner; BE done ∥ impl-backend). Build PASS ×2 +3 file×2app: 2 SHA-pair (dialog+page byte-identical) + types DIVERGED (Department.parentId only S65 → edit-identical KHÔNG cp). +- **types/master:** Supplier +`isPublic:boolean` (anchor `// Tình trạng`+status; git-diff = CHỈ `parentId`, isPublic ∉ diff = mirror khớp). +- **SupplierImportDialog `78403bd8…`:** +"Tải file mẫu" (Download icon, blob `GET /suppliers/import/template`→`a.download='Mau-Database-NCC.xlsx'`, pattern PeDetailTabs:3273 useMutation) dưới drop-zone · cột "Mã" `