Agent skill

Quiz

by kirilxd in kirilxd/claude-tutor

A skill your agent uses when user wants to be tested or quizzed on any topic.

MITAuto-check passedEducation

Install Quiz

skills CLI
$ npx skills add kirilxd/claude-tutor --skill quiz -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install kirilxd/claude-tutor quiz --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/kirilxd/claude-tutor.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/quiz .claude/skills/quiz && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
quiz
GitHub stars
135
Token cost
~2.7k tokens
SKILL.md length
1,254 words
Files
1
Skills in repo
5
Repo updated
First seen
Licence
MIT

At a glance

A skill your agent uses when user wants to be tested or quizzed on any topic.

  • Works in 6 steps: Determine Topic & Module → Load Prior Performance → Generate Questions → …
  • User wants to be tested
  • SKILL.md covers File Storage Rules — EXACT…, Process and No-Plan Quiz Mode
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Quiz is an agent skill from kirilxd/claude-tutor. 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.

Its SKILL.md is about 2.7k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Education, covering Quizzes and assessments. It works with Kubernetes. The repository describes itself as: Turn Claude Code into your personal tutor — personalized learning plans, adaptive quizzes, SM-2 spaced repetition, and a web dashboard. Works with any topic. The licence is MIT.

When your agent uses it

  • User wants to be tested
  • Quizzed on any topic
  • Test my knowledge
  • Practice questions

Example prompts

  • “quiz me”
  • “test me”
  • “test my knowledge”
  • “/quiz”

Workflow steps

6 steps, taken from the step headings in SKILL.md.

  1. Determine Topic & Module
  2. Load Prior Performance
  3. Generate Questions
  4. Deliver Interactively
  5. Show Results
  6. Save Progress

What it can do on your machine

Read from SKILL.md and the folder at commit ce19469. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are json).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Quiz loads about 2.7k tokens when it runs. Until then it costs about 88 tokens; SKILL.md has 1,254 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~88
When it runs · the whole SKILL.md, loaded when a task matches
~2.7k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from kirilxd/claude-tutor at commit ce19469, republished under its MIT licence (© kirilxd). 1,254 words, ~2,719 tokens.

Download SKILL.mdSave it as .claude/skills/quiz/SKILL.md (or your agent's skills folder).
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.

Quiz — Interactive Knowledge Testing

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.

File Storage Rules — EXACT PATHS (no deviation)

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.

Process

Step 1: Determine Topic & Module

If the user specified a topic (e.g., /quiz kubernetes):

  • Read ~/.claude/learning/index.json
  • Find matching topic (fuzzy match: "k8s" → "kubernetes", "Spanish" → "spanish-grammar")
  • If ambiguous, ask the user to clarify

If no topic specified (just /quiz):

  • Read index.json, find topic with most recent lastActivity
  • Confirm with user: "Quiz you on [topic]?"

If no learning plans exist:

  • Tell the user: "No learning plans found. Use /learn <topic> to create one first, or tell me a topic and I'll quiz you on general knowledge."
  • If user provides a topic without a plan, generate questions from Claude's knowledge (no plan file needed)

Module targeting:

  • If user says "test me on module 2" or "quiz me on deployments", target that specific module
  • Otherwise, quiz across all modules, weighting toward weak areas if prior quiz data exists
Step 2: Load Prior Performance

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:

  • No prior data → generate questions at the plan's level
  • Prior overall score > 80% → tell the user "Your score is high, so I'm asking harder, more conceptual questions" and increase difficulty
  • Prior overall score < 50% → tell the user "Let's focus on the fundamentals" and decrease difficulty
  • Weight questions toward weakAreas from prior quizzes
  • If spacedRepetition data exists, check for concepts where nextReview is today or in the past. These are overdue for review — tell the user "You have N concepts due for review" and include them in the quiz
Step 3: Generate Questions

Generate a set of questions (default: 5, user can request more/fewer).

Mix of formats:

FormatUse forProportion
Multiple choice (4 options, one correct)Factual recall, terminology, definitions~40%
True/FalseCommon misconceptions, nuanced distinctions~20%
Short answer (1-3 sentences)Conceptual understanding, explanations~25%
Fill-in-the-blankSyntax, commands, formulas, key terms~15%

Question quality rules:

  • Questions should test understanding, not trick the user
  • Wrong MCQ options should be plausible (common misconceptions), not obviously wrong
  • Short answer questions should have clear evaluation criteria (key concepts to look for)
  • Each question should map to a specific concept from the learning plan
Step 4: Deliver Interactively

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.

Step 5: Show Results

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]
──────────────────────────────────────────
Show full SKILL.md (529 more words)Show less
Step 6: Save Progress

