Skip to content

PRD-001 — Nemo12 Platform

Core job: "Nemo12 liên tục hiểu learner đang ở đâu, tìm ra điều đang cản learner tiến lên, rồi giúp learner và gia đình biết chính xác nên làm gì tiếp theo."

1. Tầm nhìn & Brand Architecture

Nemo12 là một education world duy nhất cho K12 — không phải sáu website độc lập. Một learner giữ một identity, một learner model, một learning history xuyên suốt mọi school.

NhánhTênVai tròDomain/URL
CommunityNemosHọc sinh (learners)learn.nemo12.com
CommunityMarlinsBố mẹ (parents)marlins.nemo12.com
CommunityDolphinsMentors(mentor portal)
SchoolTurtleFoundation — học chắc, đường dàinemo12.com/turtle
SchoolSharkAdvanced / thi chuyên, high-performancenemo12.com/shark
SchoolOctopusAI & Future Skillsnemo12.com/octopus
SchoolSquidEnglish / IELTSnemo12.com/squid
SchoolRaySAT / AP / College Prepnemo12.com/ray
SchoolWhaleStudy Abroad & Admissions — "Go far. Find the right ocean."nemo12.com/whale

Nguồn legacy: Turtle + Shark kế thừa chuyenchon (SRC-013); Octopus kế thừa sutucon.com (SRC-014).

Thông số đã chốt (2026-08-13)

  • Thứ tự build: web → learn → marlins → mentors → admin (Q-002).
  • Quy mô năm đầu: ~10.000 learners, ~10.000 parents, ~10 mentors (Q-004).
  • Mô hình: blended, 95% online (Q-005).
  • Account: parent-first — account tự tạo khi parent login Google; parent invite learner (Q-006).
  • Stack: Vite + VitePress là chính; tính trước cho mobile app (Q-029).

2. Personas & Pains (SRC-006)

Nemo (học sinh)

Pain chính: không biết mình hổng chính xác ở đâu; không biết bài nào nên làm trước; bài quá khó không rõ thiếu prerequisite nào; bài quá dễ vẫn phải học lại; không phân biệt tiến bộ thật với "quen dạng bài"; quá nhiều mục tiêu cạnh tranh; feedback chỉ là điểm số; sai không biết vì sao sai; đổi trung tâm là mất learning history; học sinh giỏi bị curriculum đại trà làm chậm.

Marlin (bố mẹ)

Pain chính: chỉ thấy điểm thấp rồi đoán nguyên nhân; không biết nên học thêm gì/bao nhiêu; quá nhiều lời khuyên trái ngược; không biết khi nào can thiệp; không phân biệt thiếu kiến thức / kỹ năng / động lực / thời gian / sai cách; không có nơi tổng hợp hành trình của con; nhiều dashboard ít insight hành động được; dễ thành người nhắc học – ép học; intervention error (điểm thấp → cho học thêm, trong khi nguyên nhân là prerequisite gap / giấc ngủ / exam technique...).

JTBD cấp ecosystem

JTBDLearnerParent
Understand me / my childTôi thực sự đang ở đâu?Con tôi thực sự đang ở đâu?
Find the gapTôi đang mắc ở đâu?Vì sao con gặp khó khăn?
Tell me what nextTôi nên học gì tiếp?Chúng tôi nên làm gì tiếp?
Help me improveGiúp tôi vượt đúng trở ngạiGiúp tôi hỗ trợ đúng cách
Show progressTôi đang tiến bộ thế nào?Con còn cách mục tiêu bao xa?
Keep one continuous journeyĐừng bắt đầu lại khi đổi schoolMột hồ sơ xuyên suốt của con

3. Use-Case Model

