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ôn | Bài | Câu đang có | Cần soạn thêm | Trạng thái |
|---|---|---|---|---|
genai | 18 | 288 | 0 | ✅ xong 2026-08-16 (SRC-155) |
math — Số học + Đại số | 55 | 880 | 0 | ✅ xong 2026-08-16 (SRC-159) |
math — Hình học | 28 | 280 | 168 | 🔄 đang làm — phần còn lại của Toán |
ap | 19 | 72 | 232 | ⏸ chờ |
ielts | 18 | 72 | 216 | ⏸ chờ |
sat | 18 | 76 | 212 | ⏸ chờ |
english | 36 | 360 | 216 | ⏸ chờ |
vietnamese | 35 | 350 | 210 | ⏸ chờ |
physics | 17 | 170 | 102 | ⏸ chờ |
biology | 16 | 160 | 96 | ⏸ chờ |
chemistry | 14 | 140 | 84 | ⏸ 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:readnên bướcverify-bindingscủ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 trongwrangler.jsoncvớ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ềnWorkers R2 Storage: Readcho token đang đặt ở secretCLOUDFLARE_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).