Teach Me
Step-by-step explanation of a concept with progressive depth.
Usage
/learn:teach React hooks # Learn about React hooks
/learn:teach async/await # Understand async patterns
/learn:teach SOLID principles # Learn design principles
/learn:teach --deep SQL joins # In-depth explanation
Instructions
- Start with a one-sentence definition of the concept
- Explain why it matters (real-world problem it solves)
- Show a minimal example (simplest possible code)
- Break down each part of the example with comments
- Show a practical example (real-world use case)
- Highlight common mistakes beginners make
- Suggest next concepts to learn
Response Format
## [Concept Name]
**In one sentence**: [Clear, simple definition]
### Why It Matters
[1-2 sentences on the problem this solves]
### Minimal Example
\`\`\`[language]
// Simplest possible demonstration
[code]
\`\`\`
**Line by line**:
- Line 1: [explanation]
- Line 2: [explanation]
...
### Practical Example
\`\`\`[language]
// Real-world scenario
[code]
\`\`\`
### Common Mistakes
1. **[Mistake]**: [Why it's wrong and what to do instead]
2. **[Mistake]**: [Why it's wrong and what to do instead]
### Key Takeaways
- [Bullet point 1]
- [Bullet point 2]
- [Bullet point 3]
### Learn Next
- [Related concept 1]: [why it connects]
- [Related concept 2]: [why it connects]
---
**Practice challenge**: [Small exercise to reinforce the concept]
Depth Modes
Default
- One-sentence definition
- One minimal example
- One practical example
- 2-3 common mistakes
--deep
- Extended explanation with history/context
- Multiple examples of increasing complexity
- Edge cases and gotchas
- Performance considerations
- Comparison with alternatives
- Interview-relevant details
--quick
- Definition only
- Single example
- No extras
Adaptation Rules
For Beginners
- Use analogies from everyday life
- Avoid jargon (or explain it immediately)
- More comments in code
- Smaller code examples
For Intermediates
- Assume basic syntax knowledge
- Focus on "why" over "what"
- Include trade-offs
- Show idiomatic patterns
For Advanced Topics
- Reference official documentation
- Discuss internal implementation when relevant
- Include performance implications
- Mention related patterns
Example Session
User: /learn:teach useEffect
Claude: ## useEffect
**In one sentence**: useEffect lets you run side effects (data fetching, subscriptions, DOM changes) after React renders a component.
### Why It Matters
React components are pure functions that render UI. But real apps need to interact with the outside world: APIs, browser events, timers. useEffect is the bridge between React's declarative world and imperative side effects.
### Minimal Example
\`\`\`jsx
import { useEffect, useState } from 'react';
function Timer() {
const [seconds, setSeconds] = useState(0);
useEffect(() => {
const id = setInterval(() => {
setSeconds(s => s + 1);
}, 1000);
return () => clearInterval(id); // Cleanup
}, []); // Empty array = run once
return <div>{seconds}s</div>;
}
\`\`\`
**Line by line**:
- `useEffect(() => {...}, [])`: Run this function after first render
- `setInterval(...)`: Start a timer (side effect)
- `return () => clearInterval(id)`: Cleanup when component unmounts
- `[]`: Empty dependency array = only run on mount
### Common Mistakes
1. **Missing dependency array**: Without `[]`, effect runs on EVERY render
2. **Forgetting cleanup**: Intervals/subscriptions leak without return function
3. **Stale closures**: Using old state values instead of functional updates
---
**Practice challenge**: Add a pause button that stops and resumes the timer.
Topics Well-Suited for /learn:teach
| Category |
Examples |
| React |
hooks, context, suspense, server components |
| JavaScript |
closures, promises, event loop, prototypes |
| TypeScript |
generics, mapped types, utility types |
| Patterns |
SOLID, DI, composition, factories |
| Backend |
REST, GraphQL, authentication, caching |
| Database |
indexes, joins, transactions, normalization |
| DevOps |
containers, CI/CD, infrastructure as code |
$ARGUMENTS
1---2name: learn-teach3description: Step-by-step explanation of a concept with progressive depth4---5
6# Teach Me
7
8Step-by-step explanation of a concept with progressive depth.
9
10## Usage
11
12```
13/learn:teach React hooks # Learn about React hooks
14/learn:teach async/await # Understand async patterns
15/learn:teach SOLID principles # Learn design principles
16/learn:teach --deep SQL joins # In-depth explanation
17```
18
19## Instructions
20
211. Start with a **one-sentence definition** of the concept
222. Explain **why it matters** (real-world problem it solves)
233. Show a **minimal example** (simplest possible code)
244. Break down **each part** of the example with comments
255. Show a **practical example** (real-world use case)
266. Highlight **common mistakes** beginners make
277. Suggest **next concepts** to learn
28
29## Response Format
30
31```markdown
32## [Concept Name]
33
34**In one sentence**: [Clear, simple definition]
35
36### Why It Matters
37
38[1-2 sentences on the problem this solves]
39
40### Minimal Example
41
42\`\`\`[language]
43// Simplest possible demonstration
44[code]
45\`\`\`
46
47**Line by line**:
48- Line 1: [explanation]
49- Line 2: [explanation]
50...
51
52### Practical Example
53
54\`\`\`[language]
55// Real-world scenario
56[code]
57\`\`\`
58
59### Common Mistakes
60
611. **[Mistake]**: [Why it's wrong and what to do instead]
622. **[Mistake]**: [Why it's wrong and what to do instead]
63
64### Key Takeaways
65
66- [Bullet point 1]
67- [Bullet point 2]
68- [Bullet point 3]
69
70### Learn Next
71
72- [Related concept 1]: [why it connects]
73- [Related concept 2]: [why it connects]
74
75---
76
77**Practice challenge**: [Small exercise to reinforce the concept]
78```
79
80## Depth Modes
81
82### Default
83- One-sentence definition
84- One minimal example
85- One practical example
86- 2-3 common mistakes
87
88### `--deep`
89- Extended explanation with history/context
90- Multiple examples of increasing complexity
91- Edge cases and gotchas
92- Performance considerations
93- Comparison with alternatives
94- Interview-relevant details
95
96### `--quick`
97- Definition only
98- Single example
99- No extras
100
101## Adaptation Rules
102
103### For Beginners
104- Use analogies from everyday life
105- Avoid jargon (or explain it immediately)
106- More comments in code
107- Smaller code examples
108
109### For Intermediates
110- Assume basic syntax knowledge
111- Focus on "why" over "what"
112- Include trade-offs
113- Show idiomatic patterns
114
115### For Advanced Topics
116- Reference official documentation
117- Discuss internal implementation when relevant
118- Include performance implications
119- Mention related patterns
120
121## Example Session
122
123```
124User: /learn:teach useEffect
125
126Claude: ## useEffect
127
128**In one sentence**: useEffect lets you run side effects (data fetching, subscriptions, DOM changes) after React renders a component.
129
130### Why It Matters
131
132React components are pure functions that render UI. But real apps need to interact with the outside world: APIs, browser events, timers. useEffect is the bridge between React's declarative world and imperative side effects.
133
134### Minimal Example
135
136\`\`\`jsx
137import { useEffect, useState } from 'react';
138
139function Timer() {
140 const [seconds, setSeconds] = useState(0);
141
142 useEffect(() => {
143 const id = setInterval(() => {
144 setSeconds(s => s + 1);
145 }, 1000);
146
147 return () => clearInterval(id); // Cleanup
148 }, []); // Empty array = run once
149
150 return <div>{seconds}s</div>;
151}
152\`\`\`
153
154**Line by line**:
155- `useEffect(() => {...}, [])`: Run this function after first render
156- `setInterval(...)`: Start a timer (side effect)
157- `return () => clearInterval(id)`: Cleanup when component unmounts
158- `[]`: Empty dependency array = only run on mount
159
160### Common Mistakes
161
1621. **Missing dependency array**: Without `[]`, effect runs on EVERY render
1632. **Forgetting cleanup**: Intervals/subscriptions leak without return function
1643. **Stale closures**: Using old state values instead of functional updates
165
166---
167
168**Practice challenge**: Add a pause button that stops and resumes the timer.
169```
170
171## Topics Well-Suited for /learn:teach
172
173| Category | Examples |
174|----------|----------|
175| **React** | hooks, context, suspense, server components |
176| **JavaScript** | closures, promises, event loop, prototypes |
177| **TypeScript** | generics, mapped types, utility types |
178| **Patterns** | SOLID, DI, composition, factories |
179| **Backend** | REST, GraphQL, authentication, caching |
180| **Database** | indexes, joins, transactions, normalization |
181| **DevOps** | containers, CI/CD, infrastructure as code |
182
183$ARGUMENTS