From what-do-you-know
Test your knowledge with dynamically generated concept questions drawn from your actual projects and experiences
How this skill is triggered — by the user, by Claude, or both
Slash command
/what-do-you-know:quiz-wdykThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
<references>
Question patterns:
- Mechanism: "Explain how [mechanism from their project] works under the hood." (e.g., "Explain how the PostToolUse hook mechanism works in your screenshotr plugin")
- Tradeoff: "What are the tradeoffs of [approach they chose] vs. [alternative]?" (e.g., "What are the tradeoffs of atomic file writes vs. direct writes?")
- Decision rationale: "You chose [decision from log]. What alternatives exist and why did you pick this?" (e.g., "You chose Homebrew for distribution. What alternatives exist and why?")
- Failure mode: "What would go wrong if [component from their project] failed? How would you detect and recover?"
- Generalization: "You applied [pattern] in [project]. Where else would this pattern be useful? Where would it break down?"
- Connection: "How does [concept A from project 1] relate to [concept B from project 2]?"
- Teaching: "Explain [concept from their work] to someone who's never seen it before."
Selection algorithm:
1. Filter index entries by topic relevance (tags, skills_used, skills_developed)
2. For each entry, identify 2-3 potential question angles
3. Score potential questions:
- `gap_weight = 5 - avg_score_for_topic` (from session history)
- `recency_bonus = days_since_last_asked / 14` (capped at 2.0)
- `variety_bonus = 1.5 if question_type not recently used`
4. Select from top-scored questions with weighted randomness
Present Questions
Present questions one at a time in the persona's voice.
<template name="question-presentation">
<output>
[Persona Name]: question
Take your time. Think through it carefully before answering.
</output>
</template>
<constraint>After each answer, briefly acknowledge but don't give detailed feedback yet.</constraint>
<if condition="session-short">
<action>Give per-question feedback instead of batching.</action>
</if>
Score Each Answer
Score each answer on the five learning dimensions (from `references/quiz-rubric.md`):
1. Depth (1-5) -- Surface-level recall vs. deep understanding
2. Accuracy (1-5) -- Technically correct mental models
3. Connections (1-5) -- Links to related concepts and experiences
4. Application (1-5) -- Can apply to new scenarios
5. Articulation (1-5) -- Clear, structured explanation
<substep name="classify-concept">
<action>Classify each answer's concept as: strong | partial | gap</action>
</substep>
Deliver Feedback
After all questions, deliver batched feedback.
<template name="quiz-results">
<output>
Quiz Results: [Topic]
| # | Concept | Score | Strength |
|---|---------|-------|----------|
| 1 | concept | x/5 | strong/partial/gap |
| 2 | concept | x/5 | strong/partial/gap |
| ... | | | |
</output>
</template>
<template name="dimension-scores">
<output>
Overall Dimensions:
| Dimension | Score | Notes |
|-----------|-------|-------|
| Depth | x/5 | brief note |
| Accuracy | x/5 | brief note |
| Connections | x/5 | brief note |
| Application | x/5 | brief note |
| Articulation | x/5 | brief note |
</output>
</template>
<template name="feedback-summary">
<output>
What you nailed: strongest answers
Where to dig deeper: weakest areas with specific suggestions
From your arsenal: entries that could strengthen weak answers
</output>
</template>
Log the Session
<schema name="session-frontmatter">
```markdown
---
type: quiz
date: <date>
topic: <topic>
persona: <persona>
question_count: <N>
scores:
depth: <1-5>
accuracy: <1-5>
connections: <1-5>
application: <1-5>
articulation: <1-5>
overall: <average>
per_question:
- concept: "<concept>"
score: <1-5>
strength: strong|partial|gap
- concept: "<concept>"
score: <1-5>
strength: strong|partial|gap
arsenal_references:
- file: "<log filename>"
---
```
</schema>
<section name="body">
```markdown
# Quiz Session: <topic> -- <date>
## Questions and Answers
<per-question summary>
## Feedback
<summary of feedback>
## Spaced Repetition Notes
<concepts to re-quiz, suggested interval>
```
</section>
</write>
Update Progress
Read and update `/.things/what-do-you-know/progress.json` and `/.things/what-do-you-know/knowledge-map.json` with new scores and concept classifications.
Handle Git Workflow
Before committing, pull latest changes from the remote (if one exists) to avoid conflicts.
git -C /.things pull --rebase 2>/dev/null || true
Based on the `git_workflow` setting in `config.json`:
Would you like to commit and push this quiz session?
Yes
No
Automatically `git add` the session file, progress.json, and knowledge-map.json, `git commit -m "quiz: "`, and `git push`.
Tell the user the session has been saved and they can commit when ready.
Offer Next Steps
What next?
Quiz again (same topic, different questions)
Quiz a different topic
Explore a weak area from this quiz
Bridge a gap to build a learning plan
Done for now
<if condition="quiz-same-topic">
<action>Go back to Step 7.</action>
</if>
<if condition="quiz-different-topic">
<action>Go to Step 4.</action>
</if>
</completion-message>
npx claudepluginhub brennacodes/brenna-plugs --plugin what-do-you-knowGenerates adaptive interactive quizzes on learning topics or any subject, delivers one question at a time via AskUserQuestion tool, tracks scores and progress in ~/.claude/learning/progress/{topic}.json, provides feedback and adjusts difficulty.
Delivers structured multi-session tutoring for technical topics with Socratic diagnostics, knowledge graphs for prerequisites, agendas, teaching, quizzes, and progress tracking.
Guides deep understanding of topics via adaptive Socratic questioning—one question at a time, building from foundational to nuanced. Triggers on 'quiz me', 'teach me', or discovery-benefiting explanations.