mermaid
graph LR
  subgraph Actors
    N[Nemo - Learner]
    M[Marlin - Parent]
    D[Dolphin - Mentor]
    S[Staff / Content Team]
  end
  subgraph learn.nemo12.com
    UC1(Xem next best action / cockpit)
    UC2(Làm learning experience đúng độ khó)
    UC3(Làm assessment / diagnostic)
    UC4(Xem overview đa chiều & goal readiness)
    UC5(Hỏi đáp / comment trên object học tập)
  end
  subgraph marlins.nemo12.com
    UC6(Login Google → account tự tạo)
    UC7(Invite con vào học)
    UC8(Hiểu trạng thái con + vì sao)
    UC9(Nhận actionable recommendation)
    UC10(Ghi observation / upload evidence)
  end
  subgraph mentors portal
    UC11(Xem learner được giao)
    UC12(Ghi note - internal / phản hồi)
    UC13(Review & feature bài làm)
  end
  subgraph admin / mori
    UC14(Quản lý content + quality loop)
    UC15(Duyệt moderation & audit)
  end
  N --> UC1 & UC2 & UC3 & UC4 & UC5
  M --> UC6 & UC7 & UC8 & UC9 & UC10 & UC5
  D --> UC11 & UC12 & UC13 & UC5
  S --> UC14 & UC15

4. User Stories

Format: As a…, I want…, so that… — mỗi story trace tới REQ. (AC = acceptance criteria chính.)

IDStoryREQ
US-01As a Marlin, I want đăng nhập bằng Google và có account ngay, so that tôi bắt đầu không cần form đăng ký. AC: login lần đầu tự tạo account + family; không nhập password.REQ-ACC-01/02
US-02As a Marlin, I want invite con bằng link/email, so that con vào học dưới sự đồng ý của tôi. AC: learner chỉ học được sau khi nhận invite; một family nhiều con; một con nhiều guardian.REQ-ACC-03/04
US-03As a Nemo, I want thấy "next best action" mỗi khi mở app, so that tôi không phải tự chọn trong 80 bài. AC: có lý do "vì sao là việc này"; trace ngược tới goal.REQ-LRN-02, REQ-INT-05
US-04As a Nemo, I want được học đúng độ khó, so that không chán vì dễ quá hoặc nản vì khó quá. AC: difficulty controller điều chỉnh theo success rate; scaffold khi 40–65%.REQ-LRN-03, REQ-INT-06
US-05As a Nemo, I want được "giải cứu" khi mắc kẹt, so that tôi biết mình thiếu prerequisite nào. AC: sau N lần fail → prerequisite check, không lặp thêm bài cùng dạng.REQ-LRN-04, REQ-INT-06
US-06As a Nemo, I want thấy readiness tới goal (vd "SAT Math 72%, còn 4 gap critical"), so that tôi biết còn cách mục tiêu bao xa.REQ-LRN-05, REQ-VIS-03
US-07As a Nemo, I want giữ nguyên hồ sơ khi học thêm school khác, so that không ai phải "hiểu tôi lại từ đầu". AC: một learner_id canonical; mastery không nhân bản theo school.REQ-LRN-06, REQ-INT-09
US-08As a Nemo, I want dừng một topic khi đã đạt đủ mục tiêu, so that không bị overlearning. AC: stopping criteria mastery+confidence+depth+diversity.REQ-LRN-07, REQ-INT-11
US-09As a Marlin, I want lời giải thích "con không yếu toàn bộ Đại số — gap ở fractions, đang chặn 6 skills", so that tôi hiểu đúng nguyên nhân.REQ-PAR-01
US-10As a Marlin, I want biết tuần này nên làm gì (và không nên làm gì), so that tôi tránh intervention error. AC: recommendation kèm trade-off; "chưa cần thêm lớp" là output hợp lệ.REQ-PAR-02/04
US-11As a Marlin, I want xem Goal → Current → Gap → Trajectory → Expected readiness, so that tôi biết con có đúng hướng không.REQ-PAR-03, REQ-VIS-03/05
US-12As a Marlin, I want ghi observation và upload evidence (ảnh bài làm...), so that hệ thống và mentor nhìn cùng một reality.REQ-PAR-05, REQ-INT-01
US-13As a Marlin, I want muốn "học kỹ hơn" thì thấy rõ trade-off (thêm 4–6h để lên L4, trong khi Skill B priority cao hơn), so that tôi quyết định có hiểu biết.REQ-PAR-06, REQ-INT-11
US-14As a Dolphin, I want xem đúng learner được giao với model + evidence, so that tôi mentor mà không phải hỏi lại từ đầu. AC: authorization theo assignment.REQ-MEN-01, REQ-SEC-02
US-15As a Dolphin, I want ghi note internal (learner không thấy), so that tôi trao đổi chuyên môn thẳng thắn. AC: visibility levels hoạt động đúng.REQ-MEN-02, REQ-INX-03
US-16As a Dolphin, I want comment/reply ngay trên Recommendation, Assessment, bài làm, so that trao đổi gắn đúng ngữ cảnh.REQ-INX-01/02
US-17As a Nemo, I want react/hỏi tiếp trong thread với mentor và bố mẹ, so that cả nhà cùng nhìn một evidence.REQ-INX-01/02, REQ-PAR-07
US-18As a Staff, I want content đi qua quality loop (rubric, multi-evaluator, candidate version), so that không publish nội dung kém.REQ-KNW-07..10
US-19As a Staff, I want dashboard chất lượng (school nào thấp nhất, node nào thiếu assessment), so that tập trung người vào đúng nơi.REQ-KNW-11
US-20As a Nemo/Marlin, I want hệ thống vẫn dùng được khi AI/recommendation lỗi, so that việc học không bị chặn. AC: graceful degradation theo bảng SDD-006.REQ-NFR-02/03
US-21As a chủ hệ thống, I want mọi recommendation lưu model version + algorithm version, so that giải thích được "vì sao hôm đó khuyên vậy".REQ-INT-14, REQ-AI-04
US-22As a Nemo dùng mobile app (tương lai), I want mọi tính năng qua API chuẩn, so that app mobile dùng chung backend.REQ-PLT-10
US-23As a Marlin, I want dữ liệu con tôi được bảo vệ đúng chuẩn dữ liệu trẻ em, so that tôi yên tâm.REQ-SEC-04/05
US-24As a Staff, I want ingest tài liệu yêu cầu mới vào intake và trace nó tới SDD/QG, so that không tài liệu nào lửng lơ.REQ-DOC-01..03

