---
url: https://docs.nemo12.com/product/prd-001/req/intelligence.md
description: >-
  Bảng REQ của PRD-001 cho nhóm INT, ONB, ADAPT: mỗi REQ một dòng với ưu tiên,
  nguồn, SDD, QG và trạng thái.
---

# PRD-001 · REQ: Learner Intelligence, onboarding, adaptive

Một mảnh của [danh mục REQ PRD-001](../../prd-001-nemo12-platform.md), gồm REQ-INT, REQ-ONB, REQ-ADAPT. Sổ chung chỉ
CHÈN: thêm REQ bằng Edit vào đúng bảng của nhóm, không ghi cả file. Luật viết REQ, nghĩa của cột
Priority và Status nằm ở trang mục lục; §6, §7 ở [độ phủ](../req-coverage.md).

### REQ-INT — Learner Intelligence (SRC-003, 009, 010, 011)

| ID | Yêu cầu | Ưu tiên | Nguồn | SDD | QG | Status |
| --- | --- | --- | --- | --- | --- | --- |
| REQ-INT-01 | Evidence Registry chung: immutable, source reliability, idempotency key | M | SRC-003 §5, SRC-340 | SDD-002 §5 | QG-004/005 | ✔ |
| REQ-INT-02 | Learner Model = computed state (mastery/confidence/trajectory per skill), tách khỏi raw history | M | SRC-003 §2, SRC-010 §4 | SDD-002 §2 | QG-005 | ✔ |
| REQ-INT-03 | Mastery và confidence tách riêng; thuật toán cập nhật có evidence_strength + α | M | SRC-003 §7-8 | SDD-002 §7-8 | QG-005 | ✔ |
| REQ-INT-04 | Assessment Engine = information acquisition (chọn câu hỏi theo InformationGain, dừng khi đủ confidence) | M | SRC-003 §9 | SDD-002 §9 | QG-005 | ✔ |
| REQ-INT-05 | Recommendation Engine với priority score + explainability | M | SRC-003 §10 | SDD-002 §10 | QG-005 | ✔ |
| REQ-INT-06 | Learning Engine: chọn HOW (scaffold, worked example…), difficulty controller, prerequisite fallback | M | SRC-003 §11 | SDD-002 §11 | QG-005 | ✔ |
| REQ-INT-07 | Context Engine + TTL/decay; Context Projection per task (Context Contract, không dump toàn bộ history vào AI) | M | SRC-003 §12, SRC-010 §6-7 | SDD-007 §6-7 | QG-010 | ✔ |
| REQ-INT-08 | Global Workload Model (available time, cognitive load, deadlines, capacity) | M | SRC-009 §1, SRC-010 §8 | SDD-007 §8 | QG-005 | ✔ |
| REQ-INT-09 | Global Learner Orchestrator: school engines chỉ tạo candidate; arbitration toàn cục; conflict resolution | M | SRC-009 §2, SRC-010 §9-10 | SDD-007 §9-10 | QG-005 | ✔ |
| REQ-INT-10 | Model growth control: no raw events trong model, summaries có provenance, incremental recompute | M | SRC-010 §11-13 | SDD-007 §11-13 | QG-005 | ✔ |
| REQ-INT-11 | Depth levels L0–L5, target depth per objective, stopping criteria, diminishing returns, overlearning protection, depth budget | M | SRC-011 | SDD-002 §12 | QG-005 | ✔ |
| REQ-INT-12 | Recency & decay: effective_confidence giảm theo thời gian; evidence có validity window/superseded | M | SRC-010 §12 | SDD-007 §12 | QG-005 | ✔ |
| REQ-INT-13 | Main learning loop chạy async (Queues + Workflows), không trong 1 HTTP request | M | SRC-003 §15 | SDD-002 §14 | QG-009 | ✔ |
| REQ-INT-14 | Model versioning + recommendation explainability (input_model_version, algorithm_version); **recommendation diff** giữa 2 lần chạy quy về event/model-version gây thay đổi; mỗi datum trong model summary mang source + confidence | M | SRC-003 §16, SRC-032 | SDD-002 §15 | QG-005 | ✔ |
| REQ-INT-15 | **Context Event Registry**: append-only typed events (ILLNESS, EMOTIONAL_STATE, EXAM_RESCHEDULED…) với effective_from/until, severity, source + confidence, supersedes, lifecycle ACTIVE|RESOLVED|EXPIRED; Context Model = projection | M | SRC-032 | SDD-002 §3, §5b | QG-005 | ✔ |
| REQ-INT-16 | **Goal Model** first-class: goal tree (hierarchy), priority, deadline, dependency, conflict; nguồn parent/learner/system; được phép rỗng (RISK-009); ngày thi = deadline trên goal — nguồn duy nhất. Bố mẹ **tạo/sửa goal cho từng con** tại `marlins #/child/{id}/goals` (đỗ trường chuyên nào, lớp chuyên gì, thời điểm nào) và cả goal **"thi đỗ tốt nghiệp"**; mỗi goal ghi rõ ai khai | M | SRC-032, SRC-050 | SDD-002 §16 | QG-005 | ✔ |
| REQ-INT-17 | **Readiness Model** hạng nhất: luôn gắn Target; trả gap map + uncertainty + next_assessment_priority (Assessment Engine tiêu thụ); versioned | M | SRC-032 | SDD-002 §17 | QG-005 | ✔ |
| REQ-INT-18 | **Model Update Policy** + recalculation event-driven: ma trận event → models update → thứ tự downstream; update Context/Goal/Readiness trước, recommendation cuối | M | SRC-032 | SDD-002 §14 | QG-005/009 | ✔ |
| REQ-INT-19 | **Constraint Model** (Phase 2): normative limits (giờ/ngày, quy định gia đình, health, academic); capacity check chuyển sang Constraint Engine | M | SRC-032, Q-096 | — | — | ⏳ |
| REQ-INT-20 | **Learning Plan Model**: living strategy versioned (priorities, phases, time allocation, maintenance, retention, milestones, replanning triggers); Planning Engine chạy cuối WF-04 sau 5 model đầu vào; mode blend 80/20 = heuristic thuộc Planning Engine; mỗi version kèm **diff + vì sao + do đâu** | M | SRC-032, Q-097, SRC-107 | SDD-007 §6b | QG-005 | ✔ |
| REQ-INT-21 | **Rapid guess detection + progressive intervention**: một attempt bị đánh dấu `rapid` khi `response_ms < max(2.5s, 20% thời gian kỳ vọng)`; theo dõi chuỗi rapid liên tiếp và accuracy ở mức ngẫu nhiên; can thiệp tăng dần đúng 5 bước (nhắc → nút "Chưa biết" → hỏi confidence → delay submit → đánh dấu `INSUFFICIENT_RELIABLE_EVIDENCE` khi ≥50% câu trong phiên là rapid) | M | SRC-038 | SDD-002 §18 | QG-005 | ✔ |
| REQ-INT-22 | **Evidence reliability per attempt**: lưu correctness + response_time + confidence + guessing_probability + reliability_score; weak evidence hầu như không ảnh hưởng mastery; Assessment Engine trả `INSUFFICIENT_RELIABLE_EVIDENCE` (mastery UNKNOWN/confidence LOW) thay vì mastery thấp giả; Recommendation ưu tiên thu evidence mới | M | SRC-038 | SDD-002 §18 | QG-005 | ✔ |
| REQ-INT-23 | **Retention ≠ Mastery**: Retention Model hạng nhất per target (node/skill/unit/package — ưu tiên cấp nhỏ nhất đủ evidence, aggregate lên); giữ `historical_mastery` nguyên vẹn, thêm `current_retention` + `retention_confidence` + `forgetting_rate` + retrieval history + `review_urgency` + `next_review_window`; **cấm** tự giảm mastery theo thời gian | M | SRC-065 | SDD-017 §1-2 | QG-005 | ✔ |
| REQ-INT-24 | **Retention Engine**: decay function versioned (v1 rules-based, generic params → dần personal/knowledge-type rate); tính **lazy/event-driven** (khi đọc, khi evidence mới, khi window đến hạn — không recompute toàn graph liên tục); evidence phân tầng exposure/recognition/assisted/independent/transfer boost khác nhau; retrieval thành công (nhất là sau spacing dài) làm **chậm forgetting rate** → interval giãn dần; retrieval fail sớm → interval co lại | M | SRC-065 | SDD-017 §3-5 | QG-005 | ✔ |
| REQ-INT-25 | **Review urgency + priority + window**: urgency LOW→CRITICAL = f(retention, importance, goal relevance, exam proximity, prerequisite `dependency_weight`, cost of forgetting) — retention thấp KHÔNG tự động = review ngay; `next_review_window` là khoảng earliest/ideal/latest (không phải timestamp); Review Ladder thresholds configurable | M | SRC-065 | SDD-017 §6-7 | QG-005 | ✔ |
| REQ-INT-26 | **Review trong Recommendation — chống review debt**: Review Queue là view động tính lại mỗi ngày từ models (không fixed task list); cân bằng New/Repair/Review theo context+constraint; chọn top-k theo expected-value-per-minute; **cấm** hiển thị backlog "N bài quá hạn"; **implicit review**: retrieval thành công prerequisite trong bài mới = evidence cập nhật retention, không cần review session riêng; interleaving được ghi nhận là evidence mạnh hơn block đồng dạng | M | SRC-065 | SDD-017 §8-9 | QG-005 | ✔ |
| REQ-INT-27 | **Retention confidence + assessment probe**: retention estimate luôn mang confidence; retention thấp + confidence thấp → probe 1–3 câu retrieval (Assessment Engine) thay vì bắt học lại; đúng dễ dàng → retention phục hồi ngay; thất bại → confirm forgetting → review/relearning theo Ladder; phân biệt forgotten (mastery cao trong quá khứ) vs never-learned vs context-failure (ốm/mệt/vội — không hạ retention mạnh vì 1 evidence) | M | SRC-065 | SDD-017 §5, §7 | QG-005 | ✔ |
| REQ-INT-28 | **Retention UX không phán xét**: khối "Ôn nhanh" trong tab "Hôm nay" nêu **tên bài + số phút + lý do bằng số ngày** ("24 ngày chưa dùng"); mỗi lượt **1–3 câu**, từ tab "Hôm nay" tới câu đầu tiên **1 lần bấm**; câu hỏi hiện trước lời giải; **cấm** chuỗi chữ "bạn đã quên" và **cấm** hiển thị số bài quá hạn. Parent chỉ thấy đúng 4 nhãn (Đang chắc / Cần nhắc lại sớm / Có nguy cơ quên / Nên ôn lại), không hiện công thức hay hệ số; mọi review recommendation kèm một câu lý do | M | SRC-065 | SDD-017 §10 | QG-005/007 | ✔ |
| REQ-INT-29 | **Model version inspectable**: mọi model của learner (Learner · Context · Goal · Readiness…) lưu snapshot nội dung đầy đủ theo version + thời điểm sinh + trigger + engine sinh ra nó; admin xem lại được nội dung từng phiên bản, không chỉ bản mới nhất | M | SRC-098 | SDD-002 §15, §19 | QG-005 | ✔ |
| REQ-INT-30 | **Retention tính lại định kỳ**: cron hằng ngày tính lại urgency / review window / confidence và sinh snapshot Retention Model — trí nhớ phai theo thời gian nên model phải đổi kể cả khi learner không làm gì; job chỉ ghi trường phái sinh, cấm đụng anchor (tránh decay hai lần) | M | SRC-104 | SDD-017 §15 | QG-005/009 | ✔ |
| REQ-INT-31 | **Đo lại sau 7 ngày**: mốc là 7 ngày kể từ **lần cuối learner làm bài của môn đó** (không phải kể từ lần đo); lượt đo lại 6 tới 8 câu **chỉ lấy từ phần đã vững**, dưới 4 phút. Learner học đều thì không bao giờ chạm mốc này | M | SRC-384 | SDD-021 §3.2 | QG-005 | ✔ |
| REQ-INT-32 | **Thứ tự ưu tiên của việc hôm nay**: Unit đang dở đè lên mọi thứ, sau đó `review` (sắp quên) → `repair` (hổng và chặn đường) → `exam_prep` (sắp thi) → `new` (bước tiếp). Mỗi việc vẫn kèm `why` truy về model sinh ra nó | M | SRC-384, SRC-410 | SDD-021 §2.1 | QG-005 | ✔ |
| REQ-INT-33 | **Học vượt và "đo khi nhảy vùng mới" là một**: cùng một Experience, cùng cách chấm, giữ đúng một tên "Học vượt"; khác biệt duy nhất là ai khởi xướng (hệ mời khi learner vào vùng chưa có bằng chứng, hoặc learner tự bấm) | M | SRC-384 | SDD-021 §7, SDD-010 §9.1 | QG-005 | ✔ |
| REQ-INT-34 | **Trang Kế hoạch trả lời đúng năm câu của phụ huynh**: học gì · thứ tự nào · vì sao thứ tự đó · có kịp không · TUẦN NÀY làm gì, cộng phần kế hoạch vừa đổi gì so với lần trước | M | SRC-342 | SDD-007 | QG-005 | ✔ |
| REQ-INT-35 | **Đồ thị tiên quyết và trọng số blueprint phải trỏ vào cây learner ĐANG THẤY.** Trỏ vào Package đã tạm ẩn thì mọi gap của Readiness rơi vào vùng ẩn, và "việc hôm nay" đề xuất bài không xuất hiện ở bất kỳ đâu trong giao diện | M | SRC-394, SRC-420 | SDD-021 §5 | QG-005 | ✔ |
| REQ-INT-36 | **Goal · Context · Constraint Model tự cập nhật khi có thông tin liên quan**, không phụ thuộc ai bấm tay: xong một Experience hoặc sửa ngày thi thì cả bảy engine chạy ở nền | M | SRC-339, SRC-337 | SDD-002 §20 | QG-005 | ✔ |
| REQ-INT-37 | **Remediation Loop — nâng mastery khi hổng là một campaign có mở có đóng**: chẩn đoán XUỐNG prerequisite tới root node (surface ≠ root), phân loại never-learned / forgotten / unreliable-evidence trước khi dạy, baseline chốt lúc mở, can thiệp bậc thang worked-example→scaffold→độc lập→transfer, stopping rule tường minh chốt lúc mở (ngưỡng mastery theo vai trò node + confidence + ≥1 transfer evidence độc lập), đóng bằng delta đo được; delta ≈ 0 thì reclassify chứ không bơm thêm bài; chạm budget thì STALLED nổi lên cho mentor | M | SRC-506 | SDD-002 §22 | QG-005 | ✔ |
| REQ-INT-38 | **So sánh hai version liền nhau của một model theo đúng mười tiêu chí cố định**: cùng một bảng cho mọi loại model, mỗi tiêu chí xem được hai bản hai bên và chỗ khác được đánh dấu. Cố định là điều kiện chứ không phải tiện lợi — bảng đổi theo loại model thì thiếu vắng đọc thành "màn hình quên hiện" thay vì "model không khai trường đó". Cảnh báo thẳng khi nội dung đổi mà bằng chứng không mới và thuật toán không đổi, vì đó là dấu hiệu engine không tất định. | M | SRC-530 | SDD-002 §19.1 | QG-005 | ✔ |