The progress file at ~/.claude/learning/progress/{topic-slug}.json is the single source of truth for quiz data. The web dashboard also reads and writes this file. Always read the existing file first, then append/update — never overwrite from scratch.

  1. Construct path: ~/.claude/learning/progress/{topic-slug}.json
  2. Verify path contains /progress/ — NOT /plans/
  3. Create directory ~/.claude/learning/progress/ if it doesn't exist
  4. Read the existing file — if it exists, load its current data and append to it. If it doesn't exist, create a new object
  5. Append the new quiz to the quizzes array (do not replace existing quizzes)
  6. Recompute weakAreas, strongAreas, and overallScore from ALL quizzes (not just the latest)
  7. Update spacedRepetition for each concept tested
  8. Write the file using ONLY the fields listed below — no extra fields:
json
{
  "topic": "topic-slug",
  "quizzes": [
    {
      "date": "YYYY-MM-DD",
      "module": null,
      "score": 4,
      "total": 5,
      "difficulty": "beginner",
      "questions": [
        {
          "format": "mcq",
          "concept": "concept-label",
          "correct": true
        }
      ]
    }
  ],
  "weakAreas": ["concept-a", "concept-b"],
  "strongAreas": ["concept-c", "concept-d"],
  "overallScore": 80
}

CRITICAL format rules — the web dashboard reads these files, so the format must be exact:

  • overallScore is a percentage (0-100), NOT a fraction. 80 not 0.8.
  • weakAreas and strongAreas are arrays of strings (concept names), NOT objects.
    • CORRECT: "weakAreas": ["DNS resolution", "CNAME records"]
    • WRONG: "weakAreas": [{"concept": "DNS resolution", "moduleId": 1}]
  • spacedRepetition keys must be concept names (matching the concept field in questions), NOT module IDs.
    • CORRECT: "spacedRepetition": {"DNS resolution": {...}}
    • WRONG: "spacedRepetition": {"1": {...}, "2": {...}}
  • All spacedRepetition values must have easeFactor (number), intervalDays (integer), nextReview (YYYY-MM-DD string), repetitions (integer). None can be null.

Compute weak/strong areas (aggregate across ALL quizzes):

  • For each concept that has ever appeared in any quiz question, count total attempts and correct answers
  • Concepts correct in <50% of attempts → weakAreas (as plain strings)
  • Concepts correct in >=80% of attempts → strongAreas (as plain strings)
  • overallScore = round(total correct across all quizzes / total questions across all quizzes × 100)

Update spaced repetition schedule:

For each concept tested in this quiz, update the spacedRepetition field in the progress file using the SM-2 algorithm:

For each concept:

  1. Determine quality score (0-5): correct on first try = 5, correct after hesitation = 4, incorrect but close = 2, incorrect = 0
  2. If quality >= 3 (correct):
    • If first review (repetitions was 0): intervalDays = 1
    • If second review (repetitions was 1): intervalDays = 6
    • Subsequent: intervalDays = round(previous interval × easeFactor)
    • repetitions += 1
  3. If quality < 3 (incorrect):
    • Reset: intervalDays = 1, repetitions = 0
  4. Update ease factor: easeFactor = max(1.3, easeFactor + 0.1 - (5 - quality) × (0.08 + (5 - quality) × 0.02))
  5. Compute nextReview = today + intervalDays (format: YYYY-MM-DD)

For new concepts (not yet in spacedRepetition), initialize with easeFactor: 2.5, intervalDays: 1, repetitions: 0, nextReview: today + 1 day.

Validation before writing: Every SR entry must have all 4 fields set to non-null values. If any field would be null, use the default: easeFactor: 2.5, intervalDays: 1, repetitions: 0, nextReview: tomorrow.

Updated progress JSON structure:

json
{
  "topic": "topic-slug",
  "quizzes": [...],
  "weakAreas": [...],
  "strongAreas": [...],
  "overallScore": 80,
  "spacedRepetition": {
    "concept-label": {
      "easeFactor": 2.5,
      "intervalDays": 6,
      "nextReview": "2026-03-26",
      "repetitions": 2
    }
  }
}

This is backwards-compatible — if spacedRepetition is missing, treat all concepts as unscheduled.

  1. Update index.json at ~/.claude/learning/index.json:
    • Read existing index first
    • Set topics[slug].quizzesTaken = total number of quizzes in the progress file
    • Set topics[slug].overallScore = the computed overallScore (percentage, 0-100)
    • Set topics[slug].lastActivity = today's date (YYYY-MM-DD)

No-Plan Quiz Mode

If a user asks to be quizzed on a topic with no existing learning plan:

  • Generate questions from Claude's own knowledge
  • Still deliver interactively with feedback
  • Still save progress to enable tracking
  • Suggest: "Want me to create a full learning plan for this topic? Use /learn [topic]"

© kirilxd, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/quiz of kirilxd/claude-tutor.

Open the folder on GitHubat commit ce19469

Compare with similar skills

Quiz next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Quiz compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Quiz this skillkirilxd/claude-tutor135—~2.7kAutomated safety check: PassMIT
DeepTutor CLIHKUDS/DeepTutor41k—~2.8kAutomated safety check: PassApache-2.0
AI Engineering Placement Quizrohitg00/ai-engineering-from-scratch66k—~2kAutomated safety check: PassMIT
Codebase to Coursezarazhangrui/codebase-to-course5.7k—~4.4kAutomated safety check: PassNone
AI Engineering Phase Quizrohitg00/ai-engineering-from-scratch66k—~2.1kAutomated safety check: PassMIT
Scholar EvaluationK-Dense-AI/claude-scientific-writer2.4k2 repos~2.9kAutomated safety check: NotesMIT