5. Requirement Catalog

Priority: M = MUST, S = SHOULD, C = COULD. Status: ✔ = active, ⏳ = pending-confirm (chờ trả lời câu hỏi — chưa được implement). Mỗi REQ ✔ phải có SDD + QG; xem tổng hợp tại traceability.md.

REQ-ACC — Identity, Auth & Family

IDYêu cầuƯu tiênNguồnSDDQGStatus
REQ-ACC-01Parent-first: login Google → account + family tự tạo, không có form đăng ký/passwordMQ-006SDD-001 §6QG-008
REQ-ACC-02SSO cookie xuyên subdomain .nemo12.com, session opaque + hash, có rotationMSRC-014 FEAT-049SDD-001 §6QG-008
REQ-ACC-03Parent invite learner; learner chỉ học sau invite; 1 family n learners, 1 learner n guardiansMQ-006, FEAT-029/032SDD-001 §6QG-008
REQ-ACC-04Canonical learner_id (không dùng email làm khóa); mapping identity duy nhất toàn platformMRISK-001SDD-001 §7QG-004
REQ-ACC-05Roles: learner, parent/guardian, mentor, staff/admin — RBAC ở backendMSRC-008 §9SDD-001 §6QG-008
REQ-ACC-06Auth flow tương thích mobile app (token-based song song cookie)SQ-029SDD-001 §6QG-008

REQ-BRD — Public Web (app: web)

IDYêu cầuƯu tiênNguồnSDDQGStatus
REQ-BRD-01nemo12.com giới thiệu ecosystem + 6 trang school (/turtle … /whale)MSRC-001SDD-001 §4QG-007
REQ-BRD-02SEO + OG cards per-routeSFEAT-052SDD-001 §4QG-001
REQ-BRD-03CMS cho marketing contentSFEAT-053, Q-050
REQ-BRD-04Pricing page, ebooksCFEAT-028, Q-050

REQ-LRN — Learner Experience (app: learn)

