QnA Init Docs — UC_4.12.1: Countdown Timer (LIVE Global Shell)
Ngày tạo: 2026-08-12
Phiên bản: v1
BA phụ trách: Trang Nguyen
Ngày BA review: 2026-08-12
Trạng thái: ✅ BA đã trả lời 5/5 câu — LIVE Countdown Timer = Stagnation Deadline (90 ngày), không có Extend Time, nguồn dữ liệu = field days_remaining sourced from stagnation_deadline (same mechanism as SIM, không phải WS) → CR-14 không áp dụng. Pulse/glow (QN-4.12.1-03) chốt: giống hệt cơ chế SIM, không có rule riêng.
WBS hiện tại của UC_4.12.1 chỉ ghi: description: "Detailed functions will be defined later" (status_design: "Checking", chưa có mapping_design). Nội dung QnA dưới đây được synthesize từ:
- Sibling SIM đã confirm:
docs/BA/UC_4.1-4.17/dashboard_sim/UC_4.7.4/QnA_init_docs.md (Countdown Timer SIM — 5/5 câu đã chốt).
References/Customer supplies/dashboard_v7_full.txt L672-699 — "Countdown Timer" + "Time Extension Module" (Trigger, Pulse/Glow, "Extend Time" button, Modal flow).
docs/BA/UC_4.1-4.17/dashboard_live/index.md — đối chiếu SIM UC_4.7.4 ↔ LIVE UC_4.12.1.
- ⚠️ Renumber Note: UC này trước đây có ID cũ
UC_4.11.1 — đã renumber thành UC_4.12.1 theo WBS update 2026-08-10. Dùng đúng ID mới khi viết SRS.
- A-05 (tương ứng, áp dụng theo suy luận): Countdown Timer SIM (UC_4.7.4) và LIVE (UC_4.12.1) là 2 UC tách riêng, không share business rule chung (theo pattern đã áp dụng cho Daily Loss Limit A-04 và Notification Center A-08).
| ID | Câu hỏi | Giả định (BA/QC đề xuất) | BA chốt (ưu tiên cao nhất) | Trạng thái |
|---|
| QN-4.12.1-01 | [SCOPE] WBS description trống ("Detailed functions will be defined later") — có nghĩa là LIVE Countdown Timer sẽ có business rule khác hoàn toàn SIM, hay chỉ đơn giản là chưa cập nhật description và LIVE dùng lại đúng logic của SIM UC_4.7.4? SIM Countdown Timer gắn với days_remaining của evaluation window (challenge có hạn). LIVE là tài khoản vốn thật đã pass challenge — về nguyên tắc không có "hạn evaluation" nào để đếm ngược, trừ khi countdown này đếm thứ khác (vd hạn Stagnation 90 ngày, hoặc countdown thị trường/session close). | Đề xuất: LIVE Countdown Timer là 1 khái niệm khác với SIM — không đếm ngược ngày hết hạn evaluation (không áp dụng cho LIVE), mà đếm ngược tới Stagnation Deadline (90 ngày, Flow 19 Stagnation Monitor — theo STAGE2-012) hoặc tới market/session close (Dynamic Timekeeper time markers T-3min/T-2min/T-30sec theo STAGE2-013/014). Cần BA xác nhận countdown này đếm ngược cái gì, vì đây là điểm khác biệt lớn nhất so với SIM. | BA confirm đúng đề xuất: LIVE Countdown Timer là 1 khái niệm khác với SIM — không đếm ngược ngày hết hạn evaluation, mà đếm ngược tới Stagnation Deadline (90 ngày, Flow 19 Stagnation Monitor — theo STAGE2-012). | ✅ Confirmed |
| QN-4.12.1-02 | Nếu là Stagnation Deadline (90 ngày) — có "Extend Time" button giống SIM không? SIM có nút "Extend Time" (POST /purchase-time-extension, UC_4.9.4) để mua thêm 30 ngày khi days_remaining <= 10. LIVE không có khái niệm "mua thêm hạn evaluation" — Stagnation Deadline LIVE dẫn tới Hard Breach (Flow 7/Flow 19) chứ không có cơ chế "gia hạn" nào được tài liệu hoá. | Đề xuất: LIVE Countdown Timer KHÔNG có nút "Extend Time" — chỉ hiển thị counter + pulse/glow warning khi gần tới deadline, không có purchase flow nào gắn kèm (khác hẳn SIM). | BA confirm đúng đề xuất — KHÔNG có nút "Extend Time", chỉ hiển thị counter + pulse/glow warning, không có purchase flow đi kèm. | ✅ Confirmed |
| QN-4.12.1-03 | Pulse/Glow threshold & intensity — áp dụng cùng ngưỡng <= 10 như SIM, hay ngưỡng khác cho LIVE (90 ngày)? SIM dùng ngưỡng <= 10 ngày (QN-4.7.4-02, đã confirm) trên nền evaluation ~30-45 ngày. Nếu LIVE đếm ngược 90 ngày Stagnation, ngưỡng cảnh báo hợp lý có thể khác (vd <= 14 ngày theo Warning schedule Flow 19: 14/7/2/1 ngày còn lại — xem zapier_v7_full.txt L2134-2146). | Đề xuất dùng đúng lịch warning đã có trong Flow 19 (zapier_v7_full.txt L2134-2146: Warning tại 14/7/2/1 ngày còn lại) làm mốc kích hoạt pulse/glow, thay vì tái dùng <=10 của SIM. | BA chốt: cơ chế hiển thị pulse/glow threshold cho LIVE giống hệt SIM (BR_4.7.4.1) — không có rule riêng cho LIVE, không dùng lịch warning riêng của Flow 19. | ✅ Confirmed — giống SIM, không có rule riêng |
| QN-4.12.1-04 | Cơ chế cập nhật dữ liệu — WS event nào cấp days_remaining cho LIVE? SIM dùng GET /user/status + flag extend_eligible. Chưa xác nhận LIVE có field/WS event tương đương nào cấp số ngày còn lại tới Stagnation Deadline (hoặc tới market close nếu QN-4.12.1-01 = market/session timer). | Đề xuất: nếu là Stagnation Deadline → dùng cùng nguồn dữ liệu account status (last_trade_date, so với ngưỡng 90 ngày) trả về từ REST, không cần WS riêng (vì đếm theo ngày, không cần real-time giây). | BA confirm: field vẫn tên days_remaining, tính "via the same mechanism" như SIM (cùng cơ chế REST, không phải WS), nhưng nguồn (source) là stagnation_deadline thay vì expiration_date của SIM. | ✅ Confirmed |
| QN-4.12.1-05 | Áp dụng CR-14 (WebSocket Reconnection Resiliency)? Nếu Countdown Timer LIVE nhận dữ liệu qua WebSocket (tuỳ kết quả QN-4.12.1-04), widget cần tuân theo CR-14 (giữ giá trị cuối cùng khi mất kết nối, không clear về rỗng). | Đề xuất: áp dụng CR-14 nếu xác nhận dùng WS; nếu chỉ dùng REST polling định kỳ thì không cần CR-14. | BA confirm theo điều kiện đề xuất: "áp dụng CR-14 nếu xác nhận dùng WS" — và QN-4.12.1-04 đã xác nhận cơ chế là REST (same mechanism as SIM), không phải WS → CR-14 KHÔNG áp dụng cho UC_4.12.1. | ✅ Confirmed — CR-14 không áp dụng (cơ chế REST, không phải WS) |
- CR Conflict Check: Đã đọc
References/CR/ — không có CR nào tham chiếu trực tiếp Countdown Timer LIVE. CR-14 (WS Reconnection) có thể áp dụng tuỳ kết quả QN-4.12.1-05.
- Same-category consistency (
STAGE 2.2: DASHBOARD LIVE): Sibling module Global Shell: UC_4.12.2 (PnL Gauge), UC_4.12.3 (Desk Manager), UC_4.12.4 (Notification Center), UC_4.12.5 (Daily Loss Limit), UC_4.12.6 (Level Progression) — không UC nào khác đề cập countdown/timer.
- Cross-category dependency: Flow 19 Stagnation Monitor (
zapier_v7_full.txt) và module Failure & Recovery LIVE (UC_4.15.1/4.15.2) — nếu QN-4.12.1-01 xác nhận Stagnation Deadline, cần cross-ref UC_4.15.2 (Hard Breach) cho phần hậu quả khi hết hạn (không lặp lại business logic breach ở UC_4.12.1, theo nguyên tắc single-source-of-truth đã áp dụng ở UC_4.7.4→UC_4.9.4).
- Orphan-UC check: UC_4.12.1 xác nhận tồn tại trong WBS qua
node script/parse_wbs.js --compact, category STAGE 2.2: DASHBOARD LIVE, module Global Shell.
- 🔴 Điểm khác biệt lớn nhất với SIM: Toàn bộ 5 câu hỏi trên đều xoay quanh 1 gốc: LIVE Countdown Timer đếm ngược cái gì — đây là gap lớn nhất cần BA xác nhận trước khi Architect có thể viết SRS, vì nó quyết định toàn bộ data source/trigger/UI behavior khác với SIM.
| Action | Uniqueness | Cascade | Reversibility | Concurrency |
|---|
| Countdown reach 0 (deadline hit) | Theo user | Có thể trigger Hard Breach (Flow 7/19) — cần xác nhận qua QN-4.12.1-01 | N/A (tuỳ hệ quả breach) | Không phát hiện race condition đặc biệt trong nguồn hiện có |
| Date | Version | Updated item | Before | After | Notes |
|---|
| 2026-08-12 | v1 | Initial creation | — | 5 QnA items (toàn bộ ⏳ Chờ BA — scope gap lớn với SIM) | Init Flow Step 1+2. WBS description trống — nội dung synthesize từ sibling UC_4.7.4 + dashboard_v7_full.txt + zapier Flow 19. |
| 2026-08-12 | v1.1 | BA review — trả lời 4/5 câu | QN-4.12.1-01/02/04/05 ⏳ Chờ BA | QN-4.12.1-01/02/04/05 ✅ Confirmed (Stagnation Deadline 90 ngày, không Extend Time, field days_remaining sourced from stagnation_deadline, CR-14 không áp dụng); QN-4.12.1-03 (pulse/glow threshold) 🟡 vẫn treo — cần hỏi lại | BA (Trang Nguyen) trả lời trực tiếp 2026-08-12 |
| 2026-08-16 | v1.2 | BA review round 2 — chốt QN-4.12.1-03 | QN-4.12.1-03 🟡 Chờ BA xác nhận lại | QN-4.12.1-03 ✅ Confirmed — pulse/glow mechanism giống hệt SIM (BR_4.7.4.1), không có rule riêng cho LIVE | BA (Trang Nguyen) trả lời trực tiếp 2026-08-16; đồng bộ vào UC_4.12.1_v1.md: refer design bỏ màn Extend Time, basic flow thêm case days_remaining=0 → Hard Breach/frosted glass, BR_4.12.1.1 viết lại theo SIM, screen description bỏ hàng Extend Time Button, formula viết rõ days_remaining = stagnation_deadline − Today; stagnation_deadline = Today + 90 days |