### REQ-ONB — Onboarding & Model Initialization (SRC-016)

Trình tự lõi: **chọn school → hồ sơ → dựng Learner Model + Context Model → mới chẩn đoán**. Xem [WF-01](../../../workflows/learner-onboarding.md).

| ID | Yêu cầu | Ưu tiên | Nguồn | SDD | QG | Status |
| --- | --- | --- | --- | --- | --- | --- |
| REQ-ONB-01 | Learner chọn school (Turtle…Whale) trước khi vào học; enroll `school_enrollments`; school là context, không phải DB riêng | M | SRC-016 | WF-01 §1, SDD-001 §4 | QG-008 | ✔ |
| REQ-ONB-02 | Thu thập hồ sơ cơ bản (họ tên, ngày sinh, lớp, trường hiện tại, tỉnh/thành) nếu thiếu, trước mọi hoạt động học | M | SRC-016, SRC-013 | WF-01 §2 | QG-008 | ✔ |
| REQ-ONB-03 | Sau khi có hồ sơ, khởi tạo Learner Model + Learner Context Model (versioned) — trước chẩn đoán | M | SRC-016 | WF-01 §4, SDD-002 §2-3 | QG-005 | ✔ |
| REQ-ONB-04 | Chẩn đoán chỉ chạy khi Learner Model đã khởi tạo; đọc Context (lớp, school) để chọn phạm vi | M | SRC-016 | WF-03, SDD-002 §9 | QG-005 | ✔ |
| REQ-ONB-05 | Aspirations (mục tiêu/trường/giờ học) là tùy chọn — không ép khai thi chuyên; nếu có thì nạp Context + goal | M | SRC-016, RISK-009 | WF-01 §3 | QG-005 | ✔ |
| REQ-ONB-06 | `/v1/me` trả onboarding_state (school_pending/profile_pending/model_pending/diagnosis_pending/ready) để app điều hướng | M | SRC-016 | WF-01, SDD-001 §5 | QG-003 | ✔ |
| REQ-ONB-07 | Shark: khi vào học phải khai **exam targets** — mỗi target gồm trường chuyên/chọn, môn chuyên, các môn không chuyên, lịch thi (ngày ~). Cho phép **nhiều trường** (nhiều lịch thi) | M | SRC-016 | WF-01 §2b, SDD-011 §2 | QG-005 | ✔ |
| REQ-ONB-08 | Mở intake mục tiêu/lịch thi cho Turtle (chỉ scope học kỳ, tùy chọn hoàn toàn, không ép thi chuyên — RISK-009) | S | SRC-032, Q-100 | — | — | ⏳ |
| REQ-ONB-09 | **Onboarding tour có đèn rọi**: lần đầu vào mỗi màn hub của learn (trang gốc, màn "Hôm nay") và marlins (trang Gia đình, trang một con), hệ tự mở một vòng dẫn — mỗi bước rọi sáng đúng một khu và nói khu đó dùng để làm gì. Bắt buộc: thoát được bằng Esc / bấm nền / nút "Bỏ qua"; bước không tìm thấy element thì bỏ, không rọi vào chỗ trống; chỉ tự mở **một lần** mỗi màn (nhớ ở máy người dùng), sau đó mở lại từ menu avatar | M | SRC-118 | DS-001 §5c | QG-007 | ✔ |
| REQ-ONB-10 | **Đo mở đầu bắt buộc, theo từng môn**: learner **chưa có bằng chứng nào** ở một môn thì không mở được Unit nào của môn đó cho tới khi làm xong bài đo 10 tới 12 câu (6 tới 8 phút), trải rộng mỗi Package 2 tới 3 câu, độ khó xuất phát theo lớp khai trong hồ sơ. Ai đã có bằng chứng từ trước thì **không** bị hỏi lại. Adaptive để vòng sau | M | SRC-384 | SDD-021 §3.1 | QG-005 | ✔ |
| REQ-ONB-11 | **Năm bước hành trình IELTS hiện trong app**: Mục tiêu → Chẩn đoán → Khoảng cách → Lộ trình → Sẵn sàng, đúng năm bước của trang công khai `nemo12.com/ielts/journey`; trạng thái từng bước **suy ra từ dữ liệu của chính bước đó**, không có cột `onboarding_step`; bước gồm nhiều việc thì nói rõ còn thiếu việc nào; giao diện chỉ bày việc phải làm của **bước đang đứng** | M | SRC-738 | [SDD-035](../../../architecture/sdd-035-ielts-onboarding.md) §1, §4, §5 | QG-004/008 | ✔ |
| REQ-ONB-12 | **Quiz hiểu biết về kỳ thi + cửa vào bài đánh giá**: quiz mười câu về luật chơi của IELTS (cấu trúc, cách tính band, trọng số Writing…) **chấm ngay**, giải thích **mọi** câu kể cả câu đúng, làm lại không giới hạn, và kết quả **KHÔNG** vào Learner Model vì hiểu nhầm luật thi không phải là năng lực tiếng Anh; bài đánh giá bốn kỹ năng vào bằng **hai nấc** (learner chủ động mở phần giới thiệu mục tiêu · ý nghĩa · giới hạn rồi mới bắt đầu), phần giới thiệu do server trả để số câu không lệch khỏi bài thật, và đường đọc giới thiệu **không tạo phiên làm bài**; bài gồm 6 câu mỗi kỹ năng (24 câu) | M | SRC-738 | [SDD-035](../../../architecture/sdd-035-ielts-onboarding.md) §2, §3, §4, §5 | QG-004/008 | ✔ |
| REQ-ONB-13 | **Cổng IELTS bốn bước ở `/ielts`**: địa chỉ `/ielts` bày ĐÚNG bốn bước (Đặt mục tiêu → Chẩn đoán → Gặp thầy cô → Kế hoạch học), khung tối giản không lưới school và không điều hướng phụ; bước sau **khoá** cho tới khi mọi bước trước xong và bước khoá vẫn hiện ra; bước chẩn đoán gồm thêm **một bài viết** và **một đoạn ghi âm không quá ba phút** lưu ở R2, phiên âm rồi chấm sơ bộ; hệ dựng báo cáo đầy đủ nhưng learner **chỉ thấy phần hé lộ không chứa con số** cho tới buổi gặp, và trang nói thẳng là đang giữ lại cùng lý do; báo cáo đầy đủ chỉ mở sau cổng vai mentor | M | SRC-792 | [SDD-038](../../../architecture/sdd-038/pathway.md) | QG-004/008 | ✔ |
| REQ-ONB-14 | **Cổng SAT ở `/sat`**: địa chỉ `/sat` là một trang đứng riêng ở cấp cao nhất, không rơi về hub school; khung tối giản như `/ielts` (logo cổng và menu tài khoản, không Lighthouse · Khoá học · Rủ bạn · lưới school); một thẻ chứa **tối đa năm lối vào** trỏ vào nội dung SAT đang có (Khoá học · Luyện đề · Labs · Toàn cảnh), thêm một dòng chữ nhỏ ở cuối cho trang "con đang ở đâu"; chữ trên màn là **tiếng Việt**; không bày dashboard số liệu nào cho tới khi có nguồn số liệu SAT thật | M | SRC-839 | [SDD-038](../../../architecture/sdd-038/pathway.md) | QG-004/008 | ✔ |
| REQ-ONB-15 | **Learning Setup thay cho một quy trình chung**: `/ielts/setup` bày NĂM chặng (Goal → Starting Point → Diagnosis → Calibration → Learning Plan) thay cho danh sách tám việc phẳng; **Starting Point là một chỗ rẽ** với ba lối vào (*I'm new to IELTS* · *I already have an IELTS score* · *I'm not sure about my level*) và lựa chọn ấy được LƯU, đổi lại được; **Diagnosis là tuỳ chọn**: learner chọn lối vào thứ nhất không bị đòi bài đo nào, learner đã có điểm chỉ bị đòi bài của KỸ NĂNG HỌ CHỌN NÂNG (chọn Reading hoặc Listening thì làm bài đo chung), learner chọn lối vào thứ ba làm đủ bốn; **Evidence Level** (known · estimated · unknown) được SUY RA từ nguồn của điểm hiện tại, không lưu thành cột; phần không phải làm vẫn HIỆN ra kèm lý do, không bị giấu; tiến độ đếm trên chặng bắt buộc nên mẫu số khác nhau giữa các learner; nhãn mềm (*Quick Check* · *Reading & Listening Check* · *Writing Sample* · *Speaking Sample*), không chữ Test/Assessment; `/ielts/settings` còn lại là ngăn kéo vài giá trị sửa lại, và link cũ `/ielts/settings/<task>` vẫn tới đúng việc; **mọi màn khai báo mặc định CHỈ ĐỂ ĐỌC**: vào trang là không ô nào sửa được và không nút Lưu nào hiện ra, có nút Edit mới mở khoá, và Cancel trả về đúng giá trị server đang giữ chứ không chỉ đóng khung lại (SRC-861); bài Writing chấm RIÊNG bốn tiêu chí (Task Response · Coherence & Cohesion · Lexical Resource · Grammatical Range and Accuracy), Speaking ba tiêu chí, mỗi tiêu chí một band và một câu chỉ vào bài — chỉ mentor đọc | M | SRC-860 | [SDD-038](../../../architecture/sdd-038/learning-setup.md) | QG-004/008 | ✔ |

### REQ-ADAPT — Adaptive Mode (SRC-020)

| ID | Yêu cầu | Ưu tiên | Nguồn | SDD | QG | Status |
| --- | --- | --- | --- | --- | --- | --- |
| REQ-ADAPT-01 | Bố mẹ/con khai lịch thi học kỳ (môn, ngày); hệ tự chuyển chế độ: gần thi (~30 ngày) ưu tiên luyện thi 80%, xa thì học sâu IB 80% (nội suy tuyến tính) | M | SRC-020 | SDD-011 §6 | QG-005 | ✔ |
