StackTrading Docs

QnA Init Docs — UC_8.2.4 (Flow 10.2 - SLA Enforcement)

UC liên quan: UC_8.2.4 — Flow 10.2: Mentorship SLA Enforcement Trigger: Task Mentorship SLA Monitor — Hourly 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ú: UC này sở hữu định nghĩa bảng SLA_Deadlines (cột, đóng, tạm dừng, xoá) và danh sách status được loại trừ. UC_8.2.1 / 8.2.2 / 8.2.3 chỉ mở / đóng bản ghi và link về đây. Phân chia sở hữu: UC_8.2.1 §4.1.


0. Compliance Checklist (Agent 1 — Auditor)

#Hạng mụcKết quảGhi chú
1Source pre-flight✅CR: CR-20260818-001 (Flow 7 — mentee/leader rời đi → xoá SLA đang treo, POD-SLA-09). QnA: POD-SLA-*, POD-PLAN-06/07/08. Nguồn gốc: Zapier Integration V7.pdf §Flow 10.2 · RFQ_ Stack Trading Prop Tech V7.pdf §Background Mechanisms — Mentorship SLA Monitor
2CR-08 Timestamp✅deadline_timestamp, warning_sent_at, breach_sent_at, created_at
3CR-15.2 Slack✅SLA breach (T-07) → #ops-risk (P-01)
4WBS✅UC_8.2.4, category STAGE 6
5Folder✅docs/BA/UC_8.1-8.5/UC_8.2.4/
6[MISSING_DEPENDENCY]⚠️Flow 7 (UC_4.17.2 BR_4.17.2.10), Flow 15C (UC_8.2.11 — chưa có SRS), Flow 12, Flow 13 gọi xoá / tạm dừng SLA
7[INTRA_RULE_CONTRADICTION]❌POD-SLA-09 vs POD-SLA-10 — xem A-01; Inactive_Hold tạm dừng vs rời pod — xem A-06

1. Đã chốt từ QnA / nguồn — không hỏi lại

IDNội dung đã chốtNguồn
Q-01SLA_Deadlines là bảng mới trong PostgreSQL. Cột tối thiểu: id, user_id, sla_type (Plan_Due / Induction_Due), deadline_timestamp, warning_sent_at, breach_sent_at, created_atPOD-SLA-03
Q-02Chỉ có 2 SLA: Plan_Due (72 giờ wall-clock từ lúc gán pod) và Induction_Due (5 ngày lịch từ lúc mentee submit plan, rolling)POD-SLA-06, POD-PLAN-07/08
Q-03Cron hourly; warning khi còn < 12 giờ; breach khi quá hạn; mỗi deadline 1 warning + 1 breach; có warning_sent_at / breach_sent_at thì không gửi lạiPOD-SLA-01/03/04
Q-044 event key: Mentee_Plan_Warning, Mentee_Plan_Breach, Mentor_Induction_Warning, Mentor_Induction_Breach. Copy breach T-05, T-06; warning dùng cùng copy, đổi câu thành "expires in less than 12 hours"POD-SLA-01
Q-05Email mentee CC email @stacktrading.com của leader; email leader không CC OpsPOD-SLA-05
Q-06Breach: log + email; không gỡ mentee, không strike, không revoke role. Slack T-07 chỉ cho breach (không cho warning)POD-SLA-02, POD-PLAN-06
Q-07Induction_Due đóng khi Auditor thấy event có email mentee + notetaker (UC_8.2.3); Plan_Due đóng khi mentee submit (UC_8.2.2); nộp muộn vẫn đóng Plan_DuePOD-SLA-07, POD-PLAN-06
Q-08Timer tạm dừng cho user Inactive_Hold (Flow 12) hoặc Locked do DTO/Hiatus (Flow 13)POD-SLA-08
Q-09Người rời chương trình (mentee — Flow 7; leader — Flow 15C) → xoá mọi bản ghi SLA_Deadlines đang treo của họPOD-SLA-09

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

IDSpec V7QnA (thắng)
O-01Flow 10.2 "Stateless"Có cờ warning_sent_at / breach_sent_at (POD-SLA-03)
O-02V7 Background Mechanisms chỉ nói warningCó thêm breach email + Slack (POD-SLA-02)

