Skip to content

Việc đã nhận nhưng hoãn lại ​

Sổ ghi những việc chủ dự án đã đồng ý làm nhưng chưa tới lượt, để không rơi mất giữa các phiên. Khác intake (ghi việc đã làm xong) và khác open-questions (ghi câu hỏi chưa có câu trả lời): ở đây là việc đã rõ phải làm gì, chỉ chưa làm.

Xong việc nào thì xoá khỏi đây và ghi một dòng vào intake — không để hai chỗ cùng kể một chuyện.

Kho câu hỏi — soạn cho đủ 16 câu/bài ​

Mốc 16 là điều kiện của luật 10 câu (16 − 6 câu để dành đo = 10 câu luyện). Số liệu cập nhật tự động ở item-coverage.

MônBàiCâu đang cóCần soạn thêmTrạng thái
genai182880✅ xong 2026-08-16 (SRC-155)
math — Số học + Đại số558800✅ xong 2026-08-16 (SRC-159)
math — Hình học28280168🔄 đang làm — phần còn lại của Toán
ap1972232⏸ chờ
ielts1872216⏸ chờ
sat1876212⏸ chờ
english36360216⏸ chờ
vietnamese35350210⏸ chờ
physics17170102⏸ chờ
biology1616096⏸ chờ
chemistry1414084⏸ chờ

Cách soạn cho Toán: bài tính toán dùng bộ sinh có tham số (gen-items-math-*.mjs) — đáp án và cả ba phương án nhiễu đều được TÍNH RA từ cùng bộ tham số, nên không có rủi ro sai đáp án do nhẩm tay. Hình học có phần chứng minh/quỹ tích không sinh được, phải soạn tay.

Thứ tự đề xuất sau Toán: AP · IELTS · SAT (ba môn kho mỏng nhất, 660 câu), rồi English · Vietnamese, cuối cùng ba môn khoa học.

Cách làm đã chốt: soạn ra scripts/items-topup-<môn>.json, kiểm và nạp bằng seed-items-topup.mjs (script chặn nạp nếu không đủ 16 câu, trùng đề với kho cũ, hoặc thiếu câu phân loại cho phần để dành đo).

Kho câu — có nên vượt mốc 16 lên 24–32? ​

Chủ dự án hỏi 2026-08-16: "vì sao không soạn gấp đôi rồi randomize?" Đã phân tích, chưa chốt:

  • Với 16 câu mà mỗi phiên hiện 10, learner thấy 62% kho — randomize gần như vô nghĩa. Ở 32 câu thì một phiên chỉ chạm 31%.
  • Nhưng nhân đôi đồng loạt thì quá ~20 câu/bài người soạn bắt đầu viết biến thể diễn đạt của cùng một câu hỏi: nhìn thì đa dạng, đo vẫn đúng một thứ, và với bài đo còn làm độ tin cậy cao giả tạo.
  • Đề xuất: 16 là sàn cho mọi bài; 24–32 chỉ cho bài lưu lượng cao và bài thao tác (tính toán, ngữ pháp — chỗ luyện lặp là bình thường); bài tính toán dùng bộ sinh câu có tham số thay vì soạn tay.
  • Lưu ý không được bỏ: kho to đến mấy thì vẫn phải tách phần để dành cho bài đo (SDD-010 §12) — kho lớn làm việc tách rẻ hơn chứ không bỏ được.

Khai báo lúc mới vào — chỉnh bộ trường tối thiểu ​

Chủ dự án hỏi 2026-08-16. Đã phân tích, chưa làm:

  • Bỏ năm sinh: ở Việt Nam lớp và tuổi gắn chặt, năm sinh gần như không thêm thông tin cho việc dựng model, chỉ thêm một bước phải điền.
  • Thêm tháng thi: không có mốc này thì Planning Engine không xếp được nhịp. Trường exam_date_approx đã có sẵn trong API, chỉ cần đưa lên bước khai báo đầu.
  • Thêm quỹ thời gian mỗi tuần: planning.ts đang rơi về mặc định 45 phút/ngày và tự ghi lý do "chưa ai khai, tạm lấy 45 phút/ngày" — mọi kế hoạch dựng trên con số đó là kế hoạch trên giấy.
  • Bộ tối thiểu đề nghị: lớp · tỉnh + trường/chuyên nhắm tới · tháng thi · số buổi (giờ) mỗi tuần.
  • Nguyên tắc giữ kèm: khai báo là điểm khởi đầu, không phải kết luận — Learner Model dựng từ khai báo mang trạng thái "chưa đo" để bằng chứng thật ghi đè lên nhanh.

Việc nhỏ còn treo ​

  • Bỏ dòng "Đáp án đúng: …" rồi nhưng ô đáp án đúng vẫn được tô xanh, nên đáp án vẫn lộ trước lần gặp lại. Muốn giấu hẳn thì phải bỏ luôn phần tô màu — chờ chủ dự án quyết.

  • Token Cloudflare thiếu quyền r2:read nên bước verify-bindings của CI không liệt kê được bucket R2: mọi lượt chạy đều kèm cảnh báo "R2 chỉ được kiểm ở lớp A+B". Nghĩa là lớp C — đối chiếu binding khai trong wrangler.jsonc với bucket CÓ THẬT trên Cloudflare — đang không chạy cho R2, nên một binding trỏ vào bucket không tồn tại sẽ lọt tới lúc chạy thật mới vỡ. Việc TAY, không sửa được bằng code: thêm quyền Workers R2 Storage: Read cho token đang đặt ở secret CLOUDFLARE_API_TOKEN, rồi chạy lại một lượt CI để xác nhận cảnh báo tắt. Ghi nhận trong Audit #014 (SRC-688, 2026-09-08).