---
url: https://docs.nemo12.com/intake/src-0050-0074.md
description: >-
  Sổ tiếp nhận nguồn yêu cầu SRC-0050 tới SRC-0074: 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-0050 tới SRC-0074

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-050 | 2026-08-14 | Chỉ đạo: trong Marlins bố mẹ **tạo Goal cho từng con** (đỗ 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"** | `learner_exam_targets` mở thêm `target_kind='graduation'` + `PATCH /v1/exam-targets/{id}`; trang `Goals.tsx` (#/child/:id/goals) | ✅ |
| SRC-051 | 2026-08-14 | Chỉ đạo: bố mẹ **ghi nhận định kỳ niềm tin về con theo môn**: mức lo lắng, điểm hình dung khi đi thi thật, cảm nhận "đang hổng" hay "học tự tin", có tin đủ điểm đỗ không | migration 0018 `parent_beliefs` (KHÔNG vào learner_evidence) + `POST/GET /v1/learners/{id}/beliefs`; trang `Beliefs.tsx` (#/child/:id/beliefs), có đối chiếu với ước tính hệ thống | ✅ |
| SRC-052 | 2026-08-14 | Chỉ đạo: portrait cần **thứ chạy dài xuyên nhiều năm (kiểu EPIC trong Jira)**, milestone "nằm bên trên" các thứ đó; IELTS/SAT là chứng chỉ quan trọng, **thi thử mỗi 6 tháng** trong 2 năm | migration 0017 `portrait_tracks` + `milestones.track_id`; `POST/PATCH /v1/…/tracks`; `Roadmap.tsx` (Marlins sửa được, learn chỉ xem); seed 3 portrait + 8 track + 33 mốc cho Vani Tú Minh | ✅ |
| SRC-053 | 2026-08-14 | Chỉ đạo: **logo Orca** không được để hình vuông đen; tách **trang HOME riêng cho Orca** giới thiệu về Orca, vào trong là **danh sách cuộc thi**, bấm chi tiết ra **trang chi tiết từng cuộc thi**; trang chân dung đổi tên **Student Portrait** và slug **/student-portrait** | `OrcaLogo.tsx` (SVG, thay emoji ghép "🐋‍⬛" vốn render ra ⬛); OrcaHub tách `OrcaHome`/`OrcaList`/`OrcaDetailPage` + route `/orca`, `/orca/cuoc-thi`, `/orca/cuoc-thi/{id}`; slug `/student-portrait` (giữ redirect `/chan-dung`) | ✅ |
| SRC-054 | 2026-08-14 | Chỉ đạo: **School Home cần phần giới thiệu về trường** (ví dụ trang Shark) | `schoolsInfo.ts` thêm `forWho`/`method`/`outcomes` cho cả 6 school; SchoolHome render "Dành cho ai", "Học ở {school} thế nào", "Ra khỏi {school}, con có" | ✅ |
| SRC-055 | 2026-08-14 | Chỉ đạo: **tạo 3 Assessment + 3 Learning Experience Blueprint**; thêm **blueprint cho các đề thi** dựng từ **đề thật Toán giữa/cuối HK1 lớp 6-9** (bóc tách phần trắc nghiệm gồm bao nhiêu câu, những câu nào); admin **sửa tay từng phần** mọi blueprint trong Coral | migration 0016 `content_blueprints` + `generation_runs` (SDD-013 §3, đổi tên tránh trùng goal blueprint); `blueprints-seed.json` 14 bản ghi (3 AX nền + 8 exam blueprint + 3 LX) + `scripts/seed-blueprints.mjs`; `GET/PATCH /v1/coral/blueprints*`; tab Blueprint trong Coral | ✅ |
| SRC-056 | 2026-08-14 | Chỉ đạo: khi learner chọn xong đáp án, hệ thống **hỏi tiếp mức độ tự tin và vì sao chọn**, **không hiện đúng/sai ngay**; kết quả **không hiển thị "mastery 32%"** vì không ai hiểu | `/v1/practice/{id}/answer` nhận `confidence` + `justification` (3 lớp đo REQ-EXAM-07, lưu `payload_json`); Learning.tsx hỏi 2 lớp trước khi lộ kết quả; kết quả nói "Chắc rồi / Đang lung lay / Cần xây lại từ gốc" kèm thanh màu | ✅ |
| SRC-057 | 2026-08-14 | Chỉ đạo: **bỏ hết ký tự em dash trên mọi page**; **bỏ hết label "Khám phá"**, chỉ để lại icon và căn icon đó ở dưới | [DS-001 §5b](../design-system/components-and-minimal.md) điểm 8-9; quét sạch chuỗi hiển thị 6 app (web/learn/marlins/coral/mentors/admin) + `<title>`/meta; card school ở nemo12.com chỉ còn mũi tên `→` căn đáy card | ✅ |
| SRC-058 | 2026-08-14 | Chỉ đạo: vào Coral phải **chọn School rồi Subject trước**; các trang sau dùng đúng hai thông tin đó, không chọn lại; muốn đổi thì **về trang chủ Coral** | `schools.ts` + màn `PickContext` (trang chủ Coral), context lưu localStorage; header hiện chip "school · môn ✕" bấm để đổi; Học liệu/Ngân hàng đề/Blueprint/Coverage đều bám context | ✅ |
| SRC-059 | 2026-08-14 | Chỉ đạo: Coral lọc học liệu theo cấp (1/2/3) rồi chọn lớp | apps/coral Content filter | ✅ |
| SRC-060 | 2026-08-14 | Chỉ đạo: mỗi school có MÔN RIÊNG — Ray = SAT/AP, Squid = IELTS, Octopus = GenAI | [SDD-011](../architecture/sdd-011-school-models.md), REQ-SCH-10 | ✅ |
| SRC-061 | 2026-08-14 | Chỉ đạo: chia tiếp module → unit, hiển thị accordion trong Phòng Lab | migration 0020 + [SDD-004](../architecture/sdd-004-curriculum-storage.md) | ✅ |
| SRC-062 | 2026-08-14 | Chỉ đạo: learner lọc theo lớp; bỏ nhãn "Học (10)", thêm tín hiệu "có cần học không" | REQ-UX (Phòng Lab) | ✅ |
| SRC-063 | 2026-08-14 | Chỉ đạo: docs sidebar sang tiếng Anh, gom còn ít nhóm | apps/docs sidebar | ✅ ⚙️ |
| SRC-064 | 2026-08-14 | Chỉ đạo: bổ sung blueprint đề thi (giữa kỳ/học kỳ từng môn + các dạng khác) | content_blueprints (55 bp mới) | ✅ |
| SRC-065 | 2026-08-14 | **PRD — Retention Engine & Memory Retention System** (văn bản đầy đủ từ chủ dự án): tách **Mastery ≠ Retention** (historical mastery vs current retention — core architectural rule); Retention Model per node/skill/unit + forgetting curve (decay nhiều cấp, học dần personal forgetting rate); Evidence phân tầng exposure→recognition→assisted→independent→transfer; retrieval strength làm chậm quên; review urgency/priority/**window** (goal + exam aware, prerequisite protection, implicit review, interleaving); avoid review debt (không backlog "nợ"); forgetting vs never-learned vs context-failure; retention confidence thấp → assessment probe thay vì relearning; Review Ladder; UX không phán xét; MVP → Phase 3 + success metrics | [SDD-017](../architecture/sdd-017-retention.md), REQ-INT-23..28, US-64..66, SDD-002 §6/§14 amend, QG-005 amend, open-questions Đợt 8 | ✅ |
| SRC-066 | 2026-08-14 | Feedback màn khởi động lab: "Phần này quá khó hiểu, ko hiểu là cái gì vậy?" — 3 câu khảo sát (tự đánh giá + đoán đúng mấy/N câu + chỗ khó nhất) hiện **trước khi** learner biết bài là gì, lại gắn nhãn "Bước 1/2 · Khám phá" trong khi không hề khám phá gì, và nút chính lại là "Bỏ qua khởi động". Rút còn **1 câu** 4 mức bằng tiếng người; nút chính luôn "Bắt đầu làm bài"; calibration chuyển sang so tự-đánh-giá vs thực tế bằng lời | REQ-LRN-15 (PRD §5), `apps/learn/src/Learning.tsx`, `warmup` API (`predicted_correct` → optional) | ✅ |
| SRC-067 | 2026-08-14 | Chỉ đạo: **đổi Design System toàn site** (nemo12.com + learn + marlins): khung trình bày kiểu **framer.com / screen.studio** (quá sạch, quá ít element); màu sắc/hình ảnh kiểu **phim Finding Nemo, dưới biển, hoạt hình 3D Pixar** | [DS-001 v0.3 §2](../design-system/index.md): tokens v0.3 (aqua scale, nền nước trong, radius/bóng framer), hero tia sáng + bong bóng, gloss Pixar; web hero full-viewport | ✅ |
| SRC-068 | 2026-08-14 | Chỉ đạo: **cải tiến toàn diện hình ảnh** trên nemo12.com + learn + marlins (duyệt đề xuất: bỏ emoji, bộ hình riêng) | `N12Art.tsx`: 8 mascot Pixar-cute (turtle/shark/octopus/squid/ray/whale/dolphin/marlin) + 10 icon đại dương (lab=sứa, exam=hải đồ, goal=hải đăng, map, compass, portrait, family, treasure, review, progress) + Seafloor scene; [DS-001 §2c](../design-system/visual-v03-and-typography.md) | ✅ |
| SRC-069 | 2026-08-14 | Chỉ đạo: practice trả lời theo **3 bước tuần tự** — learner **đổi thoải mái** lựa chọn đáp án, bấm **"Tiếp"** mới hiện "Con tự tin tới mức nào", bấm "Tiếp" lần nữa mới hiện **"Vì sao con chọn đáp án A/B/C/D"** (nêu đúng chữ cái đã chọn) — không dồn cả 3 lớp đo vào một màn (nối tiếp SRC-056/060, REQ-EXAM-07) | `Learning.tsx` (Practice step machine answer→confidence→why); response_ms đo tới lúc chốt đáp án | ✅ |
| SRC-070 | 2026-08-14 | Feedback hình ảnh: logo **cá hề 3D**; rùa Turtle **đang bơi**; Shark **mạnh mẽ** hơn; icon **to gấp 3-5 lần**; trình bày lại home learn + nemo12.com; phủ nốt chip Orca + mọi chỗ emoji sót | NemoLogo v2 (radial 3D + rim light) + favicon; Turtle/Shark v2; `n12-icon-lg` 7rem + `n12-icon-xl` 10rem; Root learn + web card mascot h-36 căn giữa; ArtIcon quét regex toàn bộ slot/section-title; DS-001 §2c | ✅ |
| SRC-071 | 2026-08-14 | Feedback UI home learn: bỏ emoji 👋 chỗ chào, **bỏ hết mũi tên** trên card, **bỏ chấm xanh** trạng thái, avatar góc phải phải là **ảnh thật của user** và nhỏ lại | migration 0022 `users.avatar_url` + lưu/refresh từ Google profile mỗi lần login + `/v1/me` trả avatar_url; AvatarMenu 44→36px dùng ảnh thật (6 app); Root learn + web bỏ arrow/dot | ✅ |
| SRC-072 | 2026-08-14 | Feedback: các option của câu **"Vì sao con chọn đáp án B?"** — "cực kỳ vớ vẩn" (bộ 4 lựa chọn viết giọng Toán: "Làm từng bước ra kết quả", "Nhớ công thức" — vô nghĩa với câu Ngữ văn về Thạch Sanh). Lý do chọn phải **tinh chỉnh theo câu hỏi hoặc theo môn** | [SDD-012 §4](../architecture/sdd-012-real-exam-bank.md) justification taxonomy (4 mã chuẩn `derived/recalled/eliminated/guessed` + chữ theo môn × strand), [SDD-017 §4](../architecture/sdd-017-retention.md) (tự khai "đoán" → không tính retrieval độc lập); `apps/learn/src/justifications.ts`, `justification_kind` trong practice answer API | ✅ |
| SRC-073 | 2026-08-14 | Chỉ đạo: trang Khám phá (Marlins) và trang gốc (learn) phải **hiển thị danh sách các School**, **tách Whale và Orca thành cụm riêng** (không phải nơi học), **bấm từng school mới vào trang chi tiết**; tên hiển thị phải nói rõ nó là cái gì: **"Turtle School"… "Ray School"**, còn **Whale · Du học** và **Orca · Cuộc thi** để các bé hiểu | `schoolsInfo.ts` thêm `label` (learn) + bản marlins mới (`LEARNING_SCHOOLS` 5 school + `HUB_LABEL`); `Explore.tsx` viết lại: list → SchoolDetail (3 cụm Dành cho ai / Học thế nào / Ra khỏi đây con có) + hub Whale/Orca, URL riêng `/explore/{code}`; learn Root chia 3 cụm (Các school · Cơ hội và sân chơi · Hồ sơ của con) | ✅ |
| SRC-074 | 2026-08-14 | 🗄️ *(phần "filter tiếng Anh" đã bị SRC-134 đảo lại 2026-08-15)* Feedback Whale: cụm **filter dùng tiếng Anh** (kể cả nút Lưu); cụm **kết quả tách 2 cột**; cho chọn **tối đa 2 quốc gia** (trước là 4); kết quả **quá nhiều thông tin, cần ẩn hầu hết cho sạch**; **bấm từng card ra trang chi tiết riêng** | `WhaleHub.tsx` (learn + marlins): filter EN (Dream destinations / Pick up to 2 / Save), `MAJORS` tách value-label (giữ chuỗi đã lưu để backend match), `MAX_COUNTRIES=2`, card kết quả chỉ cờ + tên + 1 dòng; trang chi tiết quốc gia: learn route `/whale/country/{code}`, marlins `/explore/whale/{code}` | ✅ |
