# WAL — auto-generated, không sửa tay
updated: 2026-08-06 | session: S176 (phiên-LOGIC L11, window 4) | branch: main

goal: UAT UI module KHKK. Vòng-2 (12) + vòng-3 (4) ĐÃ ship+deploy VERIFY; anh soi prod = "tạm ổn". Vòng-4 = 3 menu lọc đổi sang cây 4 tầng (O5 anh phán) — code xong, chờ ship+soi.

chain:
- [x] nối mạch /tiep @S176 (window 4): Sàn-3 ⑤=3 + ① kêu **2** orphan + ORPHAN-L(p=4,t=2), WAL sống ⇒ đúng ca /tiep · 7/7 `verify:` KHỚP · tick 49→50 · `_tiep-3.md` cân sổ
- [x] 7 commit sản-phẩm + 4 đợt deploy VERIFY 2-vế ×2 app: `43e1bd7` `a0ccac3` `b811e11` `32cc8d5` `95f72dc` `99cabd8` `0db1b99` — gồm đợt B (bê style PE) + đợt D (O6·O4·O7·O8) + C3 + O3 vế-2, mirror sha256 khớp
- [x] O3 vế-1 thêm N hạng mục + giá + ghi chú (0-mig): +`AddLine`/`DeleteLine` command + 3 route; `PeReferenceAmount=0` chống đếm-đôi + là DẤU phân biệt dòng-gốc/thêm-tay
- [x] UAT vòng-2: anh review TRỰC TIẾP prod, khoanh đỏ **12 defect → land 12/12** (gộp mục 3+4 · gom nút về thanh đáy · mục 2 rút về Hạng mục+Giá→Tổng · hạng mục CỦA DỰ ÁN +`PeWorkItemName` BE · lọc theo nhóm · gỡ dải accent · cây gập/mở)
- [x] cây màn Thao tác: **dùng LẠI `PipelineTreePanel`** (Năm›Dự án›Hạng mục›4GĐ) thay vì dựng bản 2 — `+56/−300` dòng
- [x] `/fable-real investigator-codebase` `wf_a574cff1-6b9` — spec 3-mục ghi; **BÁC 2 giả-thuyết lead** (cột DỰ ÁN = CHỖ-CHỪA-SẴN không phải di-chứng · 11 ô chứ không phải ≥3) + phát hiện `Project.BudgetTotal` rỗng 61/69
- [x] cổng C2 @PAUSE-3 KÊU (A\B={investigator-codebase, ctx-verifier}) → seed 2 entry → A\B=∅
- [x] `ctx-curator` @PAUSE-3 = `SUA — 6 điểm`, áp đủ 6 rồi mới chèn MIND-4 (bắt được lead ĐẾM SAI commit của chính mình: viết 7 liệt 6)
- [x] anh soi prod → **vòng-3 "tạm ổn"**; câu (2) cột DỰ ÁN 11 ô + (3) `BudgetTotal` 61/69 = anh **PARK** ("chưa quan tâm lúc này") — đừng hỏi lại, đừng tự làm
- [!] 🔴 **vòng-4 anh giao: 3 menu Đang duyệt / Đã duyệt / Đã xóa → cây Năm›Dự án›Hạng mục›phiếu KHKK** (= chính O5, anh phán GIỮ CÂY). CODE XONG build xanh ×2, **CHƯA anh soi prod** — kết luận giao diện vẫn là ĐỌC MÃ (gotcha #3)
- [x] **UAT vòng-3 ship `79936ad` + deploy VERIFIED 2-vế ×2 app** (admin `--p-YD6EX` · eoffice `DNq8Gz8s`; khung thẻ `border-[#e9eef4]`=1/1 · 2 chuỗi cũ=0/0 · control-dương `Hạng mục (dự án)`+`Lưu & Gửi duyệt`=1/1) — 4 defect: ① TRẢ LẠI khung thẻ (lead lượt trước gỡ CẢ `.card-accent` ⇒ mất luôn khung; anh chỉ muốn bỏ dải xanh — dựng lại khung bằng utility giữ đúng `#e9eef4`/`rounded-xl`) · ② cây Thao tác `approvedPeOnly` + `stagesOnly={[1]}` (lọc phase TRƯỚC khi dựng cây để badge đếm không nói dối; 4 host HĐ = 0/0 không đụng) · ③ ô Hạng mục (dự án) sang cột phải, nằm dưới Dự án · ④ bỏ 2 dòng chữ thừa
- [x] `ctx-curator` @PAUSE-4 = `SUA — 9 điểm`, áp đủ 9 rồi mới chèn MIND-5 — vai sửa CÁCH LEAD TRÍCH gotcha #66 ("đè là vô hiệu" là OVERCLAIM; `gotchas.md:1165` ghi rõ fix ĐIỂM bằng `!important` THẮNG) + bắt lead đếm sai commit **lần thứ HAI liên tiếp**
- [ ] 🔴 2 NỢ MỚI (dư-lượng sau khi gỡ `.card-accent`): ① khung thẻ có **2 nguồn sự-thật** (`index.css:112` ⟂ utility hardcode `#e9eef4`/`rounded-xl` ×2 app) — đổi CSS không kéo theo KHKK · ② comment đã ship overclaim gotcha #66 — 🔴 **ĐO ĐÍCH @S176 = 4 site / 2 CHUỖI KHÁC NHAU** (sổ cũ ghi mờ "≥3 chỗ"): `KhkkWorkflowPanel.tsx:278` ×2 app = *"đè là vô hiệu"* (SAI thẳng) ⟂ `PipelineTreePanel.tsx:226` ×2 app = *"vô hiệu IM LẶNG… Phải GỠ CLASS, không đè"* (chẩn ĐÚNG cho `border-0` trần, chỉ câu kết quá rộng — `border-0!` vẫn thắng). **Grep 1 chuỗi = vá 2/4 rồi tưởng xong**
- [x] `ctx-verifier` @/tiep cửa-4 = `NAP-LAI-SAN-SANG — 10 cờ`; lead tự đo lại 3 cờ nặng, **CẢ 3 CONFIRMED** → đã flush bảng Owner-items `runs/…S174…/run.md` **6 dòng + dòng CÒN NỢ** (O1 `43e1bd7` · O3 hai vế `a0ccac3`+`b811e11` · O4/O6/O7/O8 `a0ccac3`)
- [x] **O5 ĐÓNG — anh phán GIỮ CÂY.** `leafMode` OPT-IN ở `PipelineTreePanel` (4 tầng, bỏ tầng GĐ + 8 ngăn nhóm) + `buildTree(rows, weightOf)` đếm PHIẾU thay vì GÓI + tỉa nhánh 0-phiếu. `flatMode` bỏ 2 vế `deletedView`/`phase`, **GIỮ** `!canPe` (cây cần xương sống PE) + `term` (đường thoát server-side ngoài cửa-sổ 200). Thùng rác nối nguồn riêng `/deleted` pageSize 200 vì linkage cây KHÔNG có phiếu đã xoá
- [ ] 🔴 KHAI GIỚI-HẠN vòng-4 (chưa xử, chờ anh quyết): cây ăn **cửa-sổ 200** phiếu mới nhất ⇒ 3 menu này **thu hẹp tầm với** so với phẳng-phân-trang-thật. Dòng khai truncation của cây vẫn hiện; đường thoát = gõ tìm kiếm (rơi về phẳng server-side). Volume KHKK hiện nhỏ nên chưa cắn
- [ ] 🔴 đính-chính `_context-s-11.md:152` — câu *"Lead đã flush (a)"* SAI: flush **1/7** (đúng dòng O2 vai gọi tên, bỏ 6 dòng cùng bảng). `_context` append-only ⇒ đính chính bằng entry PAUSE-5, KHÔNG sửa tại chỗ
- 🅿️ **PARK (anh @S176 "chưa quan tâm lúc này") — KHÔNG hỏi lại, KHÔNG tự làm:** cột DỰ ÁN 11 ô (phương-án engine không land) · `Project.BudgetTotal` rỗng 61/69
- [ ] thăng luật E4 vế ➊ lên khối auto-inject `harness-eval/MEMORY.md ## Luật cứng`
- [ ] 🔴 ghi synthesis cho **2** run-folder ORPHAN (0 flat `*-synthesis.md`) — sổ cũ chỉ ghi 1, ground-truth @S176 đếm 2: ① `2026-08-05-S173-bookend-open` · ② `2026-08-05-S175-duan-budget-column` (run `/fable-real` `wf_a574cff1-6b9`, có `run.md`+`spec-*.md` nhưng chưa harvest)
- [ ] 5 điểm governance CHƯA ĐỘNG: `STATUS:473` 86→87 · gạch 5 slot HANDOFF · `ROTATE vrapp` · re-stamp Carry 14 slug · slot (70) anchor
- [ ] `ring2-audit/MEMORY.md` 26.440 B > cap 25.600 (A1 treo từ PAUSE-1) · monthly drift-audit quá hạn · dọn 9 dir rỗng `runs/.../agent-memory/*` @session-end
- [ ] kéo 2 thư `loi-do-luong` (ĐÃ CÓ ở `AI_INFRA/outbox/all`, SE chưa kéo) + 4× `upgrade-pack-phased` thiếu adap-report — đo @S176: `se=0` (23/23 đã vào `_index`), nợ đúng bằng sổ

next: vòng-4 (cây 4 tầng cho 3 menu lọc) ĐÃ code+build xanh ×2 → ship+deploy → CHỜ anh soi prod 375/1366/1440 → [đuôi, đừng rơi] E4 ➊ · synthesis **2** run-folder orphan (S173 + S175-duan-budget) · 5 điểm governance · kéo thư + adap-report · A1 ring2

verify:
- `curl -s https://admin.solutions.com.vn/ | grep -oE 'index-[A-Za-z0-9_-]+\.js'` → khác `index--p-YD6EX.js` = đợt SAU đã tới (mốc @PAUSE-4 = bundle `79936ad`)
- 🔴 LUẬT ĐO bundle: `grep -o '<chuỗi>' | wc -l`, **KHÔNG** `grep -c` (minify = 1 mega-dòng). Chuỗi DÙNG-CHUNG phải hỏi "còn ai dùng nữa không" TRƯỚC khi kết luận (lead từng báo động giả với `card-accent overflow-hidden` = 2 hit hợp lệ ở `HardCopiesPage`+`ProposalsListPage`)
- `grep -cE 'className=.*card-accent' fe-admin/src/components/khkk/KhkkDetailContent.tsx` → 0 (use ⟂ mention: 2 hit còn lại là comment)
- `wc -c .claude/agent-memory/ring2-audit/MEMORY.md` → 26440 (>25600 = còn nợ A1)
- `sed -n '473p' docs/STATUS.md | grep -c 'Gotchas | \*\*86\*\*'` → 1 = chưa vá
- 🔴 chạy khối DUAL-ACCEPT `tiep.md §0 ①` (đừng `ls` 1 folder — sổ cũ sót đúng vì thế) → kỳ vọng **2** dòng ORPHAN: `…S173-bookend-open` + `…S175-duan-budget-column`
- `ls .claude/sessions/session-11/` → _context · _mind · _pause-1/2/3/4 · _tiep-1/2/3
