QnA Init Docs — UC_8.2.7 (Flow 10.5 - Daily Pod AI Audit)
UC liên quan: UC_8.2.7 — Flow 10.5: Daily Pod Engagement AI Audit
Trigger: Cron Process Daily Pod Metrics — 11:59 PM US/Central, Thứ Hai – Thứ Sáu
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ú: Phân chia sở hữu nội dung giữa 8 UC Pod: UC_8.2.1 §4.1.
| # | Hạng mục | Kết quả | Ghi chú |
|---|
| 1 | Source pre-flight | ✅ | Không có CR. QnA: POD-AUDIT-*. Nguồn gốc: Zapier Integration V7.pdf §Flow 10.5 · RFQ_ Stack Trading Prop Tech V7.pdf §Process Daily Pod Metrics, §Create Pod Channel |
| 2 | CR-08 Timestamp | ✅ | date trong mảng engagement_metrics, mốc cắt log |
| 3 | WBS | ✅ | UC_8.2.7, category STAGE 6 |
| 4 | Conflict trong câu trả lời khách | ❌ | INCONCLUSIVE — xem C-01 |
| 5 | [INTRA_RULE_CONTRADICTION] | ⚠️ | Tin nhắn bot làm leader bị FAIL — xem A-03 |
| ID | Nội dung đã chốt | Nguồn |
|---|
| Q-01 | Chạy 11:59 PM US/Central, chỉ Thứ Hai – Thứ Sáu. Model Gemini 1.5 Flash, prompt V7 nguyên văn, trả đúng 1 từ PASS / FAIL | POD-AUDIT-01/02, V7 Flow 10.5 |
| Q-02 | Mỗi pod 1 payload: pod_id, leader_id, total_channel_messages, total_leader_messages, raw_chat_log (chuỗi theo thời gian, dạng [Time] [User]: Message) | V7 §Process Daily Pod Metrics |
| Q-03 | Log > 50,000 ký tự → bỏ phần đầu, giữ 50,000 ký tự gần nhất; không chia batch | POD-AUDIT-05 |
| Q-04 | total_channel_messages = 0 → bỏ qua AI, ghi PASS. total_channel_messages > 0 và total_leader_messages = 0 → bỏ qua AI, ghi FAIL | POD-AUDIT-02/07 |
| Q-05 | Bỏ qua leader Current_Count = 0 hoặc kênh không active; bỏ qua leader đang Locked do DTO/Hiatus; Founding Mentor vẫn bị audit | POD-AUDIT-09/10 |
| Q-06 | Chỉ đọc kênh text; voice không audit. Create Pod Channel tạo cả text + voice, tên pod-[leader_name] | POD-AUDIT-11 |
| Q-07 | Lưu vào cột engagement_metrics (JSONB) trên Pod_Leader_Registry, mỗi phần tử { date, result, total_messages, leader_messages }; tách khỏi điểm survey | POD-AUDIT-04 |
| Q-08 | Không ngưỡng, không hậu quả tự động; Sotatek chỉ log. FAIL không ảnh hưởng payout Flow 17 | POD-AUDIT-03 (partial), POD-AUDIT-12 |
| Q-09 | Quyền đọc chat đã có trong Master ToS ký ở Flow 3; không build thông báo trong kênh | POD-AUDIT-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 |
|---|
| C-01 | INCONCLUSIVE [POD-AUDIT-13]: round 1 (POD-AUDIT-06) — Gemini trả sai format thì ghi INCONCLUSIVE, loại khỏi tỷ lệ; round 2 (POD-AUDIT-04) — bỏ INCONCLUSIVE, chỉ PASS/FAIL. | DB chỉ lưu PASS / FAIL, không có INCONCLUSIVE. Node.js đổi kết quả Gemini sang chữ hoa: chứa PASS → PASS; chứa FAIL → FAIL; không chứa từ nào (hoặc API lỗi) → không ghi phần tử ngày đó. Khách trả lời 2026-10-22. BA chốt thêm: khớp nguyên từ; chứa cả hai → không ghi. | ✅ Đã chốt | |
| ID | Câu hỏi | Giả định (BA/QC đề xuất) | BA chốt (ưu tiên cao nhất) | Trạng thái |
|---|
| A-01 | Ai gọi Gemini và ai ghi DB? V7: Middleware gửi webhook sang Zapier → Zapier gọi Gemini và "Database Write" vào Pod_Leader_Registry. Nhưng bảng này nằm trong PostgreSQL (POD-JOIN-02), và 2 ca bỏ qua AI (Q-04) do worker xử lý. | Middleware lọc trước 2 ca Q-04 và ghi kết quả luôn, không gọi Zapier. Ca còn lại: gửi Zapier → Zapier gọi Gemini → Zapier gọi 1 endpoint Middleware để ghi kết quả. Zapier không ghi DB trực tiếp. | | ⏳ Chờ BA 🔴 |
| A-02 | "Một ngày" là khoảng nào? Thứ Hai có tính tin nhắn Thứ Bảy, Chủ Nhật không? Tin nhắn 11:59 PM – 12:00 AM thuộc ngày nào? | Chỉ quét khung 24 giờ 23:59:00 hôm trước → 23:59:00 hôm nay (US/Central), tối đa 50,000 ký tự; không lấy tin ngày trước. Tin 23:59:30 thuộc khung hôm sau. Bỏ hẳn tin Thứ Bảy, Chủ Nhật; lượt Thứ Hai chỉ xét tin Thứ Hai. Khách trả lời 2026-10-22. | ✅ Đã chốt | |
| A-03 | [INTRA_RULE_CONTRADICTION] Tin nhắn của bot. Bot post welcome ping (UC_8.2.1) vào kênh pod. Nếu tính vào total_channel_messages, ngày chỉ có welcome ping → total > 0 và leader = 0 → FAIL, trái mục đích "không phạt leader khi mentee im lặng" (Q-04). | Bỏ tin của bot (author.bot == true) khỏi raw_chat_log và cả 2 bộ đếm. Khách trả lời 2026-10-22. | ✅ Đã chốt | |
| A-04 | Gemini không biết ai là leader. Log dạng [Time] [User]: Message chỉ có tên hiển thị Discord; prompt hỏi "did the mentor (Leader) engage…". | [User] = tên hiển thị / username Discord; đưa tên hiển thị của leader vào prompt để Gemini phân biệt leader / mentee. Khách trả lời 2026-10-22. BA chốt: dòng đầu raw_chat_log là Pod Leader: <tên hiển thị>. | ✅ Đã chốt | |
| A-05 | Leader chưa liên kết Discord / đổi tài khoản Discord → không đếm được tin của leader → luôn FAIL. | Kênh có tin (total_channel_messages > 0) mà leader 0 tin — kể cả do chưa liên kết Discord — thì FAIL tự động. Không làm ngoại lệ. Khách trả lời 2026-10-22. | ✅ Đã chốt | |
| A-06 | Mảng engagement_metrics giữ bao lâu? [POD-AUDIT-03 partial] Ops xem ở đâu (không có UI)? | Giữ toàn bộ (không cắt). Ops truy vấn DB; màn xem đưa vào Day 2 list. | | ⏳ Chờ khách 🟡 |
| A-07 | Ngày lễ trong tuần có audit không? | Vẫn audit (không có lịch nghỉ lễ trong hệ thống). | | ⏳ Chờ BA 🟡 |
| A-08 | Cron chạy 2 lần trong cùng ngày (chạy lại sau lỗi) → 2 bản ghi cùng date. | Ghi đè theo date trong mảng JSONB engagement_metrics: đã có phần tử cùng ngày thì thay, không thêm trùng. Khách trả lời 2026-10-22. | ✅ Đã chốt | |
| A-09 | Kết quả AI về sau 00:00 ghi cho ngày nào? Cron chạy 11:59 PM; Zapier gọi Gemini rồi gọi Middleware ghi kết quả thường rơi sang ngày hôm sau. Payload V7 (5 trường) không có ngày audit, nên Middleware không biết kết quả thuộc ngày nào và không chống trùng theo (leader, ngày) được. | Lấy audit_date = hôm nay khi cron 23:59 bắt đầu và gửi audit_date trong payload; kết quả luôn ghi theo ngày của khung chat, kể cả khi Gemini trả sau 00:00. Khách trả lời 2026-10-22. | ✅ Đã chốt | |
- Đã chốt: Q-01 → Q-09.
- Chờ BA: A-01, A-07.
- Chờ khách: A-06.
- Đã chốt 2026-10-22 (khách): C-01, A-02, A-03, A-04, A-05, A-08, A-09.