quiz-me
Skill9 starsChanged 2 months agoMITView on GitHub
Use when the user wants to be quizzed, tested, or asked questions on any topic — programming concepts, protocols, algorithms, tools, or any subject they are studying
18 other projects use a version of this.
Adopted by
Most recently taken up by
- marnickvda/pop-quiztheir own version, first seen Nov 8, 2026
- whyashthakker/estacktheir own version, first seen Nov 8, 2026
- marnickvda/know-it-alltheir own version, first seen Nov 8, 2026
- matthlh/school-3-1their own version, first seen Nov 6, 2026
- seanx10m/skillstheir own version, first seen Nov 1, 2026
- Rayhaan1345/socratic-tutortheir own version, first seen Nov 1, 2026
Used with
Projects with it also use reflect and handoff.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
Microsoft AzureSkillreflect
Learning capture system that extracts HIGH/MED/LOW confidence patterns from conversations to prevent repeating mistakes. Use after user corrections ("no", "wrong"), praise ("perfect", "exactly"), or when discovering edge cases. Complements .squad/agents/{agent}/history.md and .squad/decisions.md.
Also in 3 projects that use this
MicrosoftSkillhandoff
Compact the current conversation into a handoff document for another agent to pick up.
Also in 3 projects that use this
Other versions18 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 18
- jellydn/my-ai-tools★ 127same name
- Ciucky/no-numb★ 32same name
- kevmoo/kevmoo_skills★ 22same name
- rodbv/socratic-skills★ 18same name
- Ic3b3rg/learn-skills★ 9same name
- Rayhaan1345/socratic-tutor★ 5same name
- marnickvda/know-it-all★ 3same name
- marnickvda/pop-quiz★ 3same name
- bogdanbaciu21/skills★ 2same name
- matthlh/school-3-1★ 1same name
8 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository15 other files it gives its agents.
- .claude/CLAUDE.mdCLAUDE.md
- asciiSkill
- challengeSkill
- compareSkill
- demoSkill
- excalidrawSkill
- flashcardsSkill
- init-eduSkill
- motivateSkill
- progressSkill
- researchSkill
- reset-eduSkill
- roadmapSkill
- save-progressSkill
- summarySkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
19 rules. 0 are common, 11 are distinctive, and 8 are very specific to this project.
0
Common
Most of the 18 edited versions we read keep these.
11
Distinctive
This author's own choices. Worth a look.
8
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 9
Before accessing education data, read ${CLAUDE_PLUGIN_ROOT}/references/education-data.md.
- Very specific: line 25
Read <education-db>/dashboard.json — check topic statuses
- Very specific: line 26
Read <education-db>/student.json — adapt to learning style
- Very specific: line 27
If a topic was given, read <education-db>/topics/<topic>.json if it exists — check for unresolved misconceptions and previous scores
- Very specific: line 28
If no topic given, pick from: first any topics with next_review <= today, then weak topics, then learned topics
- Distinctive: line 39
One question per message: Never batch questions.
- Distinctive: line 43
Adapt difficulty: Start medium. If the user gets 2+ right in a row, increase difficulty.
- Distinctive: line 45
Prioritize misconceptions: If the topic file has unresolved misconceptions, craft questions that specifically test those misunderstandings …
- Distinctive: line 47
Track score: Keep a running tally (e.g., "3/5 correct").
- Distinctive: line 49
Use context: If inside a project directory, read relevant files to generate questions about the actual codebase — not just generic textbook …
- Distinctive: line 50
No trick questions: Every question should teach something useful.
- Distinctive: line 77
Always provide exactly 4 options for multiple choice
- Distinctive: line 79
Use neutral descriptions that do not reveal correctness or repeat the question definition.
- Distinctive: line 81
If the student selects "Other" (custom input), treat it as an open-ended answer
- Distinctive: line 99
If the student got it wrong, record the misconception immediately in the topic file.
- Very specific: line 147
If stopped early, save the attempt as completed: false and report answered questions without changing mastery or the review interval.
- Very specific: line 150
Update quiz_scores array, last_reviewed, status, depth
- Distinctive: line 151
Add any new misconceptions
- Very specific: line 158
Update topic entry, recalculate stats, total_quizzes, average_score
“Common” is measured: kept by at least 6 in 10 of the 18 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Requested topic/task: $ARGUMENTS
Before accessing education data, read ${CLAUDE_PLUGIN_ROOT}/references/education-data.md. Resolve every <education-db> below using that contract. Current session ID: ${CLAUDE_SESSION_ID}.
Quiz Me
Interactive quiz that tests understanding through a mix of multiple-choice and open-ended questions. All results are saved to the global education DB.
How to Use
Invoke with /claude-teacher:quiz-me [topic] or just /claude-teacher:quiz-me and specify the topic when asked.
Examples: /claude-teacher:quiz-me TCP sockets, /claude-teacher:quiz-me git, /claude-teacher:quiz-me sorting algorithms
Quiz Flow
Setup
- Read
<education-db>/dashboard.json— check topic statuses - Read
<education-db>/student.json— adapt to learning style - If a topic was given, read
<education-db>/topics/<topic>.jsonif it exists — check for unresolved misconceptions and previous scores - If no topic given, pick from: first any topics with
next_review <= today, thenweaktopics, thenlearnedtopics - Also check project-local
memory/knowledge_gaps.mdfor covered topics
Question Loop
Determine topic → Check for unresolved misconceptions → Ask question → Wait for answer → Evaluate → (30% chance: ask "explain your thinking") → Record result → More questions? → Score summary → Save to DBRules
- One question per message. Never batch questions.
- Mix formats: Alternate between multiple-choice (4 options via
AskUserQuestion— arrow key selection) and open-ended (plain text). Use multiple-choice for factual recall, open-ended for conceptual understanding. - Grade fairly: For open-ended answers, accept correct reasoning even if wording is imprecise. If partially correct, say what was right and what was missing.
- Explain after every answer: Whether right or wrong, give a brief explanation of WHY the correct answer is correct. This is the learning moment. Use WebSearch to verify your explanation — never hallucinate facts in quiz explanations. Include a source link when citing specific facts.
- Adapt difficulty: Start medium. If the user gets 2+ right in a row, increase difficulty. If they get 2+ wrong, ease up and cover fundamentals.
- Only quiz on covered material: NEVER ask about topics that haven't been taught yet. Check
dashboard.json— only topics with statusweak,learned, orsolidare fair game. If a topic has no entry or hasn't been explained, it's off limits. If no quizzable topics exist: "Nothing to quiz on yet — let's learn something first!" - Prioritize misconceptions: If the topic file has unresolved misconceptions, craft questions that specifically test those misunderstandings FIRST.
- "Explain your thinking" check: ~30% of correct answers, ask the student to explain WHY their answer is right. If their reasoning is wrong despite the correct answer, record it as a misconception.
- Track score: Keep a running tally (e.g., "3/5 correct"). Show final summary when the quiz ends.
- Let the user control pace: The quiz ends when the user says stop, or after 10 questions if no limit was specified. Ask "Continue?" after every 5 questions.
- Use context: If inside a project directory, read relevant files to generate questions about the actual codebase — not just generic textbook questions.
- No trick questions. Every question should teach something useful.
Question Format
Multiple choice — use AskUserQuestion tool:
For every multiple-choice question, use the AskUserQuestion tool so the student can select answers with arrow keys. If the tool is unavailable, ask the same question with plain-text options and wait for an answer.
AskUserQuestion({
questions: [{
question: "Q3 (medium): What system call creates a new socket in C?",
header: "Q3",
multiSelect: false,
options: [
{ label: "a) connect()", description: "Choice A" },
{ label: "b) socket()", description: "Choice B" },
{ label: "c) bind()", description: "Choice C" },
{ label: "d) listen()", description: "Choice D" }
]
}]
})The student selects with arrow keys and Enter — no typing needed. Option descriptions must be neutral; explain the choices after the student answers.
Rules for AskUserQuestion quiz options:
- Always provide exactly 4 options for multiple choice
- Randomize correct answer position (don't always put it in slot b)
- Use neutral descriptions that do not reveal correctness or repeat the question definition. Explain alternatives only after grading
- The
headerfield should be the question number (e.g., "Q1", "Q2") - If the student selects "Other" (custom input), treat it as an open-ended answer
Open-ended — use plain text:
Q4 (medium): In your own words, explain why FTP uses two separate TCP connections instead of one.Open-ended questions are printed as plain text — the student types their answer freely.
After Each Answer
Correct! [or] Not quite.
[Brief explanation of the correct answer and why it matters]
Score: 3/4If the student got it wrong, record the misconception immediately in the topic file.
Score Summary & DB Update
At the end of the quiz:
1. Show summary:
── Quiz Complete ──────────────────
Topic: [topic]
Score: 7/10 (70%)
Depth: [surface → working] (promoted!)
Strong areas: [what they got right]
Review these: [concepts they struggled with]
Misconceptions found: [list any new ones]
Next review: [calculated date]
───────────────────────────────────2. Save quiz record to <education-db>/quizzes/[date]_[topic-slug]_[quiz-id].json:
{
"quiz_id": "[stable UUID for this attempt]",
"session_id": "${CLAUDE_SESSION_ID}",
"completed": true,
"date": "[today]",
"topic": "[topic-slug]",
"questions": [
{
"question": "...",
"type": "multiple_choice|open_ended",
"student_answer": "...",
"correct_answer": "...",
"correct": true,
"reasoning_check": false,
"reasoning_was_sound": null
}
],
"score": 70,
"status_before": "learned",
"status_after": "learned",
"depth_before": "surface",
"depth_after": "working",
"notes": "..."
}If stopped early, save the attempt as completed: false and report answered questions without changing mastery or the review interval. Avoid dividing by zero if no questions were answered.
3. Update topic file <education-db>/topics/[topic-slug].json:
- Update
quiz_scoresarray,last_reviewed,status,depth - Add any new misconceptions
- Recalculate
next_reviewusing spaced repetition:- Score >=80%: double
review_interval_days, setnext_reviewaccordingly - Score <50%: reset interval to 1 day, demote to
weak - Score 50-79%: keep current interval
- Score >=80%: double
4. Update dashboard <education-db>/dashboard.json:
- Update topic entry, recalculate
stats,total_quizzes,average_score
5. Update project-local memory/knowledge_gaps.md if it exists.
6. Append to session log <education-db>/sessions/[date].jsonl:
{"time": "[now]", "event": "quiz", "topic": "[slug]", "score": 70, "passed": false, "misconceptions_found": 1}Priority Order for Questions
- Unresolved misconceptions on the topic (highest priority — targeted questions)
- Topics marked Weak in dashboard (need remediation)
- Topics marked Learned with
next_review <= today(due for spaced repetition) - Topics marked Learned that haven't been verified at
workingdepth - Topics marked Solid — for reinforcement and deeper questions
Integration with Other Skills
/claude-teacher:ascii [concept]— if a question involves a visual concept and the student got it wrong, offer to illustrate it./claude-teacher:challenge [topic]— for hands-on practice after quiz identifies weak areas./claude-teacher:progress— student can check their overall dashboard./claude-teacher:save-progress— quiz results are auto-saved, but student can explicitly save mid-session.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

