Skip to content

Rà soát yêu cầu — trạng thái THẬT ​

Chủ dự án yêu cầu 2026-08-17: "Đưa toàn bộ các yêu cầu tôi đã yêu cầu vào docs, để đảm bảo không bị sót. Rà soát xem còn yêu cầu nào chưa được thực hiện, hoặc đã làm rồi nhưng deploy bị sót, hoặc chưa tồn tại tính năng đó trên hệ thống."

Sổ yêu cầu vẫn là intake.md — mỗi yêu cầu một dòng SRC, không có sổ thứ hai. Trang này không chép lại sổ; nó trả lời một câu khác: "cái đã ghi là xong, trên production có thật không?"

Cách đọc trạng thái — chỉ có ba mức, và mức nào cũng phải kèm bằng chứng kiểm được:

MứcNghĩa
✅ Đang chạyCode đã trên main, workflow deploy xanh, và (nếu cần schema) migration đã có trong d1_migrations
🔵 Xong một phầnPhần lõi chạy được, phần còn lại nêu rõ ở cột "còn thiếu"
🟡 Chưa làmĐã ghi nhận yêu cầu, chưa có dòng code nào

Ba thứ không được tính là ✅: code đã commit nhưng workflow deploy đỏ; migration còn trong migrations/ mà chưa vào d1_migrations; tính năng chạy được nhưng dữ liệu để nó có ích thì chưa có.

1. Đang chạy trên production (đã kiểm 2026-08-17) ​

SRCYêu cầuBằng chứng
SRC-207Toàn cảnh mở dần ba tầng: Package → Module (mũi tên thứ tự học) → Unit (thẻ chứa chấm Experience)ProgressViews.tsx; 3 test e2e; deploy-learn xanh
SRC-208Mỗi Unit tối đa 1 lab0048_one_lab_per_unit.sql đã trong d1_migrations; 225 → 182 lab live, 113 unit mỗi unit đúng 1 lab, 43 lab chuyển draft
SRC-211Sửa câu khó hiểu · lời nhắc nhịp độ xuống cuối thẻ · /labs trả tên rút gọnLearning.tsx, learning/routes.ts; deploy-api + deploy-learn xanh
SRC-212Đánh dấu lab yêu thích + lọc nhanh0050_lab_favorites.sql đã trong d1_migrations; 3 endpoint; 1 test e2e
SRC-213Gộp hai lời động viên thành mộtLearning.tsx
SRC-214Đáp án ngắn xếp 2 cột · Skip/Exit thành iconLearning.tsx; test e2e bám aria-label
SRC-215Avatar thật ở góc trên phải · công tắc VI/EN nhỏ lại/v1/me nay trả avatar_url (trước đó chưa bao giờ trả, dù 7/7 user đã có ảnh trong DB); .n12-switch-sm
SRC-216Slug /labs · Exit thành icon góc dưới phải · phân số vẽ bằng hai hình trònApp.tsx, LabPlayer.tsx, explore/engine.tsx; slug cũ vẫn mở được (có test)

2. Xong một phần — phần còn thiếu nói rõ ​

SRCĐã cóCòn thiếuVì sao chưa xong
SRC-208113 unit mỗi unit 1 lab70 lab chưa gắn được unit nào (Anh 32 · Văn 33 · Hoá 3 · Lý 1 · Sinh 1)Chúng dạy Nghe/Nói và Làm văn, mà chương trình chưa có unit tương ứng. Khớp theo tên chỉ trúng 3/70. Gắn được thì phải mở thêm unit — việc soạn nội dung
SRC-210Footer chung ở learn + marlinsweb/ chưa dùng bản chungapps/web/src/App.tsx đang có phần việc chưa commit của phiên song song; footer inline hiện tại cùng nội dung nên chưa lệch gì
SRC-211Bỏ em dash trong 6 chuỗi nudge/khen~26 chuỗi em dash ở các file learn khácLuật DS-001 §5b điều 8 cấm trong MỌI chuỗi UI; đợt này mới quét cụm phản hồi làm bài
SRC-212Đánh dấu lab yêu thíchGợi ý 1-2 lab bù khi hổngĐo được: chỉ 184/1013 bài (18%) có đường ra một lab qua unit của chính nó hoặc qua prereq — Toán 82/96 nhưng Lý 9/216 · Hoá 10/216 · Tin 0/216. Chờ chủ dự án chốt cách xử lý khi không có gì để gợi ý
SRC-202Luồng bố mẹ (wizard 5 bước)Luồng con chưa phân màn theo cấp học, xưng hô chưa áp vào learn—
SRC-206Đã rà 9 cựu học sinh, ghi draftChưa ai lên trangThiếu nguồn cho 5 người, và consent của cả 9 người chưa hỏi

