StackTrading Docs

QnA Init Docs — UC_8.2.1 (Flow 10 - Pod Joining)

UC liên quan: UC_8.2.1 — Flow 10: Pod Joining Trigger: Flow 3 (Live Onboarding) hoàn tất → gửi mời; trader gửi form Style → ghép pod Agent tạo: Agent 1 (Auditor) + Agent 2 (Challenger), theo system_init_workflow.md — Init Flow Ngày tạo: 2026-10-12 · Phiên bản: v1 BA phụ trách: Anh Hoang Ghi chú: Thay thế bản QnA_init_docs ngày 2026-10-09 (đã xoá cùng UC cũ). Câu hỏi cũ được mang sang, ghi ID cũ trong ngoặc. SRS chưa viết — chờ BA review file này (PAUSE Gate).


0. Compliance Checklist (Agent 1 — Auditor)

#Hạng mụcKết quảGhi chú
1Source pre-flight: _CR_INDEX.md → _SOURCE_MANIFEST.yaml → _QNA_INDEX.md✅CR: CR-20260818-001 (Flow 7 Pod Impact — gián tiếp). QnA: QnA_STAGE6_POD_SYSTEM_FLOW10_11.md v1.7, QnA_STAGE2_COMMUNITY_LIVE_BROADCAST.md (POD-DEF-01, POD-BIZ-01/14). Nguồn gốc: Zapier Integration V7.pdf §Flow 10, §3.1 Table C, §3.3 Table E · RFQ_ Stack Trading Prop Tech V7.pdf §Match Pod Mentor, §Get Pod Data, §Create Pod Channel
2CR-08 Timestamp✅Áp cho pod_join_date, mốc vào waitlist (Join_Date), Plan_Due
3CR-18 Webhook no-op✅Áp cho: gửi form trùng, discord_user_id IS NULL, thiếu kênh pod
4CR-15.2 Slack✅Khách ghi kênh "Operations" / #operations / #risk-ops — xem P-01
5WBS: UC_ID tồn tại✅UC_8.2.1, category STAGE 6: CAREER PATH & PROFESSIONALIZATION. WBS ghi PiC huyen.dinh2 — tài liệu ghi Anh Hoang (xem §7 việc 1)
6Folder✅docs/BA/UC_8.1-8.5/UC_8.2.1/ — theo tiền lệ UC_8.1.1
7[MISSING_DEPENDENCY]⚠️UC_8.2.2 → UC_8.2.8 đang viết cùng đợt. UC_8.2.9 (Flow 15A), UC_8.2.10 (Flow 15B) chưa có SRS → chỉ ghi ID dạng text
8[CROSS_UC_CONFLICT]⚠️Khớp UC_4.14.2 (BR_4.14.2.4, BR_4.14.2.13 sự kiện 1–3) và UC_8.1.1 (Stage 2 bước 3 — Pod Graduation). Lệch với Discord Server Details.md — xem C-01
9[INTRA_RULE_CONTRADICTION]⚠️Welcome ping công khai chứa link form cá nhân — xem A-07
10Spec V7 bị QnA override✅Xem §2

1. Đã chốt từ QnA / CR / BA — không hỏi lại