IDYêu cầuƯu tiênNguồnSDDQGStatus
REQ-LRN-01Learner biết chính xác mình đang ở đâu (mastery + confidence, không nhầm "chưa học" với "chưa đủ evidence")MSRC-006 JTBD1SDD-002 §2QG-005
REQ-LRN-02Next best action hằng ngày (cockpit), kèm lý doMSRC-006 JTBD2, FEAT-007SDD-002 §10QG-005
REQ-LRN-03Học đúng độ khó (difficulty controller)MSRC-006 JTBD3SDD-002 §11QG-005
REQ-LRN-04Giải cứu khi mắc kẹt: tìm nguyên nhân, scaffold, quay lại prerequisiteMSRC-006 JTBD4SDD-002 §11QG-005
REQ-LRN-05Thấy tiến độ tới goal (readiness %, critical gaps)MSRC-006 JTBD5SDD-008 §5QG-005
REQ-LRN-06Một hành trình liên tục xuyên school (không học lại từ đầu)MSRC-006 JTBD6SDD-007 §5QG-005
REQ-LRN-07Chứng minh năng lực bằng evidence; dừng đúng lúc (stopping criteria)MSRC-006 JTBD7, SRC-011SDD-002 §12QG-005
REQ-LRN-08Onboarding khảo sát mục tiêu — không ép mọi learner khai mục tiêu thi chuyênMFEAT-005, RISK-009SDD-002 §4QG-002

REQ-VIS — Overview & Views (SRC-012)

IDYêu cầuƯu tiênNguồnSDDQGStatus
REQ-VIS-01Multi-dimensional view: by school/subject/area/goal/skill/readiness/workload…MSRC-012 §2SDD-008 §2QG-005
REQ-VIS-02Drill-down Nemo12 → School → Subject → Area → Unit → Skill → Evidence, và zoom-outMSRC-012 §3SDD-008 §3QG-005
REQ-VIS-03Goal View: readiness ước tính + critical/important/nice-to-have gapsMSRC-012 §5SDD-008 §5QG-005
REQ-VIS-04Node states đầy đủ (Not Assessed / Unknown / Learning / Needs Review / Mastered / Advanced / Blocked / At Risk)MSRC-012 §4SDD-008 §4QG-005
REQ-VIS-05Trajectory view (Past → Current → Expected) + Workload view + cảnh báo overloadMSRC-012 §6–7SDD-008 §6QG-005
REQ-VIS-06Trace ngược "vì sao hôm nay học cái này": Task → Gap → Area → GoalMSRC-012 §8SDD-008 §7QG-005

REQ-PAR — Marlins (app: marlins)

IDYêu cầuƯu tiênNguồnSDDQGStatus
REQ-PAR-01"Giúp tôi hiểu con": giải thích trạng thái + nguyên nhân bằng evidenceMSRC-006 Job1SDD-002 §13QG-005
REQ-PAR-02Actionable recommendation cho parent (tối nay/tuần này/tháng này)MSRC-006 Job2SDD-002 §13QG-005
REQ-PAR-03On-track view: Goal → Current → Gap → Trajectory → ExpectedMSRC-006 Job3SDD-008 §5QG-005
REQ-PAR-04Chống intervention error: recommendation nêu rõ cả "không nên làm gì" + trade-offMSRC-006 Job4, SRC-011 §8SDD-002 §13QG-005
REQ-PAR-05Parent Model (evidence + inferred tendency, không label phán xét) + parent observation/uploadMSRC-003 §4, FEAT-030/031SDD-002 §4QG-005
REQ-PAR-06Depth trade-off explanation (target depth, current, cost để nâng)MSRC-011 §8SDD-002 §12QG-005
REQ-PAR-07Shared understanding layer: parent–learner–mentor nhìn cùng evidenceMSRC-006 Job5SDD-005 §7QG-005
REQ-PAR-08Member-intelligence-style: evidence gaps → adaptive questions cho parentSFEAT-033, Q-040

REQ-MEN — Dolphins (app: mentors)

IDYêu cầuƯu tiênNguồnSDDQGStatus
REQ-MEN-01Mentor xem learner theo assignment (authorization bắt buộc)MSRC-002 §13SDD-001 §6QG-008
REQ-MEN-02Mentor notes với visibility (internal_staff / mentor_team / learner-visible)MSRC-007SDD-005 §4QG-008
REQ-MEN-03Mentor interaction ghi thành evidence (MentorInteractionRecorded)MSRC-002 §2.3SDD-002 §5QG-005
REQ-MEN-04Class operations: lớp, lịch, link buổi học, điểm danhM?FEAT-011..013, Q-045
REQ-MEN-05Mentor review & feature bài làm xuất sắcSFEAT-020, Q-047

