dashboard
Use only when user explicitly asks to "open dashboard", "show dashboard", "launch dashboard", or "learning UI". Opens a local web…
Use when user wants to be tested or quizzed on any topic. Triggers on "quiz me", "test me", "test my knowledge", "practice questions", "check my understanding", or when asking for a quiz on something they've been learning. Also use when user finishes a learning module and wants
$ npx -y skills add kirilxd/claude-tutor --skill quiz --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/quizContext preview
The summary Claude sees to decide when to auto-load this skill.
Use when user wants to be tested or quizzed on any topic. Triggers on "quiz me", "test me", "test my knowledge", "practice questions", "check my understanding", or when asking for a quiz on something they've been learning. Also use when user finishes a learning module and wants
name: quiz description: Use when user wants to be tested or quizzed on any topic. Triggers on "quiz me", "test me", "test my knowledge", "practice questions", "check my understanding", or when asking for a quiz on something they've been learning. Also use when user finishes a learning module and wants to check understanding. Works with or without a prior learning plan.
**ALWAYS** use the `AskUserQuestion` tool when asking the user questions, in any context. If you have too many questions for the tool, split them up into multiple calls.
Generate and deliver mixed-format quiz questions based on the user's learning plan. Ask one question at a time, give immediate feedback, track scores, and adapt difficulty based on prior performance.
Quiz progress is saved to ONE specific directory:
~/.claude/learning/progress/{topic-slug}.json
CORRECT path for quiz progress: `~/.claude/learning/progress/dns.json` WRONG path for quiz progress: `~/.claude/learning/plans/dns-2026-03-29.json`
CORRECT — saving any learning data: `~/.claude/learning/progress/dns.json` WRONG — saving to project directory: `./learning/progress/dns.json`
Always use the ABSOLUTE path `~/.claude/learning/` — never a relative path like `./learning/`. Never write quiz data (quizzes, weakAreas, strongAreas, spacedRepetition, overallScore) to plan files. Never add extra fields beyond those defined in Step 6's schema. Verify the path contains `/progress/` before writing.
**If the user specified a topic** (e.g., `/quiz kubernetes`):
**If no topic specified** (just `/quiz`):
**If no learning plans exist:**
**Module targeting:**
You MUST read `~/.claude/learning/progress/[topic-slug].json` before generating questions. This file contains quiz history, weak/strong areas, and spaced repetition schedules. If you skip this step, the quiz won't adapt to the user's level.
**Adaptive difficulty — mention your adjustments to the user:**
Generate a set of questions (default: 5, user can request more/fewer).
**Mix of formats:**
| Format | Use for | Proportion | |---|---|---| | **Multiple choice** (4 options, one correct) | Factual recall, terminology, definitions | ~40% | | **True/False** | Common misconceptions, nuanced distinctions | ~20% | | **Short answer** (1-3 sentences) | Conceptual understanding, explanations | ~25% | | **Fill-in-the-blank** | Syntax, commands, formulas, key terms | ~15% |
**Question quality rules:**
Ask ONE question per message. Use multiple choice with clear options and descriptions for every question. Wait for the user's answer before proceeding to the next.
**Question format examples:**
Multiple choice — "Q1/5 (Multiple Choice) — Which Kubernetes object ensures a specified number of pod replicas are running?" with 4 options, each with a short description.
True/False — "Q2/5 (True or False) — In TCP, the receiver sends acknowledgments for every individual packet." with True/False options, each with a clarifying description.
Fill-in-the-blank — "Q3/5 (Fill in the Blank) — The kubectl command to view all running pods is: kubectl _____ pods -n <namespace>" with 4 options.
Short answer — "Q4/5 (Short Answer) — Explain the difference between a Pod and a Deployment. Pick the closest answer." with 2-3 options plus "Other (None of these match my understanding)".
**After the user answers, give feedback:**
If correct: > Correct! [1-2 sentence explanation reinforcing the concept]
If incorrect: > Not quite. The answer is [correct answer]. [2-3 sentence explanation helping the user understand]
For short answers, evaluate for key concepts, not exact wording. If partially correct, say what they got right and what's missing. Be encouraging but honest.
Then immediately ask the next question — no extra text between feedback and the next question.
After all questions, present a summary:
── Results: [Topic] ────────────────────── Score: [correct]/[total] ([percentage]%) [For each question:] [✓/✗] Q[n]: [brief concept label] [If there are wrong answers:] Weak areas: [list concepts that need review] Suggestion: [specific actionable advice] ─────────────────────────────────────────
Turn Claude Code into your personal tutor — personalized learning plans, adaptive quizzes, SM-2 spaced repetition, and a web dashboard. Works with any topic.
Use only when user explicitly asks to "open dashboard", "show dashboard", "launch dashboard", or "learning UI". Opens a local web…
Use when user wants to learn a topic or create a study plan. Triggers on "teach me", "I want to learn", "explain X to me",…
Use when user asks for learning resources, recommendations, or materials on any topic. Triggers on "find me resources", "what…