IDNội dung đã chốtNguồn
Q-01Pod chỉ cho LIVE. Mentee Level 1–6; Level 7 = tốt nghiệp, không được làm mentee (2 vai trò loại trừ nhau)POD-DEF-01, POD-JOIN-27, POD-BIZ-14
Q-02Pod_Mentorship_Invite gửi qua AWS SES, Zapier dispatch; link gắn user_id làm Typeform hidden field; lời mời không hết hạn, không submit thì trade bình thường không có podPOD-JOIN-05/15/24, POD-JOIN-13 (partial)
Q-03Form Style trên Typeform, Sotatek dựng; chỉ hỏi Style (1 trong Scalping, Day Trading, Swing Trading, Algorithmic Trading); Asset_Class đọc từ Users; Style lưu vào profile mentee trong Users, không vào Table E; không có UI Dashboard (Day 2)POD-JOIN-01/02/03/10, POD-XF-08
Q-04Form cũng mở được từ nút [Join a POD] trên thẻ My POD (join_form_url có sẵn user_id)UC_4.14.2 BR_4.14.2.4
Q-05Submit lại khi đã có pod / đang Waitlist → 200 OK, dropPOD-JOIN-16
Q-06Waterfall: Asset_Class bắt buộc → Style ưu tiên → Current_Count thấp nhất → Leader_ID ASC. Không dùng điểm survey/engagement. Không leader cùng Asset còn suất → WaitlistPOD-JOIN-06/07/08/09
Q-07Style khớp khi Style mentee nằm trong danh sách Style của leaderBA chốt 2026-10-09 (UC_8.2.8 cũ A-15)
Q-08Chỉ leader Status = Active; so với Max_Capacity per-leader (Table E); Pod_Max_Capacity (Table C) chỉ là default khi tạo leaderPOD-JOIN-19, POD-JOIN-18 (partial)
Q-09Row-locking khi tranh suất cuối; người thua → waitlist + nhận emailPOD-JOIN-17
Q-10Matching + ghi DB chạy native Node.js (bỏ Python Script)POD-JOIN-04/05
Q-11Gán pod = set pod_leader_id + Current_Count + 1 cùng lúc; ghi pod_join_date; mở Plan_Due = lúc gán + 72 giờ liên tụcPOD-JOIN-03, POD-FDBK-09, POD-PLAN-07
Q-12Chỉ Middleware được ghi Current_CountBA chốt 2026-10-09 (UC_8.2.8 cũ A-17)
Q-13Suất đang giữ cho trader waitlist được tính vào Current_Count → Flow 10 tự không thấy suất đó. Flow 10 giữ nguyên, không cần sửaPOD-WAIT-03/04
Q-14Pod_Assignment_Confirmation do Klaviyo gửi (Middleware emit event), bắt buộc có link Trading Plan + nhắc liên kết DiscordPOD-JOIN-20/22, POD-XF-07
Q-15Chưa liên kết Discord → vẫn gán pod; /manage-discord-role drop (CR-18)POD-JOIN-20
Q-16Welcome ping công khai trong kênh pod (copy T-02); kênh thiếu / archived → drop + Slack (copy T-01), mentee vẫn được gánPOD-JOIN-21/22
Q-17Không match → status Waitlist + Pod_Waitlist_Notification (Klaviyo, gửi 1 lần). Cách lưu waitlist do BE tự quyếtPOD-JOIN-09/17, POD-WAIT-15, BA chốt UC_8.2.8 cũ A-09, A-16
Q-18Không self-service đổi / rời pod; đổi qua Support → /admin-pod-reassignment (cooldown 30 ngày); rời kênh Discord ≠ rời pod, vào lại qua ticketPOD-JOIN-12/26/28

2. Spec V7 bị QnA override — đã áp, không cần BA quyết

IDSpec V7QnA (thắng)
O-01Flow 10 Step 2 form hỏi Asset_Class + Style · Match Pod Mentor input có asset_classBỏ Asset_Class khỏi form và input, đọc từ Users (POD-JOIN-03). BA xác nhận lại 2026-10-13 (client sheet Flow 10 chưa gạch Asset_Class)
O-02Match Pod Mentor Criteria: khớp cả Style + AssetStyle chỉ là ưu tiên (POD-JOIN-06)
O-03Step 3 "Python Script"Native Node.js SQL (POD-JOIN-04)
O-04Step 5 status Pod_Waitlist + tăng Pod_Waitlist_CountWaitlist, không có bộ đếm; cách lưu do BE quyết (POD-WAIT-15). BA xác nhận lại 2026-10-13
O-05QnA round 1: Pod_Assignment_Confirmation "sent via Zapier"Klaviyo (round 2 — POD-JOIN-20/22)

3. Conflict — cần BA quyết

IDCâu hỏiGiả định (BA/QC đề xuất)BA chốt (ưu tiên cao nhất)Trạng thái
C-01[CROSS_UC_CONFLICT] Discord Server Details.md §pod-[leader_name] ghi audience "Pod Leaders and assigned Pod Members (Trader Level 6 and above)", nhưng QnA (POD-DEF-01, POD-JOIN-27) chốt mentee là Level 1–6.Theo QnA (Level 1–6). UC không sửa file Discord. Báo khách sửa doc Discord.⏳ Chờ BA 🟡

4. Câu hỏi & giả định (Agent 2 — Challenger)

