Files
solution-erp/.claude/workflows/runs/2026-07-31-S164-4gd-khkk-fanout/b1b-review-synthesis.md
2026-07-31 11:55:53 +07:00

5.4 KiB
Raw Blame History

B1b SYNTHESIS — /fable-clone review 3-lens (lead refute + hợp nhất @S164)

Input: sub-reviewer-clone-l1-b1b.md (20.715B, 15 finding 5H/9M/1L, FAIL) · l2 (8.591B, 6/6 claim chịu-lực ĐÚNG + 6 finding 1H/4M/1L) · l3 (19.557B, 20 finding 6H/8M/2L + 6 nghi-đã-bác, FAIL). 3/3 lane 0-empty (kỷ luật C2 khung-rỗng-trước ăn).

VERDICT HỢP NHẤT: spec v1 FAIL — nền kỹ thuật VỮNG (lens2 6/6 chịu-lực ĐÚNG), vỏ spec THỦNG (coverage + acceptance). Vá được trọn bằng spec v2, không phải làm lại invest.

Hội tụ cross-lane (tin cậy cao nhất)

  1. ADMIN-HIDE SAI HƯỚNG (l1-F2 l3-F1/F2 — 2 lane độc lập cùng bắt): "chừa System subtree" GIỮ nhầm Workflows (:1795) + PeWorkflows (:1798) = 2 mục owner ra lệnh ẨN (đều con System; AwV2 :1801 cũng con System ⇒ vế "+AwV2" tố cáo tác giả tưởng nó ngoài). + l3 điểm khuôn: đảo whitelist = đổi default-behavior menu-mới (fail-closed) — VƯỢT yêu cầu "ẩn mục cũ". Fix v2: ẨN TẬP KEY TƯỜNG MINH (blacklist mở rộng), giữ default cũ; acceptance = liệt kê đúng N mục lá còn thấy.
  2. Trục ApprovalGroup mồ côi 3 mặt (l3-F3/F5/F6 l1-F7): không chủ wave cho query-param · không backfill phiếu cũ (NULL = biến mất mọi folder — mirror bài EvaluationType không rỗng từ lúc tạo) · chủ cột chẻ đôi K2/K3. Fix v2: K2 = CHỦ DUY NHẤT (cột + backfill=1 + query-param + FE param); K3 chỉ đọc; K4 tách a/b/c.
  3. "8 designer" bốc hơi (l1-F3 l3-F10 l2-F2): draft đòi 8, spec còn chữ "entry" không số; route designer chỉ nhận 3 code hardcode (Layout.tsx:166-172), leaf lạ RỚT IM LẶNG (#50). Fix v2: K3 += 8 menu-con AwV2 + mở resolvePath + acceptance đếm 8.

Finding lens2 nặng nhất (mới, không lane nào khác thấy)

l2-F1 HIGH — rào 1-PE-1-phiếu đang sống (ContractSigningPlanFeatures.cs:342-347 + picker :1201-1202): 1 PE có hạng mục thuộc >1 nhóm ⇒ phiếu nhóm 2 bị 409. "Phiếu per NHÓM" đòi đổi rào thành (PeId, ApprovalGroup). Đổi rào = đổi nghiệp vụ đã ship ⇒ [OG-7 MỚI] hỏi anh. FE tree ĐÃ chịu N-phiếu/PE (usePipelineStages.ts:110-121 bucket mảng) — chỉ BE chặn.

Lead refute (finding bị bác / resolve)

  • l1-F1 (nguồn K1 0-hit) — RESOLVED bằng đo đĩa của lead: file QUY_TRINH/QT TRINH KY HOP DONG TP-NCC.docx CHÍNH LÀ SOL-CCM-SP-002.v01 (mã trong word/header1.xml — lane grep document.xml nên miss). NHƯNG bản đĩa = 6 trang, KHÔNG chứa bảng danh mục (0 hit mọi marker; ảnh anh ghi "…/15") ⇒ nguồn K1 thật = 7 ảnh anh gửi (trang 5-9, trọn bảng 5.1+5.2); transcribe + [OG-6 MỚI] anh soát bảng seed trước land. Bài: lane đúng hiện tượng (đường dẫn draft không dùng được as-is), sai chẩn đoán (file có tồn tại).
  • l1 tự-bác 1 HIGH dự định ("GĐ4 không có sidebar mirror" — Hdc_* 7 leaf có thật :1868) — giữ làm mẫu bác-có-chứng.
  • l3 bác 6 nghi (48-leaf = nhân khuôn hợp lệ · ApprovalGroup = mirror EvaluationType · sub-folder = owner đòi · Menu eOffice trong vùng chừa · Distinct() có sẵn · ApprovedAmount có thật) — spec KHÔNG vi phạm luật khuôn ở chỗ dễ nghi nhất.
  • l2-F4: KhkkListItemDto = FE type; BE thật = ContractSigningPlanListItemDto — sửa citation.
  • l2-F5 l1-F8: số đúng = 42 leaf MỚI + 7 group-key mới = 49 row menu mới; 48 leaf TỔNG — sửa mọi chỗ.

Bảng vá spec v2 (đủ 14 mục — traceability)

# Nguồn
1 l1-F2/l3-F1/F2 QĐ7 → ẩn tập-key tường minh; acceptance liệt kê N mục lá
2 l1-F3/l3-F10/l2-F2 K3 += 8 designer menu + resolvePath + đếm 8
3 l1-F4/l3-F7 OG nối vào DoD: PRE-gate K1←OG-6, K2←OG-1+OG-7, K3←OG-2(+LIVE verify)
4 l1-F5/l3-F18 K2 += bất-biến tiền (Σ PeReferenceAmount trước==sau mig) + acceptance rà 16 consumer
5 l2-F1 K2 += đổi rào (PeId)→(PeId,ApprovalGroup) + DoD "phiếu nhóm 2 cùng PE → 201" [OG-7]
6 l3-F3/F5/F6 ApprovalGroup: K2 chủ duy nhất (cột+backfill=1+param); K4 tách a/b/c
7 l3-F4 Khai thẳng: 8 nhóm = HIỂN THỊ, authz vẫn 1 bộ KeHoachKyKet.* per-action; authz-per-nhóm = wave riêng nếu anh muốn
8 l3-F11 K7 RE-ĐO 3 nấc: cột/index ✓ (đã đo: có) · write-site (grep gán ContractId = 0 hiện tại) · test E2E
9 l3-F12 "diff bundle fe-user=0" → git diff --stat <base>..<head> -- fe-user/src = 0 file (#69)
10 l3-F13 K4 acceptance 2 chiều + bảng kỳ-vọng 13 role (seeder hiện phủ 7 vai — 6 vai còn lại phải khai kỳ vọng)
11 l3-F14/F15/F20 K1 đối chứng ~85±5 giải trình · test có số ≥590+k · 3-file rule K1/K2
12 l3-F16 K8 += 3 dòng ZZTEST/HỐ-1/notification vào acceptance
13 l3-F17 Byte-verify #77 CHỈ wave có FE-ship; BE-only = cicd + smoke API
14 l2-F3/F6 K4 += leaf WfView/Create mang ?group= (WfView lọc theo workflow Code nhóm) + site-3 KhkkKeys() (:2185) vào danh sách sửa

END b1b-synthesis — 3 lane · 41 finding thô → 14 vá + 2 OG mới (OG-6 soát bảng, OG-7 rào 1-PE-N-phiếu) + 1 resolve (nguồn K1 = ảnh) + 1 sửa citation.