3. 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
A-01[INTRA_RULE_CONTRADICTION] user_id của Induction_Due là ai? [POD-SLA-10] Để đóng cần biết mentee (so email trên event); email breach lại gửi leader. Nếu lưu user_id = mentee thì POD-SLA-09 "leader bị terminate → xoá theo user_id của leader" không chạm tới các bản ghi này.Bản ghi Induction_Due lưu user_id = mentee + thêm 1 cột lưu mã Pod Leader. Leader bị terminate → xoá các bản ghi mang mã leader của họ.Bản ghi Induction_Due gắn với Pod Leader (user_id = leader). Cách xác định mentee của bản ghi do BE thiết kế. BA chốt 2026-10-16.✅ Đã chốt
A-02"Đóng" SLA nghĩa là gì? (chuyển từ UC_8.2.2 cũ A-05) Cột tối thiểu không có cột hoàn thành.Thêm 1 cột lưu thời điểm hoàn thành; cron bỏ qua bản ghi đã có thời điểm hoàn thành. Giữ bản ghi để Ops tra nộp muộn.BE tự thiết kế. BA bỏ 2026-10-16.⛔ Bỏ
A-03Tạm dừng timer hoạt động thế nào? POD-SLA-08 nói "pause" nhưng không nói khi quay lại thì hạn tính ra sao. Nếu chỉ loại khỏi query, hạn đã qua trong lúc nghỉ sẽ bắn breach ngay khi quay lại.Lưu thời điểm bắt đầu tạm dừng; khi quay lại, deadline_timestamp cộng thêm đúng thời gian đã tạm dừng. Không gửi warning/breach trong lúc tạm dừng.Theo giả định: lưu thời điểm bắt đầu tạm dừng, quay lại thì cộng bù; không gửi warning/breach khi tạm dừng. BA chốt 2026-10-16.✅ Đã chốt
A-04"Locked do DTO/Hiatus" là giá trị của cột nào? [POD-XF-14] Dùng chung cho UC_8.2.3, 8.2.4, 8.2.5, 8.2.6, 8.2.7.Đọc từ Users.status (giá trị Flow 13 đặt khi duyệt DTO/Hiatus). Danh sách status bị loại khỏi các cron Pod viết 1 lần ở UC này (P-04).Cron bỏ qua user có status "Locked do DTO/Hiatus"; đọc từ cột nào do BE xử lý. BA chốt 2026-10-16.✅ Đã chốt
A-05Mentee đổi pod khi Induction_Due đang treo (Flow 15A ghép lại, hoặc Ops chuyển qua /admin-pod-reassignment). Hạn cũ thuộc leader cũ.Xoá Induction_Due của leader cũ. Nếu mentee đã nộp plan → mở Induction_Due mới cho leader mới = lúc gán + 5 ngày. Plan_Due (nếu còn) giữ nguyên.Theo giả định. BA chốt 2026-10-16.✅ Đã chốt
A-06[INTRA_RULE_CONTRADICTION] Inactive_Hold — tạm dừng hay xoá? POD-SLA-08 nói tạm dừng, nhưng Flow 12 đưa mentee Inactive_Hold ra khỏi pod (giảm Current_Count) → Induction_Due của leader không còn ý nghĩa. Khi kích hoạt lại, mentee có thể về pod cũ hoặc vào waitlist.Tạm dừng khi vào Inactive_Hold. Kích hoạt lại: về pod cũ → tiếp tục (theo A-03); vào waitlist → xoá bản ghi; được ghép pod mới sau đó → xử lý như A-05.Tạm dừng khi vào Inactive_Hold. Quay lại pod cũ → tính lại từ đầu, mở Induction_Due mới (không tiếp tục hạn cũ, không cộng bù — coi như vào pod lại); vào waitlist → xoá; ghép pod mới → như A-05. BA chốt 2026-10-16.✅ Đã chốt
A-07Mentee mất leader và vào waitlist (leader bị terminate, Flow 15A không ghép được) khi Plan_Due còn treo. Email breach CC leader nào?Xoá cả Plan_Due và Induction_Due của mentee; mở lại khi được ghép pod mới.Theo giả định. BA chốt 2026-10-16.✅ Đã chốt
A-08Mentee lên Level 7 khi SLA còn treo (Pod Graduation — UC_8.1.1). POD-SLA-09 chỉ nói Flow 7 / 15C.Xoá bản ghi của mentee như khi rời chương trình.Theo giả định. BA chốt 2026-10-16.✅ Đã chốt
A-09Cron lỡ cửa sổ warning (cron ngừng chạy, quá hạn khi chưa gửi warning).Chỉ gửi breach, không gửi warning muộn.Không gửi bù warning khi đã quá hạn. Chỉ gửi warning khi 0 < thời gian còn lại ≤ 12 giờ và chưa gửi warning; còn lại ≤ 0 → bỏ warning, chỉ gửi breach. Khách trả lời 2026-10-22.✅ Đã chốt
A-10Copy chính xác của 2 email warning. Khách chỉ nói "cùng copy, đổi thành expires in less than 12 hours", chưa có subject/body cụ thể.Subject: Reminder: Trading Plan Due in Less Than 12 Hours / Reminder: Induction Sync Due in Less Than 12 Hours. Body: thay "has expired" bằng "expires in less than 12 hours", giữ nguyên phần còn lại. Gửi khách xác nhận.Khách gửi copy (template Stage 6): Mentee_Plan_Warning — Subject: ACTION REQUIRED: Trading Plan Deadline in <12 Hours; Mentor_Induction_Warning — Subject: ACTION REQUIRED: Induction Sync Deadline in <12 Hours. Body: "expires in less than 12 hours". Nguyên văn: UC_8.2.4 BR_8.2.4.3.✅ Đã chốt
A-11Dữ liệu cron gửi sang Zapier cho 4 event key — template cần Mentee_Name, Leader_Name, Typeform_Link, Calendar_Link, email người nhận, email CC.Payload gồm: event key, user_id, email người nhận, email CC, tên mentee, tên Pod Leader, link Typeform Trading Plan (gắn sẵn user_id), link Master Calendar của leader. Tên trường do BE chốt trong OpenAPI spec. Đánh dấu warning_sent_at / breach_sent_at sau khi Zapier nhận thành công; lỗi → lần chạy sau thử lại.BE tự xác định, không hỏi khách. BA bỏ 2026-10-16.⛔ Bỏ
A-12Induction_Due tạm dừng theo trạng thái của ai? POD-SLA-08 nói "user" Inactive_Hold / khoá DTO-Hiatus. Hạn Induction_Due liên quan 2 người: leader phải đặt lịch, mentee là người được họp. Leader đang DTO thì không thể đặt lịch; mentee Inactive_Hold thì cuộc họp không có ý nghĩa.Tạm dừng khi leader hoặc mentee đang ở trạng thái tạm dừng. Plan_Due chỉ xét trạng thái của mentee.Theo giả định. BA chốt 2026-10-16.✅ Đã chốt
A-13Slack breach #ops-risk (T-07) do Zapier hay Middleware gửi? Zapier Integration V7.pdf Flow 10.2 chỉ có bước gửi email; POD-SLA-02 chỉ nói "có Slack alert". Nếu Zapier gửi thì payload breach cần thêm user_id, tên, vai trò cho mẫu Slack.Middleware gửi Slack ngay sau khi Zapier nhận webhook breach thành công (cùng cách các Slack alert khác của Middleware). Slack gửi lỗi → ghi log, không gửi lại email.BE tự define. BA bỏ 2026-10-16.⛔ Bỏ

4. [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-04[PATTERN] Danh sách status bị loại khỏi các cron Pod lặp lại ở SLA cron (POD-SLA-08), Daily Audit (POD-AUDIT-10), Survey (POD-FDBK-10), Calendar Auditor (POD-DISP-08).Viết 1 bảng trong UC_8.2.4: cron nào loại status nào (Inactive_Hold, Locked DTO/Hiatus, Level 7 Alumni, Resigned, Terminated). UC khác chỉ Ref. Không cần common rule.⏳ Chờ BA 🟡

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

#ViệcOwner
1Đưa T-05, T-06 + 2 bản warning vào SES email sheetBA
2Gửi khách: A-01 (= POD-SLA-10), A-04 (= POD-XF-14)BA
3Báo người viết UC_4.17.2 (Flow 7) và UC_8.2.11 (Flow 15C): bước xoá SLA đang treoBA

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

  • Đã chốt: Q-01 → Q-09, O-01, O-02.
  • Đã chốt 2026-10-16: A-01, A-03 → A-08, A-12. Bỏ (BE tự thiết kế): A-02, A-11, A-13.
  • Chờ BA: P-04.
  • Chờ khách: không còn.
  • Đã chốt 2026-10-22 (khách): A-09.

On this page