Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Generate quiz JSON files from any content and launch the interactive quiz app. Creates multiple-choice and open-ended questions, then opens the quiz in the browser.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-07 | ✗→✓ | ▲ Improved | 78% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 86% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 48% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 128% | 0% |
| case-17 | ✓→✗ | ▼ Worse | 67% | 0% |
Generate quiz JSON files from any topic, content, or resource, then launch an interactive quiz application to test knowledge immediately.
Use this skill when the user requests:
Trigger phrases: "quiz me on", "test me on", "create a quiz", "generate questions about", "make quiz questions", "test my knowledge", "practice questions for"
The quiz app expects a JSON array with two question types:
json{ "question": "What is the capital of France?", "type": "multiple-choice", "options": ["London", "Berlin", "Paris", "Madrid"], "correctAnswer": 2 }
Rules:
options: Array of 3-5 answer choicescorrectAnswer: Zero-indexed integer pointing to correct optionjson{ "question": "What is 2 + 2?", "type": "open-ended", "acceptedAnswers": ["4", "four", "Four"] }
Rules:
acceptedAnswers: Array of valid answer variations (case-insensitive matching)For topic-based quizzes:
For URL-based quizzes:
For user-provided content:
Create a balanced mix:
Question quality guidelines:
Recommended quiz length:
Save the quiz JSON file to the current working directory (or wherever the user asks):
./<topic-slug>-quiz.jsonNaming convention:
-quiz.jsonExamples:
python-basics-quiz.jsonai-fluency-quiz.jsonjavascript-arrays-quiz.jsonAfter saving the JSON, launch the quiz app with the quiz pre-loaded and auto-started so the user can begin immediately — no manual file picking required.
The quiz app is bundled with this skill at assets/quiz-app.html — a single self-contained HTML file, no build step, no server. It supports a URL hash protocol: quiz-app.html#quiz=<base64-encoded-json>&autostart=1
Use this Python one-liner to base64-encode the JSON and open the app with the quiz embedded in the URL hash. The hash is processed locally by the browser and works with file:// URLs (no server needed):
bashpython3 -c " import base64, urllib.parse, pathlib, subprocess, time json_path = '<path-to>/<topic-slug>-quiz.json' app_path = '<skill-dir>/assets/quiz-app.html' # resolve from this skill's folder data = pathlib.Path(json_path).read_text() encoded = base64.b64encode(data.encode('utf-8')).decode('ascii') # Cache-buster query param forces the page to reload even if a stale tab is already open. url = f'file://{app_path}?t={int(time.time())}#quiz={urllib.parse.quote(encoded)}&autostart=1' subprocess.run(['open', url]) # macOS; use xdg-open on Linux "
Replace the two placeholder paths with the actual saved JSON file and this skill's assets/quiz-app.html (absolute paths).
The quiz will be open and ready to answer the first question. The JSON file is still saved to disk so the user can reload it later via "Choose Quiz File" if desired.
Fallback: if the auto-load URL approach fails for any reason, open assets/quiz-app.html directly and tell the user to pick the JSON file manually via "Choose Quiz File".
User: "Quiz me on JavaScript array methods"
Actions:
1. Generate 10-15 questions about array methods (map, filter, reduce, forEach, etc.)
2. Include multiple-choice for method selection and open-ended for syntax
3. Save as ./javascript-arrays-quiz.json
4. Run the auto-load Python one-liner from step 4 above (pointing at javascript-arrays-quiz.json) — quiz opens auto-started on question 1
5. Tell user: "Quiz is loaded and ready — answer away."User: "Create a quiz from this article: https://example.com/python-tutorial"
Actions:
1. WebFetch the URL to extract content
2. Identify key concepts and generate 10-15 questions
3. Save as ./python-tutorial-quiz.json
4. Run the auto-load Python one-liner to open the app with the quiz embedded in the URL hash and auto-started
5. Tell user: "Quiz is loaded and ready to start."User: "Test me on this content: [user provides text or notes]"
Actions:
1. Parse the provided content
2. Extract key facts and concepts
3. Generate questions covering the material
4. Save with descriptive filename
5. Launch quiz appDefinition questions:
json{ "question": "What is [term]?", "type": "multiple-choice", "options": ["Correct definition", "Related but wrong", "Common misconception", "Unrelated concept"], "correctAnswer": 0 }
Best practice questions:
json{ "question": "What is the recommended way to [action]?", "type": "multiple-choice", "options": ["Option A", "Option B", "Option C", "Option D"], "correctAnswer": 2 }
Comparison questions:
json{ "question": "What is the key difference between [X] and [Y]?", "type": "multiple-choice", "options": ["Difference A", "Difference B", "They are the same", "Difference C"], "correctAnswer": 0 }
Short answer:
json{ "question": "What command is used to [action]?", "type": "open-ended", "acceptedAnswers": ["command", "command()", "the command command"] }
Definition recall:
json{ "question": "Define [term] in one or two words.", "type": "open-ended", "acceptedAnswers": ["answer1", "answer2", "Answer1"] }
Before saving the quiz file, verify:
Content:
Format:
File:
If user wants more/fewer questions:
If content is too short for many questions:
If quiz app doesn't open:
Writing good questions:
Creating effective distractors:
Open-ended answers:
Other measured skills in the registry, with their headline benchmark lift.