REQ-SCH — Schools as Domain Context

IDYêu cầuƯu tiênNguồnSDDQGStatus
REQ-SCH-01School là domain context, không phải app/database riêng (learn.nemo12.com/turtle…)MSRC-002 §4.1SDD-001 §4QG-001
REQ-SCH-02Canonical skill — school chỉ thêm context (expected difficulty, exam application), không nhân bản skillMSRC-010 §5SDD-007 §5QG-004
REQ-SCH-03Depth target theo goal/school (Turtle L3 vs Shark L4-L5 trên cùng skill)MSRC-011 §3-4, FEAT-038SDD-002 §12QG-005
REQ-SCH-04Shark: exam & school intelligence (kho đề, registry trường, exam calendar, score simulator)M?FEAT-034..037, Q-041
REQ-SCH-05Octopus: 4F Reflection + product submission (proof-of-work) + curriculum 5 AcademiesM?FEAT-045..048, Q-039

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

IDYêu cầuƯu tiênNguồnSDDQGStatus
REQ-INT-01Evidence Registry chung: immutable, source reliability, idempotency keyMSRC-003 §5SDD-002 §5QG-004/005
REQ-INT-02Learner Model = computed state (mastery/confidence/trajectory per skill), tách khỏi raw historyMSRC-003 §2, SRC-010 §4SDD-002 §2QG-005
REQ-INT-03Mastery và confidence tách riêng; thuật toán cập nhật có evidence_strength + αMSRC-003 §7-8SDD-002 §7-8QG-005
REQ-INT-04Assessment Engine = information acquisition (chọn câu hỏi theo InformationGain, dừng khi đủ confidence)MSRC-003 §9SDD-002 §9QG-005
REQ-INT-05Recommendation Engine với priority score + explainabilityMSRC-003 §10SDD-002 §10QG-005
REQ-INT-06Learning Engine: chọn HOW (scaffold, worked example…), difficulty controller, prerequisite fallbackMSRC-003 §11SDD-002 §11QG-005
REQ-INT-07Context Engine + TTL/decay; Context Projection per task (Context Contract, không dump toàn bộ history vào AI)MSRC-003 §12, SRC-010 §6-7SDD-007 §6-7QG-010
REQ-INT-08Global Workload Model (available time, cognitive load, deadlines, capacity)MSRC-009 §1, SRC-010 §8SDD-007 §8QG-005
REQ-INT-09Global Learner Orchestrator: school engines chỉ tạo candidate; arbitration toàn cục; conflict resolutionMSRC-009 §2, SRC-010 §9-10SDD-007 §9-10QG-005
REQ-INT-10Model growth control: no raw events trong model, summaries có provenance, incremental recomputeMSRC-010 §11-13SDD-007 §11-13QG-005
REQ-INT-11Depth levels L0–L5, target depth per objective, stopping criteria, diminishing returns, overlearning protection, depth budgetMSRC-011SDD-002 §12QG-005
REQ-INT-12Recency & decay: effective_confidence giảm theo thời gian; evidence có validity window/supersededMSRC-010 §12SDD-007 §12QG-005
REQ-INT-13Main learning loop chạy async (Queues + Workflows), không trong 1 HTTP requestMSRC-003 §15SDD-002 §14QG-009
REQ-INT-14Model versioning + recommendation explainability (input_model_version, algorithm_version)MSRC-003 §16SDD-002 §15QG-005

REQ-KNW — Knowledge, Content & Quality (SRC-004, 005)

