Self-Assessment & Learning Path Advisor
Comprehensive interactive assessment that evaluates Claude Code proficiency across 10 feature areas, identifies specific skill gaps, and generates a personalized learning path to level up.
Instructions
Step 1: Welcome & Choose Assessment Mode
Present the user with a choice of assessment depth:
Use AskUserQuestion with these options:
- Quick Assessment — "8 questions, ~2 minutes. Determines your overall level (Beginner/Intermediate/Advanced) and gives a learning path."
- Deep Assessment — "5 categories with detailed questions, ~5 minutes. Gives per-topic skill scores, identifies specific gaps, and builds a prioritized learning path."
If user chooses Quick Assessment, go to Step 2A.
If user chooses Deep Assessment, go to Step 2B.
Step 2A: Quick Assessment
Present TWO multi-select questions (AskUserQuestion supports max 4 options each):
Question 1 (header: "Basics"):
"Part 1/2: Which of these Claude Code skills do you already have?"
Options:
- "Start Claude Code and chat" — I can run
claude and interact with it
- "Created/edited CLAUDE.md" — I have set up project or user memory
- "Used 3+ slash commands" — e.g., /help, /compact, /model, /clear
- "Created custom command/skill" — Written a SKILL.md or custom command file
Question 2 (header: "Advanced"):
"Part 2/2: Which of these advanced skills do you have?"
Options:
- "Configured an MCP server" — e.g., GitHub, database, or other external data source
- "Set up hooks" — Configured hooks in ~/.claude/settings.json
- "Created/used subagents" — Used .claude/agents/ for task delegation
- "Used print mode (claude -p)" — Used
claude -p for non-interactive or CI/CD use
Scoring:
- 0-2 total = Level 1: Beginner
- 3-5 total = Level 2: Intermediate
- 6-8 total = Level 3: Advanced
Go to Step 3 with the level result, listing which specific items were NOT checked as gaps.
Step 2B: Deep Assessment
Present 5 rounds of questions, one AskUserQuestion call per round. Each round covers 2 related feature areas. Use multi-select for all rounds.
IMPORTANT: AskUserQuestion supports max 4 options per question. Each round has exactly 1 question with 4 options covering 2 topics (2 options per topic).
Round 1 — Slash Commands & Memory (header: "Commands")
"Which of these have you done? Select all that apply."
Options:
- "Created a custom slash command or skill" — Written a SKILL.md file with frontmatter, or created .claude/commands/ files
- "Used dynamic context in commands" — Used
$ARGUMENTS, $0/$1, backtick !command syntax, or @file references in skill/command files
- "Set up project + personal memory" — Created both a project CLAUDE.md and personal ~/.claude/CLAUDE.md (or CLAUDE.local.md)
- "Used memory hierarchy features" — Understand how the 7 memory locations are concatenated into context (loaded root-down, CLAUDE.local.md appended after CLAUDE.md at each level, subdirectory files loaded on demand), used .claude/rules/ directory, path-specific rules, or @import syntax
Scoring for Round 1:
- Options 1-2 map to Slash Commands (0-2 points)
- Options 3-4 map to Memory (0-2 points)
Round 2 — Skills & Hooks (header: "Automation")
"Which of these have you done? Select all that apply."
Options:
- "Installed and used an auto-invoked skill" — A skill that triggers automatically based on its description, without manual /command invocation
- "Controlled skill invocation behavior" — Used
disable-model-invocation, user-invocable, or context: fork with agent field in SKILL.md frontmatter
- "Set up a PreToolUse or PostToolUse hook" — Configured a hook that runs before/after tool execution (e.g., command validator, auto-formatter)
- "Used advanced hook features" — Configured prompt-type hooks, component-scoped hooks in SKILL.md, HTTP hooks, or hooks with custom JSON output (updatedInput, systemMessage)
Scoring for Round 2:
- Options 1-2 map to Skills (0-2 points)
- Options 3-4 map to Hooks (0-2 points)
Round 3 — MCP & Subagents (header: "Integration")
"Which of these have you done? Select all that apply."
Options:
- "Connected an MCP server and used its tools" — e.g., GitHub MCP for PRs/issues, database MCP for queries, or any external data source
- "Used advanced MCP features" — Project-scope .mcp.json, OAuth authentication, MCP resources with @mentions, Tool Search, or
claude mcp serve
- "Created or configured custom subagents" — Defined agents in .claude/agents/ with custom tools, model, or permissions
- "Used advanced subagent features" — Worktree isolation, persistent agent memory, background tasks with Ctrl+B, agent allowlists with
Agent(agent_type) (the Task(...) form is a back-compat alias), or agent teams
Scoring for Round 3:
- Options 1-2 map to MCP (0-2 points)
- Options 3-4 map to Subagents (0-2 points)
Round 4 — Checkpoints & Advanced Features (header: "Power User")
"Which of these have you done? Select all that apply."
Options:
- "Used checkpoints for safe experimentation" — Created checkpoints, used Esc+Esc or /rewind, restored code and/or conversation, or used either Summarize option (summarize from here / summarize up to here)
- "Used planning mode or extended thinking" — Activated planning via /plan, Shift+Tab, or --permission-mode plan; toggled extended thinking with Alt+T/Option+T
- "Configured permission modes" — Used any of the six modes — manual (renamed from default in v2.1.200), acceptEdits, plan, auto, dontAsk, or bypassPermissions — via CLI flags, keyboard shortcuts, or settings
- "Used remote/desktop/web features" — Used
claude --remote-control, claude --cloud, /teleport, /desktop, or worktrees with claude -w
Scoring for Round 4:
- Option 1 maps to Checkpoints (0-1 point)
- Options 2-4 map to Advanced Features (0-3 points)
Round 5 — Plugins & CLI (header: "Mastery")
"Which of these have you done? Select all that apply."
Options:
- "Installed or created a plugin" — Used a bundled plugin from marketplace, or created a .claude-plugin/ directory with plugin.json manifest
- "Used plugin advanced features" — Plugin skills (
skills/ — the preferred form; namespaced commands/ is legacy but still works), plugin hooks, plugin MCP servers, LSP configuration, or --plugin-dir flag for testing
- "Used print mode in scripts or CI/CD" — Used
claude -p with --output-format json, --max-turns, piped input, or integrated into GitHub Actions / CI pipelines
- "Used advanced CLI features" — Session resumption (-c/-r), --agents flag, --json-schema for structured output, --fallback-model, --from-pr, or batch processing loops
Scoring for Round 5:
- Options 1-2 map to Plugins (0-2 points)
- Options 3-4 map to CLI (0-2 points)
Step 3: Calculate & Present Results
3A: For Quick Assessment
Count total selections and determine level. Then present:
## Claude Code Skill Assessment Results
### Your Level: [Level 1: Beginner / Level 2: Intermediate / Level 3: Advanced]
You checked **N/8** items.
[One-line motivational summary based on level]
### Your Skill Profile
| Area | Status |
|------|--------|
| Basic CLI & Conversations | [Checked/Gap] |
| CLAUDE.md & Memory | [Checked/Gap] |
| Slash Commands (built-in) | [Checked/Gap] |
| Custom Commands & Skills | [Checked/Gap] |
| MCP Servers | [Checked/Gap] |
| Hooks | [Checked/Gap] |
| Subagents | [Checked/Gap] |
| Print Mode & CI/CD | [Checked/Gap] |
### Identified Gaps
[For each unchecked item, provide a 1-line description of what to learn and a link to the tutorial]
### Your Personalized Learning Path
[Output the level-specific learning path — see Step 4]
3B: For Deep Assessment
Calculate per-topic scores from the 5 rounds. Each topic gets 0-2 points, except Advanced Features (0-3) and Checkpoints (0-1). Then present:
## Claude Code Skill Assessment Results
### Overall Level: [Level 1 / Level 2 / Level 3]
**Total Score: N/20 points**
[One-line motivational summary]
### Your Skill Profile
| Feature Area | Score | Mastery | Status |
|-------------|-------|---------|--------|
| Slash Commands | N/2 | [None/Basic/Proficient] | [Learn/Review/Mastered] |
| Memory | N/2 | [None/Basic/Proficient] | [Learn/Review/Mastered] |
| Skills | N/2 | [None/Basic/Proficient] | [Learn/Review/Mastered] |
| Hooks | N/2 | [None/Basic/Proficient] | [Learn/Review/Mastered] |
| MCP | N/2 | [None/Basic/Proficient] | [Learn/Review/Mastered] |
| Subagents | N/2 | [None/Basic/Proficient] | [Learn/Review/Mastered] |
| Checkpoints | N/1 | [None/Proficient] | [Learn/Mastered] |
| Advanced Features | N/3 | [None/Basic/Proficient] | [Learn/Review/Mastered] |
| Plugins | N/2 | [None/Basic/Proficient] | [Learn/Review/Mastered] |
| CLI | N/2 | [None/Basic/Proficient] | [Learn/Review/Mastered] |
**Mastery key:** 0 = None, 1 = Basic, 2 = Proficient
### Strength Areas
[List topics with score 2/2 — these are mastered]
### Priority Gaps (Learn Next)
[List topics with score 0 — these need attention first, ordered by dependency]
### Review Areas
[List topics with score 1/2 — basics known but advanced features not yet used]
### Your Personalized Learning Path
[Output gap-specific learning path — see Step 4]
Overall level calculation for Deep Assessment:
- 0-6 total points = Level 1: Beginner
- 7-13 total points = Level 2: Intermediate
- 14-20 total points = Level 3: Advanced
Step 4: Generate Personalized Learning Path
Based on the assessment results, generate a learning path that is specific to the user's gaps. Do NOT just repeat the generic level path — adapt it.
Rules for Path Generation
- Skip mastered topics: If a topic scored 2/2, do not include it in the path.
- Prioritize by dependency order: Slash Commands before Skills, Memory before Subagents, etc. The dependency order is:
- Slash Commands (no deps) -> Skills (depends on Slash Commands)
- Memory (no deps) -> Subagents (depends on Memory)
- CLI Basics (no deps) -> CLI Mastery (depends on all)
- Checkpoints (no deps)
- Hooks (depends on Slash Commands)
- MCP (no deps) -> Plugins (depends on MCP, Skills, Hooks)
- Advanced Features (depends on all previous)
- For score 1/2 topics: Recommend the "deep dive" — link to the specific advanced section they're missing.
- Estimate time: Sum only the topics they need to learn/review.
- Group into phases: Organize remaining topics into logical phases of 2-3 topics each.
Path Output Format
### Your Personalized Learning Path
**Estimated time**: ~N hours (adjusted for your current skills)
#### Phase 1: [Phase Name] (~N hours)
[Only if they have gaps in these areas]
**[Topic Name]** — [Learn from scratch / Deep dive into advanced features]
- Tutorial: [link to tutorial directory]
- Focus on: [specific sections/concepts they need]
- Key exercise: [one concrete exercise to do]
- You'll know it's done when: [specific success criterion]
**[Topic Name]** — ...
---
#### Phase 2: [Phase Name] (~N hours)
...
---
### Recommended Practice Projects
Based on your gaps, try these real-world exercises to solidify your learning:
1. **[Project name]**: [1-line description combining 2-3 gap topics]
2. **[Project name]**: [1-line description]
3. **[Project name]**: [1-line description]
Topic-Specific Recommendations
Use these specific recommendations when a topic is a gap:
Slash Commands (score 0):
- Tutorial: 01-slash-commands/
- Focus on: Built-in commands reference, creating your first SKILL.md,
$ARGUMENTS syntax
- Key exercise: Create a
/optimize command and test it
- Done when: You can create a custom skill with arguments and dynamic context
Slash Commands (score 1 — review):
- Focus on: Dynamic context with
!backtick`` syntax, @file references, disable-model-invocation vs user-invocable control
- Done when: You can create a skill that injects live command output and controls its own invocation behavior
Memory (score 0):
- Tutorial: 02-memory/
- Focus on: CLAUDE.md creation,
/init and /memory commands, # prefix for quick updates
- Key exercise: Create a project CLAUDE.md with your coding standards
- Done when: Claude remembers your preferences across sessions
Memory (score 1 — review):
- Focus on: the 7 memory locations and how they are concatenated into context (loaded root-down, not overridden), .claude/rules/ directory with path-specific rules,
@import syntax (max depth 4), Auto Memory MEMORY.md (Claude loads its first 200 lines or 25 KB, whichever comes first — a load cap, not a file-size limit)
- Done when: You have modular rules for different directories and understand how every memory file is concatenated into context
Skills (score 0):
- Tutorial: 03-skills/
- Focus on: SKILL.md format, auto-invocation via description field, progressive disclosure (3 loading levels)
- Key exercise: Install the code-review skill and verify it auto-triggers
- Done when: A skill automatically activates based on conversation context
Skills (score 1 — review):
- Focus on:
context: fork with agent field for subagent execution, disable-model-invocation vs user-invocable, the skill-listing budget (1% of the context window, fallback 8,000 characters, 250 characters per entry), bundled resources (scripts/, references/, assets/)
- Done when: You can create a skill that runs in a subagent with forked context
Hooks (score 0):
- Tutorial: 06-hooks/
- Focus on: Configuration structure (matcher + hooks array), PreToolUse/PostToolUse events, exit codes (0=success, 2=block), JSON input/output format
- Key exercise: Create a PreToolUse hook that validates Bash commands
- Done when: A hook blocks dangerous commands before execution
Hooks (score 1 — review):
- Focus on: All 33 hook events (including PostToolUseFailure, StopFailure, TaskCreated, CwdChanged, FileChanged, PostCompact, Elicitation, ElicitationResult, Setup, UserPromptExpansion, MessageDisplay, PreModelSwitch, PostModelSwitch — the last two added in v2.1.251), 5 hook types (command, http, mcp_tool, prompt, agent — agent hooks are experimental and may change), component-scoped hooks in SKILL.md frontmatter, HTTP hooks with allowedEnvVars,
CLAUDE_ENV_FILE for SessionStart/CwdChanged/FileChanged
- Done when: You can create a prompt-based Stop hook and a component-scoped hook in a skill
MCP (score 0):
- Tutorial: 05-mcp/
- Focus on:
claude mcp add command, transport types (http recommended, stdio, ws for push-style servers, and the deprecated sse — note --transport does not accept ws, so add WebSocket servers with claude mcp add-json), GitHub MCP setup, environment variable expansion
- Key exercise: Add GitHub MCP server and query PRs
- Done when: You can query live data from an external service via MCP
MCP (score 1 — review):
- Focus on: Project-scope .mcp.json (requires team approval), OAuth 2.0 auth, MCP resources with
@server:resource mentions, Tool Search (ENABLE_TOOL_SEARCH), claude mcp serve, output limits (10,000 tokens warning; 25,000 tokens default max via MAX_MCP_OUTPUT_TOKENS; 50,000 characters disk-persistence threshold)
- Done when: You have a project .mcp.json and understand Tool Search auto mode
Subagents (score 0):
- Tutorial: 04-subagents/
- Focus on: Agent file format (.claude/agents/*.md), built-in agents (Explore, Plan, general-purpose, claude, statusline-setup, claude-code-guide), tools/model/permissionMode config, spawn limits (depth default 3 since v2.1.219, concurrency default 20, and the 200-per-session spawn cap removed in v2.1.224)
- Key exercise: Create a code-reviewer subagent and test delegation
- Done when: Claude delegates code review to your custom agent
Subagents (score 1 — review):
- Focus on: Worktree isolation (
isolation: worktree), persistent agent memory (memory field with scopes), background agents (Ctrl+B/Ctrl+F), agent allowlists with Agent(agent_type) (Task(...) remains a back-compat alias), agent teams (--teammate-mode)
- Done when: You have a subagent with persistent memory running in worktree isolation
Checkpoints (score 0):
- Tutorial: 08-checkpoints/
- Focus on: Esc+Esc and /rewind access, 6 rewind options (restore code and conversation, restore conversation, restore code, summarize from here, summarize up to here, never mind), limitations — bash filesystem ops, subagent edits (except a foreground
context: fork skill), edits made outside Claude Code, and symlinked/hardlinked paths are all untracked
- Key exercise: Make experimental changes, then rewind to restore
- Done when: You can confidently experiment knowing you can rewind
Advanced Features (score 0):
- Tutorial: 09-advanced-features/
- Focus on: Planning mode (/plan or Shift+Tab), permission modes (6 types: manual — renamed from default in v2.1.200 — acceptEdits, plan, auto, dontAsk, bypassPermissions), extended thinking (Alt+T toggle)
- Key exercise: Use planning mode to design a feature, then implement it
- Done when: You can switch between planning and implementation modes fluently
Advanced Features (score 1 — review):
- Focus on: Remote control (
claude --remote-control, alias --rc), web sessions (claude --cloud; --remote is a deprecated alias), desktop handoff (/desktop), worktrees (claude -w), task lists (Ctrl+T), managed settings for enterprise
- Done when: You can hand off sessions between CLI, web, and desktop
Plugins (score 0):
- Tutorial: 07-plugins/
- Focus on: Plugin structure (.claude-plugin/plugin.json), what plugins bundle (skills, agents, MCP, hooks, settings — plus the legacy
commands/ directory, which still works but skills/ is preferred for new plugins), installation from marketplace
- Key exercise: Install a plugin and explore its components
- Done when: You understand when to use a plugin vs standalone components
Plugins (score 1 — review):
- Focus on: Creating plugin.json manifest, plugin hooks (hooks/hooks.json), LSP configuration (.lsp.json),
${CLAUDE_PLUGIN_ROOT} variable, --plugin-dir for testing, marketplace publishing
- Done when: You can create and test a plugin for your team
CLI (score 0):
- Tutorial: 10-cli/
- Focus on: Interactive vs print mode,
claude -p with piping, --output-format json, session management (-c/-r)
- Key exercise: Pipe a file to
claude -p and get JSON output
- Done when: You can use Claude non-interactively in a script
CLI (score 1 — review):
- Focus on: --agents flag with JSON config, --json-schema for structured output, --fallback-model, --from-pr, --strict-mcp-config, batch processing with for loops,
claude mcp serve
- Done when: You have a CI/CD script that uses Claude with structured JSON output
Step 5: Offer Follow-up Actions
After presenting results, ask the user what they'd like to do next:
Use AskUserQuestion with these options:
- Start learning — "Help me begin the first topic in my learning path right now"
- Deep dive on a gap — "Explain one of my gap areas in detail so I can learn it here"
- Practice project — "Set up a practice project that covers my gap areas"
- Retake assessment — "I want to retake the quiz (maybe the other mode)"
If Start learning: Read the README.md of the first gap tutorial and walk the user through the first exercise.
If Deep dive on a gap: Ask which gap topic, then read the relevant tutorial README.md and explain the key concepts with examples.
If Practice project: Design a small project that combines 2-3 of their gap topics with concrete steps.
If Retake assessment: Go back to Step 1.
Error Handling
User selects no items in a round
Treat as 0 points for that round's topics. Continue to next round.
User selects no items in any round
Assign Level 1: Beginner. Encourage starting from the beginning. Output the full Level 1 path.
User wants to retake
Re-run from Step 1 with a fresh assessment.
User disagrees with their level
Acknowledge their preference. Ask which level they identify with. Present the path for their chosen level with a prerequisites check for topics they may have missed.
User asks about a specific topic
If the user says something like "tell me about hooks" or "I want to learn MCP" during the assessment, note it. After presenting results, highlight that topic in their learning path regardless of score.
Validation
Triggering test suite
Should trigger:
- "assess my level"
- "take the quiz"
- "find my level"
- "where should I start"
- "what level am I"
- "learning path quiz"
- "self-assessment"
- "what should I learn next"
- "check my skills"
- "skill check"
- "level up"
- "how good am I at Claude Code"
- "evaluate my Claude Code knowledge"
Should NOT trigger:
- "review my code"
- "create a skill"
- "help me with MCP"
- "explain slash commands"
- "what is a checkpoint"
1---2name: self-assessment3description: Comprehensive Claude Code self-assessment and learning path advisor. Runs a multi-category quiz covering 10 feature areas, produces a detailed skill profile with per-topic scores, identifies specific gaps, and generates a personalized learning path with prioritized next steps. Use when asked to "assess my level", "take the quiz", "find my level", "where should I start", "what should I learn next", "check my skills", "skill check", or "level up".4---5
6# Self-Assessment & Learning Path Advisor
7
8Comprehensive interactive assessment that evaluates Claude Code proficiency across 10 feature areas, identifies specific skill gaps, and generates a personalized learning path to level up.
9
10## Instructions
11
12### Step 1: Welcome & Choose Assessment Mode
13
14Present the user with a choice of assessment depth:
15
16Use AskUserQuestion with these options:
17- **Quick Assessment** — "8 questions, ~2 minutes. Determines your overall level (Beginner/Intermediate/Advanced) and gives a learning path."
18- **Deep Assessment** — "5 categories with detailed questions, ~5 minutes. Gives per-topic skill scores, identifies specific gaps, and builds a prioritized learning path."
19
20If user chooses **Quick Assessment**, go to Step 2A.
21If user chooses **Deep Assessment**, go to Step 2B.
22
23---
24
25### Step 2A: Quick Assessment
26
27Present TWO multi-select questions (AskUserQuestion supports max 4 options each):
28
29**Question 1** (header: "Basics"):
30"Part 1/2: Which of these Claude Code skills do you already have?"
31Options:
321. "Start Claude Code and chat" — I can run `claude` and interact with it
332. "Created/edited CLAUDE.md" — I have set up project or user memory
343. "Used 3+ slash commands" — e.g., /help, /compact, /model, /clear
354. "Created custom command/skill" — Written a SKILL.md or custom command file
36
37**Question 2** (header: "Advanced"):
38"Part 2/2: Which of these advanced skills do you have?"
39Options:
401. "Configured an MCP server" — e.g., GitHub, database, or other external data source
412. "Set up hooks" — Configured hooks in ~/.claude/settings.json
423. "Created/used subagents" — Used .claude/agents/ for task delegation
434. "Used print mode (claude -p)" — Used `claude -p` for non-interactive or CI/CD use
44
45**Scoring:**
46- 0-2 total = Level 1: Beginner
47- 3-5 total = Level 2: Intermediate
48- 6-8 total = Level 3: Advanced
49
50Go to Step 3 with the level result, listing which specific items were NOT checked as gaps.
51
52---
53
54### Step 2B: Deep Assessment
55
56Present 5 rounds of questions, one AskUserQuestion call per round. Each round covers 2 related feature areas. Use multi-select for all rounds.
57
58**IMPORTANT**: AskUserQuestion supports max 4 options per question. Each round has exactly 1 question with 4 options covering 2 topics (2 options per topic).
59
60---
61
62**Round 1 — Slash Commands & Memory** (header: "Commands")
63
64"Which of these have you done? Select all that apply."
65Options:
661. "Created a custom slash command or skill" — Written a SKILL.md file with frontmatter, or created .claude/commands/ files
672. "Used dynamic context in commands" — Used `$ARGUMENTS`, `$0`/`$1`, backtick `!command` syntax, or `@file` references in skill/command files
683. "Set up project + personal memory" — Created both a project CLAUDE.md and personal ~/.claude/CLAUDE.md (or CLAUDE.local.md)
694. "Used memory hierarchy features" — Understand how the 7 memory locations are concatenated into context (loaded root-down, CLAUDE.local.md appended after CLAUDE.md at each level, subdirectory files loaded on demand), used .claude/rules/ directory, path-specific rules, or @import syntax
70
71**Scoring for Round 1:**
72- Options 1-2 map to **Slash Commands** (0-2 points)
73- Options 3-4 map to **Memory** (0-2 points)
74
75---
76
77**Round 2 — Skills & Hooks** (header: "Automation")
78
79"Which of these have you done? Select all that apply."
80Options:
811. "Installed and used an auto-invoked skill" — A skill that triggers automatically based on its description, without manual /command invocation
822. "Controlled skill invocation behavior" — Used `disable-model-invocation`, `user-invocable`, or `context: fork` with agent field in SKILL.md frontmatter
833. "Set up a PreToolUse or PostToolUse hook" — Configured a hook that runs before/after tool execution (e.g., command validator, auto-formatter)
844. "Used advanced hook features" — Configured prompt-type hooks, component-scoped hooks in SKILL.md, HTTP hooks, or hooks with custom JSON output (updatedInput, systemMessage)
85
86**Scoring for Round 2:**
87- Options 1-2 map to **Skills** (0-2 points)
88- Options 3-4 map to **Hooks** (0-2 points)
89
90---
91
92**Round 3 — MCP & Subagents** (header: "Integration")
93
94"Which of these have you done? Select all that apply."
95Options:
961. "Connected an MCP server and used its tools" — e.g., GitHub MCP for PRs/issues, database MCP for queries, or any external data source
972. "Used advanced MCP features" — Project-scope .mcp.json, OAuth authentication, MCP resources with @mentions, Tool Search, or `claude mcp serve`
983. "Created or configured custom subagents" — Defined agents in .claude/agents/ with custom tools, model, or permissions
994. "Used advanced subagent features" — Worktree isolation, persistent agent memory, background tasks with Ctrl+B, agent allowlists with `Agent(agent_type)` (the `Task(...)` form is a back-compat alias), or agent teams
100
101**Scoring for Round 3:**
102- Options 1-2 map to **MCP** (0-2 points)
103- Options 3-4 map to **Subagents** (0-2 points)
104
105---
106
107**Round 4 — Checkpoints & Advanced Features** (header: "Power User")
108
109"Which of these have you done? Select all that apply."
110Options:
1111. "Used checkpoints for safe experimentation" — Created checkpoints, used Esc+Esc or /rewind, restored code and/or conversation, or used either Summarize option (summarize from here / summarize up to here)
1122. "Used planning mode or extended thinking" — Activated planning via /plan, Shift+Tab, or --permission-mode plan; toggled extended thinking with Alt+T/Option+T
1133. "Configured permission modes" — Used any of the six modes — manual (renamed from default in v2.1.200), acceptEdits, plan, auto, dontAsk, or bypassPermissions — via CLI flags, keyboard shortcuts, or settings
1144. "Used remote/desktop/web features" — Used `claude --remote-control`, `claude --cloud`, `/teleport`, `/desktop`, or worktrees with `claude -w`
115
116**Scoring for Round 4:**
117- Option 1 maps to **Checkpoints** (0-1 point)
118- Options 2-4 map to **Advanced Features** (0-3 points)
119
120---
121
122**Round 5 — Plugins & CLI** (header: "Mastery")
123
124"Which of these have you done? Select all that apply."
125Options:
1261. "Installed or created a plugin" — Used a bundled plugin from marketplace, or created a .claude-plugin/ directory with plugin.json manifest
1272. "Used plugin advanced features" — Plugin skills (`skills/` — the preferred form; namespaced `commands/` is legacy but still works), plugin hooks, plugin MCP servers, LSP configuration, or --plugin-dir flag for testing
1283. "Used print mode in scripts or CI/CD" — Used `claude -p` with --output-format json, --max-turns, piped input, or integrated into GitHub Actions / CI pipelines
1294. "Used advanced CLI features" — Session resumption (-c/-r), --agents flag, --json-schema for structured output, --fallback-model, --from-pr, or batch processing loops
130
131**Scoring for Round 5:**
132- Options 1-2 map to **Plugins** (0-2 points)
133- Options 3-4 map to **CLI** (0-2 points)
134
135---
136
137### Step 3: Calculate & Present Results
138
139#### 3A: For Quick Assessment
140
141Count total selections and determine level. Then present:
142
143```markdown
144## Claude Code Skill Assessment Results
145
146### Your Level: [Level 1: Beginner / Level 2: Intermediate / Level 3: Advanced]
147
148You checked **N/8** items.
149
150[One-line motivational summary based on level]
151
152### Your Skill Profile
153
154| Area | Status |
155|------|--------|
156| Basic CLI & Conversations | [Checked/Gap] |
157| CLAUDE.md & Memory | [Checked/Gap] |
158| Slash Commands (built-in) | [Checked/Gap] |
159| Custom Commands & Skills | [Checked/Gap] |
160| MCP Servers | [Checked/Gap] |
161| Hooks | [Checked/Gap] |
162| Subagents | [Checked/Gap] |
163| Print Mode & CI/CD | [Checked/Gap] |
164
165### Identified Gaps
166
167[For each unchecked item, provide a 1-line description of what to learn and a link to the tutorial]
168
169### Your Personalized Learning Path
170
171[Output the level-specific learning path — see Step 4]
172```
173
174#### 3B: For Deep Assessment
175
176Calculate per-topic scores from the 5 rounds. Each topic gets 0-2 points, except Advanced Features (0-3) and Checkpoints (0-1). Then present:
177
178```markdown
179## Claude Code Skill Assessment Results
180
181### Overall Level: [Level 1 / Level 2 / Level 3]
182
183**Total Score: N/20 points**
184
185[One-line motivational summary]
186
187### Your Skill Profile
188
189| Feature Area | Score | Mastery | Status |
190|-------------|-------|---------|--------|
191| Slash Commands | N/2 | [None/Basic/Proficient] | [Learn/Review/Mastered] |
192| Memory | N/2 | [None/Basic/Proficient] | [Learn/Review/Mastered] |
193| Skills | N/2 | [None/Basic/Proficient] | [Learn/Review/Mastered] |
194| Hooks | N/2 | [None/Basic/Proficient] | [Learn/Review/Mastered] |
195| MCP | N/2 | [None/Basic/Proficient] | [Learn/Review/Mastered] |
196| Subagents | N/2 | [None/Basic/Proficient] | [Learn/Review/Mastered] |
197| Checkpoints | N/1 | [None/Proficient] | [Learn/Mastered] |
198| Advanced Features | N/3 | [None/Basic/Proficient] | [Learn/Review/Mastered] |
199| Plugins | N/2 | [None/Basic/Proficient] | [Learn/Review/Mastered] |
200| CLI | N/2 | [None/Basic/Proficient] | [Learn/Review/Mastered] |
201
202**Mastery key:** 0 = None, 1 = Basic, 2 = Proficient
203
204### Strength Areas
205[List topics with score 2/2 — these are mastered]
206
207### Priority Gaps (Learn Next)
208[List topics with score 0 — these need attention first, ordered by dependency]
209
210### Review Areas
211[List topics with score 1/2 — basics known but advanced features not yet used]
212
213### Your Personalized Learning Path
214
215[Output gap-specific learning path — see Step 4]
216```
217
218**Overall level calculation for Deep Assessment:**
219- 0-6 total points = Level 1: Beginner
220- 7-13 total points = Level 2: Intermediate
221- 14-20 total points = Level 3: Advanced
222
223---
224
225### Step 4: Generate Personalized Learning Path
226
227Based on the assessment results, generate a learning path that is specific to the user's gaps. Do NOT just repeat the generic level path — adapt it.
228
229#### Rules for Path Generation
230
2311. **Skip mastered topics**: If a topic scored 2/2, do not include it in the path.
2322. **Prioritize by dependency order**: Slash Commands before Skills, Memory before Subagents, etc. The dependency order is:
233 - Slash Commands (no deps) -> Skills (depends on Slash Commands)
234 - Memory (no deps) -> Subagents (depends on Memory)
235 - CLI Basics (no deps) -> CLI Mastery (depends on all)
236 - Checkpoints (no deps)
237 - Hooks (depends on Slash Commands)
238 - MCP (no deps) -> Plugins (depends on MCP, Skills, Hooks)
239 - Advanced Features (depends on all previous)
2403. **For score 1/2 topics**: Recommend the "deep dive" — link to the specific advanced section they're missing.
2414. **Estimate time**: Sum only the topics they need to learn/review.
2425. **Group into phases**: Organize remaining topics into logical phases of 2-3 topics each.
243
244#### Path Output Format
245
246```markdown
247### Your Personalized Learning Path
248
249**Estimated time**: ~N hours (adjusted for your current skills)
250
251#### Phase 1: [Phase Name] (~N hours)
252[Only if they have gaps in these areas]
253
254**[Topic Name]** — [Learn from scratch / Deep dive into advanced features]
255- Tutorial: [link to tutorial directory]
256- Focus on: [specific sections/concepts they need]
257- Key exercise: [one concrete exercise to do]
258- You'll know it's done when: [specific success criterion]
259
260**[Topic Name]** — ...
261
262---
263
264#### Phase 2: [Phase Name] (~N hours)
265...
266
267---
268
269### Recommended Practice Projects
270
271Based on your gaps, try these real-world exercises to solidify your learning:
272
2731. **[Project name]**: [1-line description combining 2-3 gap topics]
2742. **[Project name]**: [1-line description]
2753. **[Project name]**: [1-line description]
276```
277
278#### Topic-Specific Recommendations
279
280Use these specific recommendations when a topic is a gap:
281
282**Slash Commands (score 0)**:
283- Tutorial: [01-slash-commands/](../../../01-slash-commands/)
284- Focus on: Built-in commands reference, creating your first SKILL.md, `$ARGUMENTS` syntax
285- Key exercise: Create a `/optimize` command and test it
286- Done when: You can create a custom skill with arguments and dynamic context
287
288**Slash Commands (score 1 — review)**:
289- Focus on: Dynamic context with `!`backtick`` syntax, `@file` references, `disable-model-invocation` vs `user-invocable` control
290- Done when: You can create a skill that injects live command output and controls its own invocation behavior
291
292**Memory (score 0)**:
293- Tutorial: [02-memory/](../../../02-memory/)
294- Focus on: CLAUDE.md creation, `/init` and `/memory` commands, `#` prefix for quick updates
295- Key exercise: Create a project CLAUDE.md with your coding standards
296- Done when: Claude remembers your preferences across sessions
297
298**Memory (score 1 — review)**:
299- Focus on: the 7 memory locations and how they are concatenated into context (loaded root-down, not overridden), .claude/rules/ directory with path-specific rules, `@import` syntax (max depth 4), Auto Memory MEMORY.md (Claude loads its first 200 lines or 25 KB, whichever comes first — a load cap, not a file-size limit)
300- Done when: You have modular rules for different directories and understand how every memory file is concatenated into context
301
302**Skills (score 0)**:
303- Tutorial: [03-skills/](../../../03-skills/)
304- Focus on: SKILL.md format, auto-invocation via description field, progressive disclosure (3 loading levels)
305- Key exercise: Install the code-review skill and verify it auto-triggers
306- Done when: A skill automatically activates based on conversation context
307
308**Skills (score 1 — review)**:
309- Focus on: `context: fork` with `agent` field for subagent execution, `disable-model-invocation` vs `user-invocable`, the skill-listing budget (1% of the context window, fallback 8,000 characters, 250 characters per entry), bundled resources (scripts/, references/, assets/)
310- Done when: You can create a skill that runs in a subagent with forked context
311
312**Hooks (score 0)**:
313- Tutorial: [06-hooks/](../../../06-hooks/)
314- Focus on: Configuration structure (matcher + hooks array), PreToolUse/PostToolUse events, exit codes (0=success, 2=block), JSON input/output format
315- Key exercise: Create a PreToolUse hook that validates Bash commands
316- Done when: A hook blocks dangerous commands before execution
317
318**Hooks (score 1 — review)**:
319- Focus on: All 33 hook events (including PostToolUseFailure, StopFailure, TaskCreated, CwdChanged, FileChanged, PostCompact, Elicitation, ElicitationResult, Setup, UserPromptExpansion, MessageDisplay, PreModelSwitch, PostModelSwitch — the last two added in v2.1.251), 5 hook types (command, http, mcp_tool, prompt, agent — agent hooks are experimental and may change), component-scoped hooks in SKILL.md frontmatter, HTTP hooks with allowedEnvVars, `CLAUDE_ENV_FILE` for SessionStart/CwdChanged/FileChanged
320- Done when: You can create a prompt-based Stop hook and a component-scoped hook in a skill
321
322**MCP (score 0)**:
323- Tutorial: [05-mcp/](../../../05-mcp/)
324- Focus on: `claude mcp add` command, transport types (`http` recommended, `stdio`, `ws` for push-style servers, and the deprecated `sse` — note `--transport` does not accept `ws`, so add WebSocket servers with `claude mcp add-json`), GitHub MCP setup, environment variable expansion
325- Key exercise: Add GitHub MCP server and query PRs
326- Done when: You can query live data from an external service via MCP
327
328**MCP (score 1 — review)**:
329- Focus on: Project-scope .mcp.json (requires team approval), OAuth 2.0 auth, MCP resources with `@server:resource` mentions, Tool Search (ENABLE_TOOL_SEARCH), `claude mcp serve`, output limits (10,000 tokens warning; 25,000 tokens default max via `MAX_MCP_OUTPUT_TOKENS`; 50,000 characters disk-persistence threshold)
330- Done when: You have a project .mcp.json and understand Tool Search auto mode
331
332**Subagents (score 0)**:
333- Tutorial: [04-subagents/](../../../04-subagents/)
334- Focus on: Agent file format (.claude/agents/*.md), built-in agents (Explore, Plan, general-purpose, claude, statusline-setup, claude-code-guide), tools/model/permissionMode config, spawn limits (depth default 3 since v2.1.219, concurrency default 20, and the 200-per-session spawn cap removed in v2.1.224)
335- Key exercise: Create a code-reviewer subagent and test delegation
336- Done when: Claude delegates code review to your custom agent
337
338**Subagents (score 1 — review)**:
339- Focus on: Worktree isolation (`isolation: worktree`), persistent agent memory (`memory` field with scopes), background agents (Ctrl+B/Ctrl+F), agent allowlists with `Agent(agent_type)` (`Task(...)` remains a back-compat alias), agent teams (`--teammate-mode`)
340- Done when: You have a subagent with persistent memory running in worktree isolation
341
342**Checkpoints (score 0)**:
343- Tutorial: [08-checkpoints/](../../../08-checkpoints/)
344- Focus on: Esc+Esc and /rewind access, 6 rewind options (restore code and conversation, restore conversation, restore code, summarize from here, summarize up to here, never mind), limitations — bash filesystem ops, subagent edits (except a foreground `context: fork` skill), edits made outside Claude Code, and symlinked/hardlinked paths are all untracked
345- Key exercise: Make experimental changes, then rewind to restore
346- Done when: You can confidently experiment knowing you can rewind
347
348**Advanced Features (score 0)**:
349- Tutorial: [09-advanced-features/](../../../09-advanced-features/)
350- Focus on: Planning mode (/plan or Shift+Tab), permission modes (6 types: manual — renamed from default in v2.1.200 — acceptEdits, plan, auto, dontAsk, bypassPermissions), extended thinking (Alt+T toggle)
351- Key exercise: Use planning mode to design a feature, then implement it
352- Done when: You can switch between planning and implementation modes fluently
353
354**Advanced Features (score 1 — review)**:
355- Focus on: Remote control (`claude --remote-control`, alias `--rc`), web sessions (`claude --cloud`; `--remote` is a deprecated alias), desktop handoff (`/desktop`), worktrees (`claude -w`), task lists (Ctrl+T), managed settings for enterprise
356- Done when: You can hand off sessions between CLI, web, and desktop
357
358**Plugins (score 0)**:
359- Tutorial: [07-plugins/](../../../07-plugins/)
360- Focus on: Plugin structure (.claude-plugin/plugin.json), what plugins bundle (skills, agents, MCP, hooks, settings — plus the legacy `commands/` directory, which still works but `skills/` is preferred for new plugins), installation from marketplace
361- Key exercise: Install a plugin and explore its components
362- Done when: You understand when to use a plugin vs standalone components
363
364**Plugins (score 1 — review)**:
365- Focus on: Creating plugin.json manifest, plugin hooks (hooks/hooks.json), LSP configuration (.lsp.json), `${CLAUDE_PLUGIN_ROOT}` variable, --plugin-dir for testing, marketplace publishing
366- Done when: You can create and test a plugin for your team
367
368**CLI (score 0)**:
369- Tutorial: [10-cli/](../../../10-cli/)
370- Focus on: Interactive vs print mode, `claude -p` with piping, `--output-format json`, session management (-c/-r)
371- Key exercise: Pipe a file to `claude -p` and get JSON output
372- Done when: You can use Claude non-interactively in a script
373
374**CLI (score 1 — review)**:
375- Focus on: --agents flag with JSON config, --json-schema for structured output, --fallback-model, --from-pr, --strict-mcp-config, batch processing with for loops, `claude mcp serve`
376- Done when: You have a CI/CD script that uses Claude with structured JSON output
377
378---
379
380### Step 5: Offer Follow-up Actions
381
382After presenting results, ask the user what they'd like to do next:
383
384Use AskUserQuestion with these options:
385- **Start learning** — "Help me begin the first topic in my learning path right now"
386- **Deep dive on a gap** — "Explain one of my gap areas in detail so I can learn it here"
387- **Practice project** — "Set up a practice project that covers my gap areas"
388- **Retake assessment** — "I want to retake the quiz (maybe the other mode)"
389
390If **Start learning**: Read the README.md of the first gap tutorial and walk the user through the first exercise.
391If **Deep dive on a gap**: Ask which gap topic, then read the relevant tutorial README.md and explain the key concepts with examples.
392If **Practice project**: Design a small project that combines 2-3 of their gap topics with concrete steps.
393If **Retake assessment**: Go back to Step 1.
394
395## Error Handling
396
397### User selects no items in a round
398Treat as 0 points for that round's topics. Continue to next round.
399
400### User selects no items in any round
401Assign Level 1: Beginner. Encourage starting from the beginning. Output the full Level 1 path.
402
403### User wants to retake
404Re-run from Step 1 with a fresh assessment.
405
406### User disagrees with their level
407Acknowledge their preference. Ask which level they identify with. Present the path for their chosen level with a prerequisites check for topics they may have missed.
408
409### User asks about a specific topic
410If the user says something like "tell me about hooks" or "I want to learn MCP" during the assessment, note it. After presenting results, highlight that topic in their learning path regardless of score.
411
412## Validation
413
414### Triggering test suite
415
416**Should trigger:**
417- "assess my level"
418- "take the quiz"
419- "find my level"
420- "where should I start"
421- "what level am I"
422- "learning path quiz"
423- "self-assessment"
424- "what should I learn next"
425- "check my skills"
426- "skill check"
427- "level up"
428- "how good am I at Claude Code"
429- "evaluate my Claude Code knowledge"
430
431**Should NOT trigger:**
432- "review my code"
433- "create a skill"
434- "help me with MCP"
435- "explain slash commands"
436- "what is a checkpoint"