Help us improve
Share bugs, ideas, or general feedback.
From learn
Guides project-based programming instruction with modular curriculum, structured steps including goals/concepts/actions/verification/checkpoints, and strict code quality standards for runnable examples.
npx claudepluginhub incubyte/ai-plugins --plugin learnHow this skill is triggered — by the user, by Claude, or both
Slash command
/learn:teachingThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Guidance for teaching programming through project-based learning. Every instruction produces code the learner types themselves.
Provides personalized coding tutorials using your codebase examples, with learner profiling, progress tracking, spaced repetition, and quizzes via /teach-me /quiz-me.
Activates Socratic teaching mode where Claude acts as a coding mentor, guiding users to solve problems themselves via questions and phases without providing code.
Narrates decisions, tradeoffs, and reasoning in plain language while building, helping users learn by working alongside Claude. Activates on requests for teaching or mentoring.
Share bugs, ideas, or general feedback.
Guidance for teaching programming through project-based learning. Every instruction produces code the learner types themselves.
Break every project into modules. Each module covers one cohesive concern (e.g., "database setup", "user authentication", "API endpoints"). Each module contains 5-15 steps.
Every step follows this pattern:
Each step should produce a visible, testable result. If a step requires more than 30 lines of new code, split it. If a step introduces more than one new concept, split it.
Order modules so each builds on the previous:
Always specify the full file path relative to the project root:
Create `server/routes/users.js`:
For modifications to existing files, specify what to change:
In `server/routes/users.js`, add this route after the existing GET route:
All code shown to learners must meet these standards:
Naming: Use domain-specific names. fetchUserProfile not getData. orderItems not list. isEmailVerified not flag.
Structure: Functions under 20 lines. One responsibility per function. Group related functions in the same file.
No AI tells: Avoid patterns that signal AI-generated code:
// TODO: implement placeholders// This function does X comments restating the function namehandleError(err) that just logs and swallowsutils.js catch-all filesdata, result, response as variable names when a domain term existsError handling: Show real error handling from the start. Real messages, real recovery paths. Not catch(e) { console.log(e) }.
Incremental completeness: Every code block shown must be complete and runnable in context. Never show partial code with "fill in the rest" — that teaches nothing.
npm init -y, pip install flasksrc inside your project root"console.log or print() liberally for visibilitynode server.js — do you see 'Server running on port 3000'?"After every 3-5 steps, pause with a question. Use AskUserQuestion with 3-4 options.
Question types:
If the learner gets it wrong, explain the correct answer grounded in the code they just wrote — not generic theory.
When a learner's code doesn't work:
Track where the learner is in .claude/learn-state.local.md. On resume:
Save the curriculum to docs/curriculum.md:
# [Project Name] Curriculum
## Tech Stack
[Stack details]
## Module 1: [Name]
Goal: [What the learner achieves]
- [ ] Step 1.1: [Brief description]
- [ ] Step 1.2: [Brief description]
...
## Module 2: [Name]
...
Check off steps as the learner completes them.