IDYêu cầuƯu tiênNguồnSDDQGStatus
REQ-KNW-01Knowledge Registry: Domain→Area→Knowledge Node/Skill, đầy đủ metadata + lifecycleMSRC-004 §2SDD-003 §2QG-006
REQ-KNW-02Shared Knowledge/Skill Graph (prerequisite + 7 quan hệ), dùng chung mọi schoolMSRC-004 §3SDD-003 §3QG-006
REQ-KNW-03Learning Package đóng gói mục tiêu dạy được (nhiều package/skill theo age, level, exam)MSRC-004 §4SDD-003 §4QG-006
REQ-KNW-04Learning Experience Registry: abstract entity + experience_type (Micro/Practice/Assessment/Lab/Project/Simulation)MSRC-005 §5-8SDD-004 §5-8QG-006
REQ-KNW-05Item Bank riêng, không duplicate question giữa practice/assessment/microMSRC-005 §9SDD-004 §9QG-006
REQ-KNW-06Storage 3 lớp: D1 metadata, R2 heavy content, KV/cache manifests; "load structure first, content on demand"MSRC-005 §4, §10SDD-004 §4, §10QG-004
REQ-KNW-07Quality Profile + rubric per entity; scores có reason/evidence/evaluator/rubric_versionMSRC-004 §6SDD-003 §6QG-006
REQ-KNW-08Quality Engine 3 lớp: deterministic checks, graph/rule reasoning, LLM evaluation theo rubricMSRC-004 §7SDD-003 §7QG-006
REQ-KNW-09Multi-evaluator + variance flag + human review cho high-stakesMSRC-004 §8SDD-003 §8QG-006
REQ-KNW-10Improvement Engine + candidate version lifecycle (không sửa production trực tiếp); Priority EngineMSRC-004 §10-12SDD-003 §10-12QG-006
REQ-KNW-11Quality Registry + dashboard (coverage, node thiếu assessment, content quá hạn review)MSRC-004 §9SDD-003 §9QG-006
REQ-KNW-12Versioning immutable per asset; learner session ghi experience_versionMSRC-005 §11SDD-004 §11QG-004
REQ-KNW-13Quality cuối cùng đối chiếu learner evidence thật (không chỉ LLM score)MSRC-004 §11SDD-003 §11QG-006
REQ-KNW-14Chiến lược 290 labs legacy (code-component + registry metadata)SFEAT-008, Q-044
REQ-KNW-15AI illustrations + knowledge storiesCFEAT-041/042, Q-051

REQ-INX — Interaction & Conversation (SRC-007)

IDYêu cầuƯu tiênNguồnSDDQGStatus
REQ-INX-01Comment/Reply/Reaction/Mention/Annotation trên mọi object qua target_type+target_idMSRC-007SDD-005 §2-3QG-008
REQ-INX-02Threading (UI giới hạn 1–2 cấp)MSRC-007SDD-005 §3QG-007
REQ-INX-03Visibility levels: private / learner_parent / mentor_team / school / community / internal_staff — authorize ở backendMSRC-007SDD-005 §4QG-008
REQ-INX-04Mentions → events → Queue → Notification (in-app, email, push-ready)MSRC-007SDD-005 §5QG-009
REQ-INX-05Moderation K12: profanity/abuse/spam detection, report/hide/block, moderation queue, audit log, AI classify + human reviewMSRC-007SDD-005 §6QG-008
REQ-INX-06Activity Stream → Learner Activity Timeline (feed cho Learner/Parent Model)MSRC-007SDD-005 §7QG-005
REQ-INX-07Vote (up/down) + mentor featured trên submissionsSFEAT-020, Q-047

REQ-MED — Media & Image Management (yêu cầu bổ sung 2026-08-13)

IDYêu cầuƯu tiênNguồnSDDQGStatus
REQ-MED-01Media Registry dùng chung toàn platform: metadata D1, bytes R2, gắn mọi object qua target_type+target_idMUser 2026-08-13, SRC-014SDD-009 §2QG-004
REQ-MED-02Upload flow direct-to-storage (presigned), validate type/size/quota; cấm base64 lưu vĩnh viễn trong D1MRISK-028SDD-009 §3QG-004
REQ-MED-03Delivery qua CDN + Cloudflare Images variants (thumb/card/full), signed URL theo visibility + authz backendMSRC-014SDD-009 §4QG-008
REQ-MED-04Moderation K12 bắt buộc: AI classify + moderation queue + audit; EXIF strip; chưa approve không serve publicMSRC-007, SRC-014SDD-009 §5QG-008
REQ-MED-05Media versioning + retention + xóa theo child-privacyMREQ-SEC-04SDD-009 §6QG-008
REQ-MED-06AI illustration pipeline ghi cùng registry với provenanceCFEAT-041, Q-051SDD-009 §7QG-010

