Hardening Note (SoT precedence):
Logic chọn câu hỏi thuộc SoT tại VOCV2_LEARN_Question_Rules.md.
File này chỉ mô tả danh mục dạng bài và cách gắn tag.
- Chuẩn hóa danh sách dạng bài cho flow LEARN.
- Mỗi dạng bài có tag rõ ràng để engine chọn đúng theo contract.
- Tránh lặp lại logic controller đã có trong file contract.
Mỗi exercise type cần 3 nhóm tag:
difficulty_tag: EASY / MEDIUM / HARD
skill_fit: PRIMARY / ADJACENT / CROSS (theo item.skill)
purpose: recognition / guided production / full production
| Exercise | Difficulty | Purpose | Phù hợp skill |
|---|
| MCQ nghĩa (VN/EN) | EASY | Recognition | PRIMARY/ADJACENT |
| Reverse nghĩa (term -> meaning) | EASY-MEDIUM | Recognition | PRIMARY/ADJACENT |
| Context chọn từ đúng | MEDIUM | Guided production | PRIMARY |
| Exercise | Difficulty | Purpose | Phù hợp skill |
|---|
| Audio -> chọn term | EASY-MEDIUM | Recognition | PRIMARY (Listening), ADJACENT |
| Meaning -> chọn audio đúng | EASY | Recognition | PRIMARY (Listening), ADJACENT |
| Nghe câu -> điền/chọn từ | MEDIUM | Guided production | PRIMARY |
| Exercise | Difficulty | Purpose | Phù hợp skill |
|---|
| Shadowing (nghe + lặp lại) | EASY | Recognition/Production nhẹ | PRIMARY (Speaking), ADJACENT |
| Recall speaking (xem nghĩa -> tự nói) | MEDIUM | Guided production | PRIMARY |
| Speaking challenge (không hint) | HARD | Full production | PRIMARY |
| Exercise | Difficulty | Purpose | Phù hợp skill |
|---|
| Dictation (visual/audio) / type full term | HARD | Full production | PRIMARY (Writing) |
| Action | Map exercise | Difficulty | Ghi chú |
|---|
Practice Speaking | Speaking practice | EASY | Dùng chung cơ chế điểm hiện có |
Practice Writing | Writing dictation/type full | HARD | Dùng chung cơ chế điểm hiện có |
Practice Matching (ghép thẻ) | Matching success = Reading practice | EASY | Mỗi ghép đúng 1 thẻ/pair = tương đương hoàn thành Reading EASY |
- Engine chọn bucket theo contract (
difficulty + skill).
- Từ bucket đó, chọn exercise type cụ thể từ catalog này.
- Ưu tiên variety để tránh lặp kiểu câu hỏi liên tục.
- Nếu bucket không có bài, engine fallback theo ladder: PRIMARY -> ADJACENT -> CROSS -> difficulty gần nhất an toàn -> Learning Card.
- Nếu thiếu content cho dạng bài mong muốn, fallback sang dạng an toàn hơn.
Rule cho Card Practice:
- Card Practice dùng mapping cố định theo action (
Practice Speaking/Practice Writing/Practice Matching) thay vì đi đầy đủ pipeline chọn bucket của LEARN.
Practice Speaking/Practice Writing áp dụng gate chống cày 2 + 3 theo SoT.
Practice Matching không áp dụng gate 2 + 3 (vì bài ghép được làm mới liên tục).
- Catalog hiện tại: Writing chỉ có bài HARD.
- Với item skill=Writing ở level thấp hoặc repair mode, engine dùng Reading/Speaking/Listening EASY-MEDIUM làm lớp đệm.
- Khi level tăng (3+), tăng dần tần suất Writing HARD để đảm bảo vẫn luyện đúng mục tiêu viết.
- 2026-03-02: Tách vai trò rõ với file Contract; giữ catalog + tag, bỏ phần logic engine bị trùng.
- 2026-03-03: Thêm mapping chính thức cho
Practice Speaking và Practice Writing trên thẻ từ.
- 2026-03-04: Thêm
Practice Matching và rule credit tương đương Reading EASY.