Skip to content

Sổ nguồn SRC-0425 tới SRC-0449 ​

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

IDNgày nhậnNguồnCanonical hóa vàoTrạng thái
SRC-4252026-08-20Việc nối tiếp: graph prerequisite Vật lý và Sinh học60 + 66 cạnh. CI bắt 3 em dash trong chữ người dùng đọc — nguyên nhân gốc là chạy node scripts/check-docs.mjs thay vì npm run check:docs, đúng loại lỗi đã mắc trước đó với eslint apps workers thay vì npm run lint. Chỉ lệnh trong package.json mới là cổng thật✅
SRC-4262026-08-20Sự cố: hai phiên song song cùng tạo migration số 0058Đổi tên bản của phiên này thành 0062_exp_state_attempts.sql và UPDATE d1_migrations SET name=...: wrangler theo dõi bằng tên file, nên đổi tên không thôi sẽ chạy lại ALTER TABLE trên cột đã có và kẹt toàn bộ migration về sau✅
SRC-4272026-08-20Việc nối tiếp: 63 lab cho Unit Vật lý còn thiếuHai lỗi chỉ lộ ở lần chạy thứ hai: INSERT OR REPLACE trong SQLite là xoá-rồi-chèn nên làm treo khoá ngoại lab_content.lab_id (đổi sang ON CONFLICT DO UPDATE), và script suýt cướp chỗ lab energy đang chạy trên unit "Công và công suất" (thêm cổng bỏ qua + in ra)✅
SRC-4282026-08-20Việc nối tiếp: 64 lab cho Unit Sinh học còn thiếuNguồn nội dung lấy từ pearl.nemo12.com như mọi đợt trước✅
SRC-4292026-08-20Việc nối tiếp: 62 lab cho Unit Hoá học còn thiếuCổng nhãn nút SRC-421 bắt được hai nút trùng nhãn "Tra ra" trong chính đợt này✅
SRC-4302026-08-21Việc nối tiếp: 124 lab cho Unit Ngữ vănĐợt cuối. Cả sáu môn của cây B21 nay đều 0 unit không có lab. Unit "Vì sao chọn chi tiết này" được bỏ qua vì đã có lab character-map đang chạy✅
SRC-4312026-08-21Sự cố CI: deploy-docs đỏ ở commit 2c8e8e1, chặn deploy tài liệuHai câu trong SDD-013 và open-questions còn trỏ apps/data như mã đang có, trong khi thư mục đó đã gỡ khỏi repo. Lỗi không lộ ra khi chạy tại máy vì máy còn thư mục apps/data rơi rớt (chỉ còn .env và dist), nên existsSync vẫn đúng — bản chạy sạch của CI mới thấy. Sửa câu văn cho khớp sự thật; đã kiểm lại bằng cách tạm chuyển thư mục rơi rớt đi rồi chạy cổng✅ ⚙️
SRC-4322026-08-21Việc còn sót của "làm nốt content Lý Hoá Sinh": rà lại thì Vật lí còn Package QH (Quang học) và Hoá học còn Package HC (Hoá học trong đời sống) trống câu hỏi132 + 140 câu, đúng khuôn canonical → variant → discriminator → boundary. Hai Package này đang hiện với learner chứ không ẩn, nên mỗi Unit trống là một ô learner mở ra và không có gì để làm. Sau đợt này, mọi node còn trống đều nằm trong strand đã ẩn (VOC · GR · RD · WR của Tiếng Anh, TV của Ngữ văn), tức không còn Unit nào learner nhìn thấy mà rỗng✅
SRC-4332026-08-21Việc còn thiếu sau SRC-432: bốn môn nhỏ (genai · ap · ielts · sat) chưa có cạnh prerequisite nào77 cạnh soạn tay có lý do: GenAI 21, AP 15, IELTS 24, SAT 17. Cổng chặn cạnh ngược lớp của SRC-420 bắt được một cạnh ngay lúc nạp (Rubric AP lớp 11 ← Suy luận thống kê lớp 12); đổi sang một prerequisite cùng lớp thay vì đảo chiều✅
SRC-4342026-08-21Việc còn thiếu sau SRC-433: bốn môn nhỏ chưa có lab nào71 lab picker (GenAI 17, IELTS 18, SAT 18, AP 18), cùng khuôn với sáu môn cốt lõi. Bốn môn này là ôn thi và kỹ năng chứ không phải cây năng lực, nên lab nhắm vào cách chấm và bẫy hay gặp thay vì nội dung học thuật: rubric bốn tiêu chí của IELTS, bẫy đổi thông tin ở Listening, phương án đúng-nhưng-không-đạt-mục-tiêu của SAT, và luật cho điểm theo bước của câu tự luận AP✅
SRC-4352026-08-21Việc còn thiếu sau SRC-434: Tin học chưa có cạnh prerequisite nào, dù là môn nhiều Unit thứ hai (216)179 cạnh soạn tay cho 5 Package đang hiện (LT · MT · TT · CTDL · KT); Package UD bỏ qua vì đang ẩn. 170/180 Unit có prerequisite, 17 cạnh xuyên Package — đó là chỗ đắt nhất của graph: "Duyệt theo chiều rộng" (TT) đứng trên "Hàng đợi" (CTDL), "Ghi nhớ kết quả" (KT) đứng trên "Tra cứu nhanh" (CTDL), quan hệ mà vị trí trên bản đồ không đời nào lộ ra. Cổng cạnh ngược lớp sạch ngay lần nạp đầu✅
SRC-4362026-08-21Việc cuối cùng còn thiếu: Tin học chưa có lab nào, 180 Unit đang hiện180 lab picker, đợt lớn nhất từ trước tới nay. Nội dung nhắm vào quan niệm sai bền nhất của người mới: dấu bằng là gán chứ không phải so sánh, chạy được khác chạy đúng, chỉ số đếm từ 0, cài đặt riêng tư giới hạn người dùng khác chứ không giới hạn nhà cung cấp, và tỉ lệ đúng 99% của mô hình đoán bừa trên bệnh hiếm. Package UD (36 Unit) bỏ qua vì đang ẩn. Sau đợt này mọi môn đều có lab và có graph✅
SRC-4372026-08-21Chỉ đạo: "rà soát data về package, modules, units, learning/assessment experience và labs đã đủ về số lượng chưa, đủ so với cái gì; chất lượng ổn chưa, ổn so với cái gì. Audit toàn bộ. Thiếu thì làm nốt và làm trọn vẹn"Audit #007. Chuẩn đọc ra từ mã đang chạy chứ không tự bịa: sàn 6 câu/Unit để mở ba bài đo (SRC-077), tối thiểu 3 ô học (SRC-295), một lab live mỗi Unit hiện. Phát hiện nặng nhất: 638 Unit đang hiện mà cả ba bài đo đều khoá vì kho theo khuôn 4 câu còn sàn bài đo là 6 — cùng họ với vòng lặp SRC-417. Kèm: 9 câu trùng khít b21g89-* retire ngay trong audit; vị trí đáp án kho cũ lệch về ô A/B. Việc mở ra: T1 bù 1.298 câu (SRC-438), T2 418 lab còn thiếu (SRC-439)✅
SRC-4382026-08-21T1 của Audit #007: 638 Unit đang hiện dưới sàn 6 câu nên cả ba bài đo đều khoáBù 1.298 câu khuôn discriminator + boundary: informatics 360 · physics 398 · chemistry 402 · ap 48 · ielts 46 · sat 44. Seeder riêng seed-items-topup6.mjs: id t6-* để không đè khuôn gốc, chặn trùng đề với kho (bắt được 7 câu ngay lúc nạp), tự nghiệm thu "còn N Unit dưới sàn" sau mỗi lần chạy. Kèm T3: viết lại 1 câu chemistry trùng xuyên Unit thay vì retire để giữ đủ khuôn. Kết quả: 0 Unit hiện dưới sàn trên cả 11 môn — mọi Unit learner thấy đều mở được Học vượt · Đo giữa · Đo cuối✅
SRC-4392026-08-21T2 của Audit #007: 418 Unit đang hiện chưa có lab (physics 207 · chemistry 205 · biology 6)Soạn 419 lab picker (physics 207, chemistry 205, biology 7 — lộ thêm một unit S1 chưa phủ) qua 24 đợt nạp. Nội dung giữ đúng khuôn SRC-388/390: đoán trước bằng bấm, mỗi màn dưới 20 từ, nhắm quan niệm sai bền nhất (cân bằng lực không có nghĩa đứng yên, chân không không hút, đun to lửa nước không quá 100°C, tinh khiết khác trong veo, ghi nguồn không gỡ được điều kiện cấm thương mại). Kết quả: mọi Unit hiện trên cả 11 môn đều có lab live — 0 unit trống✅
SRC-4402026-08-21T4 của Audit #007: vị trí đáp án kho cũ lệch về ô A/B (4428/4310/2971/2726) — learner đoán theo vị trí ăn điểm oanXoay cơ học một lần: đảo vòng 4 phương án đi k bước suy deterministic từ id, correct_index dịch theo, nội dung không đổi một chữ. Chỉ áp lên 4 nguồn lệch (chuyenchon 199/2/0/0 · b21fill 31/881/18/3 · ai-generated · ai-claude), đánh dấu +rot vào source để chạy lại không xoay chồng. Phân bố sau: 3810/3556/3534/3535 — cân trong 2%. Kiểm xác suất bằng đọc lại câu đã xoay: đáp án đúng vẫn trỏ đúng nội dung. Audit #007 đóng: T1 ✅ T2 ✅ T3 ✅ T4 ✅✅
SRC-4412026-08-21Feedback UI (ảnh Dashboard): bổ sung right-panel chứa thông tin, status, streak, EXP points; "you tried recently" vào card riêng; toàn bộ vùng Mastery vào một card có hai view: view 1 là cách hiển thị hiện tại nhưng Unit Card bỏ link "start" và 3 dấu chấm phía trên; view 2 mới hiển thị toàn bộ package, mỗi package một card chứa các module card, mỗi module card chứa các unit card, mỗi module/unit card một bar-chart ngang; bấm bất kỳ card nào mở popover "I will be able to…" kèm icon Focus — chọn thì module đó vào khu "FOCUS" (khu ghim SRC-418)learn ProgressViews.tsx (view switcher, AllMap, popover Focus dùng chung API pins) + App.tsx (aside phải cho trang map)✅
SRC-4422026-08-21Feedback UI (ảnh Plan): "màn hình này quá nhiều text, ko biết đọc cái gì hay xem cái gì — nhiều hình ảnh hơn, giảm tối thiểu text"; và mọi màn hình đều trình bày 3 cột như SRC-441 (rail trái · nội dung · panel phải); "đưa mọi thông tin vào docs trước khi làm"learn App.tsx: các trang goal/labs/exam/plan/profile/report chuyển sang lưới ba cột có XpBar; PlanPage.tsx bỏ các đoạn "Vì sao:" bày sẵn (vào popover i), thanh tiến độ thay chữ, cụm "Kế hoạch đã đổi gì" rút còn một dòng✅
SRC-4432026-08-21Chỉ đạo kèm 2 ảnh (Dashboard Tin học của learn + pearl.nemo12.com/curriculum): "Nội dung môn tin học trong đây ko giống với trong Pearl. Hãy lấy curriculum về tin học trong pearl làm tiêu chuẩn"Tin học là môn cuối cùng chưa theo Pearl (sáu môn kia đã xong ở SRC-408/409). Đồng bộ bằng đúng sync-tree-from-pearl.mjs (thêm nhãn tiếng Việt "Tôi sẽ làm được" vì tin viết nhãn Việt, sáu môn trước nhãn Anh): T1-T5 · 19 module · 63 unit vào ord 1-5, cây chủ đề LT/CTDL/TT/KT/MT/UD xuống ord 91-96 như khuôn Lý Hoá Sinh, giữ nguyên toàn bộ câu hỏi và lab. Một unit trùng tên ("Vòng lặp lồng nhau") giữ id cũ inf-lt-5-4 nên 6 câu + lab + cạnh graph đi theo sang T3. Vì audit #007 vừa chốt hai bất biến "mọi Unit hiện đủ 6 câu" và "mọi Unit hiện có lab", 62 unit mới được soạn kèm ngay 372 câu (khuôn 6 câu, discriminator bám đúng mục Hiểu lầm thường gặp của Pearl) và 62 lab picker (khuôn SRC-388/390), cộng 69 cạnh prerequisite cho cây T (18 xuyên package). Kèm một cứu hộ: remap-unit-prereqs.mjs có bug xoá cả cạnh không đổi khoá khi ghi lại (nuốt 176/179 cạnh cây cũ; Toán/Văn hôm trước thoát vì rơi nhánh đổi-khoá-hết) — sửa script, khôi phục đủ từ JSON nguồn, gộp graph hai cây về một file informatics-unit-prereqs.json (248 cạnh, 36 xuyên package) vì seeder dọn cạnh theo cả môn. Kiểm sau nạp: 0 unit dưới sàn 6 câu, 0 unit thiếu lab trên cả 11 môn. Trang tin/index.md của Pearl đổi trạng thái sang "đang chạy". Còn lại: bảng đối chiếu hai chiều giữa cây T và cây chủ đề (ghi ở chính trang Pearl); trang Lý/Hoá/Sinh trên Pearl vẫn ghi "chưa chạy" dù đã chạy từ SRC-409✅
SRC-4442026-08-21Feedback UI đợt hai (4 tin nhắn liên tiếp, kèm 2 ảnh production): (1) hai link "Why this task" và "Con đang ở đâu" phải nằm trong card, không trôi ngoài lề; (2) card Mastery view Tất cả dùng một cột, "hiển thị mọi thông tin thoáng thoáng ra", và mặc định chọn All; (3) bấm Module/Unit card chưa thấy "I will be able to" — thông tin này lấy từ pearl.nemo12.com mục Curriculum; (4) panel phải thêm card môn học hiện tại ("tôi đang trong màn hình của môn học nào vậy?"), và dời cả hai card "Con đã làm gần đây" + "Con đang tập trung vào" sang panel phảilearn: "Vì sao lại là việc này" vào trong card Việc hôm nay, "Con đang ở đâu" vào card Mastery; AllMap một cột + mặc định view="all"; XpBar nhận subject; PinsPanel/RecentPanel ở aside, đồng bộ với bản đồ qua sự kiện n12:pins. Gốc của (3) là bug đồng bộ: sync-iwill-from-pearl.mjs chỉ quét file được index.md link tới, mà index Ngữ văn chỉ link 3/8 file — sửa thành quét mọi file trong thư mục, i_will units 539 → 597; phần còn thiếu là unit không có trang Pearl (việc nội dung, thuộc mạch SRC-443)✅
SRC-4452026-08-21Feedback UI đợt ba (2 ảnh + 4 ý): bỏ cả hai nút "Đường đi"/"Tất cả" — chỉ giữ cách bày Tất cả; đang VI mà màn hiện chữ "decode"; bỏ card "Con đang tập trung vào" ở panel phải; bấm Unit card phải thấy "học xong unit này thì làm được gì" lấy từ Pearl, "nếu Pearl thiếu thì báo lại tôi rồi bổ sung"; module đang focus mang một icon nhỏ ngay trên cardlearn: bỏ view "đường đi" và mọi component của nó (InfoDot, UnitCard, StepArrow, PinDot, PinnedArea, PinsPanel) — bản đồ còn MỘT cách bày, popover của thẻ mang I-will + nút Vào học (thay dialog xác nhận cũ) + nút Focus, thẻ đang focus mang ngôi sao nhỏ tại chỗ. Chữ "decode": cột name_vi của strands B1-B5 (Toán) và V1-V5 (Ngữ văn) đang chứa tên Anh — sửa theo tên trong ngoặc của Pearl. Pearl thiếu 5 unit của cây V (Đoán nghĩa từ ngữ cảnh · Điều tác giả cho là ai cũng biết · Dự đoán phần tiếp theo · Nối câu bằng từ nối · Câu dài mà vẫn rõ) — đã soạn bổ sung vào 3 file module của Pearl rồi sync lại, cây V đủ 132/132. Còn treo cho chủ dự án quyết: 692 unit đang hiện thuộc các strand NGOÀI cây năng lực Pearl (Lý/Hoá/Tin theo chủ đề, Sinh 14, và bốn môn AP · GenAI · IELTS · SAT) — Pearl không có trang nào cho chúng nên không có nguồn i_will; bổ sung nghĩa là viết trang Pearl cho từng strand (một chương trình nội dung cỡ SRC-443) hoặc chốt số phận các strand đó✅
SRC-4462026-08-21Chỉ đạo: Coral có khu Data Quality — người phụ trách data chọn môn, thấy "data nào nên được review" (có ưu tiên), học thử như learner nhưng không ghi vào model, rồi đánh dấu từng unit/lesson 1-2 cú bấm + confirm; verdict nghiêm trọng thì hệ tự ẩn experience tới khi sửa xong; mỗi unit/lesson một người rà, rà được nhiều lần, nhiều người rà đượcREQ-CNT-16; SDD-013 §9: hàng đợi ưu tiên có lý do (chưa rà +40 · câu llama +20 · HS đúng <40% +20 · <10 câu +15 · rà cũ >60 ngày +10 · đang ẩn +50), thử làm client-side (endpoint trả cả đáp án, không POST evidence — không chạm model by construction), ghi experience_reviews append-only (0049, dùng chung với Dolphin SRC-206), blocker → skill_nodes.hidden_at + practice-start chặn "đang bảo trì nội dung", item blocker → status='candidate' (rút lưu thông bằng cơ chế sẵn có); nâng cấp tiếp = fixlist (verdict xấu + tags) làm đầu vào cho vòng sinh lại có Claude review✅
SRC-4472026-08-21Feedback Coral: vào là phải biết ngay nên làm gì, không lò mò qua các tabTổng quan mở màn bằng "Việc đang chờ" — card hành động tính từ dữ liệu thật, xếp theo mức gấp (⛔ lesson đang ẩn → 🔧 cần sửa → 📥 review queue → 🔍 chưa rà → ✏️ node thiếu câu), bấm cả card là nhảy đúng tab; hết việc thì nói thẳng "không có việc gấp"; lỗi tải thì báo lỗi chứ không giả vờ hết việc (AS-09.5.3). Kho artifact tụt xuống dưới: nó mô tả hiện trạng, không trả lời "tôi nên làm gì". Trang chọn phạm vi nói trước điều sắp xảy ra✅
SRC-4482026-08-21Chỉ đạo: có tiêu chuẩn nào về thông tin curriculum trên Pearl và docs chưa, chưa có thì tạo; sau đó audit toàn bộ và nâng cấpChưa có. Ràng buộc nằm rải trong văn xuôi trang Pearl và trong yêu cầu miệng, không kiểm được tự động. ✍️ Tự quyết: dựng curriculum-pearl-standard.md tám luật S1-S8 + trình kiểm scripts/check-curriculum-pearl.mjs. Phát hiện lớn nhất: luật 6/6/6 (SRC-185) và luật 3-6 (SRC-238) mâu thuẫn nhau trên giấy vì chưa ai ghi rằng chúng áp lên hai cây khác nhau; đã ghi §0 giải quyết. Audit lộ 349 unit còn khung tiếng Anh và 146 unit thiếu Bằng chứng đạt + Knowledge node✅
SRC-4492026-08-21Chủ dự án duyệt đề xuất xử lý 692 unit không có nguồn i_will ("Làm theo hướng bạn đề xuất đi")Hai vế. (1) Ẩn 19 strand chủ đề của Lý (AP·AT·CH·DT·NH·QH) · Hoá (CB·HC·LK·NT·PU·TT) · Tin (LT·CTDL·KT·MT) · Sinh (TB·CN·DI) theo REQ-KNW-16, cùng tiền lệ Toán/Văn/Anh — quyết định CÓ MẤT MÁT tạm thời: ~4.100 câu và lab của các unit đó nằm im theo node (không xoá, evidence giữ) chờ đợt trỏ về cây năng lực; Pearl ly/hoa/tin sửa lời "hai trục cùng chạy" cho khớp. (2) Soạn cây Pearl chuẩn cho GenAI (5 package, 17 unit) và AP (5 package, 18 unit) rồi sync i_will. Số unit đang hiện thiếu i_will: 692 → 36 — phần còn lại là IELTS + SAT: Pearl ĐÃ có cây năng lực riêng (Understand/Build/Process/Produce/Know…) khác hẳn 5 strand kỹ năng đang chạy trong D1, nên không vá i_will được mà phải làm một đợt chuẩn hoá kiểu Tin học (SRC-443): tách module Pearl ra trang riêng, sync-tree, re-home, ẩn strand cũ — ghi nhận làm tiếp✅