Test the learner's mastery of completed phases in AI Engineering from Scratch.
Triggers
Enable this skill when the user says something like the following:
/check-understanding 3or/check-understanding deep-learning- "Quiz me on my mastery of phase 2"
- "Test phase 1"
- "Check my understanding of transformers"
- "Do I know phase 3"
- "Am I ready to move on to the next phase"
Input
Accept a phase number (0-19) or phase name as an argument. If there is no argument, list all 20 phases and ask the user which phase they want to be quizzed on.
Phase mapping
Map the argument to the correct phase directory under phases/ :
| Input | Directory | Phase name |
|---|---|---|
| 0, setup, tooling | 00-setup-and-tooling |
Environment setup and tools |
| 1, math, math-foundations | 01-math-foundations |
Mathematical foundations |
| 2, ml, ml-fundamentals | 02-ml-fundamentals |
Machine learning foundations |
| 3, deep-learning, dl | 03-deep-learning-core |
Deep learning core |
| 4, cv, computer-vision, vision | 04-computer-vision |
Computer vision |
| 5, nlp | 05-nlp-foundations-to-advanced |
NLP: from basics to advanced |
| 6, speech, audio | 06-speech-and-audio |
Speech and audio |
| 7, transformers | 07-transformers-deep-dive |
Transformer deep dive |
| 8, generative, gen-ai, genai | 08-generative-ai |
Generative AI |
| 9, rl, reinforcement-learning | 09-reinforcement-learning |
Reinforcement learning |
| 10, llms, llm, llms-from-scratch | 10-llms-from-scratch |
Building an LLM from scratch |
| 11, llm-engineering, llm-eng | 11-llm-engineering |
LLM engineering |
| 12, multimodal | 12-multimodal-ai |
Multimodal AI |
| 13, tools, protocols, mcp | 13-tools-and-protocols |
Tools and protocols |
| 14, agents, agent-engineering | 14-agent-engineering |
Agent engineering |
| 15, autonomous | 15-autonomous-systems |
Autonomous systems |
| 16, multi-agent, swarms | 16-multi-agent-and-swarms |
Multi-agent and swarms |
| 17, infrastructure, production, infra | 17-infrastructure-and-production |
Infrastructure and production environments |
| 18, ethics, safety, alignment | 18-ethics-safety-alignment |
Ethics, safety, and alignment |
| 19, capstone, projects | 19-capstone-projects |
Capstone project |
Process
Step 1: Parse the phase
Parse the argument. If it is a number, verify whether it is between 0 and 19 (inclusive). When the number is out of range, tell the user:阶段 [N] 不存在。有效阶段为 0-19。Then show the full list for them to choose from. If it is a name or keyword, look it up in the phase mapping above. When the keyword does not match any entry, tell the user:未知阶段“[keyword]”。请从下面列表中选择:, and show all 20 phases. When no argument is provided, ask the user to choose from the full list.
Step 2: Read the phase content
If the repository is already cloned (there is phases/in the current directory or its parent directory), find all lesson directories under phases/<phase-dir>/ and read each lesson's docs/zh.md. If it is not cloned, get the phase's lesson list from the Contents section of the README (fetch https://raw.githubusercontent.com/fancyboi999/ai-engineering-from-scratch-zh/main/README.md), then fetch each lesson's docs/zh.mdfrom the same raw base URL. These documents are the basis for the questions.
Read enough lesson documents to cover the full breadth of the phase. When a phase has many lessons (15+), prioritize reading a representative distribution: the first few lessons, a few in the middle, and the last few.
Step 3: Generate 8 questions
Based on the lesson content just read, generate exactly 8 multiple-choice questions:
Questions 1-4: Concept questions (what/why) These questions test understanding of ideas, definitions, and reasoning. For example:
- "What is the purpose of X?"
- "Why does Y happen when Z exists?"
- "Which statement most accurately describes the relationship between A and B?"
- "What problem does X solve?"
Questions 5-8: Practical questions (how to do/build) These questions test applied knowledge and implementation awareness. For example:
- "How would you implement X?"
- "Which method correctly solves Y?"
- "What is the correct sequence of steps to build Z?"
- "If X is observed during training, what should be done?"
Each question must have exactly 4 options, labeled A, B, C, D, with only one correct option. Wrong options should be plausible, but clearly wrong to someone who has studied the material carefully.
Label each question with its source lesson (for example, "Lesson 03: Matrix Transformations").
Step 4: Present question by question
Use the AskUserQuestion tool (or an equivalent interactive prompt) to present one question at a time. Format:
第 1/8 题(概念题)——来自第 03 课:矩阵变换
特征值的几何解释是什么?
A) 矩阵施加的旋转角度
B) 特征向量在变换中被缩放的倍数
C) 变换矩阵的行列式
D) 变换后矩阵的秩
Wait for the user to answer before moving on to the next question.
Answer isolation
The correct option and explanation must remain private until the learner answers the current question. Never use real answer letters, possible answers, or generated answer distributions in the response format hints. If a plain-text hint is needed, it must strictly use:请只回复一个字母:<A|B|C|D>。
Step 5: Record and score
Continuously record:
- Total number correct out of 8 questions
- For each wrong question: question number, user answer, correct answer, and source lesson
Step 6: Show results
After all 8 questions are completed, show the score and rating:
7-8 correct: Mastered
If this is Stage 19 (comprehensive project):你已掌握第 19 阶段,也是最后一个阶段。Only when it can be confirmed that the rest of the entire course is complete (the LEARNING.md path table in the current directory shows stages 0-18 are all Done or Skip), only then may you additionally add 恭喜,你已完成全部课程。A single stage quiz cannot prove that the entire course is complete.
Otherwise:你对第 N 阶段掌握扎实,可以进入第 N+1 阶段:[下一阶段名称]。
5-6 correct: Close to mastery
基础扎实。继续前请复习以下具体内容:
Then list the lessons associated with the wrong questions.
3-4 correct: Understanding is forming
你的理解正在建立,但还需回顾以下课程:
Then list each wrong question and the lesson to reread.
0-2 correct: Start over
这个阶段还需要更多时间。请从头重新学习课程,重点关注:
Then list all topics not yet mastered.
Step 7: Wrong-question breakdown
For each question the user answered incorrectly, show:
第 N 题:[题目文本,缩写]
你的答案:B
正确答案:C —— [正确选项文本]
原因:[用 1-2 句解释 C 为什么正确]
复习:第 NN 课 —— [课程名称] (phases/<phase-dir>/NN-<lesson-slug>/docs/zh.md)
Step 8: What to do next?
Finally, offer three choices:
- Retake this quiz — generate a new set of 8 questions from the same stage
- Test another stage — choose another stage to test
- Explain a topic — ask about the concept involved in any wrong question
Wait for the user to choose before proceeding.
Rules
- On retakes, avoid repeating questions until the question bank is exhausted. Only after the question bank is exhausted may questions be rearranged or rewritten for subsequent retakes.
- Questions must be based directly on the lesson documents, not on general knowledge.
- Do not show the correct answer before the user answers.
- Real answer letters must not appear in the learner answer format examples; use
<A|B|C|D>as a placeholder. - Keep question text concise, at most one or two sentences.
- Wrong options must be plausible; do not set joke answers.
- If the course body of a stage is pending publication (based on the
docs/zh.mdfile), tell the user:第 N 阶段尚未提供课程内容。请选择已完成的阶段进行测验。