# W1-SYNTHESIS — Wave W1 KHKK: Schema Mig 69 + Permission + Designer type-10 (S161, 2026-07-29) — VERIFIED

> Lead-verified synthesis (đóng run — dual-accept dạng-1). Chi tiết per-lane: 4 sub-md + cicd-verify cùng cấp.

## KẾT QUẢ: W1 SHIP PROD — cicd VERDICT=PASS 6/6, commit `a8027c0` (30 file, +8.987/−22)

- **Schema:** Mig 69 `20260729122015_AddContractSigningPlans` — 7 bảng + 20 index, 0 ALTER bảng cũ; prod 89→**96 bảng**, MIGTOP khớp; database-agent design-review **PASS 8/8 + DB11 0-blocker** (parity 2 DB local tuyệt đối, Down script-proof atomic).
- **Permission:** `MenuKeys.All += KeHoachKyKet` (54→55 key ⇒ policy 216→**220**) + seeder `SeedKeHoachKyKetAccessAsync` UPGRADE-if-exists (+vế CanDelete): prod đo CỜ PRE 13/0/0/0 → POST **13/13/13/2** cả 7 key, control ÂM nội-họ `Khkk_G1` đứng yên, log `0 added + 91 upgraded` khớp dự-đoán-ghi-trước. Menu-row **142 GIỮ** (policy-key ⟂ menu-key).
- **CodeGen:** `ContractSigningPlanCodeGenerator` — `KHKK/{YYYY}/{Seq:D3}` (anh OK @S161), SERIALIZABLE, `WorkflowAppCodeSequences` dùng chung.
- **Designer type-10:** deep-link `/system/approval-workflows-v2/ContractSigningPlan` + label VN từ BE (`applicableTypeLabel` sống prod) + 2 checkbox early-finalize bị rào **3 tầng** (render + payload FE + ép-false BE create-path — 2 đường anh phán "PHÁ VỠ" S155). Prod `ApplicableType=10` = 0 workflow (đúng — dựng tay trước W5).
- **Test:** 562 → **566 PASS/0 fail** (4 test mới, fault-inject 2 chiều chứng răng; gồm phép đo mã phiếu A6 với vế clock-2027 chống năm-hardcode).
- **Review:** reviewer PWF 10 issue (1H/3M/4m/2L) → **disposition từng dòng: 8 fix cùng commit + 2 giữ-có-lý-do** (F-1 đo-CỜ → ĐÃ ĐÓNG bởi cicd chân-5; F-4 UTC-year/D3-tràn kế thừa y PE prod).

## VẬN HÀNH — #53 cắn 5/7 lượt spawn, THIỆT HẠI 0 BYTE

| Lượt | Vai | Return | Đĩa |
|---|---|---|---|
| wf_7d6fb81b lane BE | implementer-backend | chết (empty) | code sống 40% (Domain trọn), 0 sub-md → relaunch-cắt-gọt |
| wf_7d6fb81b lane FE | implementer-frontend | CLEAN | sub-md 7.9KB + build tươi verify |
| wf_f8c806d2 lane BE | implementer-backend | chết (empty) | **sub-md 6.2KB ghi-từng-mục cứu TRỌN** (tới hết Mig 69 apply 2 DB) → lead solo đuôi |
| wf_a95c9909 lane test | test-specialist | chết (empty) | sub-md 10KB — chết LÚC ĐỢI full-suite, việc thật xong |
| wf_a95c9909 lane DB | database-agent | CLEAN | sub-md 21KB |
| reviewer | reviewer | garble → **SendMessage-resume về SẠCH** | sub-md đủ 6 trục |
| cicd-monitor | cicd-monitor | garble | **cicd-verify 15KB đủ END+VERDICT-line** |

Bài đắt nhất wave: **"ghi-đĩa-TỪNG-MỤC trong lúc làm" là biến số quyết định** — lượt BE-1 dồn cuối mất trắng narrative; mọi lượt sau ép ghi-từng-mục đều cứu trọn. Xác nhận lần thứ N bài S123/S158: chống #53 = thiết kế ARTIFACT, không phải prompt.

## TỒN SANG WAVE SAU
1. **Setup thủ công TRƯỚC W5** (sau W2/W3 cũng được, type-10 đã sống): dựng workflow type=3 3-trạm + type=10 3-trạm (PMH→CCM→CEO) qua Designer — type-10 vào bằng deep-link (menu cố ý không đổi). Acceptance "tạo + xoá Level chưa chữ ký" chấm lúc đó.
2. **Tài khoản UAT `nv.test@` KHÔNG tồn tại prod** (cicd phát hiện — demo-seed gated #51/#75): phép 2-bearer gotcha #44 không chạy được ⇒ W2+ cần chọn 1 tài khoản non-Admin THẬT làm mốc, hoặc anh cho tạo user test.
3. `cicd-monitor/archive/_INDEX.md` **99,2% cap (167B còn)** — slot (51-bis) của anh giờ GẤP thật.
4. F-4 (UTC-year + D3 tràn 1000) ghi nhận — xử chung với PE khi làm mốc đổi năm.
