---
url: https://docs.nemo12.com/intake/src-0075-0099.md
description: >-
  Sổ tiếp nhận nguồn yêu cầu SRC-0075 tới SRC-0099: mỗi dòng một nguồn, ngày
  nhận, tài liệu canonical đã ghi và trạng thái.
---

# Sổ nguồn SRC-0075 tới SRC-0099

Một mảnh của [sổ tiếp nhận](../intake.md). Chỉ CHÈN dòng bằng `node scripts/src-new.mjs`, không ghi đè cả file.

| ID | Ngày nhận | Nguồn | Canonical hóa vào | Trạng thái |
| --- | --- | --- | --- | --- |
| SRC-075 | 2026-08-14 | Chỉ đạo: vào Whale phải **tới được vài khu vực** — khám phá các quốc gia, học bổng, câu chuyện thành công — và **đi sâu vào từng trang nhỏ bên trong** | `WhaleHub.tsx` tách hub (4 card khu vực + Dành cho em) và 5 trang con: `/whale/quoc-gia`, `/whale/quoc-gia/{code}`, `/whale/hoc-bong`, `/whale/cau-chuyen`, `/whale/co-hoi`; `WhaleShell` khung chung; giữ redirect mềm `/whale/country/{code}` | ✅ |
| SRC-076 | 2026-08-14 | Chỉ đạo: đưa **màu riêng từng school ra nền card** trang home; thêm **animation khi hover**; và **icon phải "biển cả" hơn** (vài icon chưa liên quan biển) | `.n12-card-school` (wash accent 4-9%, hover đậm + bóng theo accent) + `.n12-swim` (mascot bơi lên khi hover); vẽ lại 8 icon thành vật thể biển: books→san hô quạt, progress→sóng dâng, flag→phao tiêu, palette→sao biển ngũ sắc, puzzle→2 mảnh vỏ sò, grad→ngọc trai trong vỏ sò, trophy→vỏ ốc vàng, abacus→hạt bọt biển | ✅ |
| SRC-077 | 2026-08-14 | Chỉ đạo Phòng Lab: gom theo **Module → Unit → Experience**, **KHÔNG gom theo lớp**; mỗi Unit chứa vài Learning Experience và Assessment Experience; **icon đầu mỗi Experience** phân loại cái nào để hệ thống ĐO, cái nào để HỌC | migration 0023 (`skill_nodes.module/module_order`) + `scripts/seed-node-modules.mjs` (15 module Toán xuyên lớp, môn khác lấy tên mạch); `/labs` trả module + `check_available`; `practice/start` nhận `kind=check` → session `mastery_check`, chọn câu discriminator/boundary; Learning.tsx: Mạch → Module → Unit → Experience (🧪 Khám phá · ✏️ Luyện tập = Để học; 🎯 Đo mức vững = Để đo) | ✅ |
| SRC-078 | 2026-08-14 | Chỉ đạo: **nút chuyển English ↔ Vietnamese ở góc trên phải** | `lang.tsx` (LangProvider + useLang + LangToggle, nhớ lựa chọn trong localStorage); gắn cạnh avatar ở 2 header của learn; catalog chuỗi giao diện + nội dung song ngữ lấy `title_en` từ DB (REQ-KNW-16) | ✅ |
| SRC-079 | 2026-08-14 | Chỉ đạo Marlins Portrait: **đừng hiển thị tất cả portrait dàn ra**, chỉ liệt kê **tên**, bấm vào mới tới **trang chi tiết** từng portrait; **tách "Lộ trình dài hạn" ra trang riêng** | `Portrait.tsx` tách 3 phần: danh sách (tên + tuổi + số mốc + phản hồi của con), `PortraitDetailPage` (URL `#/child/{id}/portrait/{pid}`), `RoadmapPage` (URL `#/child/{id}/roadmap`, gồm Roadmap + form thêm mốc/lộ trình + mốc chưa gắn) | ✅ |
| SRC-080 | 2026-08-14 | 🗄️ *(đã bị SRC-145 đảo lại 2026-08-15, cùng lúc với SRC-074→SRC-134)* Chỉ đạo: cụm filter của **Orca** đổi hết sang tiếng Anh (đồng bộ với Whale — SRC-074) | `OrcaHub.tsx`: `DOMAIN_EN` (All · Mathematics · Science · Robotics · AI · Coding · English · Writing · Debate · Arts); nhãn tiếng Việt giữ cho trang chi tiết cuộc thi | ✅ |
| SRC-081 | 2026-08-14 | Chỉ đạo: **bỏ Ray School**, chuyển hết SAT và AP vào **Squid School** (Squid = IELTS + SAT + AP) | PRD-001 §1 (bảng brand) + REQ-SCH-10/11 amend, REQ-SCH-12 superseded, US-50 đổi persona; [SDD-011 §7-8](../architecture/sdd-011-school-models.md); code: schoolsInfo learn/marlins, coral schools, web schools (bỏ trang /ray), Onboarding, SchoolHome (Squid có cả mục tiêu IELTS lẫn SAT), backend SCHOOLS bỏ 'ray'; dữ liệu: enrollment Ray chuyển sang Squid | ✅ |
| SRC-082 | 2026-08-14 | Feedback màn luyện tập: bỏ label **"Câu 4/10"**; bỏ **scrollbar dọc** ở hàng tab Today/Lab; link "Chưa biết, bỏ qua" đổi thành **"Skip"** và đưa xuống dưới cạnh nút thoát; **"Thoát bài học" → "Exit"**; **ẩn hết header** khi đang trong màn này | `Learning.tsx` (bỏ đếm câu, hàng Skip + Exit dưới cùng, `onImmersive`); `App.tsx` Cockpit ẩn header khi immersive + nav tab ẩn scrollbar | ✅ |
| SRC-083 | 2026-08-14 | Chỉ đạo màn luyện tập: **kết quả hiện ngay sau mỗi câu** (sau khi khai độ tự tin và vì sao) — **đảo SRC-110 cho practice**, bài "đo mức vững" vẫn giấu tới cuối; **cứ 3 câu đúng liên tiếp** chúc mừng một kiểu riêng; **làm hết 10 câu** chúc mừng nồng nhiệt; **5 bong bóng khí** kiểu trái tim Duolingo — sai quá 5 câu là dừng bài | `Learning.tsx`: reveal per câu + tô đúng/sai, `CHEERS` (5 lời chúc chuỗi 3), màn finale theo tỷ lệ đúng, `Bubbles` 5 mạng (Skip không mất bong bóng), màn "hết bong bóng" | ✅ |
| SRC-084 | 2026-08-14 | Chỉ đạo trang quốc gia (Whale): **học bổng lên trên cùng, 6 card chỉ TÊN, bấm ra chi tiết**; rồi **6 trường, bấm ra chi tiết**; **bỏ 3 khối chung chung** (học bổng/giáo dục/chi phí); **success case phải đúng quốc gia đó**; dữ liệu **tra từ internet**, thêm **bảng xếp hạng đại học** mỗi nước | migration 0024 `whale_rankings`; `GET /v1/whale/countries/{code}` trả thêm rankings, stories lọc theo tag nước (bỏ fallback châu lục); `GET /v1/whale/scholarships[?country]`, `/scholarships/{id}`, `/universities/{id}`; trang `/whale/hoc-bong/{id}`, `/whale/truong/{id}`; xếp hạng QS 2027 tra từ topuniversities.com (92 dòng, Singapore chỉ 4 vì QS chỉ xếp 4 trường); dữ liệu tra web: **72 trường (6/nước), 73 học bổng (6/nước, SG 7), 24 case theo đúng nước** (`scripts/whale-data-p1..p3.json` + `seed-whale-from-json.mjs`) | ✅ |
| SRC-085 | 2026-08-14 | Chỉ đạo: đổi dòng phụ của school — Turtle thành "Học chắc, không học vẹt, không hổng"; Squid bỏ chữ English, thành "Vào thẳng đại học bằng IELTS · SAT · AP" | `schoolsInfo.ts` learn + marlins | ✅ ⚙️ |
| SRC-086 | 2026-08-14 | Chỉ đạo: menu avatar bỏ hiển thị tên người dùng; mục cuối đổi thành "Logout" | `AvatarMenu.tsx` learn/marlins/mentors/coral | ✅ |
| SRC-087 | 2026-08-14 | Chỉ đạo (learn): con chỉ xem **danh sách portrait**, bấm mới vào chi tiết; có **link tới trang lộ trình dài hạn** | `PortraitView.tsx`: list → detail → roadmap (state nội bộ, nút quay lại đổi theo ngữ cảnh) | ✅ |
| SRC-088 | 2026-08-14 | Chỉ đạo: bấm chip **"Turtle School"** ở góc trên trái thì về **trang chủ của school đó** | `App.tsx`: tách nút logo (về tất cả school) và chip school (về School Home) | ✅ |
| SRC-089 | 2026-08-14 | Chỉ đạo: màn này cần tới được các môn khác như **Lý, Hoá, Sinh** — tạo bổ sung | `seed-science-subjects.mjs`: 3 môn (physics/chemistry/biology), 12 mạch, **44 bài** kèm module/unit và prereq theo GDPT 2018; `SCHOOL_SUBJECTS` turtle/shark thêm 3 môn; câu hỏi soạn riêng (`items-*.json` + `seed-science-items.mjs`) | ✅ |
| SRC-090 | 2026-08-14 | Chỉ đạo Phòng Lab: bỏ chú giải màu (Cần học/Nên ôn/Chưa học/Đã vững); bỏ dòng "Chọn một bài lab…"; **tên mạch, module, unit phải song ngữ** (sửa DB nếu cần) | migration 0025 (`module_en`, `unit_en`); `/labs` trả `name_en` của strand + `module_en`/`unit_en`; Learning.tsx dùng `tx()` cho cả 3 tầng; 64 module + 155 unit dịch qua agent | ✅ |
| SRC-091 | 2026-08-14 | Feedback: web/learn/marlins **không cùng hình ảnh, theme, tagline, màu nền** — yêu cầu đồng bộ, **lấy learn làm chuẩn**; coral cũng phải theo Design System | `apps/learn/src/schoolsInfo.ts` thành **nguồn duy nhất** (+`areas`, +alias `LEARNING_SCHOOLS`/`HUB_LABEL`), copy sang marlins/web/coral; web bỏ `schools.ts` riêng (slug→code, title→label, description→goal) + thêm cụm 'học thế nào'; coral nhận NemoLogo + Mascot + Seafloor + tagline chuẩn; favicon cá hề 3D cho cả 6 app | ✅ |
| SRC-092 | 2026-08-14 | Chỉ đạo Phòng Lab: bỏ hết số đếm ("8 bài", "3 unit", "(2)") và badge "n bài nên học" | `Learning.tsx` | ✅ |
| SRC-093 | 2026-08-14 | Feedback: **"Explore the idea" không thấy gì để khám phá**; cần **Learning Experience Blueprint chuyên cho Explore, mỗi môn tối thiểu 5**, và sinh Learning Experience từ blueprint đó | `explore/engine.tsx` (7 archetype data-driven, SVG procedural) + `explore/configs.tsx` (config từng bài); `seed-explore-blueprints.mjs` ghi blueprint vào `content_blueprints`; Phòng Lab chỉ hiện "Khám phá" khi bài THẬT SỰ có nội dung khám phá. Mở rộng đủ 10 môn ở SRC-095 | ✅ |
| SRC-094 | 2026-08-14 | Chỉ đạo: mỗi module phải có **tối thiểu 3 unit** | Cấu trúc lại toàn bộ cây: 64 → **52 module / 217 unit**, gộp 10 nhóm module dưới 3 bài và chia nhỏ các module 1 unit theo chủ đề thật (`node-structure.json` + `apply-node-structure.mjs`). Năm mạch chỉ có 2 bài đã được bổ sung bài ở SRC-096 nên **mọi module đều ≥3 unit** | ✅ |
| SRC-095 | 2026-08-14 | Chỉ đạo: **mỗi môn cần bộ blueprint khám phá khác nhau, đi theo cấp học** | Blueprint mang thêm trường `levels` (cap1/cap2/cap3) trong `target_selector_json`; thêm 5 archetype cho môn ngôn ngữ và tư duy (`timeline`, `picker`, `highlight`, `word-web`, `blocks`) + 19 blueprint mới cho Anh, Văn, IELTS, SAT, AP, GenAI. Tổng **34 blueprint**, mỗi môn ≥5, và 63 bài đã có Learning Experience khám phá | ✅ |
| SRC-096 | 2026-08-14 | Feedback: mascot **Marlins phải là cá hề** (Marlin = bố của Nemo) chứ không phải cá kiếm; đưa card Marlins **ra giữa** ở nemo12.com; UI marlins/web phải **học theo learn** | `Marlin` vẽ lại thành cá hề bố (radial 3D, sọc viền tối, lông mày hiền, thân to hơn Nemo); web đổi thứ tự Nemos · **Marlins** · Dolphins, card căn giữa mascot h-32; marlins Explore card school/hub = chuẩn learn (`n12-card-school` + căn giữa + mascot h-36 + `n12-swim`) | ✅ |
| SRC-097 | 2026-08-14 | Chỉ đạo: dựng **Pearl** — public knowledge layer tại `pearl.nemo12.com`, làm bằng VitePress, **dùng chung Design System** với trang chính. Không gọi là "Docs" trên UI mà là **"Pearl — How Learning Works"**: mục tiêu là nâng mental model của phụ huynh, không phải tra cứu tài liệu. Sáu nhóm nội dung: How Learning Works · How Nemo12 Understands a Learner · Student Portrait · Education Ideas (không xếp hạng trường phái) · How Nemo12 Makes Decisions · Parent Mental Models. 10 keyword: Learning Experience, Assessment Experience, Learner Model, Student Portrait, Mental Model, Evidence, Mastery, Readiness, Pedagogy, Recommendation. Bổ sung trong phiên: **ví dụ cụ thể theo từng môn về Inquiry-based Learning theo IB** để xem demo cách IB dạy | App mới `apps/pearl` (VitePress, `srcDir: content`, 54 trang) + `deploy-pearl.yml` + custom domain `pearl.nemo12.com`; theme bắc cầu `--vp-*` → token DS-001 (`.vitepress/theme/pearl.css`), thêm portal theme `.theme-pearl` vào `tokens/base.css` — **không fork token, không copy component**; nội dung neo vào [SDD-002](../architecture/sdd-002-learner-intelligence/index.md), [SDD-015](../architecture/sdd-015-student-portrait.md), [SDD-017](../architecture/sdd-017-retention.md); nhóm demo IB `/ideas/inquiry-ib/` gồm 8 môn × 3 bài học đầy đủ (key concept · global context · statement of inquiry · 3 loại câu hỏi · diễn biến tiết học · chấm theo 4 tiêu chí) | ✅ |
| SRC-098 | 2026-08-14 | Chỉ đạo (kèm ảnh màn admin.nemo12.com): (1) **khu vực admin dùng tiếng Anh toàn bộ**; (2) **mỗi workflow đã chạy phải lưu lại làm bằng chứng**; (3) **mỗi lần một Engine chạy phải lưu lịch sử** để chứng minh nó chạy thật; (4) **Goal Model phải tồn tại**; (5) cần **trang riêng trong admin**: danh sách Learner → chọn 1 Learner → link tới từng model (Learner Model, Learner Context Model, Goal Model…) → danh sách phiên bản theo thời gian → click từng phiên bản xem chi tiết nội dung | Goal Model + Goal Engine hiện thực ([SDD-002](../architecture/sdd-002-learner-intelligence/models-and-engines.md) §16) + run evidence & model version store §19 mới; REQ-INT-29, REQ-PLT-13/14; migration `0027_goal_model_run_history.sql` (`learner_goal_entries`, `learner_model_versions`, `workflow_runs`, `workflow_run_steps`, `engine_runs`); admin console tiếng Anh + trang Models (4 cấp drill-down) và trang Runs | ✅ |
| SRC-099 | 2026-08-14 | Chỉ đạo: card Dolphins trên nemo12.com là **demo, ảnh nhỏ 30%** so với card bố mẹ; bấm vào **đi tới dolphin.nemo12.com**, và cổng này phải **login qua Cloudflare Access, chỉ `dac2205@gmail.com`** | web: card Dolphins thành link + mascot h-10 (30% của h-32) + nhãn 'Khu vực nội bộ · demo'; Access app **Nemo12 Dolphin** đã tạo 2026-08-15 (SRC-132), policy `Nemo12 Admin - Owner` Allow · Emails · `dac2205@gmail.com`, session 24h — bảng ba cổng tại [open-questions](../open-questions/index.md) | ✅ |