REQ-LAB — Interactive Labs (bổ sung 2026-08-13, sau audit SRC-015)

IDYêu cầuƯu tiênNguồnSDDQGStatus
REQ-LAB-01Lab Platform theo 6 archetypes: 4 engines data-driven (picker/parametric/stepper + inquiry) + sim components + scene3d cô lậpMSRC-015SDD-010 §2QG-007
REQ-LAB-02Lab là LearningExperience: metadata D1 + content JSON R2 + version immutable; bỏ mô hình MPA 9-touchpointMSRC-015SDD-010 §3QG-004
REQ-LAB-03Migrate content corpus 288 labs (620 prompts, 1.807 options, 288 inquiry triples) bằng reverse-parser; 186 picker labs = 100% tự độngMSRC-015SDD-010 §4QG-006
REQ-LAB-04Evidence contract đầy đủ: lab_open/inquiry_open/inquiry_answer/lab_complete — bespoke labs phải có correctness signalMSRC-015SDD-010 §5QG-005
REQ-LAB-05Một LabShell trong Design System, sửa a11y một lần cho cả 288 (dialog, focus trap, aria-live, reduced-motion)MSRC-015SDD-010 §6QG-007
REQ-LAB-06Công nghệ dài hạn: React 19 + SVG procedural (zero-asset), config schema versioned (zod), engine/content version độc lậpMUser 2026-08-13SDD-010 §7QG-005
REQ-LAB-07Labs qua Quality Engine + coverage map theo taxonomy kế thừa; mode suy từ implementation (legacy sai nhãn 24%)MSRC-015SDD-010 §8QG-006

REQ-PLT — Platform & Stack

