PRD-005 - Journey Management & Activation Engine
Một câu: mỗi lúc, NEMO IELTS biết learner đang ở đâu, hành trình nào quan trọng nhất lúc này, và đưa ra một việc cụ thể để làm tiếp, kèm lý do. Admin trả lời được vì sao.
Nguồn: tài liệu PRD + SDD chủ dự án gửi ngày 27.09.2026 (SRC-1077), cùng câu trả lời cho 10 câu hỏi làm rõ (open-questions §Đợt 14, Q-158..Q-172). Bảng REQ nằm ở PRD-001 §5 REQ-JRN. Thiết kế: SDD-045.
0. Nguyên tắc cốt lõi
Journey Matrix định nghĩa những hành trình nào tồn tại. Journey Engine quyết hành trình nào quan trọng lúc này.
Learner không đi trên MỘT đường thẳng. Cùng lúc, một người có thể đang học mỗi ngày, vừa tới một mốc, và còn 20 ngày tới ngày thi. Hệ không ép họ vào một hành trình duy nhất; nó giữ một Journey Portfolio cho từng người, xếp ưu tiên, rồi chọn một Next Best Action.
1. Vấn đề
Khi số hành trình tăng, không có kiến trúc chung thì NEMO sẽ:
- có quá nhiều hành trình mà không ai chịu trách nhiệm;
- coi mọi hành trình quan trọng như nhau;
- đưa learner những gợi ý mâu thuẫn nhau;
- dựng UX quanh tính năng thay vì quanh nhu cầu của learner;
- mất mạch khi learner chuyển giữa việc ngắn hạn và dài hạn;
- quyết định tay, mỗi chỗ một kiểu;
- không giải thích được vì sao gợi ý một việc.
1.1 Thứ bị thay: hành trình năm bước
Trước SRC-1077, learner IELTS đi một đường thẳng năm bước (Mục tiêu, Chẩn đoán, Khoảng cách, Lộ trình, Sẵn sàng - SRC-726, SRC-738), hiện ở dải "Xong 2/5 bước" trong app và ở trang công khai nemo12.com/ielts/journey. Năm bước ấy đúng cho người MỚI vào, nhưng im lặng với mọi thứ sau đó: learner đã xong cả năm bước mà nghỉ một tuần, hay còn 20 ngày tới ngày thi, thì dải bước vẫn chỉ nói "đã xong".
Chủ dự án quyết (Q-158, 27.09.2026): thay hẳn năm bước, ở cả app lẫn trang công khai.
2. Người dùng
| Vai | Câu hỏi của họ | Họ thấy gì |
|---|---|---|
| Learner | Bây giờ tôi nên làm gì, và vì sao? | Thẻ Next up trên trang chủ /ielts: một việc, một câu vì sao, nút "Làm ngay" và "Để sau" |
| Admin / Product | Vì sao hành trình này bật cho learner này, vì sao nó được ưu tiên? | Tab Journeys ở admin.nemo12.com: registry và vết đánh giá từng learner |
| Phụ huynh | (chưa chốt) | Chưa có - chủ dự án quyết sau (Q-168) |
| Mentor | (chưa chốt) | Bàn mentor giữ năm bước cũ cho tới khi có quyết định (Q-169) |
| Khách trên nemo12.com | Nemo dẫn người học thế nào? | Trang công khai mô tả tám hành trình, mỗi lúc một việc |
3. Bốn câu hỏi NEMO luôn trả lời
- Learner đang ở đâu? - Learner State (dữ kiện đọc từ dữ liệu thật).
- Hành trình nào liên quan? - luật đủ điều kiện và luật kích hoạt.
- Hành trình nào cần chú ý lúc này? - ưu tiên và mức gấp.
- Learner nên làm gì tiếp? - việc tiếp theo của hành trình đứng trước.
Dữ liệu học -> Learner State -> Journey Detection -> Journey Portfolio
-> Prioritization -> Next Best Action -> Trải nghiệm -> Bằng chứng -> Learner State (vòng lại)4. Phạm vi
Trong phạm vi (MVP): Journey Registry · luật khai báo có phiên bản · trạng thái từng hành trình · Portfolio · ưu tiên · chọn hành trình đứng trước · Next Best Action · sổ chuyển trạng thái · ghi lại gợi ý learner bấm và lần "Để sau" · trang giải thích cho admin · thay năm bước ở app và trang công khai.
Ngoài phạm vi (MVP): tự sinh hành trình mới · thay Learner Model, Learning Plan Engine hay Assessment · sinh nội dung học · quyết cách chấm band IELTS · tối ưu mức quay lại học tách rời kết quả học · A/B test hành trình · AI chọn hành trình.
5. Khái niệm
| Khái niệm | Nghĩa |
|---|---|
| Journey | Một quá trình có ý nghĩa của learner hướng tới một kết quả. Có mục đích, luật vào, luật kích hoạt, luật xong, việc gợi ý, chỉ số thành công |
| Journey Matrix / Registry | Danh mục định nghĩa hành trình. Là tầng ĐỊNH NGHĨA, không phải trạng thái của learner |
| Learner State | Bảng dữ kiện engine đọc: có mục tiêu chưa, còn bao nhiêu ngày, nghỉ mấy ngày, kỹ năng nào xa mục tiêu nhất |
| Journey Portfolio | Mọi hành trình của MỘT learner cùng trạng thái của chúng. Nhiều hành trình cùng chạy |
| Foreground Journey | Hành trình đứng trước: thứ NEMO tin là quan trọng nhất lúc này |
| Next Best Action | Một việc cụ thể ("Làm 15 phút Writing hôm nay"), không phải một lời chung chung ("hãy học tiếp") |
Kích hoạt và gợi ý là hai việc khác nhau: một hành trình có thể ACTIVE mà không phải thứ đang được gợi ý.
6. Journey Matrix (tám hành trình MVP)
| ID | Tên | Tầm | Bật khi | Xong khi | Việc gợi ý |
|---|---|---|---|---|---|
onboarding | Onboarding | lifecycle | luôn luôn | có mục tiêu + đã trả lời hồ sơ học | Đặt band mục tiêu và ngày thi · Trả lời vài câu về cách bạn học |
diagnosis | Diagnosis | lifecycle | có mục tiêu | có quiz kỳ thi + có một nguồn điểm (bài đo hoặc điểm đã có) | Làm quiz mười câu · Làm bài đánh giá bốn kỹ năng |
learning_plan | Learning Plan | lifecycle | chẩn đoán xong | có mốc | Xem các mốc Nemo chia sẵn và sửa cho vừa sức |
daily_learning | Daily Learning | day | có mốc | không bao giờ (lặp mỗi ngày) | Làm 15 phút <kỹ năng xa mục tiêu nhất> hôm nay |
learning_progress | Learning Progress | week | một mốc đã tới trong 14 ngày | learner đã xem lại mốc | Xem lại mốc DD.MM.YYYY |
recovery | Recovery | week | đã từng học, nghỉ >= 3 ngày (kích hoạt ở >= 7) | học lại | Làm một bài ngữ pháp 5 phút |
exam_preparation | Exam Preparation | month | ngày mục tiêu còn <= 90 ngày (kích hoạt ở <= 30) | hết hạn khi qua ngày | Làm một đề <kỹ năng> đúng giờ |
goal_achievement | Goal Achievement | lifecycle | có mục tiêu (kích hoạt khi band đo được chạm mục tiêu) | đã xem kết quả | Xem kết quả và đặt mục tiêu mới |
Ngưỡng là quyết định ✍️ Q-163, đo lại sau bốn tuần dữ liệu thật (Q-172). "Ngày thi" dùng ngày mục tiêu learner đã khai (✍️ Q-162; tách một cột ngày thi riêng là Q-170).
7. Vòng đời một hành trình
NOT_ELIGIBLE -> ELIGIBLE -> ACTIVE -> (PAUSED -> ACTIVE) -> COMPLETED, cộng EXPIRED cho hành trình hết hạn. ACTIVATED và RESUMED của tài liệu gốc là lần chuyển (ELIGIBLE sang ACTIVE, PAUSED sang ACTIVE), ghi trong sổ, không phải trạng thái đứng yên.
8. Ưu tiên và hành trình đứng trước
Năm nhân tố, mỗi nhân tố 0..1: mức gấp, mức liên quan tới mục tiêu, mức cần của learner, tác động dự kiến, mức sẵn sàng. Mỗi hành trình trỏ tới một policy (trọng số, ngưỡng tối thiểu, hệ số cho hành trình mới ELIGIBLE). Điểm = tổng có trọng số. Phá hoà: mức gấp, rồi mức liên quan, rồi tác động. Giữ mạch: hành trình đang đứng trước ở lại nếu điểm chỉ kém hành trình đứng đầu trong biên 0.05, để màn hình không đổi việc liên tục.
Ví dụ (PRD gốc §14): learner nghỉ 9 ngày, còn 20 ngày tới ngày thi, có mốc học. Recovery, Exam Preparation và Daily Learning cùng ACTIVE. Việc gợi ý là một bài ngữ pháp 5 phút (Recovery), vì người vừa nghỉ một tuần chưa sẵn sàng cho một đề trọn vẹn.
9. Yêu cầu trải nghiệm
- Không phơi thuật ngữ hành trình không cần thiết: tên hành trình chỉ là một nhãn nhỏ.
- Nói rõ mục tiêu hiện tại, bằng một việc chính.
- Nói vì sao, bằng chính luật đã chọn việc ấy.
- Giữ mạch giữa các phiên (biên giữ mạch, §8).
- Giúp quay lại sau khi nghỉ (Recovery).
- Không có hai gợi ý mâu thuẫn trên cùng màn.
- Learner hoãn được một gợi ý ("Để sau", 24 giờ - ✍️ Q-166).
- Không lộ điểm ưu tiên hay nhân tố cho learner.
Chữ (CLAUDE.md, SRC-953): tên hành trình và nhãn "Next up" tiếng Anh; câu gợi ý, câu vì sao và nhãn nút ("Làm ngay", "Để sau") tiếng Việt (✍️ Q-165).
10. Yêu cầu
Bảng REQ-JRN đầy đủ (ưu tiên, trạng thái, SDD, QG): PRD-001 §5. Tóm tắt:
| REQ | Nội dung | Ưu tiên |
|---|---|---|
| REQ-JRN-01 | Journey Registry: định nghĩa có id, phiên bản, mục đích, tầm, chủ, trạng thái, luật, policy, catalog việc, chỉ số | M |
| REQ-JRN-02 | Luật khai báo (đủ điều kiện, kích hoạt, xong, hết hạn), có phiên bản | M |
| REQ-JRN-03 | Learner State đọc từ dữ liệu thật, một chỗ đọc | M |
| REQ-JRN-04 | Portfolio: trạng thái từng hành trình của từng learner, sổ chuyển trạng thái | M |
| REQ-JRN-05 | Ưu tiên theo năm nhân tố và policy cấu hình được | M |
| REQ-JRN-06 | Chọn một hành trình đứng trước, có phá hoà, giữ mạch, loại hành trình đang hoãn | M |
| REQ-JRN-07 | Một Next Best Action cụ thể kèm câu vì sao | M |
| REQ-JRN-08 | Đánh giá lại khi dữ liệu đổi | M |
| REQ-JRN-09 | Ghi lại gợi ý learner bấm và lần hoãn | S |
| REQ-JRN-10 | Admin thấy số learner theo hành trình và trạng thái | S |
| REQ-JRN-11 | Admin trả lời được "vì sao hành trình này bật / đứng trước" cho một learner | M |
| REQ-JRN-12 | Tám hành trình MVP | M |
| REQ-JRN-13 | Thẻ Next up trên trang chủ /ielts | M |
| REQ-JRN-14 | Thay năm bước ở app và trang công khai | M |
| REQ-JRN-15 | Phụ huynh xem portfolio của con | S, chờ quyết |
| REQ-JRN-16 | Phân tích phễu hành trình theo thời gian | C, chưa làm |
11. Chỉ số
- Hệ thống: % learner có một hành trình đứng trước; % gợi ý có câu vì sao; tỉ lệ gợi ý mâu thuẫn (mục tiêu 0: engine chỉ trả một việc).
- Trải nghiệm: tỉ lệ bấm "Làm ngay" / tỉ lệ "Để sau"; tỉ lệ xong từng hành trình; tỉ lệ quay lại sau Recovery.
- Kết quả học: bám kế hoạch; band tiến; đạt mục tiêu trước ngày mục tiêu.
Mục tiêu cuối không phải số phiên học, mà là tiến bộ bền tới mục tiêu IELTS.
12. Rủi ro
| Rủi ro | Giảm nhẹ |
|---|---|
| Bùng nổ số hành trình | Registry có chủ, phiên bản, trạng thái; test chặn cấu hình sai |
| Hành trình giành nhau | Một engine ưu tiên trung tâm, một việc duy nhất |
| Tối ưu cho việc quay lại học thay vì cho kết quả | Nhân tố "liên quan tới mục tiêu" có trọng số lớn ở mọi policy |
| Phát hiện sai vì dữ liệu sai | Luật tường minh, trang vết cho admin |
| Gợi ý đổi liên tục gây rối | Biên giữ mạch, "Để sau" 24 giờ |
13. Tiến hoá sau MVP
Registry chuyển vào D1 kèm màn sửa (khi đã đủ tin luật), A/B test policy, Cloudflare Workflows cho hành trình cần hẹn giờ (nhắc qua email khi Recovery bật), hành trình phối hợp phụ huynh + learner, AI gợi ý luật mới. Luật tất định và giải thích được vẫn là nền.
14. Quyết định
Toàn bộ ở open-questions §Đợt 14: ✅ Q-158, Q-167 (chủ dự án); ✍️ Q-159..Q-166 (AI quyết, chờ duyệt); ⏳ Q-168..Q-172 (chờ chủ dự án).