/teach
Line-by-line, Socratic teaching. Build genuine understanding while completing real work.
Usage
bash
/teach 001 # Learn through issue 001 /teach yourbench 001 # Explicit project /teach 001 --phase 2.1 # Start at specific phase
Comparison
| Aspect | /implement | /advise | /teach |
|---|---|---|---|
| Who writes code | AI | You | You |
| Speed | Fast | Medium | Slower |
| Depth | Task completion | Task guidance | Conceptual learning |
| Questions | Few | As needed | Frequent, Socratic |
| Explanations | Minimal | Practical | Line-by-line |
| Granularity | File-level | Step-level | Line-level |
Teaching Approach
Core principle: Break down EVERY piece of code into individual lines and explain each one conceptually.
Example:
code
AI: "First line:
import Database from 'better-sqlite3';
This imports the better-sqlite3 library. Do you know what 'import' does
in JavaScript?"
User: "It brings in code from another file?"
AI: "Exactly! The 'from' part tells it which package...
Ready for the next line?"
User: "Yes"
AI: "Next line:
import { env } from '@/env';
This one has curly braces { }. What do you think those mean?"
Teaching Style
- •Micro-steps - One line at a time
- •Constant checks - After every 1-3 lines, verify understanding
- •First principles - Explain WHY syntax exists
- •Build vocabulary - Name concepts (named vs default exports)
- •No assumptions - Explain even "obvious" things
- •Connect dots - Link to previous work
- •Invite questions - "Want to see that file again?"
Execution Flow
1. Load Context
bash
Read: ideas/[project]/issues/###-*/TASK.md Read: ideas/[project]/issues/###-*/PLAN.md Read: ideas/[project]/specs/SPEC-###.md Glob: spaces/[project]/docs/project/adrs/ADR-*.md
2. Line-by-Line Teaching
- •Assess prior knowledge - "Have you used X before?"
- •Present ONE line - Show only current line
- •Explain syntax - Break down each symbol
- •Explain purpose - WHY this line exists
- •Check comprehension - "Does that make sense?"
- •Relate to familiar - Connect to what they know
- •Answer questions - Pause for clarifications
- •Move to next - Only after understanding confirmed
Critical: Never show more than 2-3 lines at once
3. Research as Needed
- •Use Context7 for authoritative docs
- •WebSearch for tutorials, explanations
- •Reference codebase as learning examples
4. Check Understanding
- •"Why did we do X instead of Y?"
- •"What do you think would happen if...?"
- •"Can you walk me through what you wrote?"
5. Update WORKLOG
markdown
## YYYY-MM-DD HH:MM - TEACHING: Database Setup **Concepts covered**: - Import statements: named vs default exports - TypeScript types - Singleton pattern **User demonstrated understanding**: - Correctly explained named vs default exports - Asked good clarifying question about singleton **Areas needing reinforcement**: - Path resolution methods
When to Use
Good for:
- •Learning a new framework/library
- •Want to understand WHY, not just HOW
- •Building mental models
- •Comfortable going slower
Use /advise instead:
- •Know the tech, just need task guidance
- •Want faster pace
- •Task-focused, not learning-focused
Use /implement instead:
- •Just want it done quickly
- •Will learn by reading code later
Teaching Techniques
Socratic Questioning
- •"What do you think would happen if...?"
- •"Why do you think they designed it this way?"
Relating to Prior Knowledge
- •"Remember how in React you use useState? In Next.js..."
Building Mental Models
- •Draw analogies: "The database is like a filing cabinet..."
- •Show alternatives: "We could also do X, but..."
When User Gets Stuck
- •Stop immediately
- •Ask what's unclear
- •Go even smaller (individual symbols)
- •Use analogies
- •Try different angles
- •Never rush
Integration
code
/issue → /plan → /teach → [you implement with learning] → /worklog → /commit
Mixed approach:
code
/teach (new concepts) → /advise (applying) → /implement (repetitive)