Skip to content

Rubric audit một Course (SRC-616) ​

Chấm bằng máy: node scripts/audit-course.mjs <course_id> (chạy sau npm run migrate:dryrun). Ngưỡng đạt ≥90/100 — dưới ngưỡng thì course chưa được commit tiếp nội dung mới; nâng cấp rồi chấm lại. Rubric là điều kiện CẦN (máy đo số lượng, hiện diện, mối nối); chất lượng câu chữ do vòng review theo CD-4/CD-8/CD-9/CD-10 — sửa ngưỡng thì sửa file này trước, script theo sau.

NhómMụcĐiểm
A · Cấu trúc (30)A1 Unit 3-55
A2 Lesson mỗi unit 3-55
A3 Big Idea + Essential Question mỗi unit6
A4 Key concepts 3-54
A5 Ngữ liệu ≥2 mỗi unit4
A6 Khung tư duy 2-33
A7 Guiding Question + concepts mỗi lesson3
B · Outcomes & assessment (40)B1 Unit Outcomes 2-46
B2 Performance Task đủ đề + sản phẩm nộp6
B3 Tiêu chí chấm 3-54
B4 ≥60% tiêu chí nối về outcome4
B5 Lesson Outcomes 1-24
B6 Formative checks 2-4 mỗi lesson6
B7 ≥60% checks nối về outcome4
B8 Học liệu 1-3, ≥1 kèm reflection6
C · Spec (30)C1 Course spec đủ purpose · progression · assessment strategy · completion criteria4
C2 Course outcomes 2-4 + prerequisites ≥14
C3 Unit spec đủ purpose · progression · mastery criteria4
C4 Unit prerequisites ≥2 dòng3
C5 Misconception Map unit 3-54
C6 Lesson misconceptions 3-54
C7 Lesson errors 2-43
C8 Interventions ≥3 mỗi lesson4

Cổng chặn trước khi chấm — dữ liệu trùng ​

Script dừng với mã lỗi trước khi tính điểm nếu phát hiện nhãn bị ghi nhiều lần trong cùng một chỗ (curriculum_unit_elements, curriculum_unit_outcomes, curriculum_lesson_checks).

Vì sao cần cổng riêng thay vì một mục điểm: mọi mục của rubric chấm theo KHOẢNG ("3-5 key concept", "≥2 ngữ liệu"), nên một course bị đổ hai lần bằng hai đường ống đánh seq khác nhau vẫn lọt lưới và vẫn ăn đủ điểm. Ca thật 2026-08-27: migration 0091 để lại 18 dòng khung tư duy thay vì 12 — A6 trượt vì trần là 3, nhưng A4 và A5 vẫn xanh dù cũng nhân đôi. Điểm cao trên dữ liệu hỏng nguy hơn điểm thấp, nên đây là điều kiện chặn chứ không phải điểm trừ.

Mục theo tỷ lệ: đơn vị nào đạt thì ăn phần điểm của đơn vị đó (3/4 unit đạt A4 = 3đ). Quy trình chuỗi soạn (goal SRC-616): xoay vòng Toán → Ngữ văn → Tin (lập trình thi đấu) → Tiếng Anh, mỗi vòng một course; nội dung viết ở scripts/course-content/<course_id>.json, đổ bằng scripts/course-content-to-sql.mjs thành migration, audit đạt ≥90 rồi mới commit và sang course kế. Học liệu chỉ dùng nguồn thật: lab id có trong D1, hoặc URL pearl.nemo12.com có file tương ứng trong apps/pearl/content — cấm bịa link (CD-7.2).

Rubric cấp Lesson-draft của Content Foundry (SRC-632, thang v2 theo SRC-633) ​

Thang chấm bản thảo lesson máy sinh trong workflow LessonForge (SDD-027 §4) — thi hành ở workers/foundry/src/rubric.ts. File này là chuẩn: sửa tiêu chí / điểm / ngưỡng thì sửa đây TRƯỚC, tăng RUBRIC_VERSION trong rubric.ts theo sau. Điểm chỉ so được giữa các trial cùng rubric_version (stamp vào R2 + content_run_trials, migration 0165).

Cùng triết lý thang A/B/C ở trên: điều kiện CẦN — máy chỉ đo số lượng, hiện diện, mối nối và dấu hiệu văn phong bắt được bằng máy; chất lượng câu chữ là việc của vòng review model khác và của người duyệt.

MụcTiêu chíĐiểmGhi chú
L1Guiding question là câu hỏi thật (kết thúc ?)8
L2Outcomes 1-2 mục2schema đã ép — dây an toàn
L3Outcome không dùng giọng sách giáo khoa8regex TEACHER_VOICE
L4Story đủ bốn phần SCQA, câu hỏi là câu hỏi10
L5Story không chép nguyên văn guiding question6
L6Misconception 3-5 mục3schema đã ép
L7Misconception không trùng nhau6
L8Lỗi hay mắc 2-4 mục2schema đã ép
L9Interventions ≥3, đủ bằng chứng + hành động4schema đã ép
L10Học liệu 1-3, ≥1 kèm reflection8phần reflection schema KHÔNG ép
L11Checks 2-4 mục2schema đã ép
L12≥60% checks nối về outcome có thật8mối nối ma không tính (= B7 thang course)
L13Đủ chỗ đặt nhiễu: ≥1 mcq và số misconception ≤ mcq×312bất biến 5g — cùng hằng số với cổng chặn của audit-course.mjs
L14Không có dấu gạch dài (em dash)6
L15Misconception không trùng nguyên văn với error6CD-8: hai loại, hai đơn thuốc
L16Mối nối với Unit hợp lệ: concepts ⊆ key concepts, unit_code có trong Misconception Map9chỉ chấm khi brief mang ngữ cảnh unit; thiếu thì tính đủ điểm, max giữ 100

Ngưỡng đạt ≥90/100 (PASS_SCORE). Điểm chết (tiêu chí schema bảo đảm sẵn) là 13/100 — thang v1 là 44/100 nên "90" khi ấy thực chất là "được rớt đúng một tiêu chí". Vòng sửa chạy khi CÒN BẤT KỲ chỗ chưa đạt nào, không chỉ khi dưới ngưỡng: bài 92 điểm mang guiding question không phải câu hỏi vẫn phải được vá. So với thang course ở trên: L12 = B7, L6 = C6, L8 = C7, L9 = C8, L10 = B8 — hai thang cùng đo một chuẩn CD-8 ở hai thời điểm (trước khi chạm D1 / sau khi nạp D1).