dashboard
Use only when user explicitly asks to "open dashboard", "show dashboard", "launch dashboard", or "learning UI". Opens a local web…
Use when user wants to learn a topic or create a study plan. Triggers on "teach me", "I want to learn", "explain X to me", "study", "help me understand", "where do I start with", "how do I get into", or any request to understand a subject in depth. Covers both technical topics
$ npx -y skills add kirilxd/claude-tutor --skill learn --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/learnContext preview
The summary Claude sees to decide when to auto-load this skill.
Use when user wants to learn a topic or create a study plan. Triggers on "teach me", "I want to learn", "explain X to me", "study", "help me understand", "where do I start with", "how do I get into", or any request to understand a subject in depth. Covers both technical topics
name: learn description: Use when user wants to learn a topic or create a study plan. Triggers on "teach me", "I want to learn", "explain X to me", "study", "help me understand", "where do I start with", "how do I get into", or any request to understand a subject in depth. Covers both technical topics (programming, system design, DevOps) and general knowledge (history, science, languages, music theory). Also use when someone asks for a "learning path", "roadmap", or "curriculum" for a topic — even if they don't explicitly say "learn".
Guide the user from a vague "I want to learn X" into a structured, researched learning plan with curated resources. Ask clarifying questions, research the topic, and produce a module-by-module plan saved to disk.
The learning system uses three separate directories. Each directory has ONE purpose:
| Directory | Stores | Allowed fields | |---|---|---| | `~/.claude/learning/plans/` | Learning plans ONLY | topic, slug, created, level, goal, depth, timeCommitment, modules, totalEstimatedTime, diagnostic | | `~/.claude/learning/progress/` | Quiz progress ONLY | topic, quizzes, weakAreas, strongAreas, overallScore, spacedRepetition | | `~/.claude/learning/` (root) | index.json + profile.json ONLY | topics (index), learningStyle/background/createdTopics (profile) |
CORRECT — saving a learning plan: `~/.claude/learning/plans/dns-2026-03-29.json` WRONG — saving a learning plan: `~/.claude/learning/progress/dns.json`
CORRECT — saving quiz progress: `~/.claude/learning/progress/dns.json` WRONG — saving quiz progress: `~/.claude/learning/plans/dns-2026-03-29.json`
CORRECT — saving any learning data: `~/.claude/learning/plans/dns-2026-03-29.json` WRONG — saving to project directory: `./learning/plans/dns-2026-03-29.json`
Always use the ABSOLUTE path `~/.claude/learning/` — never a relative path like `./learning/`. Never add quiz fields (quizzes, weakAreas, strongAreas, spacedRepetition, overallScore) to plan files. Never add plan fields (modules, resources, goal, depth, timeCommitment) to progress files. Verify the path is correct BEFORE writing.
Before starting a new plan, check if this topic already exists.
Read `~/.claude/learning/index.json` and look for a matching topic (fuzzy match same as quiz skill: "k8s" → "kubernetes").
**If the topic exists:** 1. Read the plan file and progress file 2. Show a brief status:
── Resuming: [Topic] ──────────────────── Level: [level] | Modules: [completed]/[total] | Score: [score]% Last activity: [date] ──────────────────────────────────────────
3. Determine the next action:
4. If user wants to continue, teach the next incomplete module interactively (see Phase 5: Teach) 5. If user wants to adjust, load the existing plan and let them modify it
**If the topic is new:** proceed to Phase 0 (profile) and Phase 1 (scope).
Read `~/.claude/learning/profile.json` if it exists.
**If profile exists:**
**If no profile exists (first time):**
**If profile exists and this is a new topic:**
**ALWAYS** use the `AskUserQuestion` tool when asking the user questions, in any context. If you have too many questions for the tool, split them up into multiple calls.
Ask 2-5 clarifying questions, skipping any already answered by the user's initial message.
**Rules:**
**Question 1 — Current level:**
Ask "What's your current experience with [topic]?" with options:
**Question 2 — Learning goal:**
Ask "What do you want to be able to do after learning [topic]?" with 3 topic-specific goal options. Each option needs a label and a description.
**Question 3 — Depth** (optional):
Ask "How deep do you want to go?" with options:
**Question 4 — Focus areas** (optional):
Ask which areas to focus on. Allow selecting multiple from 2-4 topic-specific subtopics, each with a label and description.
**Question 5 — Time commitment** (optional):
Ask "How much time do you want to invest?" with options:
Turn Claude Code into your personal tutor — personalized learning plans, adaptive quizzes, SM-2 spaced repetition, and a web dashboard. Works with any topic.
Use only when user explicitly asks to "open dashboard", "show dashboard", "launch dashboard", or "learning UI". Opens a local web…
Use when user wants to be tested or quizzed on any topic. Triggers on "quiz me", "test me", "test my knowledge", "practice…
Use when user asks for learning resources, recommendations, or materials on any topic. Triggers on "find me resources", "what…