npx claudepluginhub lledellebell/glean --plugin glean-learn/learnAnalyzes current session for reusable patterns (error fixes, debugging, workarounds) and drafts Markdown skill file for user-confirmed save to ~/.claude/skills/learned/.
/learnAutonomously scouts codebase, learns structure, generates or updates documentation with validation-fix loops.
/learnAnalyzes current session for reusable patterns (error fixes, debugging, workarounds) and drafts Markdown skill file for user-confirmed save to ~/.claude/skills/learned/.
/learnToggles learning mode in vibe sessions to enable/disable educational micro-explanations after each step. Accepts 'on', 'off', or no argument to toggle.
/learnDisplays Claude Code best practices guide on sessions, memory, modes, shortcuts, worktrees, and prompting. Supports <topic> for specifics and 'save' to capture session lessons.
/learnRecords lessons learned from input, errors, sessions, or git history; tags patterns; suggests automations like commands/skills; updates CLAUDE.md. Also supports list, edit, remove.
Record and track what you learn from sessions.
/learn <command> [options]
/learn add "<content>" [--topic <topic>] [--source <source>]
/learn list [--topic <topic>] [--period <period>]
/learn review [--count <n>]
/learn quiz [--topic <topic>]
| Field | Description |
|---|---|
| topic | Topic classification (react, typescript, git, etc.) |
| difficulty | Difficulty level (beginner, intermediate, advanced) |
| source | Source (docs, blog, experiment, etc.) |
| confidence | Understanding level (1-5) |
| lastReview | Last review date |
β
Learning record added
π Difference between React Query staleTime vs cacheTime
π·οΈ Topic: react-query
π Difficulty: intermediate
π
Added: 2024-01-15
Related records:
- React Query basics (01-10)
- useQuery options (01-12)
## π Learning Records
### This Week (5)
| Topic | Content | Confidence | Date |
|-------|---------|------------|------|
| react-query | staleTime vs cacheTime | ββββ | 01-15 |
| typescript | Conditional types | βββ | 01-14 |
| git | rebase vs merge | βββββ | 01-13 |
### Distribution by Topic
- React (12)
- TypeScript (8)
- Git (5)
## π Items Due for Review
### 1. TypeScript Conditional Types
π
Last review: 7 days ago
π Confidence: βββ
```typescript
type NonNullable<T> = T extends null | undefined ? never : T;
[Got it β] [Review again] [Show explanation]
Remaining items: 4
## Spaced Repetition
Auto-managed review schedule:
- Confidence 5: Review in 30 days
- Confidence 4: Review in 14 days
- Confidence 3: Review in 7 days
- Confidence 2: Review in 3 days
- Confidence 1: Review in 1 day
## Examples
```bash
# Add learning record
/learn add "React useCallback memoises function references" --topic react
# View by topic
/learn list --topic typescript
# This week's learnings
/learn list --period week
# Start review
/learn review
# Quiz mode
/learn quiz --topic react
~/.glean/learn/1. Parse input (content, topic, difficulty, etc.)
2. Call learn-store.createLearnItem()
3. Set initial confidence 3, nextReview 7 days later
4. Save to ~/.glean/learn/learn-xxx.json
5. Output result
1. Call learn-store.getAllItems(filter)
2. Apply filters (topic, period, status)
3. Output in table format
4. Show stats by topic/difficulty
1. Call learn-store.getDueItems(limit)
2. Sort by priority (urgent β normal β low)
3. For each item:
a. Display content
b. Ask confidence with AskUserQuestion
c. Call learn-store.completeReview(id, confidence)
d. Show next review schedule
4. Show stats at session end
1. Filter items by topic
2. Present in random order
3. For each item:
a. Show only title
b. Ask "Explain" or "Code example?"
c. Self-evaluate after revealing answer
4. Update confidence based on results
// Using lib/spaced-repetition.js
// Calculate next schedule after review
const { nextReview, newEaseFactor } = calculateNextReview(
newConfidence, // 1-5
lastReview, // Last review date
reviewCount, // Review count
easeFactor // SM-2 difficulty factor
);
// Mastered condition
// 3 consecutive confidence 5 β status: 'mastered'
With --to-learn option in /insight:
1. Filter learning type insights
2. Call learn-store.createFromInsight(insight)
3. insight-store.markAsConvertedToLearn(id, learnId)
/harvest - Auto-extract learnings from session/insight - Convert insights to learning records/bridge - External plugin integration