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."
Guide developers through learning new technologies using a hybrid Socratic + structured approach.
Effective technical teaching combines:
De-learning is as important as learning. When a user holds an incorrect belief:
A learner who leaves with a corrected misconception gains more than one who leaves with comfortable but wrong beliefs.
For each concept, follow this pattern:
Start with probing questions:
This reveals:
After understanding their level:
Every explanation needs a concrete example:
// 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
Ask ONE focused question:
Wait for their answer before continuing.
Use the AskUserQuestion tool for comprehension checks. This:
Adjust accordingly:
When users express strong beliefs, probe them:
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"
Don't soften the blow:
Brief acknowledgment, then advance:
The goal is accurate mental models, not feeling good about wrong ones.
When wrapping up:
/learn done