Appearance
Legacy Feature Inventory
Kho tính năng trích xuất từ hai hệ thống cũ ([chuyenchon](file:///Users/dac/ConanCode/chuyenchon/) → Turtle + Shark, [sutucon.com](file:///Users/dac/ConanCode/sutucon.com/) → Octopus), đối chiếu với 12 tài liệu yêu cầu đã nhận (SRC-001 → SRC-012).
Cột "SRC?": ✅ đã được mô tả trong SRC-001..012 · 🟡 mô tả một phần · ❌ GAP — chưa có trong tài liệu yêu cầu, cần chủ dự án quyết định (xem câu hỏi tương ứng trong open-questions.md).
Cột "Đề xuất": Adopt = đưa vào PRD · Confirm = chờ quyết định · Drop = không mang sang.
A. Learning & Assessment core
| ID | Tính năng | Nguồn legacy | Nemo12 | SRC? | Đề xuất |
|---|---|---|---|---|---|
| FEAT-001 | Learner mastery model theo knowledge node (mastery/confidence/evidence_count) | app learner_node_mastery; sutucon learner_concept_models | SDD-002 Learner Model | ✅ | Adopt (hợp nhất 2 model — Q-035) |
| FEAT-002 | Evidence registry append-only, idempotency key | sutucon learner_evidence_registry (event_id) | SDD-002 Evidence Registry | ✅ | Adopt (lấy pattern idempotency của sutucon) |
| FEAT-003 | Knowledge graph Toán/Văn/Anh (6.5k LOC TS, prerequisite edges) | app lib/*-node-graph.ts, mori math_knowledge_node | SDD-003 Skill Graph | ✅ | Adopt làm seed cho canonical graph (Q-037) |
| FEAT-004 | Diagnosis engine đa vòng + diagnosis QA (11 bảng kiểm soát chất lượng chẩn đoán) | app diagnosis_*, assess_test_runs | SDD-002 Assessment Engine | 🟡 | Adopt — SRC chưa mô tả QA cho chính engine chẩn đoán |
| FEAT-005 | Adaptive survey + onboarding khảo sát nguyện vọng | app survey_*, learner_aspirations | PRD onboarding | 🟡 | Adopt, nhưng phải bỏ ràng buộc "bắt buộc khai trường chuyên" (RISK-009) |
| FEAT-006 | Learner report có version (learner_report_versions) | app | SDD-002 Model Versioning | ✅ | Adopt |
| FEAT-007 | Learning cockpit (bảng điều khiển học tập hằng ngày) | app learning_cockpit | SRC-012 Daily/Overview View | ✅ | Adopt |
| FEAT-008 | 290 interactive labs (TSX code components) | app lab/*, src/entries/* | SRC-005 Lab Experience | 🟡 | Confirm chiến lược: giữ code-component + registry metadata hay chuyển vào content DB (Q-044) |
| FEAT-009 | Learning experience engine 4 mode (guided/supported/practice/challenge) theo mastery | sutucon learning-experience-engine.ts | SDD-002 Learning Engine | ✅ | Adopt logic, bỏ nội dung hardcode |
| FEAT-010 | Learning packages từ CAPOS (service binding ngoài) | sutucon CAPOS_API | SDD-004 Learning Package | 🟡 | Confirm — Nemo12 có tiếp tục phụ thuộc CAPOS? (Q-043) |
B. Class Operations & Blended Learning — GAP lớn nhất
SRC-001..012 thiên về self-paced; legacy có đầy đủ vận hành lớp học thật (phù hợp "blended, 95% online").
| ID | Tính năng | Nguồn legacy | Nemo12 | SRC? | Đề xuất |
|---|---|---|---|---|---|
| FEAT-011 | Classes, courses, enrollments theo lớp, class sessions | sutucon classes, class_enrollments, class_sessions | ❓ module School/Enrollment | ❌ | Confirm (Q-045) |
| FEAT-012 | Schedules + weekly class links (link Zoom/Meet hằng tuần) | sutucon schedules, weekly_class_links | ❓ | ❌ | Confirm (Q-045) |
| FEAT-013 | Attendance (điểm danh, trang 1.324 dòng dùng thật) | sutucon www/admin Attendance.tsx (data từ conan.school) | ❓ | ❌ | Confirm (Q-045) |
| FEAT-014 | Mentor operations portal (rafiki 8.3k LOC: quản lý lớp, chấm, feature bài) | sutucon rafiki + mentor router (nằm ở repo ngoài) | app mentors | 🟡 | Confirm — mentor router không có trong repo (RISK-020) |
C. Gamification & Motivation — GAP
| ID | Tính năng | Nguồn legacy | Nemo12 | SRC? | Đề xuất |
|---|---|---|---|---|---|
| FEAT-015 | Badges (catalog + awards, theo role learner/parent) | app badge_catalog, badge_awards | ❓ | ❌ | Confirm (Q-046) |
| FEAT-016 | Streaks (chuỗi ngày học) | app streak_profiles, streak_days | ❓ | ❌ | Confirm (Q-046) |
| FEAT-017 | EXP/XP (điểm kinh nghiệm, sự kiện XP) | app exp_profiles; sutucon learner_experience_events/totals | ❓ | ❌ | Confirm (Q-046) |
| FEAT-018 | Stickers do mentor/course trao | sutucon course_stickers, learner_sticker_awards | ❓ | ❌ | Confirm (Q-046) |
| FEAT-019 | Onboarding gamified có data gates (badge chỉ trao khi artifact thật tồn tại) | sutucon ONBOARDING_DATA_GATES | PRD onboarding | ❌ | Adopt pattern (rất hợp triết lý evidence) |
D. Community, Social & Peer Learning
| ID | Tính năng | Nguồn legacy | Nemo12 | SRC? | Đề xuất |
|---|---|---|---|---|---|
| FEAT-020 | Submission board: comment + upvote/downvote + mentor featured exemplars | sutucon learner_submission_comments/votes, featured_at | SRC-007 Interaction | 🟡 | Adopt — SRC-007 có comment/reaction nhưng chưa có vote + featured |
| FEAT-021 | Public portfolio (opt-in, slug ẩn, per-item visibility) | sutucon learner_portfolios | ❓ | ❌ | Confirm (Q-047) |
| FEAT-022 | Social profiles + contributions + mentor contribution badges | sutucon learner_social_profiles, learner_contributions | ❓ | ❌ | Confirm (Q-047) |
| FEAT-023 | Events / "Cafe" offline (đăng ký sự kiện, attendee profiles) | family portal_events*, cafe_attendee_profiles | Marlins community | ❌ | Confirm (Q-048) |
| FEAT-024 | Zalo community gate (cổng vào nhóm Zalo) | family worker | Marlins | ❌ | Confirm (Q-048) |
E. Commerce & Growth — GAP
| ID | Tính năng | Nguồn legacy | Nemo12 | SRC? | Đề xuất |
|---|---|---|---|---|---|
| FEAT-025 | Membership entitlements (quyền truy cập theo gói) | app membership_entitlements | Enrollment/entitlement model | ❌ | Confirm cùng Q-014 (business model) |
| FEAT-026 | Affiliate/referral + affinity model (2 repo đều có, dùng chung 3 app ở sutucon) | app affiliate_*; sutucon domains/affiliate.ts (475 LOC), referral_affinity_models | ❓ | ❌ | Confirm (Q-049) |
| FEAT-027 | Rewards service (worker riêng) | api.chuyenchon rewards-service | ❓ | ❌ | Confirm (Q-046) |
| FEAT-028 | Pricing page, ebooks tải về | www.chuyenchon | app web | ❌ | Confirm (Q-050) |
F. Parent / Family (Marlins)
| ID | Tính năng | Nguồn legacy | Nemo12 | SRC? | Đề xuất |
|---|---|---|---|---|---|
| FEAT-029 | Family model: families, children, notes, member roles (owner/family_member/learner/supporter), invitations, settings | family families, family_* | PRD parent-first + invite (Q-006 ✅) | 🟡 | Adopt — SRC chưa mô tả roles/notes/settings chi tiết |
| FEAT-030 | Parent Model + parent evidence + parent recommendations + parent reflections | family parent_models, parent_*; workflow AI | SDD-002 Parent Model/Engine | ✅ | Adopt |
| FEAT-031 | Evidence upload từ phụ huynh (ảnh/tài liệu, R2) | family uploads bucket | SDD-002 Evidence sources | 🟡 | Adopt — SRC chưa nói upload media |
| FEAT-032 | Guardians + demographic profiles + family info lock | sutucon learner_guardians, FAMILY_INFO_LOCKED | Family module | 🟡 | Adopt |
| FEAT-033 | Member Intelligence: 10 dimensions, evidence gaps → adaptive questions → intervention readiness | sutucon member_* (đầy đủ engine) | SDD-002 Parent Model | 🟡 | Confirm — hợp nhất vào Parent Model? (Q-040) |
G. Exam & School Intelligence (Shark) — GAP
| ID | Tính năng | Nguồn legacy | Nemo12 | SRC? | Đề xuất |
|---|---|---|---|---|---|
| FEAT-034 | Exam intelligence: kho đề thi (exams, problems, solutions, sources), ingestion + planning workflows, embeddings | api.chuyenchon, DB chuyenchon-exam-intelligence | Shark | ❌ | Confirm (Q-041) |
| FEAT-035 | School registry: crawler trường chuyên, chương trình, tin tuyển sinh, con người, snapshots | data.chuyenchon.com (toàn bộ worker + D1) | Shark | ❌ | Confirm (Q-041) |
| FEAT-036 | School intelligence + admissions data pages (public) | www.chuyenchon | web /shark | ❌ | Confirm (Q-041) |
| FEAT-037 | Exam calendar (lịch thi), score simulator (mô phỏng điểm), personalized exam archive | www.chuyenchon | web /shark + learn | ❌ | Confirm (Q-041) |
| FEAT-038 | Target blueprints: conditional (lớp thường) vs specialized (chuyên) với required_mastery theo node | mori math_target_blueprint, math_target_node_weight | SDD-002 goals + SRC-011 depth targets | 🟡 | Adopt — đây chính là hiện thân của "required_depth theo goal" |
H. Content Production & Quality (mori → Nemo12 content plane)
| ID | Tính năng | Nguồn legacy | Nemo12 | SRC? | Đề xuất |
|---|---|---|---|---|---|
| FEAT-039 | Content pipeline: packages → modules → units → experiences; blueprint → generation runs | mori (130 bảng, 18 Workflows) | SDD-003/004 | ✅ | Adopt |
| FEAT-040 | Rubric registry + quality assurance + human review + remediation queue (cron-polled) | mori quality_*, le_rubric_* | SDD-003 Quality/Improvement Engine | ✅ | Adopt — chuyển remediation queue sang Cloudflare Queues |
| FEAT-041 | AI illustrations pipeline (flux-1-schnell + llava) cho experiences/entities | mori illustration worker | SDD-003 | ❌ | Confirm (Q-051) |
| FEAT-042 | Knowledge stories + story-led knowledge paths ("universe bible" narrative) | mori knowledge_stories, docs universe bible | SDD-004 | ❌ | Confirm (Q-051) |
| FEAT-043 | Source provenance + content intelligence + content report workflow | mori, api content-report | SDD-003 Versioning & Provenance | 🟡 | Adopt |
| FEAT-044 | Bộ 4 quality frameworks dạng code: CC-QAF-1.0 (10 clusters/50 criteria/250 indicators), requirements-assessment, story-acceptance, learning-experience-quality | chuyenchon root .mjs frameworks | Quality Gates cho docs + content | 🟡 | Adopt làm nền Quality Gate (Q-057) |
I. Reflection & Proof-of-Work (Octopus)
| ID | Tính năng | Nguồn legacy | Nemo12 | SRC? | Đề xuất |
|---|---|---|---|---|---|
| FEAT-045 | 4F Reflection (Facts/Feelings/Findings/Future): rubric + heuristic + AI evaluation, revisions, learning questions | sutucon reflection engine + workflow | ❓ | ❌ | Confirm — capability chung mọi school hay riêng Octopus? (Q-039) |
| FEAT-046 | Product submissions (proof-of-work): rubric 3×3×5, trial/final, AI đánh giá per-indicator, chặn URL local | sutucon product-submission engine + workflow | Assessment types (SRC-005 có Project Assessment) | 🟡 | Adopt vào Assessment Experience types |
| FEAT-047 | Experience comparison simulator (4 personas, không persist) | sutucon + foreign workflow | ❓ | ❌ | Confirm — giá trị thật? (Q-052) |
| FEAT-048 | Octopus curriculum spec: 5 Academies × 16 courses + "Future Lion Journey" 2 năm | sutucon docs/courses.md, ai-teen.md | PRD Octopus | ❌ | Adopt làm SRC nội dung cho Octopus |
J. Platform / Infrastructure features
| ID | Tính năng | Nguồn legacy | Nemo12 | SRC? | Đề xuất |
|---|---|---|---|---|---|
| FEAT-049 | Google GSI login + SSO cookie xuyên subdomain (.sutucon.com, session opaque + sha256) | sutucon auth service | Auth (Q-006 ✅ parent-first) | 🟡 | Adopt pattern, thêm rotation + mobile flow |
| FEAT-050 | Telemetry events (login/page_view/course_open/class_open) → behavior evidence | sutucon telemetry endpoint | SDD-002 Evidence sources | 🟡 | Adopt |
| FEAT-051 | Integrity system: account integrity status, declaration change events, integrity notices | app account_integrity_* | ❓ | ❌ | Confirm (Q-053) |
| FEAT-052 | SEO middleware per-route OG cards (HTMLRewriter) | sutucon www functions | app web | ❌ | Adopt (web marketing cần) |
| FEAT-053 | emdash CMS cho marketing content | www.chuyenchon Astro + emdash | app web | ❌ | Confirm — web mới dùng CMS gì? (Q-050) |
| FEAT-054 | Gateway hardening code-level: method/path allowlist, body cap 2MB | sutucon shared/gateway.ts | SDD-001 API edge | 🟡 | Adopt vào Hono middleware |
| FEAT-055 | Học liệu song song redirect/rebrand đã chạy: family→marlins 301, app→nemo redirect flag | chuyenchon git | Migration plan | ❌ | Ghi nhận cho kế hoạch cutover |
Tổng kết GAP
Các cụm tính năng có trong hệ cũ nhưng chưa có trong tài liệu yêu cầu SRC-001..012, cần quyết định trước khi chốt PRD:
- Class operations (lớp, lịch, điểm danh, link học hằng tuần) — quan trọng nhất vì mô hình blended.
- Gamification (badges, streaks, XP, stickers, rewards).
- Portfolio & social (hồ sơ công khai, submission board, featured).
- Commerce/growth (entitlements, affiliate, pricing, ebooks).
- Exam & school intelligence (kho đề, registry trường chuyên, score simulator) — linh hồn của Shark.
- Community offline (events/Cafe, Zalo).
- 4F Reflection & proof-of-work — linh hồn của Octopus.
- Integrity system, AI illustrations, knowledge stories, CMS, experience comparison.