Verify understanding after implementation with targeted quizzes
Scanned 9/3/2026
Install to Claude Code
npx -y skills add jellydn/my-ai-tools --skill quiz-me --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Quiz Me?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/jellydn-quiz-me)More formats (shields.io, HTML) on the badges page.
---
name: "quiz-me"
description: "Verify understanding after implementation with targeted quizzes"
license: "MIT"
compatibility: "cline, claude, opencode, amp, codex, gemini, cursor, pi"
hint: "Use after completing complex work to verify understanding"
user-invocable: true
---
# Quiz Me
## When to Use
Use this skill **after implementation** when:
- You've completed a complex feature
- Need to write a PR description
- Want to verify understanding of changes
- About to present work to team
- Ensuring you stay "in the loop" with agent work
## What It Does
The agent generates a quiz about the implementation to verify your understanding. This helps you:
- Identify gaps in your knowledge
- Prepare for code review discussions
- Write better PR descriptions
- Stay engaged with increasingly capable agents
## How to Execute
### Step 1: Scope the Quiz
Determine what to test:
- Core architectural decisions
- Key implementation details
- Edge cases and error handling
- Integration points
- Trade-offs made
### Step 2: Generate Questions
Create questions across difficulty levels:
**Level 1 - Recall** (What):
- What did we implement?
- What files were changed?
- What are the main components?
**Level 2 - Understanding** (Why):
- Why did we choose this approach?
- Why not use [alternative]?
- What problem does this solve?
**Level 3 - Application** (How):
- How would you explain this to a reviewer?
- How does this integrate with existing code?
- How would you debug an issue here?
**Level 4 - Analysis** (Implications):
- What are the trade-offs?
- What could go wrong?
- What would you change if requirements changed?
### Step 3: Conduct Quiz (One Question at a Time)
Use the `ask_user_question` tool for each quiz question. Ask **one question at a time** — present it, wait for the answer, provide feedback, then move to the next. This makes the quiz feel like a conversation, not a test.
**Flow for each question:**
1. **Ask** using `ask_user_question` with the question and options
2. **Read the answer** the user selected or typed
3. **Provide feedback**: tell them the correct answer, explain why, link to code
4. **Track correctness** mentally (or note it)
5. **Proceed** to the next question
**Guidelines for using `ask_user_question`:**
- Set `header` to a short label (max 16 chars) like `"Architecture"`, `"Trade-offs"`, `"Edge Cases"`
- Write a clear `question` with context and any hint references
- Provide 2-4 concrete `options` — concise `label` (1-5 words) with descriptive `description`
- After the user answers, give the correct answer with explanation and code references
### Step 4: Review Answers
After each question response:
- **If correct**: Confirm and reinforce with additional context
- **If incorrect**: Gently correct, explain why, point to the relevant code/commit
- **If open-ended**: Evaluate against expected key points, fill in gaps
### Step 5: Summarise Results
After all questions are answered:
- Report overall understanding level
- Highlight strong areas
- Flag areas to review with code references
- Extract PR description material
## Question Templates (Mapped to ask_user_question)
### Multiple Choice — Architectural Decision
```
// Ask one at a time
ask_user_question(questions: [{
header: "Architecture",
question: "Why did we use GitHub App Installation flow instead of OAuth for this integration? (Hint: check auth/github/installation.ts for the decision)",
options: [
{
label: "OAuth is deprecated",
description: "GitHub still supports OAuth, so this isn't the reason"
},
{
label: "Org-level access",
description: "Installation flow provides org-level access — OAuth Apps can't access org repos"
},
{
label: "Easier to implement",
description: "Installation flow is actually more complex to set up than basic OAuth"
}
]
}])
// After answer — provide feedback:
// "Correct! OAuth Apps can't access organization repositories, which is a GitHub limitation.
// Installation tokens authenticate as the app installation, giving org-level scope.
// See: auth/github/installation.ts:42-58"
```
### Fill in the Blank (using open-ended)
```
ask_user_question(questions: [{
header: "Implementation",
question: "What are the token lifespans in our GitHub auth? Fill in:\n- User OAuth tokens last: ______\n- Installation tokens last: ______\n- We cache installation tokens for: ______\n(Hint: check auth/github/token-cache.ts)",
options: [
{
label: "6mo / 1hr / 55min",
description: "User OAuth=6 months, Installation tokens=1 hour, Cache TTL=55 minutes (5 min buffer)"
},
{
label: "1yr / 8hr / 7hr",
description: "Incorrect — installation tokens only last 1 hour, we need a 5-minute buffer before expiry"
},
{
label: "Permanent / 24hr / 23hr",
description: "Incorrect — GitHub installation tokens have a 1-hour expiry, not 24 hours"
}
]
}])
```
### Trade-off Analysis
```
ask_user_question(questions: [{
header: "Trade-offs",
question: "What's the main trade-off of our token caching strategy? We cache installation tokens with a 55-minute TTL.",
options: [
{
label: "Speed vs staleness",
description: "Correct — caching avoids rate limits (5000/hr) but a token could be stale for up to 5 minutes before natural expiry"
},
{
label: "Memory vs latency",
description: "The token cache is small (Redis, key pattern github:install:{id}:token) — memory isn't the constraint here"
},
{
label: "Security vs simplicity",
description: "Tokens are encrypted in Redis — security wasn't the trade-off driver for the TTL decision"
}
]
}])
```
### Edge Case Question
```
ask_user_question(questions: [{
header: "Edge Cases",
question: "What happens when a user uninstalls the GitHub App? How does our system respond?",
options: [
{
label: "Hard delete record",
description: "We soft delete instead to preserve audit trail and cascading session cleanup"
},
{
label: "Soft delete + audit",
description: "Correct — we soft delete the installation record and cascade to invalidate all user sessions, preserving the audit trail"
},
{
label: "Nothing, tokens work",
description: "Incorrect — when uninstalled, tokens immediately stop working. We must clean up sessions"
}
]
}])
```
### Code Reading Question
```
ask_user_question(questions: [{
header: "Code Reading",
question: "In the token refresh logic, why do we compare the cached token's expiry against a 55-minute threshold instead of the full 60 minutes?",
options: [
{
label: "5-min safety buffer",
description: "Correct! The 5-minute buffer prevents edge-case race conditions where a token expires between the cache check and the API call"
},
{
label: "Rate limit overhead",
description: "Rate limits are 5000/hr — the buffer isn't about rate limits, it's about preventing stale token usage"
},
{
label: "Clock drift compensation",
description: "While clock drift is a real concern, the primary reason is preventing token expiry during the request window"
}
]
}])
```
## Complete Quiz Interaction Flow
For a typical 4-6 question quiz, the flow looks like:
```
1. Agent: "Let me quiz you on the GitHub OAuth implementation.
I'll ask one question at a time and give feedback after each."
2. ask_user_question → Q1 (Architecture question)
User answers
Agent feedback: "Correct! ... See auth/github/installation.ts:42"
3. ask_user_question → Q2 (Implementation question)
User answers
Agent feedback: "Almost — the cache TTL is 55 minutes, not 50..."
4. ask_user_question → Q3 (Edge case question)
User answers
Agent feedback: "Right!..."
5. ask_user_question → Q4 (Trade-off question)
User answers
Agent feedback: "Good analysis..."
6. Agent: "Here's your summary:
- Strong on architecture decisions
- Review token caching details (auth/github/token-cache.ts)
- PR description material from Q1 and Q4..."
```
## Best Practices
1. **One question per call**: Always use `ask_user_question` with a single-question array. Never batch questions.
2. **Give feedback immediately**: After each answer, confirm or correct with code references.
3. **Match complexity**: Quiz difficulty should match implementation complexity.
4. **Test reasoning**: Don't just ask "what", ask "why" and "how".
5. **Include context**: Reference specific code/commits for verification.
6. **Provide hints**: Include hints in the question text (not as tool hints, just inline).
7. **Wrong-answer options are educational**: Each incorrect option's description should explain why it's wrong.
8. **Limit to 4-7 questions**: Too many exhausts. Quality over quantity.
## Integration with Other Skills
- **After Implementation**: Always follow complex work with quiz
- **Before PR**: Use quiz results to write description
- **With Implementation Log**: Quiz questions based on logged decisions
- **For Documentation**: Questions reveal what needs better docs
## Success Criteria
A good quiz:
- Tests understanding at multiple levels (recall → analysis)
- Uses `ask_user_question` for focused, one-at-a-time questioning
- Provides immediate feedback with code references after each answer
- Reveals gaps in knowledge
- Helps you articulate decisions
- Prepares you for code review
- Takes 5-15 minutes to complete
- Results in better PR description
- Identifies documentation needs
## Common Pitfalls
- **Too easy**: Only testing recall ("what did we do?")
- **Too hard**: Testing minutiae not worth remembering
- **No feedback**: User doesn't learn from wrong answers
- **No context**: Questions without code references
- **Too long**: Exhausting instead of enlightening
- **Batching questions**: Asking multiple questions at once defeats the one-at-a-time flow
## Output Format
### Summary After Quiz
```markdown
# Quiz Results: [Feature Name]
## Strong Areas
- [Area 1]: Solid understanding of X
- [Area 2]: Clear grasp of Y
## Areas to Review
- [Area 1]: Unclear on Z, review [file.ts:123]
- [Area 2]: Missing context on W, see [commit abc123]
## Recommended Actions
- [ ] Review [specific code section]
- [ ] Read [specific documentation]
- [ ] Discuss [specific decision] with team
## PR Description Material
Based on your answers, include in PR:
- [Key point 1 from quiz]
- [Key point 2 from quiz]
- [Trade-off explanation from Qx]
```
The quiz becomes your PR description outline.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!