IDCâu hỏiGiả định (BA/QC đề xuất)BA chốt (ưu tiên cao nhất)Trạng thái
S-01Bảng phân chia sở hữu nội dung cho 8 UC Pod — để mỗi rule chỉ viết 1 lần, UC khác link sang. Xem bảng §4.1 bên dưới.Áp đúng bảng §4.1.⏳ Chờ BA 🔴
A-01Đường đi của form Style (cũ: A-01): Typeform → Zapier Flow 10 → Middleware Match Pod Mentor → Zapier gọi /manage-discord-role? Hay Typeform bắn thẳng vào Middleware (như survey Flow 10.4) và Middleware tự gọi Discord bot?Qua Zapier (khớp V7 Flow 10 + POD-JOIN-20 "khi Zapier gọi /manage-discord-role").Typeform → Zapier → Zapier gọi Match Pod Mentor API → trả Assigned thì Zapier gọi tiếp API Manage Discord Role. BA chốt 2026-10-15.✅ Đã chốt
A-02Ai được gửi form Style (cũ: A-02 + UC_8.2.8 cũ N-04). Link email không hết hạn nên người không còn đủ điều kiện vẫn gửi được. POD-JOIN-16 mới chỉ drop khi đã có pod / đang Waitlist. Còn: Pending_Pod_Confirmation, Inactive_Hold, Waitlist_Ghost, Level ≥ 7, đã terminate/resign.Drop (CR-18): đã có pod_leader_id, status Waitlist / Pending_Pod_Confirmation / Inactive_Hold, Level ≥ 7, tài khoản LIVE không còn hoạt động. Cho gửi lại: Waitlist_Ghost → chạy matching như người mới, nếu vào waitlist thì cuối hàng (Join_Date mới).Bỏ qua (200 OK, không ghi) như trường hợp đã có pod / Waitlist: Pending_Pod_Confirmation, Inactive_Hold, Level ≥ 7, LIVE không còn hoạt động. Waitlist_Ghost ghép như người mới, vào waitlist thì cuối hàng. BA chốt 2026-10-15.✅ Đã chốt
A-03Welcome ping khi chưa liên kết Discord (cũ: A-03): ping cần <@discord_user_id> để tag.Bỏ welcome ping, không gửi Slack. Mentee nhận link Trading Plan qua email Klaviyo.Vẫn đăng welcome ping — tin này đồng thời báo Pod Leader có mentee mới. discord_user_id rỗng → dùng first_name last_name dạng chữ thường thay tag. Khách trả lời (POD-JOIN-29).✅ Đã chốt
A-04Liên kết Discord sau khi đã được gán pod (cũ: A-04): /manage-discord-role đã bị drop lúc gán → không ai gán lại role Pod Member → mentee không vào được kênh pod.Khi trader liên kết Discord thành công, Middleware kiểm tra pod_leader_id; có pod → gán role Pod Member (cùng chỗ đồng bộ role theo Level — UC_8.1.1 "Late-linking role sync"). Không gửi lại welcome ping.Trader liên kết Discord thành công → Middleware kiểm tra pod_leader_id; có pod → gán role Pod Member. BA chốt 2026-10-15.✅ Đã chốt
A-05Gán thành công nhưng bước sau lỗi (cũ: A-06): emit Klaviyo lỗi, /manage-discord-role lỗi (không phải do thiếu Discord). [POD-XF-04]Không rollback việc gán (DB là nguồn chuẩn). Lỗi Zap → cơ chế "Zap Error" (UC_8.2.2 P-02). Emit Klaviyo từ Middleware lỗi → retry 3 lần, vẫn lỗi thì log + Slack Ops.Không rollback. Lỗi → 1 Slack alert #ops-general (khách ghi #operations, map theo P-01): "Pod Assignment Downstream Error: Failed to dispatch Klaviyo/Discord event for User [user_id] in Pod [pod_leader_id]." Retry 3 lần đẩy sang Day 2 (trừ khi có helper dùng chung). Discord lỗi → 200 OK để Zap không báo thêm "Zap Error". Khách trả lời 2026-10-22.✅ Đã chốt
A-06Trader có cả Futures và Forex [POD-JOIN-11]: 1 pod hay 2 pod, lấy asset nào?1 pod duy nhất; lấy Asset_Class của tài khoản LIVE đang hoạt động đầu tiên.Không áp dụng — mỗi trader chỉ có 1 Asset_Class (Zapier Integration V7.pdf Flow 1 lưu 1 giá trị theo nền tảng chọn lúc checkout). BA chốt 2026-10-15.✅ Đã chốt
A-07[INTRA_RULE_CONTRADICTION] Link form trong welcome ping công khai (chuyển từ UC_8.2.2 cũ A-01). T-02 post công khai trong kênh pod kèm [Typeform_Link]. Link phải có user_id của mentee mới (hidden field) → ai trong kênh cũng bấm và nộp thay được (kích hoạt đóng Plan_Due, email cho leader). Mâu thuẫn với nguyên tắc "map bằng hidden field để không nhầm người" (POD-JOIN-15).Welcome ping dùng câu nhắc "check your email for your Trading Plan link", không chứa link; link có user_id chỉ đi qua email riêng (Pod_Assignment_Confirmation, email SLA). Cần khách đổi copy T-02.Không cần chặn, giữ link trong T-02. Form nhúng trang wrapper có đăng nhập trên stacktrading.com, user_id lấy từ phiên đăng nhập (CHR-127) → người khác bấm link chỉ mở form của chính họ. Kèm theo: chặn gửi lần 2 ở form Style / Trading Plan / Mentee Survey. Khách trả lời 2026-10-22.✅ Đã chốt
A-08Điều kiện gửi mời [POD-JOIN-14] (cũ: A-08): Flow 3 hoàn tất, account_status = Active_L1_DMA, hay sau giao dịch LIVE đầu tiên?Flow 3 hoàn tất (ngay sau email Live_Onboarding_Level_1), đúng V7.Gửi ngay khi Flow 3 hoàn tất. BA chốt 2026-10-15.✅ Đã chốt
A-09Registry rỗng lúc go-live [POD-JOIN-25] (cũ: A-09).Vẫn gửi mời + waitlist như thường. Leader mới vào sẽ kéo người từ waitlist (Flow 11 sự kiện 2 — POD-WAIT-18).⏳ Chờ khách 🟡
A-10Nhắc lại lời mời [POD-JOIN-13] (cũ: A-12): có gửi nhắc không; trader muốn tham gia sau thì lấy link ở đâu?Không nhắc lại; trader vào form qua nút [Join a POD] trên thẻ My POD.⏳ Chờ khách 🟡
A-11pod_id ≡ Leader_ID? [POD-JOIN-23] — /admin-pod-reassignment nhận new_pod_id; calendar-strike và Flow 10.5 nhận cả pod_id lẫn leader_id.Đúng — 1 leader = 1 pod, dùng Leader_ID làm pod_id trong mọi UC Pod.⏳ Chờ khách 🟡
A-12Job đối chiếu Current_Count [POD-XF-02] (cũ: UC_8.2.8 A-17 phần BLOCKED): có job hằng ngày so Current_Count với số mentee thực tế (+ số suất đang giữ) không?Có — chạy hằng ngày, lệch thì tự sửa + Slack Ops.⏳ Chờ khách 🟠
A-13Notification Center [POD-XF-09] (cũ: A-13): sự kiện pod có hiện trên Dashboard không? Áp cho cả 8 UC Pod.Không hiển thị giai đoạn này (nhất quán POD-XF-08).⏳ Chờ khách 🟡
A-14Ngôn ngữ [POD-XF-11]: mọi email / DM / form của Pod System chỉ tiếng Anh? Áp cho cả 8 UC Pod.Chỉ tiếng Anh (mọi template khách gửi đều tiếng Anh).⏳ Chờ khách 🟡

