CICD-K3: IN-PROGRESS — ?/6 # cicd-monitor — verify deploy K3 SP-002 (`15349e8`) > Artifact chống #53: ghi TỪNG MỤC ngay khi có bằng chứng. Kết bằng `END ... VERDICT=`. > Repo `D:\Dropbox\CONG_VIEC\SOLUTION\SOLUTION_ERP` · push `0779f2d..15349e8 main`. ## §0 — Tiền đề (đo LIVE trước khi deploy xong) Commit HEAD: ``` 15349e8ee054406797cc1d76c7bc3384c6768fc2 [CLAUDE] Contract: K3 SP-002 8 workflow nhom KHKK-N1-8 + port level-finalize + designer (0-mig) + 5 test git log origin/main..HEAD -> (rỗng — đã push) ``` `git diff --name-only 0779f2d 15349e8` = 26 file. Phân loại vs `paths-ignore` 7-glob: - **CODE (13, trigger CI):** BE 6 (`ContractSigningPlansController.cs`, `ApprovalWorkflowV2AdminFeatures.cs`, `ContractSigningPlanFeatures.cs`, `IContractSigningPlanWorkflowService.cs`, `MenuKeys.cs`, `DbInitializer.cs`, `ContractSigningPlanWorkflowService.cs` = 7 thực) · FE 4 (`fe-admin/Layout.tsx`, `fe-admin/khkk/KhkkWorkflowPanel.tsx`, `fe-admin/system/ApprovalWorkflowsV2Page.tsx`, `fe-user/khkk/KhkkWorkflowPanel.tsx`) · test 2 (`ContractSigningPlanApprovalTests.cs`, `ContractSigningPlanGroupAndCatalogTests.cs`) - **IGNORED (13):** `docs/**` ×2 + `.claude/WAL.md` + `.claude/agent-memory/**` ×3 + `.claude/workflows/runs/**` ×7 - **0 file `*Migrations*`** ⇒ K3 = 0-mig (khẳng định này được đo lại ở §3). **Bundle PRE-deploy (đo LIVE 18:22:51 +07, lúc run #436 CÒN `running`):** ``` admin /assets/index-DVQEwGwf.js + /assets/index-D050EVYG.css eoffice /assets/index-CZAYiWWa.js + /assets/index-DX1FRk5n.css ``` Khớp ĐÚNG mốc post-K2 (#435) ghi ở `sub-cicd-verify-k2.md:139-142` ⇒ mốc PRE hợp lệ, chưa bị K3 ghi đè. **PROD DB PRE-deploy (sqlcmd `localhost\SQLEXPRESS`, đo 18:23 +07 lúc run CÒN `running`):** ``` MIGTOP=20260731085624_AddKhkkApprovalGroupCatalogAndFinalizeRuntime MIGCOUNT=71 WF_KHKK_N=0 <- CHƯA có workflow nhóm nào MENU_AwV2_KhkkN=0 <- CHƯA có menu-row nào MENU_TOTAL=143 PERM_TOTAL=1576 LEVELS_FINALIZE_ALL=2 <- cờ finalize toàn hệ TRƯỚC K3 (control nền) ``` ⚠️ Cột PK của `MenuItems` là **`[Key]`** (KHÔNG phải `MenuKey` — `MenuItemConfiguration.cs:11 b.HasKey(x => x.Key)`; `MENUCOLS=Key,Label,ParentKey,Order,Icon,DisplayLabel,IsVisible`). Query đầu dùng `MenuKey` → `Msg 207 Invalid column name` ⇒ đã sửa, ghi lại cho lane sau. **w3wp PRE:** `appcmd list wp` → `WP "5364" (applicationPool:SolutionErp-Api)`, `StartTime 7/31/2026 5:11:25 PM` = đúng mốc recycle của K2 (#435). ⇒ mốc-so-sánh recycle-proof cho K3. ---