wal: flush 20260712T1357
This commit is contained in:
@ -1,16 +1,17 @@
|
||||
# WAL — auto-generated, không sửa tay
|
||||
updated: 2026-07-12 | session: S112 | branch: main
|
||||
goal: Supplier Excel-import Phase B — BUILD Approach A (upload NCC Excel, parser scoped layout file-này) sau khi anh chốt 5 decision
|
||||
goal: 2 mạch song song — (A) Supplier Excel-import BUILD + close-spec · (B) PE sign-off save-advance INVESTIGATE
|
||||
|
||||
chain:
|
||||
[x] scout + spec + fable-clone ensemble investigate (wf_e2f23a84-933, PASS_WITH_CONCERNS 4/4, Opus)
|
||||
[x] anh chốt 5 decision: (1)+2 field Mig63 SourceUpdatedAt/By (2)Code=col4 TÊN-VIẾT-TẮT (3)A upload-NCC scoped-file-này (4)upsert fill-nulls-SAFE (5)Type-lạ→NhaCungCap
|
||||
[!] BE (implementer-backend, spawned BG): entity+Mig63 + import service (parser r4-fingerprint abs-cell-index + CASE-NORM Code dedup [reviewer MAJOR fix] + fill-nulls upsert + Type-default-NCC + all-or-nothing preview) + endpoint preview/confirm [Authorize Admin,CatalogManager] + DTOs
|
||||
[ ] test-specialist test-before-merge (case-collation dedup + fill-nulls + parser fingerprint)
|
||||
[ ] FE fe-admin upload→preview→confirm UI (admin-only master, KHÔNG 2-app mirror)
|
||||
[ ] reviewer pre-commit → commit → cicd-monitor
|
||||
[ ] harvest agent-memory @closeout (invest + reviewer + impl, stamp engine)
|
||||
chain A (Supplier import):
|
||||
[x] investigate wf_e2f23a84-933 PASS_WITH_CONCERNS + anh chốt 5 decision (+2field/Code=col4/A-scoped/fill-nulls/Type→NCC)
|
||||
[!] BE (implementer-backend BG a4cde85): entity+Mig63 + import service (case-norm Code + fill-nulls upsert + Type-NCC + all-or-nothing) + endpoint preview/confirm + DTO
|
||||
[ ] test-specialist test-before → FE fe-admin upload/preview/confirm
|
||||
[ ] /fable-clone review đóng-spec (Opus MAX) → fan-out Opus adjust nếu-có → ĐÓNG SPEC + commit + cicd + harvest
|
||||
|
||||
next: implementer-backend BE foundation đang chạy nền; khi land → em review case-fix + wire test + FE + reviewer. KHÔNG deploy tới khi reviewer PASS
|
||||
verify: dotnet build PASS + Mig 63 3-file (Migration+Designer+Snapshot) + case-norm ở dedup+store+preview + 2 route import exist
|
||||
side: harness_floor 30K→100K (anh) + measured 21K→55K (S112 re-measure, sister-parity ~60-71K)
|
||||
chain B (PE sign-off):
|
||||
[!] /fable-clone invest/review ensemble (Opus MAX, wf_pending) — creator-comment-own-box→save→advance + reject-return-to-commenter; RUN-TRACE runs/2026-07-12-S112-pe-signoff-save-advance
|
||||
[ ] em synthesize PE → design + option cho anh quyết (KHÔNG code tới khi anh chốt)
|
||||
|
||||
next: chờ BE(a4cde85) + PE-ensemble land → synthesize từng cái; KHÔNG deploy/code-PE tới khi review/anh-chốt
|
||||
verify: Supplier build PASS+Mig63+case-norm · PE run-folder spec+synthesis non-zero + reject-flow mapped
|
||||
side: harness_floor 30K→100K (anh) + measured 21K→55K (S112 re-measure sister-parity ~60-71K)
|
||||
|
||||
@ -0,0 +1,22 @@
|
||||
# RUN — PE "Ý kiến cấp duyệt" save-advance + creator-as-approver + reject-return (investigate)
|
||||
|
||||
- **folder:** `2026-07-12-S112-pe-signoff-save-advance`
|
||||
- **session:** S112 (2026-07-12) · **lead:** Opus 4.8 MAX (owner-choice)
|
||||
- **command:** `/fable-clone vai invest/review đề tài 2 ảnh` + "hmw cho Opus 4.8 MAX" (anh-directed)
|
||||
- **mode:** HMW RUN-TRACE · **engine:** fable-clone ensemble (per-invocation H21) · model=opus effort=inherit(xhigh)
|
||||
- **input:** 2 screenshot chat FDC anh Kiệt/PRO — yêu cầu đổi luồng PE sign-off (save-advance + creator=approver + reject-return)
|
||||
- **spec:** `spec-pe-signoff-save-advance-12-07-2026.md`
|
||||
|
||||
## taskList snapshot
|
||||
| Stage | Role | Lane | Lens |
|
||||
|---|---|---|---|
|
||||
| Investigate | investigator-codebase | A | Luồng hiện tại (ApproveV2Async advance + creator/approver identity) |
|
||||
| Investigate | investigator-codebase | B | Thiết kế thay đổi (BE+FE, save=advance vs tách, self-approval flag) |
|
||||
| Investigate | investigator-codebase | C | Reject/TraLai flow (return-to-commenter, re-comment, edge) |
|
||||
| Review | reviewer | 0 | Adversarial verify (state-machine · self-approve · reject-loop · multi-cấp) |
|
||||
|
||||
## deliverable
|
||||
Design-doc: luồng hiện tại + thay đổi BE/FE cần làm + reject-flow + risk → **anh quyết** design + scope. KHÔNG code lượt này.
|
||||
|
||||
## synthesis
|
||||
_(pending — em-main ghi sau khi Workflow return)_
|
||||
@ -0,0 +1,30 @@
|
||||
# SPEC — PE "Ý kiến cấp duyệt" save-advance + creator-as-approver + reject-return — 12-07-2026
|
||||
|
||||
> Engine-đắt `/fable-clone vai invest/review` (H21 LỆNH-B) — anh-directed S112 (đề-bài từ 2 screenshot chat FDC anh Kiệt). Opus 4.8 MAX, RUN-TRACE. Lead ghi sau verify. Worker nhận spec qua prompt.
|
||||
|
||||
## ① Đề-bài (ĐIỀU TRA + THIẾT KẾ, KHÔNG code lượt này)
|
||||
|
||||
Yêu cầu từ **anh Kiệt / PRO** (chat FDC 11-12/7): đổi luồng **"Ý kiến cấp duyệt (SIGN-OFF THEO WORKFLOW)"** của module **PurchaseEvaluation V2**.
|
||||
|
||||
**Hiện tại:** save = **đẩy thẳng sang cấp trên** ngay ("Hiện tại save là đẩy sang cấp trên"). Tức save của thao-tác duyệt = comment + advance `CurrentApprovalLevelOrder` cùng lúc.
|
||||
|
||||
**Mong muốn (3 điểm):**
|
||||
1. **Người tạo phiếu (PRO) CŨNG là người duyệt Cấp-1 (Bước-1)** — "người duyệt cũng là người tạo luôn". Tạo phiếu xong → comment vào **ô duyệt của CHÍNH họ** (LevelOpinion cấp mình) → rồi save.
|
||||
2. **Save mới đẩy sang cấp trên** — "tạo phiếu xong cho comment vào chỗ ô duyệt rồi save chuyển qua bên cấp trên" / "Rồi họ save thì đẩy sang". Giữ semantics comment-in-own-box → save → advance.
|
||||
3. **Reject / Trả lại** → "Chỗ Trả phải rejected trả về để bạn comment. Rồi đi tiếp" = khi trả lại, phiếu về đúng người đó để **comment lại**, rồi **đi tiếp forward** lại.
|
||||
|
||||
**Bằng chứng (screenshot):** BƯỚC 1 Phòng Cung ứng (Cấp 1 Bình Le Thanh comment ngân-sách chi-tiết + Cấp 2 Bùi Lê Thúy Trà "duyệt — không ý kiến") → BƯỚC 2 Phòng KSCP (Cấp 1 Lê Văn Bình chi-tiết + Cấp 2 Phan Văn Chương "ok") → BƯỚC 3 BGĐ (chưa duyệt). Mỗi cấp có ô ý-kiến + trạng-thái "Đã duyệt".
|
||||
|
||||
## ② Cách điều tra (3 lăng-kính investigator-codebase same-role + reviewer verify)
|
||||
|
||||
- **Lane A — LUỒNG HIỆN TẠI:** `PurchaseEvaluationWorkflowService.cs` (Infrastructure/Services) `ApproveV2Async` — đọc kỹ: comment UPSERT `PurchaseEvaluationLevelOpinion` + advance `CurrentApprovalLevelOrder` xảy ra thế nào, ai là approver cấp-1 (`ApprovalWorkflow.cs` V2 Steps>Levels>ApproverUserId), creator=approver hiện chạy được chưa. PE create luồng (`PeWorkspaceCreateView.tsx`) → sau tạo phiếu đi đâu (Phase nào, cấp nào). `PurchaseEvaluation.cs` (CurrentApprovalLevelOrder, Phase, CreatedBy), `PurchaseEvaluationPhase.cs` (states: Nháp/Đã gửi/TraLai=98/Từ chối/Đã duyệt). → sơ đồ luồng hiện tại (file:line) + ĐIỂM CHẶN cho yêu cầu.
|
||||
- **Lane B — THIẾT KẾ THAY ĐỔI:** cần đổi gì ở BE `ApproveV2Async` + FE `PeWorkflowPanel.tsx` (ô duyệt + nút save) để creator comment ô duyệt cấp mình → save → advance. Câu hỏi cốt: "save = advance" giữ nguyên hay cần TÁCH "lưu comment (nháp, chưa advance)" vs "save-advance (submit lên cấp trên)"? SignedByUserId/actor==ApproverUserId gate ảnh hưởng gì? Governance flag: PRO tự duyệt cấp-1 rồi lên CCM/CEO — self-approval control-issue hay bước-đề-xuất hợp-lệ (creator=Cấp-1 = proposal, cấp trên mới là approval thật)? → bảng thay đổi BE+FE (file:line).
|
||||
- **Lane C — REJECT / TRẢ-LẠI:** TraLai (Phase 98) hiện xử thế nào — trả về ai (creator? cấp trước?), comment cũ giữ/xóa, re-comment được không, "đi tiếp" lại từ cấp nào. Yêu cầu: reject → về commenter → re-comment → forward lại. Cần đổi gì (BE reject handler + FE). Edge: multi-cấp OR-of-N cùng cấp, reject giữa chừng nhiều cấp, comment đã tồn tại khi bị trả lại. → luồng reject hiện tại vs mong muốn + ≥3 edge.
|
||||
|
||||
## ③ Checklist (deliverable ĐO ĐƯỢC)
|
||||
|
||||
- [ ] **Lane A** — sơ đồ create→sign-off→advance hiện tại (file:line) + creator-vs-approver identity + điểm chặn yêu cầu.
|
||||
- [ ] **Lane B** — bảng thay đổi BE + FE (file:line) + quyết "save=advance vs tách save-nháp/submit" + flag self-approval governance.
|
||||
- [ ] **Lane C** — luồng reject hiện tại vs mong muốn (file:line) + thay đổi + ≥3 edge multi-cấp/reject.
|
||||
- [ ] **Reviewer** — verify 3 lane khớp code thật + state-machine đúng + risk (self-approve, reject-loop vô-hạn, multi-cấp OR-of-N, comment-mất-khi-reject) + PASS/FAIL + gap file:line.
|
||||
- [ ] **em-main** — design synthesis + option cho anh quyết + agent-memory (invest + reviewer stamp `[engine: fable-clone-ensemble · Opus-S112]`).
|
||||
Reference in New Issue
Block a user