4.1 Bảng phân chia sở hữu (cho S-01)

Nội dungUC viết đầy đủUC khác chỉ link
Điều kiện được làm mentee, ai được gửi formUC_8.2.18.2.8
Waterfall ghép pod + bước "gán pod" (pod_leader_id, Current_Count, pod_join_date, mở Plan_Due, email Klaviyo, Discord role, welcome ping)UC_8.2.18.2.8 (dùng lại khi trader bấm xác nhận)
Vòng đời status pod của trader (Waitlist, Pending_Pod_Confirmation, Assigned, Waitlist_Ghost, Inactive_Hold)UC_8.2.88.2.1
Form Trading Plan, PDF, phân tích AI, webhook TRADING_PLAN_ANALYZEDUC_8.2.28.2.3, 8.2.5
Email gửi leader, Master Calendar link, Calendar Compliance Auditor, strikeUC_8.2.38.2.4 (đóng Induction_Due)
Quy tắc "email cho leader chỉ gửi vào @stacktrading.com"UC_8.2.38.2.4, 8.2.5
Bảng SLA_Deadlines (cột, đóng, tạm dừng, xoá) + danh sách status được loại trừUC_8.2.48.2.1 (mở Plan_Due), 8.2.2 (đóng Plan_Due, mở Induction_Due), 8.2.3 (đóng Induction_Due), 8.2.5, 8.2.7
Cơ chế "Zap Error" → Slack cho mọi Zap PodUC_8.2.2 (hoặc common rule — P-02)còn lại
Kênh Slack của Pod SystemUC_8.2.1 P-01 (hoặc common rule)còn lại

