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