QnA Init Docs — UC_4.14.2 Pod Mentorship Module (LIVE)
QnA Init Docs — UC_4.14.2: Pod Mentorship Module (LIVE)
| Field | Value |
|---|---|
| UC | UC_4.14.2 — Pod Mentorship Module (Module: Community & Live Broadcast — LIVE) |
| WBS Category | STAGE 2.2: DASHBOARD LIVE → folder dashboard_live/ |
| BA PiC | anh.hoang12 (Anh Hoang) — theo WBS |
| Phạm vi | Chỉ phần hiển thị card "My POD" trên Dashboard tab Community của LIVE trader — 4 state UI + hợp đồng dữ liệu để suy ra state. KHÔNG viết lại thuật toán matching, SLA engine, carry vesting hay các Zapier flow phía sau (Flow 10 / 10.x / 11 / 15A–C / 17 thuộc UC_8.2.1–UC_8.2.12). Các flow đó chỉ được nêu đúng ở mức "sự kiện nào làm state của card đổi". |
| Ngày tạo | 2026-08-26 |
| Trạng thái | 📤 SRS UC_4.14.2_v1.md đã xuất bản. 13 open item ở §10 chờ khách/BE chốt (3 mục 🔴 blocking BE). 13 giả định BA tự đóng. |
Nguồn đã đối chiếu trước khi viết (theo MANDATORY FIRST-READ PROTOCOL):
References/Customer supplies/_SOURCE_MANIFEST.yaml— bản đồ file gốc ↔ file extract.References/CR/_CR_INDEX.md— quét toàn bộ CR. Có 1 CR trực tiếp:CR-20260818-001(Flow 7 — bước mới Pod Impact & Dispersal, hệ quả UI = statePending Mentor Allocation).References/QnA from clients/03_STAGE2_DASHBOARD_EVALUATION/Community + Settings/QnA_STAGE2_COMMUNITY_LIVE_BROADCAST.md§3 — Pod Mentorship ([POD-DEF-01],[POD-DEF-02],[POD-BIZ-01]→[POD-BIZ-16],[POD-UI-01],[POD-ZAP-01]) + §5 The Pit ([PIT-BIZ-01],[PIT-BIZ-09b]— POD = Discord Category).References/QnA from clients/03_STAGE2_DASHBOARD_EVALUATION/Founding mentor/QnA_STAGE2_FOUNDING_MENTOR.md—FM-09(Role_Flag = 'Founding Mentor' là lá chắn chống digital eviction).References/Customer supplies/RFQ_ Website and Dashboard Implementation V7.pdf§Community Page Implementation — Pod Mentorship Module.References/Customer supplies/RFQ_ Stack Trading Prop Tech V7.pdf§Community, Trustpilot and Discord Bot Endpoints (Get Pod Data,Create Pod Channel,Archive Pod Channel) + §pod_roleruntime derivation.References/Customer supplies/Zapier Integration V7.pdf— Table CGlobal_Variables(Pod_Max_Capacity = 7,Min_Pod_Leader_Level = 7), Table EPod_Leader_Registry, Flow 10 / 10.2 / 11 / 12 / 15A / 15B / 15C / 17.References/Customer supplies/(Stage 2) Community & Settings/Discord Server Details.md— categoryDYNAMIC PODS, channelpod-[leader_name]/archived-pod-[leader_name], rolePod Leader/Pod Member.docs/BA/UC_4.1-4.17/dashboard_sim/UC_4.9.2/UC_4.9.2_v1.md— UC anh em (SIM, locked).BR_4.9.2.3đã liệt kê đích danh những gì được defer sang UC_4.14.2 — dùng làm checklist scope.docs/BA/UC_4.1-4.17/dashboard_common/UC_4.5.2/UC_4.5.2_v1.md—BR_4.5.2.6/BR_4.5.2.7(link token + block hướng dẫn trên card The PIT),BR_4.5.2.11(POD = Discord Category).docs/BA/UC_4.1-4.17/dashboard_common/UC_4.6.1-4.6.4/UC_4.6.2_v1.md—BR_4.6.2.6(upload photo),BR_4.6.2.7(fallback initials),BR_4.6.2.13(Avatar Propagation — đã chỉ đích danh card này là consumer surface và defer quyết định precedence sang UC_4.14.2).References/QnA from clients/03_STAGE2_DASHBOARD_EVALUATION/Settings + Career + Viral/QnA_STAGE2_SETTINGS_CAREER_VIRAL.md—[PP-DEF-01]/[PP-DEF-02](⏳ chưa trả lời, Open Item #15).docs/BA/UC_4.1-4.17/dashboard_live/UC_4.14.1/UC_4.14.1_v1.md— UC cùng màn, dùng để giữ nhất quán cách viết state machine + cách reference.docs/BA/Common_rule/common_rules.md+list-toast-popup.md— CR-08 (timestamp), CR-09 (external link),TS-POD-01(toast mới thêm cho UC này).- Design pack khách gửi 2026-08-26 (4 state card My POD của LIVE) — BA cung cấp trực tiếp, chưa commit vào
References/Wireframe/(xem Q-11).
Phần 1 — Nội dung khách ĐÃ CHỐT (dùng thẳng khi viết SRS)
| # | Nội dung đã chốt | Nguồn |
|---|---|---|
| 1 | Pod Mentorship chỉ dành cho trader Level 1 trở lên đang trade vốn thật. SIM/Evaluation không có pod dưới mọi hình thức, kể cả xem read-only. | [POD-DEF-01] |
| 2 | Cấm ẩn card ở mọi state — ẩn component sẽ vỡ CSS grid của trang Community. | [POD-DEF-02] |
| 3 | 1 pod = tối đa 7 mentee + 1 Pod Leader = 8 người. Đây là setting trong Zapier (Table C Pod_Max_Capacity), ops đổi được, không cần deploy. ⚠️ Founding Pod Leader có thể được cấu hình capacity riêng trong database. | [POD-BIZ-01], Zapier Integration V7.pdf Table C |
| 4 | Đã nộp form join và endpoint trả trạng thái waitlist → UI phải render state "Pending Assignment", không phải empty card / CTA join mặc định. | [POD-BIZ-02] |
| 5 | Trong lúc Flow 15A re-match (leader bị terminate) → trader tạm về cùng state "Pending Assignment". UI tuyệt đối không được hiển thị leader đã bị terminate. | [POD-BIZ-03] |
| 6 | Một màn hình chung cho cả 2 kịch bản pending (vừa submit form / đang re-match). Tiêu đề "Pending Mentor Allocation" + subtext giải thích đang nằm trong hàng đợi tự động chờ ghế mentor trống. KHÔNG render section Team Member — chưa gán Pod Leader nghĩa là chưa ở trong pod nào, không có đồng đội để hiển thị. | [POD-BIZ-15] (Adrian Stack, 2026-08-18) |
| 7 | Không hiển thị SLA countdown trên UI. Deadline 72h nộp trading plan và 5 ngày induction sync được track phía server, thông báo hoàn toàn qua email tự động. | [POD-BIZ-04] |
| 8 | Member bị Zombie Protocol (Flow 12) đưa vào Inactive_Hold → thêm text/badge "Inactive" cạnh tên họ trong member list để phân biệt với trader active. | [POD-BIZ-05] |
| 9 | Pod đầy 7/7 → KHÔNG có badge/label "Full" trên card. | [POD-BIZ-06] |
| 10 | Hệ thống chỉ enforce 2 deadline onboarding. Tần suất gặp về sau do mentor/mentee tự thu xếp qua Discord; mức độ tương tác của mentor do backend AI audit (Flow 10.5), không có UI. | [POD-BIZ-07] |
| 11 | Email Pod_Reassigned_Notification là lifecycle marketing event — Sotatek không chịu trách nhiệm template/gửi, chỉ đẩy webhook sang Zapier → Klaviyo. | [POD-BIZ-08] |
| 12 | Card là view chung dùng chung: GET /community/my-pod trả cả leader_name / leader_level lẫn full mảng members trong một payload. Pod Leader và Pod Member thấy đúng cùng một layout. | [POD-BIZ-09] (Adrian — Figma comment) |
| 13 | Không có hạn chế privacy — member thấy full danh sách các member khác (name, level, status). Không có nút quản lý / bảng thống kê mentee cho Leader; theo dõi hiệu suất mentee đi qua email AI brief hàng tuần (Flow 10.3), không qua component UI này. | [POD-BIZ-10] (Adrian — Figma comment) |
| 14 | Danh sách member là danh sách tĩnh. Click vào member không mở drill-down profile / PNL / trading plan. | [POD-BIZ-12] (Adam — Figma comment) |
| 15 | "Enter My POD" dẫn ra ngoài tới channel Discord riêng của pod (discord_channel_url), không phải page in-app. Channel pod-[leader_name] là text + voice private do Discord Bot backend tạo và phân quyền (POST /create-pod-channel). | [POD-BIZ-13] (Adam — Figma comment) |
| 16 | "Join a POD" redirect user tới ActiveCampaign hoặc Typeform bên ngoài qua biến join_form_url do GET /community/my-pod trả về khi phát hiện state chưa được gán pod. Form thu thập input cho matching engine. | [POD-BIZ-13] (Adrian — Figma comment) |
| 17 | POD không phải một voice channel trần — mỗi POD là một Discord CATEGORY chứa đúng 1 text channel + 1 voice channel, chỉ member của POD đó truy cập được. | [PIT-BIZ-09b] (Adrian Stack, 2026-08-10), Discord Server Details.md |
| 18 | Label title/level của Leader và member (Senior trader - Lvl 12, Associate - Lvl 3) KHÔNG lấy từ Table G. Table G chỉ là nhóm permission Discord. Đây là title + level thật trên career path 24 level — xem Table A (Futures) và Table B (Forex). | [POD-UI-01] (Adam + Adrian — Figma comment) |
| 19 | Chấm màu cạnh tên member không phải online/offline — backend không có presence engine real-time. Nó map thẳng vào chuỗi account status trả về cho từng user trong mảng members: xanh = active, xám = inactive / suspended. | [POD-BIZ-11] (Adrian — Figma comment) ⚠️ còn conflict, xem Q-04 |
| 20 | discord_user_id IS NULL → KHÔNG build màn hình mới. Đổi text CTA từ Join a POD thành Link Discord to Unlock, render dạng secondary / muted button. | [POD-BIZ-16] (Adrian Stack, 2026-08-18) |
| 21 | Click Link Discord to Unlock → KHÔNG mở modal. Trigger highlight / pulse animation ngắn lên box Link your Discord account first trong widget The PIT + toast Discord authentication is required for Pod routing. | [POD-BIZ-16] |
| 22 | Mobile: widget The PIT bị stack xuống dưới → click phải auto-scroll mượt viewport xuống The PIT đồng thời chạy highlight animation. | [POD-BIZ-16] |
| 23 | Khi backend sync xong discord_user_id → button tự động về CTA primary Join a POD và bắn Typeform như bình thường. | [POD-BIZ-16] |
| 24 | Block hướng dẫn link Discord (Link your Discord account first + 3 bước + [Copy] token) nằm trên card The PIT, đã do BR_4.5.2.7 sở hữu — UC này không viết lại, chỉ trỏ tới. | [PIT-BIZ-01], UC_4.5.2_v1.md |
| 25 | Trader chạm Level 7 bị tự động gỡ khỏi pod (Flow 4 patch — Alumni Graduation Sequence): giảm Current_Count ở Table E, set users.pod_leader_id = NULL, gọi POST /manage-discord-role remove Pod Member, rồi chạy Flow 11. Hệ quả UI: card phải rơi về state chưa-có-pod, không được hiển thị leader cũ. | [POD-BIZ-14] (Adrian Stack, 2026-08-15) |
| 26 | Flow 7 — bước mới "Pod Impact & Dispersal": mentee rời đi → decrement Current_Count + clear pod_leader_id; leader rời đi → Status = Terminated + webhook POD_LEADER_TERMINATED → trigger Flow 15A. Hệ quả UI: mentee của leader bị terminate rơi về Pending Mentor Allocation. | [POD-ZAP-01] → CR-20260818-001 |
| 27 | Founding Mentor (Role_Flag = 'Founding Mentor') là lá chắn kiến trúc bypass script digital eviction tự động — hệ thống không xoá pod của họ kể cả khi họ dính stop-loss trên tài khoản trade cá nhân. Founding Mentor luôn là pod_leader. | FM-09 (Adrian Stack) |
| 28 | Session transition của Live Broadcast chỉ re-render component video. "The chat history, Pod details, and The Pit statuses must retain their active state without interruption." | Stage 2 - Dashboard & Fomula (Community).csv — Live Broadcast / Trigger A3; đã do BR_4.5.1.8 sở hữu |
Phần 2 — Câu hỏi & giả định cần BA / khách chốt
Toàn bộ mục dưới đây đã được ghi vào §10 của
UC_4.14.2_v1.mdvới cùng số thứ tự, để reviewer đọc SRS là thấy ngay.
| ID | Loại | Câu hỏi / Giả định | Cách xử lý trong SRS v1 | Trạng thái |
|---|---|---|---|---|
| Q-01 | SPEC_GAP 🔴 | Payload GET /community/my-pod không có field nào phân biệt được 3 state. RFQ_ Stack Trading Prop Tech V7.pdf §Get Pod Data mô tả đúng 2 nhánh: "If unassigned, populates join_form_url… If assigned, returns the leader data, the array of active members, and the direct Discord Channel URL." Nhưng [POD-BIZ-02] / [POD-BIZ-15] bắt buộc phải có state thứ 3 — Pending Mentor Allocation — mà cả unassigned lẫn pending đều có leader_name = null. Frontend không có cách nào phân biệt. | BA đề xuất, chờ BE/khách chốt: thêm field discriminator pod_status kiểu enum unassigned | pending | matched vào payload; FE chỉ switch theo field này, không suy diễn từ việc field khác null. Ghi vào BR_4.14.2.2 dưới dạng đề xuất, đánh dấu blocking. | ⏳ Blocking BE |
| Q-02 | SOURCE_CONFLICT 🔴 | WBS lệch với RFQ + QnA ở 3 điểm cho chính UC này. WBS mapping_be ghi GET /pod/status trả waitlist_position, và description ghi card hiển thị "current carry balance". RFQ + [POD-BIZ-09] + [POD-BIZ-13] đều dùng GET /community/my-pod và payload không có carry_balance lẫn waitlist_position. Ngoài ra Pending_Carry_Balance (Table E) là tiền của Pod Leader, hiển thị nó cho mentee là sai nghiệp vụ. | Viết theo RFQ + QnA (GET /community/my-pod, không render carry balance, không render waitlist position — [POD-BIZ-15] chốt subtext là câu giải thích hàng đợi, không phải con số). Flag ở §10; WBS cần sửa. | ⏳ Blocking BE (chốt contract) |
| Q-03 | SPEC_GAP 🔴 | Trader đã được match nhưng discord_user_id IS NULL thì card hiển thị gì? [POD-BIZ-16] chỉ quy định CTA cho state chưa có pod. Nếu một trader ở state matched mà chưa link Discord, nút Enter My POD sẽ mở một channel private mà họ không có role để vào → dead click, đúng thứ khách muốn tránh ("This prevents dead clicks"). | BA đề xuất: áp cùng một gate Discord cho cả nút Enter My POD — chưa link thì nút đổi thành Link Discord to Unlock với đúng hành vi pulse + toast. Ghi vào BR_4.14.2.3 dưới dạng đề xuất, đánh dấu blocking. | ⏳ Blocking — chờ khách |
| Q-04 | SOURCE_CONFLICT | Chấm status của member: nguồn nào? Adam = online status từ Discord, poll theo số trader online. Adrian (mới hơn, cụ thể hơn) = account status trong mảng members. Conflict chưa được đóng chính thức. (Open Item #6 của QnA_STAGE2_COMMUNITY_LIVE_BROADCAST.md.) | Viết theo Adrian (account status) — nguồn mới hơn và khớp với chính payload RFQ (members[].status). Backend không có presence engine nên phương án của Adam sẽ phát sinh scope mới. Flag ở §10. | ⏳ Chờ khách |
| Q-05 | SOURCE_CONFLICT | Form "Join a POD" thu field gì? Adrian = Asset Class + Trading Style; một clarification trước đó = chỉ Trading Style, Asset_Class tự lấy từ tài khoản trading. (Open Item #7.) Zapier Flow 10 Step 2 viết "Trader submits Asset_Class + Style". | Viết theo Adrian + Flow 10 (2 field). Đây là form bên thứ 3, Sotatek không build → ảnh hưởng thấp với FE, nhưng là input của matching engine nên vẫn phải chốt. Flag ở §10. | ⏳ Chờ khách |
| Q-06 | SOURCE_CONFLICT | Label nút: Enter My POD hay Enter Pod Chat? Design pack 2026-08-26 + [POD-BIZ-13] dùng Enter My POD. RFQ_ Website and Dashboard Implementation V7.pdf + WBS description dùng "Enter Pod Chat". | Viết theo design + QnA (Enter My POD) — nguồn mới hơn và là nguồn khách đã duyệt visual. Flag ở §10. | ⏳ Chờ khách (confirm wording) |
| Q-07 | SPEC_GAP | Enum của members[].status chưa được nguồn nào định nghĩa. RFQ chỉ ghi "status": "string". [POD-BIZ-05] nói tới Inactive_Hold; [POD-BIZ-11] nói "xanh = active, xám = inactive hoặc suspended". Không có danh sách giá trị hợp lệ. | BA đề xuất: treat như binary ở tầng render — Active → chấm active + không có nhãn; mọi giá trị khác → chấm inactive + nhãn Inactive. Cách này không vỡ khi BE thêm giá trị mới. Ghi vào BR_4.14.2.7. | ⏳ Chờ BE chốt enum |
| Q-08 | SOURCE_CONFLICT | Discord Server Details.md §pod-[leader_name] ghi "Product Consumer Audience: Pod Leaders and assigned Pod Members (Trader Level 6 and above)". Mâu thuẫn trực tiếp với [POD-DEF-01] ("Level 1 và trở lên đang trade vốn thật") và với Flow 10 (mentee được gán pod ngay sau Flow 3 Completion, tức Level 1). | Viết theo [POD-DEF-01] (Level 1+) — QnA thắng Customer supplies theo priority chain. Flag ở §10 để khách sửa lại Discord Server Details.md. | ⏳ Chờ khách |
| Q-09 | UX_GAP | Dashboard của mentor hiển thị gì khi một mentee tốt nghiệp Level 7 và rời pod? [POD-BIZ-14] để mở đúng 3 câu (a) trader từ chối lời mời Pod Leader thì ở luôn trạng thái không pod hay join lại được làm mentee; (b) carry / state SLA của mentee vừa rời có được dọn không; (c) dashboard mentor hiển thị gì. (Open Item #14.) | Viết theo hệ quả cơ học của payload: member biến mất khỏi mảng members ở lần mount kế tiếp, không có thông báo, không có nhãn Graduated. Flag (a)(b)(c) ở §10. | ⏳ Chờ khách |
| Q-10 | IMPACT_ANALYSIS | Ghế mentor vừa trống do Flow 7 có được Flow 11 lấp tự động không? [POD-BIZ-14] (Flow 4) có bước chạy Flow 11; [POD-ZAP-01] (Flow 7) không nói. (Open question (c) của CR-20260818-001, Open Item #17.) | Không thuộc UI của card, nhưng quyết định trader ở state Pending Mentor Allocation bao lâu. Ghi consequence vào BR_4.14.2.13, flag ở §10. | ⏳ Chờ khách |
| Q-11 | SOURCE_HYGIENE | Design pack 2026-08-26 chưa có trong repo — 4 state card My POD của LIVE được cite nhưng không mở được từ References/Wireframe/Stage 2.2/. Hai file hiện có trong Stage 2/Community & Live Broadcast/ (Community Page.png, Community Page (No data state).png) chỉ phủ state 1 và state 2. | Cite là "client design pack, 2026-08-26", flag ở §10. | 📋 BA cần commit |
| Q-12 | SPEC_GAP | Payload không có field avatar, cũng không có user_id để resolve. Get Pod Data chỉ trả leader_name, leader_level, members[] { name, level, status }. Read-through theo BR_4.6.2.13 cần biết người đó là ai, nhưng FE chỉ cầm cái tên. Get User Profile nhận user_id và phục vụ màn Account Settings của chính user — không phải endpoint tra profile người khác. Thiếu field này thì card chỉ render được ảnh của chính trader (1/8 dòng), còn lại ra initials. | BA đề xuất: endpoint trả thêm profile_photo_url cạnh nhóm field của leader và trong từng phần tử members[], resolve phía server. Rẻ: Get Pod Data "queries the SQL Database" và Users.profile_photo_url nằm cùng một SQL DB → chỉ là một cú JOIN, không phải tích hợp cross-system. Gộp chung cửa sổ sửa payload với Q-01. | ⏳ Chờ BE confirm |
| Q-13 | SPEC_GAP | Avatar Dashboard vs avatar Discord — chưa chốt. [PP-DEF-02] hỏi đúng câu này ("Avatar này dùng ở những màn hình nào?… nếu nó xung đột với avatar lấy từ Discord thì sao?") và vẫn ⏳ CHƯA TRẢ LỜI (Open Item #15 của QnA_STAGE2_SETTINGS_CAREER_VIRAL.md). BR_4.6.2.13 nói rõ quyết định precedence thuộc về UC_4.14.2. | Viết theo lập trường BA: profile_photo_url của Dashboard trước, fallback duy nhất là initials, không đọc Discord. Lý do: giữ một nguồn avatar duy nhất toàn Dashboard và không phát sinh read Discord metadata cho từng member. Ghi vào BR_4.14.2.15 kèm cảnh báo chưa được khách confirm. | ⏳ Chờ khách |
Phần 3 — Giả định BA tự đóng (không cần hỏi khách)
| ID | Giả định | Căn cứ | Ghi vào |
|---|---|---|---|
| A-01 | Thứ tự resolve state: account type/level (SIM → UC_4.9.2) → pod_status từ API → gate Discord chỉ viết lại CTA, không đổi state. | Gate Discord là gate hành động, không phải gate dữ liệu: link Discord không tạo ra pod, và một trader đang trong pod thì vẫn phải thấy pod của mình. Trộn 2 loại gate vào cùng một cây quyết định sẽ tạo state ma (VD "matched nhưng render empty"). | BR_4.14.2.2 |
| A-02 | Card không hiển thị carry balance dù WBS description có nhắc. | Pending_Carry_Balance (Table E) là tiền carry của Pod Leader, trả theo Flow 17 vào ngày 1 hàng tháng qua Dots/Rippling. Payload Get Pod Data không có field này, và [POD-BIZ-10] chốt card không có bảng thống kê/quản lý cho Leader. Render nó cho mentee là lộ dữ liệu tài chính của người khác. | BR_4.14.2.6, Q-02 |
| A-03 | Enter My POD mở tab mới (target="_blank" + rel="noopener noreferrer"), không điều hướng trong tab hiện tại. | Đây là external link ra Discord, cùng pattern với [Open Discord] của BR_4.5.2.7 trên card The PIT ngay cạnh. Điều hướng trong tab hiện tại sẽ đá trader ra khỏi Dashboard giữa phiên trade. | BR_4.14.2.9 |
| A-04 | Join a POD cũng mở tab mới — form Typeform/ActiveCampaign là external. | Cùng lý do A-03. Thêm nữa: sau khi nộp form trader phải quay lại Dashboard để thấy state đổi, giữ tab gốc là cần thiết. | BR_4.14.2.4 |
| A-05 | Card không auto-refresh sau khi trader nộp form. State đổi ở lần mount kế tiếp của trang Community. | Không nguồn nào cấp WebSocket event cho pod, và matching là Python script chạy bất đồng bộ (Flow 10 Step 3) — không có mốc thời gian để poll. Khách đã từ chối polling ở mọi component khác trên trang này. | BR_4.14.2.10 |
| A-06 | Không có loading skeleton riêng cho card; card dùng treatment loading cấp trang của Community page. | Card chỉ tiêu thụ một request, cùng nhịp với các widget khác trên trang. Vẽ skeleton riêng cho một card sẽ lệch nhịp với 3 card còn lại. | BR_4.14.2.10 |
| A-07 | GET /community/my-pod lỗi/timeout → dùng TE-SYS-01, card giữ khung + hiện trạng thái lỗi, không fallback về empty state You're not in a POD. | Fallback về empty state sẽ nói dối trader rằng họ không có pod, và dụ họ bấm Join a POD để nộp form lần hai — tạo bản ghi rác cho matching engine. | BR_4.14.2.10, §7 |
| A-08 | Không có nhãn Full, không có bộ đếm x/7, không có thanh capacity trên card ở bất kỳ state nào. | [POD-BIZ-06] chốt "Không" cho badge Full. Max_Capacity / Current_Count là field của Table E, không có trong payload Get Pod Data → FE không có dữ liệu để render. | BR_4.14.2.11 |
| A-09 | Không có countdown, không có nhãn SLA, không có trạng thái "chưa nộp Trading Plan" trên card. | [POD-BIZ-04] chốt SLA hoàn toàn qua email. Chấm màu cạnh tên member map vào account status, không phải trạng thái nộp plan ([POD-BIZ-11]) — đừng để QA nhầm 2 thứ này. | BR_4.14.2.12 |
| A-10 | Founding Mentor: card của mentee không đổi gì khi leader dính breach. Không hiện Under Review, Breached, Suspended hay bất kỳ nhãn cảnh báo nào của Leader. | Hệ quả trực tiếp của FM-09: Role_Flag = 'Founding Mentor' chặn script eviction chạy, nên Pod_Leader_Registry.Status không đổi sang Terminated → Flow 15A không bắn → không có sự kiện nào để UI phản ứng. Card vốn cũng không có field trạng thái của Leader trong payload (leader_name + leader_level, hết). | BR_4.14.2.14 |
| A-11 | Card hiển thị y hệt nhau bất kể broadcast đang live hay offline. | BR_4.5.1.8 (session transition chỉ re-render component video) + nguyên văn khách "The chat history, Pod details, and The Pit statuses must retain their active state without interruption." | BR_4.14.2.10 |
| A-13 | Avatar không phải control upload trên card này — không click được, không mở crop modal. Sửa ảnh chỉ ở Settings. | BR_4.6.2.6 sở hữu toàn bộ luồng upload (S3 signed URL + PATCH /profile-photo). Dựng control thứ hai sẽ tạo 2 đường ghi vào cùng một cột. Ngoài ra card này còn render avatar của người khác, vốn không thể sửa được. | BR_4.14.2.15, §9 row 5 |
| A-12 | Tên member overflow → truncate + tooltip; title/level → wrap. Member list dài hơn khung → scroll trong card, card giữ chiều cao cố định. | Design pack 2026-08-26 vẽ member list có scrollbar riêng. Card phải giữ chiều cao để không đẩy The PIT bên cạnh — cùng ràng buộc grid mà khách nêu ở [POD-DEF-02]. | §9 row 6–7 |
Phần 4 — Impact sang tài liệu khác
| Tài liệu | Impact | Trạng thái |
|---|---|---|
docs/BA/Common_rule/list-toast-popup.md | Thêm TS-POD-01 — "Discord authentication is required for Pod routing." (Info), trigger bởi [POD-BIZ-16]. | ✅ Đã apply (v3.16) |
UC_4.9.2_v1.md — BR_4.9.2.3 | Rule ghi "UC_4.14.2 — Pod Mentorship Module (LIVE) (not yet documented in this repo)". Nay đã có doc → cần đổi thành link tới UC_4.14.2_v1.md. | ⏳ Chưa apply (cần bump version file) |
UC_4.6.2_v1.md — BR_4.6.2.13 | Bảng consumer surface ghi 2 dòng "UC_4.14.2 — Pod Mentorship Module (LIVE, not yet documented in this repo)", và note cuối rule defer câu hỏi precedence Dashboard-vs-Discord sang UC_4.14.2. Nay đã có doc → cần đổi thành link tới BR_4.14.2.15. | ⏳ Chưa apply (cần bump version file) |
QnA_STAGE2_SETTINGS_CAREER_VIRAL.md — [PP-DEF-02] | Câu hỏi "avatar dùng ở màn nào / xung đột với Discord thì sao" nay đã có câu trả lời một phần từ phía BA (BR_4.14.2.15). Vẫn cần khách chốt phần precedence. Nên gộp vào batch câu hỏi tới cùng Q-12. | 📋 BA cần cập nhật |
UC_4.5.2_v1.md — BR_4.5.2.11 | Ghi "Provisioning… belongs to the Pod Mentorship module (POST /create-pod-channel, UC_4.14.2 — not yet documented in this repo)". Cần đổi thành link. | ⏳ Chưa apply (cần bump version file) |
dashboard_live/index.md | Dòng UC_4.14.2 chưa có link doc; note đầu file "Đã có tài liệu: …" chưa liệt kê UC_4.14.2. | ✅ Đã apply |
WBS UC_4.14.2 | 3 điểm sai (Q-02): mapping_be ghi GET /pod/status → đúng là GET /community/my-pod; waitlist_position không có trong payload RFQ; description ghi "current carry balance" → không render trên card này. description cũng ghi CTA "Enter Pod Chat" → design + [POD-BIZ-13] dùng Enter My POD (Q-06). | 📋 BA cần sửa WBS |
| WBS — estimate BE | Q-01 (thêm field pod_status vào payload) và Q-03 (gate Discord cho Enter My POD) có thể phát sinh line item BE mới. Ngoài ra POST /manage-discord-role ([POD-BIZ-14]) không có trong RFQ_ Stack Trading Prop Tech V7.pdf — Open Item #13 của QnA file vẫn treo. | 📋 Cần review estimate |
UC cho Flow 15 — Pod Re-Assignment (UC_8.2.9) | CR-20260818-001 thêm nguồn trigger thứ 2 (POD_LEADER_TERMINATED từ Flow 7). Đây là sự kiện đưa card vào state Pending Mentor Allocation. | ⏳ Chưa apply (đã nêu trong CR summary) |
UC cho Flow 11 — Waitlist Processor (UC_8.2.8) | Q-10: chốt Flow 7 có trigger Flow 11 sau khi decrement Current_Count không. Quyết định thời gian trader nằm ở state Pending. | ⏳ Chờ khách |
QnA_STAGE2_COMMUNITY_LIVE_BROADCAST.md — Open Items | Mục #6 (POD-BIZ-11), #7 (POD-BIZ-13), #14 (POD-BIZ-14), #17(c) (POD-ZAP-01) nay đã blocking trực tiếp cho UC_4.14.2 → nên nâng priority khi gửi khách batch tới. Bổ sung 4 mục mới: Q-01, Q-03, Q-06, Q-08. | 📋 BA cần cập nhật |
References/Wireframe/Stage 2.2/ | Thiếu folder Community & Live Broadcast chứa 4 state design LIVE của card My POD (Q-11). | 📋 BA cần commit |
References/Customer supplies/(Stage 2) Community & Settings/Discord Server Details.md | §pod-[leader_name] ghi audience "Trader Level 6 and above", mâu thuẫn [POD-DEF-01] (Level 1+) — Q-08. | 📋 Cần khách sửa nguồn |