Impact analysis — dữ liệu Flow 10 ghi ra và nơi dùng tiếp (không viết vào UC, chỉ để QA/BE truy vết)

Dữ liệuDùng bởi
Users.pod_leader_idFlow 4 carry + Pod Graduation (UC_8.1.1) · Flow 10.1A/B tra leader (UC_8.2.2/8.2.3) · Flow 10.3 brief (UC_8.2.5) · Flow 7 Pod Impact (CR-20260818-001) · Get Pod Data (UC_4.14.2)
Pod_Leader_Registry.Current_CountWaterfall Flow 10/11 · Flow 10.5 bỏ qua leader Current_Count = 0 (UC_8.2.7)
Users.pod_join_dateChu kỳ survey Flow 10.4 (UC_8.2.6)
SLA_Deadlines — Plan_DueFlow 10.2 (UC_8.2.4) · đóng ở Flow 10.1A (UC_8.2.2)
Trading Style trong Users · Join_Date waitlistWaterfall Flow 11 (UC_8.2.8)

5. [PATTERN] Rule candidate cho common_rules.md

IDCâu hỏiGiả định (BA/QC đề xuất)BA chốt (ưu tiên cao nhất)Trạng thái
P-01[PATTERN] Kênh Slack của Pod System (cũ: A-05 + UC_8.2.2 cũ A-10). Khách dùng 3 tên không có trong CR-15.2: "Operations" (thiếu kênh pod — T-01; "Zap Error"), #operations (survey điểm thấp — T-12), #risk-ops (SLA breach — T-07; Weekly Strike Report).#risk-ops → #ops-risk (CR-15.2 ghi rõ "Replacing #risk-ops"). "Operations" / #operations → #ops-general (kênh catch-all). Bổ sung "Pod System" vào mô tả 2 kênh này trong CR-15.2; các UC Pod chỉ Ref.Map theo kênh Slack hiện có (khách ghi nhầm tên): #risk-ops → #ops-risk; "Operations" / #operations → #ops-general. Đã áp vào UC_8.2.1, 8.2.2, 8.2.3, 8.2.4, 8.2.6.✅ Đã chốt (BA 2026-10-12)

6. BLOCKED — chờ khách, loại khỏi SRS

QnA IDNội dungẢnh hưởng UC
POD-JOIN-24✅ Đã có copy (khách cung cấp 2026-10-15) — ghi ở UC BR_8.2.1.4—

7. Việc nội bộ phát sinh

#ViệcOwner
1Cập nhật cột BA PiC của UC_8.2.1 → UC_8.2.8 trong WBS → Anh HoangBA
2Gửi khách: A-04, A-07; gửi lại POD-JOIN-14, POD-JOIN-25 (chưa có trên client sheet)BA
3Báo khách sửa audience pod trong Discord Server Details.md (C-01)BA

Tổng kết trạng thái

  • Đã chốt (không hỏi lại): Q-01 → Q-18, O-01 → O-05.
  • Đã chốt 2026-10-15: A-01, A-02, A-03, A-04, A-06, A-08, copy Pod_Mentorship_Invite.
  • Đã chốt 2026-10-22 (khách): A-05, A-07.
  • Chờ BA: S-01, C-01.
  • Chờ khách: A-09 → A-14 (BA có thể chốt theo giả định để viết tiếp, đánh dấu cần confirm khách).
  • BLOCKED: không còn.

On this page