Similar skills

  • DeepTutor CLI

    HKUDS/DeepTutor

    Teaches the agent to set up and run DeepTutor from the command line: chat and capabilities, knowledge bases, partners, memory, sessions, notebooks and the server or Web app.

    41k GitHub stars~2.8k tokensUpdated 2 days ago
    EducationAuto-check passed
  • AI Engineering Placement Quiz

    rohitg00/ai-engineering-from-scratch

    Runs a 10-question quiz across five areas to place a learner in the AI Engineering from Scratch curriculum, so they skip what they already know.

    66k GitHub stars~2k tokensUpdated today
    EducationAuto-check passed
  • Codebase to Course

    zarazhangrui/codebase-to-course

    Turns a codebase into an interactive single-page HTML course for non-technical learners, with scroll modules, animated diagrams, quizzes and plain-English code translations.

    5.7k GitHub stars~4.4k tokensUpdated 6 mo ago
    EducationAuto-check passed
  • AI Engineering Phase Quiz

    rohitg00/ai-engineering-from-scratch

    Quizzes you on a completed phase of the AI Engineering from Scratch course, taking a phase number or name and mapping it to that phase's directory.

    66k GitHub stars~2.1k tokensUpdated today
    EducationAuto-check passed
  • Scholar Evaluation

    K-Dense-AI/claude-scientific-writer

    Provide qualitative-first, evidence-traceable developmental review of scholarly works and audit low-stakes research-assessment rubrics with optional local quality controls.

    2.4k GitHub starsUsed in 2 repos~2.9k tokens
    EducationAuto-check: notes
  • Evaluation

    guanyang/open-agent-hub

    This skill should be used when building agent evaluation systems: deterministic checks, regression suites, multi-dimensional rubrics, quality gates, production monitoring, baseline comparison, and…

    977 GitHub starsUsed in 2 repos~4.2k tokens
    EducationAuto-check passed

More from kirilxd/claude-tutor

  • Learn

    kirilxd/claude-tutor

    A skill your agent uses when user wants to learn a topic or create a study plan.

    135 GitHub stars~3.6k tokensUpdated 2 mo ago
    Auto-check passed
  • Resources

    kirilxd/claude-tutor

    A skill your agent uses when user asks for learning resources, recommendations, or materials on any topic.

    135 GitHub stars~724 tokensUpdated 2 mo ago
    Auto-check passed
  • Review

    kirilxd/claude-tutor

    A skill your agent uses when user asks about their learning progress or wants study guidance.

    135 GitHub stars~1.2k tokensUpdated 2 mo ago
    Auto-check passed
  • Dashboard

    kirilxd/claude-tutor

    Use only when user explicitly asks to "open dashboard", "show dashboard", "launch dashboard", or "learning UI".

    135 GitHub stars~244 tokensUpdated 2 mo ago
    Auto-check passed

Works with

Categories

Questions about Quiz

What does Quiz do?

A skill your agent uses when user wants to be tested or quizzed on any topic. Quiz is an agent skill from kirilxd/claude-tutor. Use when user wants to be tested or quizzed on any topic.

When should I use Quiz?

Quiz fits situations like: user wants to be tested; quizzed on any topic; test my knowledge; practice questions.

How do I install Quiz in Claude Code?

Run `npx skills add kirilxd/claude-tutor --skill quiz -a claude-code`. Or copy the skill folder (skills/quiz in kirilxd/claude-tutor) into .claude/skills/quiz in your project. Claude Code loads it when a task matches its description.

How do I install Quiz in Codex?

Run `npx skills add kirilxd/claude-tutor --skill quiz -a codex`. Or copy the skill folder (skills/quiz in kirilxd/claude-tutor) into .agents/skills/quiz in your project. Codex loads it when a task matches its description.

Can I use Quiz in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add kirilxd/claude-tutor --skill quiz -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/quiz, .gemini/skills/quiz, .github/skills/quiz and .opencode/skills/quiz in your project.

What does Quiz need to run?

SKILL.md names no scripts, command-line tools or credentials: Quiz is instructions for the agent only.

Does Quiz access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Quiz safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Quiz use?

Quiz is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Quiz use?

About 2.7k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Quiz?

Skills that share tags, products or a category with Quiz: DeepTutor CLI (HKUDS/DeepTutor, 41k stars), AI Engineering Placement Quiz (rohitg00/ai-engineering-from-scratch, 66k stars), Codebase to Course (zarazhangrui/codebase-to-course, 5.7k stars) and AI Engineering Phase Quiz (rohitg00/ai-engineering-from-scratch, 66k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Quiz?

kirilxd (a GitHub user) maintains it in kirilxd/claude-tutor, which has 135 GitHub stars. The repository holds 5 skills in this directory. The repository was last updated on July 20, 2026.

Source: kirilxd/claude-tutor on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.