QnA Init Docs — UC_4.16.1 Career & HR Widget: Certificate & Level-Up Motion (LIVE)
UC: UC_4.16.1 — Career & HR Widget: Certificate & Level-Up Motion (LIVE) BA phụ trách: Anh Hoang Ngày tạo: 2026-08-26 Tài liệu SRS: UC_4.16.1_v1.md
0. Nguồn đã đọc
| # | Nguồn | Dùng cho |
|---|---|---|
| 1 | References/Customer supplies/(Stage 2) Community & Settings/User journey - Certificate and Left Box.docx | JSON State Capture, 4 layer render, Redacted/Unredacted, Motion 1 vs Motion 2, bảng Certificate Dynamic Text Mapping 8 dòng, bộ button 2 hàng cho màn Career |
| 2 | References/Customer supplies/(Stage 2) Community & Settings/Level Up Cinematic Scene Handling.pdf | Client-side rendering, audio orchestration + Interaction Gate, OG routing, hành vi 3 nhóm control (social / copy link / download) |
| 3 | RFQ_ Website and Dashboard Implementation V7.pdf | §Part C — Career & HR Widget, Viral Moment |
| 4 | RFQ_ Stack Trading Prop Tech V7.pdf | WS LEVEL_PROMOTION, endpoint Certificate / HR Integration / Current Level Detail |
| 5 | Zapier Integration V7.pdf | Flow 4, Flow 3H, Table A / Table B |
| 6 | References/QnA from clients/03_STAGE2_DASHBOARD_EVALUATION/Settings + Career + Viral/QnA_STAGE2_SETTINGS_CAREER_VIRAL.md | [LUC-BIZ-02], [LUC-UI-01..04], [HR-DEF-01], [CTRL-DEF-01], [CTRL-EP-02] + Open Items #3, #4, #21, #27, #37 |
| 7 | References/WBS/[BA Internal] Stacktrading.csv | UC_4.16.1 = STAGE 2.2: DASHBOARD LIVE / Level-Up & Certificate / Career & HR Widget → folder dashboard_live/ |
| 8 | Design pack khách gửi BA 2026-08-26 (5 frame certificate modal + 1 frame màn Career) | Layout, label, trạng thái redacted |
⚠️
References/CR/— grep toàn bộ với các từ khoácertificate,cinematic,milestone,level up,redact: không có CR nào liên quan. Không có conflict CR cần xử lý.
1. Câu hỏi cần khách / BE chốt
| ID | Loại | Câu hỏi | Vì sao phải chốt | Status | BA Answer |
|---|---|---|---|---|---|
| Q-01 | BLOCKING BE | GET /certificate hiện chỉ trả {url, polygon_tx_hash, promotion_date, bonus_awarded, capital_allocation} — không có snapshot metric, không có level/title, không có 2 token UUID. Danh sách field chính xác của snapshot_json là gì? (trùng [LUC-BIZ-03] khách chưa trả lời) | Không có payload này thì FE không dựng được read-only clone; view authenticated và view public sẽ lệch nhau. Cần thêm bảng level_promotion_snapshots + 1 step mới trong Flow 4 sau Step 10 — scope backend mới, không có trong bất kỳ source nào | Pending BA answer | — |
| Q-02 | BLOCKING BE | Cơ chế đánh dấu motion "đã play" là gì, và trader có được xem lại không? (trùng [LUC-BIZ-04]) | Không có cờ này thì cinematic replay mỗi lần login. Đề xuất BA: field played_at, ghi khi trader đóng modal | Pending BA answer | — |
| Q-03 | BLOCKING BE | Flow 3H (Go Live) hiện chưa có step trigger certificate/cinematic, dù khách đã chốt 2026-08-05 rằng mọi milestone kể cả lần SIM→LIVE đầu tiên đều có cinematic + NFT certificate. Step cụ thể là gì? (Open Item #4 của QnA STAGE 2) | Không patch Flow 3H thì certificate đầu tiên (Associate Track Cleared) không bao giờ bắn | Pending BA answer | — |
| Q-04 | UX | Luồng auto-play khi authenticated có cần Interaction Gate riêng không? Source chỉ quy định Tap to View Milestone cho public share URL. Trader để tab mở, không tương tác từ lúc load → browser autoplay policy sẽ chặn audio | Hoặc thiết kế gate riêng, hoặc khách chấp nhận lần play đầu bị câm | Pending BA answer | — |
| Q-05 | SCOPE | Có lịch sử certificate không? WBS ghi "lastest certificate", design chỉ vẽ 1 cái. Nhưng [LUC-BIZ-05] nói mỗi level pass đều có certificate riêng và level bị skip motion vẫn lưu certificate | Nếu khách muốn history → panel mới, endpoint mới, share URL riêng theo từng level. Đồng thời quyết định số lần mint Polygon (chi phí gas) | Pending BA answer | — |
| Q-06 | UX | Lock 16:9 + overlay "xoay ngang" trên mobile có áp dụng cho replay trong dashboard authenticated không, hay chỉ cho link public? Source chỉ nói cho clone của link share | Trader replay trên điện thoại sẽ rơi vào layout không được định nghĩa | Pending BA answer | — |
| Q-07 | UX | Default của Reduce Motion trên thiết bị mới là gì? (trùng [CTRL-BIZ-02]) | Nếu mặc định OFF, trader nhạy cảm với chuyển động sẽ ăn trọn cinematic ngay lần đầu trên mỗi máy mới — đúng nhóm người mà toggle này sinh ra để bảo vệ | Pending BA answer | — |
| Q-08 | BLOCKING BE | Field nào phân biệt US vs International cho dòng 5–7 của bảng text mapping? compensation_track chỉ phân biệt Standard / Flex, không phân biệt quốc tịch | Trader International Level 6+ sẽ hiển thị subtitle W-2 mà họ không có | Pending BA answer | — |
| Q-09 | CONFLICT | 2 artefact của khách mâu thuẫn: frame design ghi "International or Level 1-5" không render dòng subtitle nào, trong khi bảng mapping của chính khách cho Awarded. (L2–5 Standard) và Awarded in addition to Monthly Retainer (International). Thêm nữa frame ghi W-2 Base Salary and Corporate Benefits còn bảng ghi W2 Base Salary & Benefits | Phải chốt đúng 1 chuỗi trước khi build. SRS đang viết theo bảng mapping (artefact rõ ràng hơn) | Pending BA answer | — |
| Q-10 | UI | Dòng chữ polygonscan.com/tx/[transaction_hash] cạnh QR có phải hyperlink không? | Build kiểu nào cũng dễ, nhưng quyết định người xem trên desktop có verify được mà không cần điện thoại hay không. SRS đang viết là label, không phải link | Pending BA answer | — |
| Q-11 | SCOPE | Toggle Redacted cho bản video-motion có nằm trong scope không? Khách mới nói "that would be ideal, I've thought about the same thing" — chưa cam kết ([LUC-UI-02], Open Item #3) | Nếu khách cắt scope thì phải bỏ toggle khỏi surface video, chỉ giữ ở luồng share certificate-only | Pending BA answer | — |
| Q-12 | UX | Toggle Redacted version có ảnh hưởng tới file Download không? Source chỉ quy định redaction cho share URL và ảnh OG, im lặng về export local | Trader bật redacted rồi tải về để tự post sẽ lộ đúng cái tên vừa che. SRS đang viết theo hướng WYSIWYG (bật → file mờ) | Pending BA answer | — |
| Q-13 | UX | Trader có được skip cinematic giữa chừng không (nút Skip / phím Esc), hay bắt buộc xem hết mới tới modal certificate? Không source nào nói | Ảnh hưởng trực tiếp tới FE: cần state machine cho phép abort sequence và nhảy thẳng tới final frame | Pending BA answer | — |
| Q-14 | UX | Nếu LEVEL_PROMOTION bắn trong lúc trader đang có modal khác đang mở (ví dụ modal mua Market Data, modal reset password), xử lý thế nào — đóng modal kia rồi redirect, hay xếp hàng chờ? | [LUC-UI-04] chốt "redirect về Command tab ngay lập tức" nhưng không nói gì về modal đang mở. Có nguy cơ cắt ngang một giao dịch đang trả tiền | Pending BA answer | — |
| Q-15 | TRACEABILITY | 2 file khách gửi (User journey - Certificate and Left Box.docx, Level Up Cinematic Scene Handling.pdf) chưa có trong _SOURCE_MANIFEST.yaml; design pack 2026-08-26 cũng chưa commit vào References/Wireframe/ | Mọi citation trong UC này đang trỏ tới file mà manifest không biết → sẽ fail source-of-truth audit | Pending BA answer | — |
2. Giả định BA tự đóng (đã viết thẳng vào SRS)
| ID | Giả định | Căn cứ | Viết ở đâu trong SRS |
|---|---|---|---|
| A-01 | UC này chỉ mô tả certificate; các tile còn lại của Career & HR (Employment status, Current level, Base salary, Benefits, Vacation days, Next pay date, Manage Payouts, View in Rippling) nằm ngoài scope, chỉ được nêu tên để không mơ hồ về hàng xóm của panel | Chỉ đạo trực tiếp của BA trong session 2026-08-26 | BR_4.16.1.1 |
| A-02 | Logic làm thế nào để được level-up (profit target, Table A/B, 16 step của Flow 4) thuộc STAGE 6: CAREER PATH & PROFESSIONALIZATION; ở đây chỉ tóm tắt như pre-condition sinh ra event | Chỉ đạo BA + tránh trùng lặp với UC Stage 6 chưa viết | §3 Pre-conditions |
| A-03 | Route public /milestone/[unique-id], OG unfurl và gate Tap to View Milestone không thuộc phạm vi doc này (là deliverable riêng trong cùng WBS item); UC_4.16.1 chỉ định nghĩa các control phát ra cái gì, doc public-route định nghĩa người nhận thấy gì | WBS tách rõ UC_4.16.1 (Level-Up Cinematic & Sharing) và UC_4.16.2 (Career & HR Widget) | §1 Overview — note cuối bảng |
| A-04 | Toggle Redacted version không persist, mỗi lần mount đều bắt đầu ở OFF | Source chỉ nói "Toggle OFF (Default)", không nói lưu trạng thái. Toggle không ghi gì lên server nên không có nơi lưu | BR_4.16.1.13 |
| A-05 | Link đã copy / đã post không bị thu hồi khi trader gạt toggle sau đó — token đã phát ra vẫn sống | Hệ quả trực tiếp của mô hình 2 UUID cố định. Ghi rõ ở cột Impact để tránh hiểu nhầm rằng toggle là "công tắc quyền riêng tư" hồi tố | §9.1 row 14 |
| A-06 | Motion tier quyết định theo level vừa pass, không phải level sắp vào | Bảng của khách ghi "Passing any Associate Track or Levels 1, 2" / "Passing Level 3 or higher" — chủ ngữ là hành động pass | BR_4.16.1.3 |
| A-07 | Trên certificate có 2 level khác nhau cùng lúc: dòng "title and authority" = level sắp vào; dòng title của left box = level vừa pass. Đây là chủ ý, không được normalise | Đọc trực tiếp từ design pack: Level 7 - Trader đi cùng Level 6 Performance Bonus. Khớp với câu "The Right side of course maps to the level they are entering" | BR_4.16.1.9 — ghi chú ⚠️ cuối rule |
| A-08 | Tên trader wrap, không truncate | Truncate tên trên certificate là phản mục đích, đồng thời phá "equal visual weight" mà chuỗi dummy XXXXXXXXXXXXXXX dựa vào | BR_4.16.1.10 |
| A-09 | Trên màn Career, 5 icon share luôn ở trạng thái đã mở, không cần click 2 bước như trong modal | Khách yêu cầu "Share Level Up Video + 5 Social Shares" nằm chung 1 hàng | BR_4.16.1.17 |
| A-10 | [Replay Video] hidden (không phải disabled) khi Reduce Motion bật; certificate vẫn tới được qua [View Certificate] | Khách ghi verbatim "Replay Video (muted color, hidden if on Reduce Motion)" | BR_4.16.1.8 |
| A-11 | WebSocket rớt giữa sequence không làm gián đoạn animation — client đang render từ snapshot đã cầm trong tay | Kiến trúc snapshot của [LUC-BIZ-02] | §7 Exceptional Flow |
| A-12 | LEVEL_PROMOTION thứ 2 đến khi sequence đang chạy → không cắt ngang, xếp hàng và để rule "latest only" xử lý | Suy ra từ [LUC-BIZ-02] điểm 4 ("Do not force them to sit through consecutive videos") | §7 Exceptional Flow |
| A-13 | Toast copy link dùng ID mới TS-CERT-01, thêm vào list-toast-popup.md | Source chỉ nói "a lightweight toast notification confirming the copy", không cho chuỗi. Không có toast copy nào tồn tại sẵn trong file chung | BR_4.16.1.15 + TS-CERT-01 |
| A-14 | Màu sắc / độ nhấn của button (gold vs muted) không viết vào SRS — bị loại theo global-rules.md → No Visual Styling in Functional Specs; chỉ ghi lại trong Open Items để chuyển cho design | Rule dự án | §10 item 13 |
3. Impact sang tài liệu khác
| # | Tài liệu | Impact | Trạng thái |
|---|---|---|---|
| 1 | docs/BA/Common_rule/list-toast-popup.md | Thêm toast mới TS-CERT-01 (Copy Link trên certificate) + dòng Changelog | ✅ Đã cập nhật |
| 2 | docs/BA/UC_4.1-4.17/dashboard_live/index.md | Đánh dấu UC_4.16.1 đã có doc | ✅ Đã cập nhật |
| 3 | UC_4.1.1–4.1.5 §2 Screen Description row 2 | Mapping tab Career đang trỏ sai sang UC_4.15.2 (thực tế UC_4.15.2 = Hard Breach — Level Stop). Đúng phải là UC_4.16.1 | ✅ Đã sửa |
| 4 | Public milestone route /milestone/[unique-id] (cùng WBS item UC_4.16.1) — chưa viết | Phải nhất quán với UC này về: cùng payload snapshot, cùng cặp Public/Redacted token, gate Tap to View Milestone, fallback prefers-reduced-motion khi không có localStorage của trader | ⏳ Chưa viết |
| 5 | UC Stage 6 (Career Path & Professionalization) — chưa viết | Sở hữu toàn bộ logic promotion (16 step Flow 4, Table A/B, bonus). UC_4.16.1 chỉ tham chiếu | ⏳ Chưa viết |
| 6 | WBS UC_4.16.1 — mô tả hiện tại "Display vacation days, next pay date, lastest certificate", cột Reference/FE/BE để trống | Nên cập nhật Reference (2 file khách mới) và tách rõ phần certificate; cân nhắc ghi chú UC_4.16.1 chỉ mô tả certificate, phần HR read-only Rippling nằm ở đâu | ⏳ Cần BA quyết |
| 7 | References/Customer supplies/_SOURCE_MANIFEST.yaml | Bổ sung 2 file mới + priority + category tag (xem Q-15) | ⏳ Cần BA quyết |
| 8 | References/QnA from clients/.../QnA_STAGE2_SETTINGS_CAREER_VIRAL.md Open Item #21 | Item này ghi "next pay date và latest certificate chưa có câu hỏi nào" — nay latest certificate đã được 2 file khách trả lời gần như trọn vẹn; nên cập nhật lại Open Item #21 | ⏳ Cần BA quyết |