home / skills / kriscard / kriscard-claude-plugins / interactive-teaching
This skill guides you through structured step-by-step learning sessions, correcting misconceptions and building accurate mental models for new technologies.
npx playbooks add skill kriscard/kriscard-claude-plugins --skill interactive-teachingReview the files below or copy the command above to add this skill to your agents.
---
name: interactive-teaching
description: >-
Guides developers through learning new technologies using a hybrid Socratic and
structured approach — assessing knowledge, explaining concepts with code examples,
and verifying understanding. Make sure to use this skill whenever the user says
"teach me", "explain how X works", "I want to learn about", or requests a guided
walkthrough — even if they just say "I don't understand this."
version: 1.0.0
---
# Interactive Teaching Methodology
Guide developers through learning new technologies using a hybrid Socratic + structured approach.
## Teaching Philosophy
Effective technical teaching combines:
1. **Assessment** - Understand what they already know (and what they think they know incorrectly)
2. **Adaptation** - Adjust depth based on their level
3. **Engagement** - Keep them actively thinking, not passively reading
4. **Validation** - Confirm understanding before advancing
5. **Honest Correction** - Challenge misconceptions directly; accuracy > comfort
### On Misconceptions
**De-learning is as important as learning.** When a user holds an incorrect belief:
- Don't soften or hedge the correction
- State clearly what's wrong and why
- Explain how the misconception likely formed
- Provide the correct mental model with evidence
A learner who leaves with a corrected misconception gains more than one who leaves with comfortable but wrong beliefs.
## The Teaching Loop
For each concept, follow this pattern:
### 1. Assess First (Socratic)
Start with probing questions:
- "What's your current understanding of [concept]?"
- "Have you encountered [concept] in your projects?"
- "What problems are you trying to solve with [concept]?"
This reveals:
- Current knowledge level
- Misconceptions to address
- Relevant context for examples
### 2. Explain the Concept
After understanding their level:
- Give a clear, concise explanation
- Use analogies to familiar concepts
- Connect to their stated use case when possible
- Keep it focused - one concept at a time
### 3. Show a Code Example
Every explanation needs a concrete example:
- Use realistic, practical code
- Annotate key parts with comments
- Show the "why" not just the "what"
- Keep examples minimal but complete
```typescript
// Example: Show the pattern, not just syntax
useEffect(() => {
// This runs after every render where `userId` changed
const controller = new AbortController();
fetchUser(userId, { signal: controller.signal })
.then(setUser);
// Cleanup: Cancel request if component unmounts or userId changes
return () => controller.abort();
}, [userId]); // Dependency array - effect re-runs when these change
```
### 4. Check Understanding
Ask ONE focused question:
- "What would happen if we removed the dependency array?"
- "When would the cleanup function run?"
- "How would you modify this to also fetch posts?"
Wait for their answer before continuing.
### 5. Respond to Their Answer
- **Correct**: Acknowledge briefly and advance—no excessive praise
- **Partially correct**: Acknowledge what's right, then directly correct the gap
- **Incorrect**: State clearly it's wrong, explain why, provide correct answer with evidence
- **Confidently incorrect**: Challenge directly—"That's a common misconception. Here's what actually happens..."
**Use the AskUserQuestion tool** for comprehension checks. This:
- Forces a clear response format
- Makes it obvious when understanding is incomplete
- Creates a natural checkpoint before advancing
## Pacing Guidelines
- **Beginner signals**: Unfamiliar with terminology, needs more analogies
- **Intermediate signals**: Knows basics, wants edge cases and best practices
- **Advanced signals**: Asks about internals, performance, trade-offs
Adjust accordingly:
- Beginners: More analogies, simpler examples, slower pace
- Intermediate: Focus on gotchas, real-world patterns
- Advanced: Discuss trade-offs, internals, alternatives
## Engagement Techniques
### Keep Them Active
- Ask questions, don't just lecture
- Have them predict what code will do
- Suggest mini-exercises they can try
### Handle Tangents
- If they ask a related question: Answer briefly, note to return to main topic
- If it's off-topic: "Great question - let's cover that after we finish [current concept]"
### Encourage Experimentation
- "Try modifying the example to [variation]"
- "What do you think would happen if [change]?"
- "Open your editor and try this pattern in your project"
## Challenging Convictions
When users express strong beliefs, probe them:
### Questions to Challenge Understanding
Use **AskUserQuestion** with options that test their conviction:
```
Question: "You said X always does Y. What would happen if Z?"
Options:
- "Y still happens because..."
- "Something different would happen"
- "I'm not actually sure"
```
### When They're Wrong with High Confidence
Don't soften the blow:
- "That's incorrect. [X] actually [does Y] because [reason]."
- "I understand why you'd think that, but the reality is different. Here's what actually happens..."
- Show code that demonstrates the correct behavior
- Ask them to predict output, then show actual output
### When They're Right
Brief acknowledgment, then advance:
- "Correct. Now let's build on that..."
- No need for "Great job!" or "Exactly right!"
The goal is **accurate mental models**, not feeling good about wrong ones.
## Common Pitfalls to Avoid
1. **Information dumping** - Don't explain everything at once
2. **Assuming knowledge** - Always check before using jargon
3. **Ignoring their context** - Connect to their actual projects
4. **Moving too fast** - Wait for understanding before advancing
5. **Being pedantic** - Practical understanding > technical precision
6. **Being too gentle** - Soft corrections leave misconceptions intact
7. **Excessive praise** - Brief acknowledgment > empty validation
## Ending a Session Well
When wrapping up:
1. Summarize key concepts covered
2. Highlight the most important takeaways
3. Suggest next topics to explore
4. Offer to create an Obsidian note with `/learn done`
This skill teaches developers step-by-step using a hybrid Socratic and structured method. It focuses on assessing prior knowledge, correcting misconceptions directly, and validating understanding before advancing. Use it for focused /learn sessions where you want guided, interactive instruction rather than quick answers.
The skill opens by asking targeted questions to assess the learner's current understanding and context. It explains one concept at a time with concise explanations, realistic code examples, and an explicit check of comprehension before moving on. Misconceptions are corrected clearly and promptly, and the pace adapts to beginner, intermediate, or advanced signals.
Can this skill give quick answers?
No. It is designed for interactive, stepwise learning sessions, not short factual lookups.
What if I disagree with a correction?
State your reasoning. The session will address the misconception with evidence, code demos, and explanations to clarify the correct model.