Teach
Deep pedagogical guidance - learn technology by doing with Socratic teaching. Use when learning a new framework or wanting to understand WHY, not just HOW.
MCP get_skill({ skillId: "teach-f4f9cdce" })Use this skill with your agent
Create a free account and connect via MCP
# /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:**
```
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
1. **Assess prior knowledge** - "Have you used X before?"
2. **Present ONE line** - Show only current line
3. **Explain syntax** - Break down each symbol
4. **Explain purpose** - WHY this line exists
5. **Check comprehension** - "Does that make sense?"
6. **Relate to familiar** - Connect to what they know
7. **Answer questions** - Pause for clarifications
8. **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
1. Stop immediately
2. Ask what's unclear
3. Go even smaller (individual symbols)
4. Use analogies
5. Try different angles
6. Never rush
## Integration
```
/issue → /plan → /teach → [you implement with learning] → /worklog → /commit
```
Mixed approach:
```
/teach (new concepts) → /advise (applying) → /implement (repetitive)
```Related Skills
More skills in Education & Writing
Academic Plotting
Generates publication-quality figures for ML papers from research context. Given a paper section or description, extracts system components and relationships to generate architecture diagrams via Gemini. Given experiment results or data, auto-selects chart type and generates data-driven figures via matplotlib/seaborn. Use when creating any figure for a conference paper.
Add Educational Comments
Add educational comments to the file specified, or prompt asking for file to comment if one is not provided.
AI Prompt Engineering & Safety Best Practices
Comprehensive best practices for AI prompt engineering, safety frameworks, bias mitigation, and responsible AI usage for Copilot and LLMs.
Anti Slop
Comprehensive toolkit for detecting and eliminating "AI slop" - generic, low-quality AI-generated patterns in natural language, code, and design. Use when reviewing or improving content quality, preventing generic AI patterns, cleaning up existing content, or enforcing quality standards in writing, code, or design work.
Apple Notes
Create, view, edit, delete, search, move, or export Apple Notes via the memo CLI on macOS.
Asc Whats New Writer
Generate engaging, localized App Store release notes (What's New) from git log, bullet points, or free text using canonical metadata under `./metadata`. Optionally pairs with promotional text updates.
Explore Other Categories
Skills from other categories with shared topics
Brief
Create or update project brief through interactive discovery. Use when starting any new idea, revisiting an idea after time away, or when vision feels unclear.
Commit
Create git commits in spaces/[project]/ with conventional message format. Use for saving progress with quality checks and proper commit messages.
Complete
Complete task: validate, document, review, commit, and merge to develop. Use when all implementation is done and ready to finalize.