From personal-tutor
Delivers structured multi-session tutoring for technical topics with Socratic diagnostics, knowledge graphs for prerequisites, agendas, teaching, quizzes, and progress tracking.
npx claudepluginhub hamsurang/kit --plugin personal-tutorThis skill uses the workspace's default tool permissions.
**Sections:** [Session Start](#session-start) · [Phase 1: Diagnostic](#phase-1-socratic-diagnostic-first-session-only) · [Phase 2: Agenda](#phase-2-agenda-planning) · [Phase 3: Teaching](#phase-3-teaching) · [Phase 4: Quiz](#phase-4-verification-quiz) · [Phase 5: Archive](#phase-5-archive) · [Iron Rules](#iron-rules)
Generates researched, module-based learning plans for technical or general topics. Saves plans and quiz progress to ~/.claude/learning/ directories. Resumes existing plans with status.
Guides structured learning of new technologies, skills, or topics as a coach: assesses knowledge, designs paths, teaches material, tests understanding, adapts based on feedback, and plans spaced repetition reviews.
Tutors developers interactively on any topic using adaptive modes like Socratic questioning, mixed drills, mental models, and active recall to build deep understanding.
Share bugs, ideas, or general feedback.
Sections: Session Start · Phase 1: Diagnostic · Phase 2: Agenda · Phase 3: Teaching · Phase 4: Quiz · Phase 5: Archive · Iron Rules
typescript-generics, "Rust" → rust~/.claude/learning/topics/{topic}/knowledge-graph.md
~/.claude/learning/learner-profile.md → jump to Phase 2~/.claude/learning/topics/{topic}/ → start Phase 1Ask 5–7 open-ended questions to map existing knowledge. One question at a time. Examples:
After mapping, ask once: "Is there a reference you'd like me to draw from? (book, docs, course — optional)"
knowledge-graph.md header as Reference: [title + URL]; use for examples and citations only — Claude leads curriculumReference: noneRead knowledge-graph-template.md only when creating a new knowledge graph (first session for a topic). Create knowledge-graph.md using the template. Seed nodes based on the topic's prerequisite tree. All nodes start as gap.
Keep the initial knowledge graph to 10–15 nodes. If the topic is broad (e.g., "Rust"), scope to a subtopic first (e.g., "Rust ownership and borrowing"). Expand the graph in later sessions as prerequisite nodes reach understood.
Session composition (respect Cognitive Load Theory):
gap nodes whose prerequisites are ALL ≥ partialpartial node (skip if none)understood node's last quiz was 30+ days ago, add it to the review slotIf learner-profile.md exists, read it and adjust approach before Phase 3:
Announce the agenda to the user before starting.
Loop for each concept in agenda:
If stuck or confused:
Run one quiz per new concept taught. Do NOT skip. Rotate formats:
| Format | Prompt style | Tests |
|---|---|---|
| Feynman | "Explain this to me like I'm 5" | Internalization |
| Apply | "What's wrong with this code?" + [code snippet] | Application |
| Analyze | "Why was this designed this way?" | Deep understanding |
Track hint usage: Did you give any hints during the quiz? Note it.
passed (no hint)passed (hint used)Run this phase at the end of every session. Do not skip even if session is short.
Step 1: Update node states in knowledge-graph.md
Upgrade rules:
gap → partial: passed quiz this session (hint OK)partial → understood: node was already partial from a prior session AND passed quiz today WITHOUT hintsNever downgrade a node. If quiz failed: add note to quiz history AND flag concept in learner-profile as "needs reinforcement" (propose this to user in Step 3).
partial → gap and re-teach from a different angle next sessionDepth progression (update when quiz demonstrates deeper mastery):
explainapplyStep 2: Write session log
Create ~/.claude/learning/topics/{topic}/sessions/YYYY-MM-DD-session-N.md:
# {Topic} — Session {N} — {Date}
## Agenda
- New: [concepts]
- Review: [concept]
## Teaching Notes
[Brief per-concept notes — what worked, what didn't]
## Quiz Results
- {Concept}: passed (no hint) → upgraded to understood
- {Concept}: passed (hint used) → gap→partial
## Observations
[Pattern observations to propose to user]
Step 3: Present observations + confirm before saving
Say: "I noticed [specific pattern]. Want me to save this to your learner profile?"
Wait for explicit confirmation. Then update ~/.claude/learning/learner-profile.md:
# Learner Profile
## Learning Patterns
- Responds well to: [...]
- Struggles with: [...]
- Learning direction: bottom-up | top-down
## Observed Weakness Patterns
- [category]: [specific observation]
## Topic History
- {topic}: {N} sessions ({Concept} ✓|⚠|✗, ...)
If the user needs to leave mid-session:
These rules are non-negotiable. Do not skip them under any circumstances.
learner-profile.md without explicit user confirmation — accuracy matters more than automation