wal: flush 20260805T1607
This commit is contained in:
@ -0,0 +1,56 @@
|
|||||||
|
# run: 2026-08-05-S174-khkk-style-audit
|
||||||
|
|
||||||
|
**Lệnh:** `/fable-clone frontend-designer` — ENGINE-ĐẮT LỆNH-B, ensemble tier-2, per-invocation (H21).
|
||||||
|
**Owner chốt vai:** "frontend-designer đồng ý" · **Owner chốt phạm vi:** "cho nó quét lại hết luôn, design lại".
|
||||||
|
**Đề bài:** quét TOÀN BỘ style/UX module KHKK (GĐ2) đối chiếu Duyệt NCC (GĐ1 — golive, owner coi là CHUẨN);
|
||||||
|
mỗi lệch phải có `file:line` CẢ HAI phía; đầu ra = spec thi-hành-được cho Opus 5 MAX.
|
||||||
|
|
||||||
|
## Bối cảnh bắt buộc
|
||||||
|
|
||||||
|
- 2 app **mirror SHA256 identical**: `fe-admin` ⟂ `fe-user`. Mọi sửa land CẢ HAI, bằng nhau từng byte.
|
||||||
|
- `.card-accent` (`fe-*/src/index.css:112`) khai NGOÀI `@layer` ⇒ **THẮNG utility Tailwind v4** (gotcha #66).
|
||||||
|
CẤM đề xuất tắt bằng `border-0`/`shadow-none` — phải GỠ CLASS theo điều kiện. **Đã cắn thật trong phiên này.**
|
||||||
|
- `PipelineTreePanel` có **6 host còn lại** sau khi gỡ khỏi Inbox (PE-list · GĐ3 ×2 · GĐ4 ×2 · KHKK-list).
|
||||||
|
Sửa 1 màn làm hỏng 6 màn = lỗi nặng nhất phiên này ⇒ mọi đề xuất phải nói RÕ host nào đổi / host nào giữ.
|
||||||
|
- Gate quyền KHKK = policy `KeHoachKyKet.Read`, **KHÔNG OR key menu `Khkk_*`** (gotcha #85).
|
||||||
|
- Palette accent Tailwind v4 thiếu stop `-300` cho teal/violet/amberx/greenx (gotcha #67).
|
||||||
|
|
||||||
|
## Owner-items phải phủ hết trong spec
|
||||||
|
|
||||||
|
| # | Việc | Trạng thái |
|
||||||
|
|---|---|---|
|
||||||
|
| O1 | `KhkkWorkflowPanel` style ≠ `PeWorkflowPanel` (banner · icon tròn · chip NS PRO/CCM · HÀNH ĐỘNG · file đính kèm · lịch sử duyệt) | chưa làm |
|
||||||
|
| O2 | Badge **"SẮP"** trên cây → **đổi thành 0** ("bỏ hết đi đổi thành 0") | chưa làm |
|
||||||
|
| O3 | Hạng mục cho chọn **NHIỀU** + **SUM tổng**; tổng giá duyệt ghi **PHÍA TRÊN** — 🔴 đổi cardinality 1→N, cần BE+migration | chưa làm |
|
||||||
|
| O4 | Shopdrawing / căn cứ hồ sơ cho **đính kèm file** | chưa làm |
|
||||||
|
| O5 | Menu Đang duyệt / Đã duyệt / Đã xóa "lọc đúng trạng thái" — lead đã truy 5/5 mắt xích, **chuỗi lọc ĐÚNG**; nghi vấn thật = `KhkkListPanel:202 flatMode` đổi CÂY→PHẲNG khi có filter | cần phán |
|
||||||
|
| O6 | **Bấm card PE trong cây ở màn KHKK phải GIỮ NGUYÊN màn KHKK** (view tại chỗ), không văng sang phiếu gốc — "tương tự với duyệt NCC" | chưa làm |
|
||||||
|
|
||||||
|
## Đã land trong phiên (đừng đề xuất lại)
|
||||||
|
|
||||||
|
`14a917f` · `3f339c0` · `f86f30d` · `d0453ba` — gỡ 2 tiêu-đề chồng · bỏ ô "Tất cả nhóm" · `hideHeader` cho cây ·
|
||||||
|
gỡ khối Quy-trình-duyệt khỏi trang chi tiết · gỡ Section 5 · dựng `/khkk/create` thành host 2-panel ·
|
||||||
|
gán cứng nhóm+quy trình theo leaf menu · tầng dưới chỉ {Nháp,Trả lại,Từ chối} · gỡ vỏ card của cây KHKK ·
|
||||||
|
gỡ cây khỏi Hộp thư. Prod hiện tại: admin `index-BXwdUVmD.js` · eoffice `index-DdcCH2oZ.js`.
|
||||||
|
|
||||||
|
## taskList snapshot
|
||||||
|
|
||||||
|
5 lane, cùng vai `frontend-designer`, `tier:'opus'`, **≤3 file/lane** (luật C2), **ép ghi khung rỗng lượt 1-2**.
|
||||||
|
|
||||||
|
| lane | lăng-kính | file được giao (≤3) |
|
||||||
|
|---|---|---|
|
||||||
|
| L1 | panel DUYỆT | `components/pe/PeWorkflowPanel.tsx` · `components/khkk/KhkkWorkflowPanel.tsx` |
|
||||||
|
| L2 | panel DANH SÁCH | `components/pe/PeListPanel.tsx` · `components/khkk/KhkkListPanel.tsx` · `components/khkk/KhkkWorkListPanel.tsx` |
|
||||||
|
| L3 | HOST / bố cục | `pages/pe/PurchaseEvaluationWorkspacePage.tsx` · `pages/khkk/KhkkCreatePage.tsx` · `pages/khkk/KhkkListPage.tsx` |
|
||||||
|
| L4 | CÂY toàn trình | `components/pipeline/PipelineTreePanel.tsx` · `components/pipeline/PipelineStageFolders.tsx` · `hooks/usePipelineStages.ts` |
|
||||||
|
| L5 | NỘI DUNG phiếu | `components/pe/PeDetailTabs.tsx` · `components/khkk/KhkkDetailContent.tsx` |
|
||||||
|
|
||||||
|
## Stages
|
||||||
|
|
||||||
|
- [ ] L1..L5 chạy song song (hmw parallel)
|
||||||
|
- [ ] lead refute + synthesize (P3/P4)
|
||||||
|
- [ ] lead ghi `spec-khkk-style-dong-bo-05-08-2026.md` — 3 heading: ① đề-bài ② cách implement ③ checklist acceptance ĐO ĐƯỢC
|
||||||
|
|
||||||
|
## Synthesis
|
||||||
|
|
||||||
|
_(lead điền sau khi verify — engine propose-only, KHÔNG tự ghi)_
|
||||||
@ -0,0 +1,90 @@
|
|||||||
|
# sub-frontend-designer-L1 — LĂNG-KÍNH: PANEL QUY TRÌNH DUYỆT
|
||||||
|
|
||||||
|
> Run: 2026-08-05-S174-khkk-style-audit · Lane L1 (ensemble /fable-clone frontend-designer)
|
||||||
|
> Scope: CHỈ 2 file — `fe-admin/src/components/pe/PeWorkflowPanel.tsx` (CHUẨN) ⟂ `fe-admin/src/components/khkk/KhkkWorkflowPanel.tsx` (ĐỐI TƯỢNG)
|
||||||
|
> Owner O1: "cho style nó giống với duyệt NCC nhé, style hiển thị 2 bên khác nhau ko đc"
|
||||||
|
> APPEND-as-I-read (khung rỗng ghi TRƯỚC khi đọc file — chống #53)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 0. Trạng thái khảo sát (điền dần)
|
||||||
|
|
||||||
|
| # | Việc | Trạng thái | Ghi chú |
|
||||||
|
|---|---|---|---|
|
||||||
|
| 0.1 | Ghi khung rỗng | ⬜ | |
|
||||||
|
| 0.2 | Đọc PE panel (chuẩn) | ⬜ | LOC / cấu trúc |
|
||||||
|
| 0.3 | Đọc KHKK panel (đối tượng) | ⬜ | LOC / cấu trúc |
|
||||||
|
| 0.4 | Đọc DTO 2 phía (field gap) | ⬜ | types/*.ts |
|
||||||
|
| 0.5 | Kê bảng đối chiếu 8 hạng mục | ⬜ | |
|
||||||
|
| 0.6 | Phân loại bê-thẳng ⟂ thiếu-data | ⬜ | |
|
||||||
|
| 0.7 | Viết spec thi-hành-được | ⬜ | |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 1. Bản đồ file — LOC + cấu trúc block
|
||||||
|
|
||||||
|
### 1.1 PE panel (CHUẨN)
|
||||||
|
_(chờ đọc)_
|
||||||
|
|
||||||
|
### 1.2 KHKK panel (ĐỐI TƯỢNG)
|
||||||
|
_(chờ đọc)_
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 2. Kê TỪNG hạng mục owner nêu — PE có / KHKK thiếu-khác
|
||||||
|
|
||||||
|
### H1. Banner trạng-thái tóm tắt (phiếu kết thúc ở đâu)
|
||||||
|
_(chờ)_
|
||||||
|
|
||||||
|
### H2. Bước/Cấp + icon TRÒN check xanh
|
||||||
|
_(chờ)_
|
||||||
|
|
||||||
|
### H3. Chip "NS PRO" / "NS CCM" cạnh tên người
|
||||||
|
_(chờ)_
|
||||||
|
|
||||||
|
### H4. Badge "Duyệt thay CEO"
|
||||||
|
_(chờ)_
|
||||||
|
|
||||||
|
### H5. Khối HÀNH ĐỘNG (Duyệt / Trả lại)
|
||||||
|
_(chờ)_
|
||||||
|
|
||||||
|
### H6. "File đính kèm khi duyệt"
|
||||||
|
_(chờ)_
|
||||||
|
|
||||||
|
### H7. "Lịch sử duyệt (n)" — badge Duyệt/Trả lại + timestamp
|
||||||
|
_(chờ)_
|
||||||
|
|
||||||
|
### H8. "Lịch sử thay đổi"
|
||||||
|
_(chờ)_
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 3. Gap phụ (KHKK có mà PE không / style lệch ngoài 8 hạng mục)
|
||||||
|
_(chờ)_
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 4. Phân loại hành động
|
||||||
|
|
||||||
|
### 4.A BÊ THẲNG được (data đã có 2 phía)
|
||||||
|
_(chờ)_
|
||||||
|
|
||||||
|
### 4.B THIẾU DỮ-LIỆU (nêu field DTO thiếu + nguồn BE)
|
||||||
|
_(chờ)_
|
||||||
|
|
||||||
|
### 4.C KHÔNG áp dụng (domain khác thật)
|
||||||
|
_(chờ)_
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 5. SPEC thi-hành-được cho Opus 5 MAX
|
||||||
|
_(chờ)_
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 6. Rủi ro / caveat / cái tao KHÔNG verify được
|
||||||
|
_(chờ)_
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
END sub-frontend-designer-L1 — VERDICT=<chờ>
|
||||||
@ -0,0 +1,53 @@
|
|||||||
|
# sub-frontend-designer-L2 — LĂNG-KÍNH: PANEL DANH SÁCH
|
||||||
|
|
||||||
|
> Run: 2026-08-05-S174-khkk-style-audit · Lane L2 (ensemble /fable-clone frontend-designer)
|
||||||
|
> Nhiệm vụ: quét style/UX **panel danh sách** KHKK (GĐ2) đối chiếu Duyệt NCC / PE (GĐ1, golive = CHUẨN).
|
||||||
|
> Đầu ra: spec thi-hành-được cho Opus 5 MAX.
|
||||||
|
> STATUS: KHUNG RỖNG ghi @lượt-1 TRƯỚC KHI ĐỌC FILE — append theo tiến-độ đọc, KHÔNG gom cuối.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 0. Phạm vi + file soi
|
||||||
|
|
||||||
|
| # | File | Vai |
|
||||||
|
|---|---|---|
|
||||||
|
| A | `fe-admin/src/components/pe/PeListPanel.tsx` | CHUẨN (GĐ1 golive) |
|
||||||
|
| B | `fe-admin/src/components/khkk/KhkkListPanel.tsx` | Đối chiếu (GĐ2) |
|
||||||
|
| C | `fe-admin/src/components/khkk/KhkkWorkListPanel.tsx` | Đối chiếu (GĐ2) |
|
||||||
|
|
||||||
|
_(pending — append khi đọc)_
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 1. Inventory cấu trúc 3 file
|
||||||
|
_(pending)_
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 2. Bảng đối chiếu 10 trục
|
||||||
|
Trục: card phiếu (bố cục hàng · cỡ chữ · badge trạng thái · chip nhóm · số tiền) · ô tìm · ô lọc · khoảng cách · empty-state · phân trang · nút đáy · loading · error.
|
||||||
|
|
||||||
|
_(pending)_
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 3. Delta chi tiết (mỗi delta = evidence file:line + fix cụ thể)
|
||||||
|
_(pending)_
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 4. Câu hỏi owner O5 — `flatMode` (KhkkListPanel:202)
|
||||||
|
Nghi vấn: filter bật ⇒ panel đổi CÂY → DANH-SÁCH-PHẲNG ⇒ 3 leaf (Đang duyệt / Đã duyệt / Đã xóa) trông khác leaf "Danh sách".
|
||||||
|
Cần: đánh-đổi 2 đường (giữ cây khi lọc vs giữ R-11 server-filter) + KHUYẾN NGHỊ.
|
||||||
|
|
||||||
|
_(pending)_
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 5. SPEC thi-hành-được (cho Opus 5 MAX)
|
||||||
|
_(pending)_
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 6. Rubric verdict + scope check
|
||||||
|
_(pending)_
|
||||||
@ -0,0 +1,49 @@
|
|||||||
|
# sub-frontend-designer-L3 — LĂNG-KÍNH: HOST / BỐ CỤC
|
||||||
|
|
||||||
|
> Run: 2026-08-05-S174-khkk-style-audit · Lane L3 (ensemble /fable-clone frontend-designer, 5 lane cùng vai)
|
||||||
|
> Mục tiêu: quét style/UX host+bố-cục của KHKK (GĐ2) đối chiếu Duyệt NCC (GĐ1, golive = CHUẨN).
|
||||||
|
> Đầu ra: spec thi-hành-được cho Opus 5 MAX.
|
||||||
|
|
||||||
|
## 0. KHUNG RỖNG (ghi @lượt 1, TRƯỚC khi đọc file) — append-as-I-read
|
||||||
|
|
||||||
|
### 0.1 File trong lăng-kính (3 chính)
|
||||||
|
- [ ] A. `fe-admin/src/pages/pe/PurchaseEvaluationWorkspacePage.tsx` — CHUẨN (host 2-panel "Thao tác" GĐ1)
|
||||||
|
- [ ] B. `fe-admin/src/pages/khkk/KhkkCreatePage.tsx` — màn "Thao tác" GĐ2, VỪA dựng lại 2-panel trong phiên này
|
||||||
|
- [ ] C. `fe-admin/src/pages/khkk/KhkkListPage.tsx` — màn "Danh sách" GĐ2 (host 3-panel)
|
||||||
|
- [ ] (đối chiếu nếu CẦN, ≤1 file) `fe-admin/src/pages/pe/PurchaseEvaluationsListPage.tsx`
|
||||||
|
|
||||||
|
### 0.2 Trục so sánh (6 trục bắt buộc — điền khi đọc)
|
||||||
|
- [ ] T1. Header trang: icon · cỡ chữ title · badge · dòng hint bên phải
|
||||||
|
- [ ] T2. Chiều cao host: `h-[calc(100vh-4rem)]` (hay khác) · overflow · min-h-0
|
||||||
|
- [ ] T3. Grid cột + breakpoint (lg/xl/2xl) · gap · width panel trái
|
||||||
|
- [ ] T4. EmptyState (khi chưa chọn / chưa có data): icon, chữ, canh giữa, chiều cao
|
||||||
|
- [ ] T5. Hành vi `<lg` (mobile): panel nào ẩn/hiện, toggle, thứ tự
|
||||||
|
- [ ] T6. Cách truyền `readOnly` xuống panel/form
|
||||||
|
|
||||||
|
### 0.3 Bảng kết (điền dần)
|
||||||
|
| # | Trục | PE (chuẩn) | KHKK Create | KHKK List | Verdict | Sửa |
|
||||||
|
|---|---|---|---|---|---|---|
|
||||||
|
| _(chưa đọc)_ | | | | | | |
|
||||||
|
|
||||||
|
### 0.4 Spec thi-hành-được (viết ở §4, sau khi đọc xong)
|
||||||
|
- [ ] Mỗi lệch = 1 mục: file:line · hiện-trạng · đích · patch cụ thể · rủi-ro
|
||||||
|
|
||||||
|
### 0.5 Nhật ký đọc (append theo thứ tự tool-call)
|
||||||
|
- (trống — sẽ append)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 1. FILE A — PurchaseEvaluationWorkspacePage.tsx (CHUẨN)
|
||||||
|
_(chưa đọc)_
|
||||||
|
|
||||||
|
## 2. FILE B — KhkkCreatePage.tsx
|
||||||
|
_(chưa đọc)_
|
||||||
|
|
||||||
|
## 3. FILE C — KhkkListPage.tsx
|
||||||
|
_(chưa đọc)_
|
||||||
|
|
||||||
|
## 4. SPEC THI-HÀNH-ĐƯỢC
|
||||||
|
_(chưa viết)_
|
||||||
|
|
||||||
|
## 5. TỰ ĐÁNH GIÁ + GIỚI HẠN
|
||||||
|
_(chưa viết)_
|
||||||
@ -0,0 +1,58 @@
|
|||||||
|
# sub-frontend-designer-L4 — LĂNG-KÍNH: CÂY TOÀN TRÌNH (Pipeline Tree)
|
||||||
|
|
||||||
|
> Run: `2026-08-05-S174-khkk-style-audit` · Lane L4 (ensemble `/fable-clone frontend-designer`, 5 lane cùng vai).
|
||||||
|
> Scope 3 file: `fe-admin/src/components/pipeline/PipelineTreePanel.tsx` · `fe-admin/src/components/pipeline/PipelineStageFolders.tsx` · `fe-admin/src/hooks/usePipelineStages.ts`.
|
||||||
|
> Owner-item BẮT BUỘC: **(O2)** badge chữ "SẮP" → "Bỏ hết đi đổi thành 0" · **(O6)** card phiếu PE trong cây văng sang `/purchase-evaluations/...` → giữ tại-chỗ chỉ-xem.
|
||||||
|
> Ghi APPEND-as-I-read (không gom cuối). Frame lượt 1.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 0. Khung rỗng (ghi TRƯỚC khi đọc) — checklist tự-ràng-buộc
|
||||||
|
|
||||||
|
- [ ] A. Inventory 3 file: LOC, export, prop-surface, ai gọi ai.
|
||||||
|
- [ ] B. Host-map: liệt ĐỦ 6 host của `PipelineTreePanel` (file:line + prop truyền).
|
||||||
|
- [ ] C. (O2) Truy chữ "SẮP": sinh ở file:line nào, điều kiện bật, GĐ nào đúng-nghĩa / GĐ nào stale.
|
||||||
|
- [ ] D. (O2) Đề xuất đổi sang "0": đụng gì (state/type/style), host nào đổi hành-vi.
|
||||||
|
- [ ] E. (O6) Truy `navigate(` + `onOpenKhkk` + mọi điều-hướng trong 3 file → đường đang đi.
|
||||||
|
- [ ] F. (O6) Đề xuất callback-hoá mirror `stage2Options.onOpenKhkk`, ×6 host.
|
||||||
|
- [ ] G. Style/UX delta KHKK (GĐ2) vs Duyệt NCC (GĐ1 golive = CHUẨN) trong lăng-kính cây.
|
||||||
|
- [ ] H. Spec thi-hành-được (diff-level) cho Opus 5 MAX.
|
||||||
|
- [ ] I. Rủi-ro / cái KHÔNG được đụng.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## A. Inventory 3 file
|
||||||
|
|
||||||
|
_(chưa đọc — append khi đọc)_
|
||||||
|
|
||||||
|
## B. Host-map (6 host)
|
||||||
|
|
||||||
|
_(chưa đọc)_
|
||||||
|
|
||||||
|
## C. (O2) Truy chữ "SẮP"
|
||||||
|
|
||||||
|
_(chưa đọc)_
|
||||||
|
|
||||||
|
## D. (O2) Đề xuất "0"
|
||||||
|
|
||||||
|
_(chưa đọc)_
|
||||||
|
|
||||||
|
## E. (O6) Truy điều-hướng
|
||||||
|
|
||||||
|
_(chưa đọc)_
|
||||||
|
|
||||||
|
## F. (O6) Đề xuất callback-hoá
|
||||||
|
|
||||||
|
_(chưa đọc)_
|
||||||
|
|
||||||
|
## G. Style/UX delta GĐ2 vs GĐ1
|
||||||
|
|
||||||
|
_(chưa đọc)_
|
||||||
|
|
||||||
|
## H. Spec thi-hành-được
|
||||||
|
|
||||||
|
_(chưa đọc)_
|
||||||
|
|
||||||
|
## I. Rủi-ro
|
||||||
|
|
||||||
|
_(chưa đọc)_
|
||||||
@ -0,0 +1,33 @@
|
|||||||
|
# sub-frontend-designer-L5 — LĂNG-KÍNH 5: NỘI DUNG PHIẾU
|
||||||
|
|
||||||
|
> Run: `2026-08-05-S174-khkk-style-audit` · vai: frontend-designer (ensemble /fable-clone lane L5)
|
||||||
|
> Đối tượng: `fe-admin/src/components/khkk/KhkkDetailContent.tsx`
|
||||||
|
> Chuẩn (golive): `fe-admin/src/components/pe/PeDetailTabs.tsx`
|
||||||
|
> Trần lượt: 25 (≈4 khung / ≈14 đọc / ≈7 chốt)
|
||||||
|
|
||||||
|
## 0. KHUNG RỖNG (ghi @lượt-1, TRƯỚC khi đọc file) — append-as-I-go
|
||||||
|
|
||||||
|
- [ ] §1. Bản đồ Section chuẩn (PE) — đánh số / icon-chip / accent / count / actions
|
||||||
|
- [ ] §2. Bản đồ Section đối tượng (KHKK)
|
||||||
|
- [ ] §3. Diff khuôn Section (bảng đối chiếu)
|
||||||
|
- [ ] §4. Diff bảng (table) — header, zebra, align số, sticky, overflow
|
||||||
|
- [ ] §5. Diff Field / label / value / mono / empty-state
|
||||||
|
- [ ] §6. Diff khoảng cách (spacing rhythm, gap, padding, divider)
|
||||||
|
- [ ] §7. O3 — Section 2 "Giá đề xuất theo NCC trúng thầu": hạng mục 1→N + SUM + TỔNG GIÁ DUYỆT phía trên
|
||||||
|
- [ ] 7.1 Trạng thái hiện tại FE
|
||||||
|
- [ ] 7.2 Trạng thái hiện tại BE (entity / EF config / handler / DTO / validator)
|
||||||
|
- [ ] 7.3 GREP consumer đầy đủ (write-site + read-site)
|
||||||
|
- [ ] 7.4 Phương án cardinality (bảng nối vs cột JSON vs N-row)
|
||||||
|
- [ ] 7.5 Migration cần gì · rủi ro data cũ · thứ tự land
|
||||||
|
- [ ] 7.6 Spec UI (chọn nhiều + SUM + tổng phía trên)
|
||||||
|
- [ ] §8. O4 — Section 3 "Căn cứ hồ sơ (mẫu vật liệu / shopdrawing)" cho đính kèm file
|
||||||
|
- [ ] 8.1 Section 4 "File đính kèm" đang upload thế nào (endpoint, purpose enum)
|
||||||
|
- [ ] 8.2 Cách TÁI DỤNG (không dựng đường mới)
|
||||||
|
- [ ] 8.3 Spec UI inline-attach
|
||||||
|
- [ ] §9. Backlog style-fix ưu tiên (P0/P1/P2) — thi-hành-được cho Opus 5 MAX
|
||||||
|
- [ ] §10. Rủi ro / giới hạn / cái KHÔNG kiểm được trong lượt này
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Nhật ký đọc (append tới đâu ghi tới đó)
|
||||||
|
|
||||||
Reference in New Issue
Block a user