IDYêu cầuƯu tiênNguồnSDDQGStatus
REQ-PLT-01Cloudflare-first: Workers, D1, R2, KV, Queues, Workflows, AI Gateway, API ShieldMSRC-002 §2.1SDD-001 §2-3QG-003/009
REQ-PLT-02Modular monolith (bounded modules), không microservice per schoolMSRC-002 §2.2SDD-001 §2QG-001
REQ-PLT-03Event-driven domain events chuẩn hóa (event_id, idempotency_key, occurred_at, producer, version)MSRC-002 §2.3, SRC-008 §4SDD-001 §8QG-009
REQ-PLT-04Backend Hono + TypeScript trên Workers; API api.nemo12.com/v1/*; OpenAPI contract sinh từ router (không hand-maintained)MSRC-002 §6, RISK-024SDD-001 §5QG-003
REQ-PLT-05Frontend Vite + React + TS; docs VitePress; apps: web, learn, marlins, mentors, admin, docsMSRC-002 §4, Q-002SDD-001 §4QG-001
REQ-PLT-06Một Design System duy nhất (Tailwind v4 + shadcn mới nhất), theme nhỏ per school, không forkMSRC-002 §5DS-001QG-007
REQ-PLT-07Monorepo: apps/ + workers/ + packages/ + migrations/ + docs/MSRC-002 §12SDD-001 §9QG-001
REQ-PLT-08Một canonical docs source, frontmatter machine-readable, VitePress renderMSRC-002 §11SDD-001 §10QG-001
REQ-PLT-09AI chỉ qua AI Gateway (không gọi provider trực tiếp, không fallback bypass); prompt/model/policy registry + traceability per outputMSRC-002 §10, RISK-022SDD-001 §8, SDD-002 §15QG-010
REQ-PLT-10API-first cho mobile app tương lai (auth token flow, push notification trong Notification module)MQ-029SDD-001 §5-6QG-003
REQ-PLT-11Migration đơn nguồn, idempotent, một sequence duy nhất cho mỗi databaseMRISK-004/016SDD-001 §7QG-004

REQ-NFR — Reliability & Non-Functional (SRC-008)

IDYêu cầuƯu tiênNguồnSDDQGStatus
REQ-NFR-01Failure isolation giữa các module; critical path = commit → emit event → asyncMSRC-008 §1-2SDD-006 §1-2QG-009
REQ-NFR-02Graceful degradation có bảng fallback cho từng capabilityMSRC-008 §3SDD-006 §3QG-009
REQ-NFR-03Data durability + idempotent operations cho critical dataMSRC-008 §4SDD-006 §4QG-004
REQ-NFR-04Async reliability: retry, backoff, DLQ, timeout, manual replayMSRC-008 §5SDD-006 §5QG-009
REQ-NFR-05Availability tiers: T1 ≥99.9%, T2 ≥99.5%, T3 best-effortMSRC-008 §6SDD-006 §6QG-009
REQ-NFR-06Performance: API p95 <500ms, simple reads p95 <300ms, interaction <200ms; "show useful state first, enrich later"MSRC-008 §7SDD-006 §7QG-009
REQ-NFR-07Scale cho 10k learners + 10k parents, learner đa school đồng thờiMSRC-008 §8, Q-004SDD-006 §8QG-009
REQ-NFR-08Observability: structured telemetry, trace_id correlation, dashboardsMSRC-008 §10SDD-006 §10QG-009
REQ-NFR-09Error taxonomy chuẩn, không leak raw exceptionMSRC-008 §11SDD-006 §11QG-009
REQ-NFR-10Deployment safety: backward-compatible API/events, safe migration, rollback, feature flagsMSRC-008 §12-13SDD-006 §12-13QG-009
REQ-NFR-11Disaster recovery: backup, PITR, immutable versions, rollback content/algorithmMSRC-008 §14SDD-006 §14QG-009
REQ-NFR-12Production-ready checklist 5 câu hỏi cho mọi subsystem mớiMSRC-008 §16SDD-006 §16QG-009

REQ-SEC — Security & Privacy

IDYêu cầuƯu tiênNguồnSDDQGStatus
REQ-SEC-01Least privilege; backend authorization mọi truy cập learner dataMSRC-008 §9SDD-006 §9QG-008
REQ-SEC-02Parent chỉ xem learner trong family; mentor theo assignmentMSRC-002 §13SDD-006 §9QG-008
REQ-SEC-03Audit log cho thay đổi quan trọng; secrets ngoài code; encryption in transit; rate limiting; input validationMSRC-008 §9SDD-006 §9QG-008
REQ-SEC-04Child-data privacy là architectural concern (consent, minimization, retention)MSRC-008 §9, Q-030SDD-006 §9QG-008
REQ-SEC-05Cloudflare Access bảo vệ admin/mori/internal surfacesMSRC-013 patternSDD-001 §6QG-008
REQ-SEC-06Không hardcode owner email / audience / school_id / domain trong sourceMRISK-013/023SDD-001 §11QG-008

REQ-GAM / REQ-COM / REQ-GRW — pending clusters (từ legacy, chờ xác nhận)

IDYêu cầuNguồnStatus
REQ-GAM-01Badges, streaks, XP, stickers, rewardsFEAT-015..019, 027, Q-046
REQ-COM-01Public portfolio + social profiles + contributionsFEAT-021/022, Q-047
REQ-COM-02Events/Cafe offline + Zalo communityFEAT-023/024, Q-048
REQ-GRW-01Membership entitlements + paymentsFEAT-025, Q-014/015
REQ-GRW-02Affiliate / referralFEAT-026, Q-049
REQ-TRU-01Integrity system (khai báo, thay đổi, notices)FEAT-051, Q-053

REQ-DOC — Documentation System

IDYêu cầuƯu tiênNguồnSDDQGStatus
REQ-DOC-01Một canonical docs source cho cả người và AI (frontmatter, intake ledger)MUser + SRC-002 §11conventions.mdQG-001
REQ-DOC-02Traceability 2 chiều: mọi REQ active có SDD + QG; mọi ý SDD trace về REQ/USMUser 2026-08-13traceability.mdQG-001
REQ-DOC-03Quality framework cho chính tài liệu (kế thừa requirements-assessment của chuyenchon)SFEAT-044, Q-057quality-gates.mdQG-002