3. Chưa làm — yêu cầu đã nhận, chưa có dòng code nào ​

SRCYêu cầuViệc cần làmChặn bởi
SRC-217Mỗi Learning Experience có "Nhắc lại": icon ? nhỏ góc dưới phải, bấm mở popover nói sơ qua một khái niệm + ví dụ nhỏMigration thêm skill_nodes.hint_vi/hint_en; /practice/start trả kèm; popover ở Learning.tsx; soạn nội dungCột description sẵn có chỉ chứa rác kiểu "Kỹ năng: Làm tròn số." — không dùng lại được. 1.013 bài cần hint, đợt đầu nên làm Toán (96 bài)
SRC-218Ảnh minh hoạ bằng thuật toán cho một số câu hỏi (cấm bitmap)Mở rộng FigureSpec sang Đại số/Số học (trục số, phân số, đồ thị hệ số góc) rồi chạy attach-figures.mjsEngine + bảng item_figures (migration 0038) đã có sẵn, hiện mới phủ Hình học
SRC-219Thư viện công thức toán — so sánh rồi triển khaiKaTeX, import() động, subset font; cho phép $…$ ngay trong prompt/options để chuyển dần, không phải sửa 2.160 câu cùng lúcĐã tư vấn xong, chờ chủ dự án gật
SRC-220Màn kết thúc Learning Experience: việc quan trọng nhất tiếp theo là gìMột nút accent duy nhất do hệ thống chọn theo kết quả (xem lại chỗ sai → đo mức vững → đi tiếp ô kế); "Ẩn bài làm" thôi làm nút chính; thêm dòng lịch ôn lạiĐã trả lời kèm lý do, chờ chốt
SRC-221Unit cũng có điểm và trình bày như Module; nút xem diff 7 ngày và 30 ngày cho từng Package/Module/UnitĐiểm Unit: API /overview đã trả sẵn mastery_of_assessed cho unit, chỉ là UI chưa vẽ vòng tròn. Diff: dùng learner_evidence.mastery_before/after + occurred_at (migration 0044)Dữ liệu lịch sử mới có 52/262 mẩu evidence mang mastery_after (cột thêm ở 0044), nên mốc "7 ngày trước" của bài học từ trước đó không dựng lại được — phải nói thẳng "chưa có dữ liệu" thay vì hiện 0
SRC-222Gộp Toàn cảnh và Đường học làm mộtGiữ Toàn cảnh làm bản đồ duy nhất; Đường học còn lại đúng màn chơi của một Unit; bỏ lọc theo lớp ở tầng moduleĐã phân tích (7 vs 5 module là do hai bộ lọc khác nhau trên cùng dữ liệu), chờ chốt vì việc này xoá một trang khỏi điều hướng

4. Việc lớn còn treo từ các đợt trước ​

ViệcSố đo hôm nayGhi chú
6/6/6 cho mọi môn (SRC-190)Đủ: Hoá · Tin · Lý (6 package · 36 module · 216 unit). Thiếu: Toán 3 package · Văn 3 · Anh 4 · Sinh 4 · SAT/AP/IELTS/GenAI 5Còn ~1.500 unit — đây là chương trình nội dung, không phải một lần chạy script
3 package cuối chưa có câu hỏiTin Ứng dụng 36 bài · 0 câu; Hoá Hoá học đời sống 36 bài · 0 câu; Lý Quang học 36 bài · 30 câuĐợt soạn câu thứ 6 dừng giữa chừng; mỗi package cần 144 câu
13 cụm đề Anh/Văn dùng chung câu hỏiPool chỉ 18–28 câu cho 5 đềScript in danh sách này mỗi lần chạy
docs/reference lệch với codeSinh từ bản đã commit ra 147 endpoint / 81 bảng, docs đang ghi 180 / 90Docs được sinh từ code chưa commit của phiên song song; đóng được khi phiên đó commit nốt

5. Chỗ dễ sót nhất — hai phiên làm song song ​

Hai phiên Claude cùng làm trên một cây thư mục trong ngày 2026-08-17. Hệ quả đã xảy ra thật, ghi lại để người sau không mất thời gian tìm:

  • Số SRC đụng nhau ba lần (193, 195, và 207/208 — hai số cuối được dùng làm nhãn commit cho phần mentor trong khi sổ đã cấp cho phần Toàn cảnh và lab).
  • Dãy migration hở: 0046, 0047 đã áp lên D1 nhưng file vẫn chưa commit, nên cổng AS-04.1.1 (số liên tục) sẽ báo khi CI chạy tới đó.
  • Docs bị sinh từ cây làm việc bẩn — nguyên nhân của mục cuối bảng §4.

Cách tránh: git add đúng file của mình, và trước khi cấp số SRC/migration mới thì đọc lại intake.md + ls migrations ngay tại thời điểm đó.