A community-driven registry for Claude, Cursor, Windsurf, Cline & more. Not affiliated with Anthropic.
Are you the author? Sign in to claim
The anti-vibe-coding skill. A Socratic tutor that teaches you codebases through questioning and active recall.
The anti-vibe-coding skill. A Socratic tutor that teaches you codebases through questioning and active recall — because on mature projects, understanding matters more than speed.
For onboarding to a large repo, preparing a PR, or working on legacy code without pretending you understand it. On mature projects, understanding matters more than speed.
npx skills (see Installation for options)/learn-codebaseExample (install once for all projects, then open a repo):
npx skills add ktaletsk/learn-codebase -g
cd /path/to/repo-you-want-to-learn
# then in your AI agent:
/learn-codebase
What happens next:
.claude/learning-journal.md that tracks what you confidently know vs. what you're still bluffingDid it click? If this helped you actually understand a codebase, share your story — and star the repo if you found it useful.
Great fit for:
Probably not for:
AI coding tools make it easy to ship code you don't understand — and, worse, easy to feel like you understand it. That works for greenfield projects. On a mature codebase with real quality standards, "it works on my machine" is how you write a PR you can't defend in review.
This skill is the friction you opted out of when you started vibe-coding. It flips the default AI interaction model:
| Regular AI Coding | learn-codebase | |
|---|---|---|
| Shows code immediately | ✅ | ❌ Asks you to predict first |
| Answers your questions | ✅ | ❌ Asks clarifying questions back |
| Optimizes for speed | ✅ | ❌ Optimizes for retention |
| Forgets between sessions | ✅ | ❌ Maintains learning journal |
| Makes you dependent | 😬 | ❌ Builds your independence |
You know that feeling after heavy AI-assisted coding — like swimming with fins, then taking them off? The skill atrophy is real, but that's the smaller problem. The bigger one is the gap between what you think you know and what you can actually defend.
A 2025 study found developers using AI on familiar codebases were 19% slower than those without AI, yet believed they were 20% faster. That 39-point delta is the cost of not being honest with yourself.
This skill is for when you need to actually learn, not just feel productive:
Tested on a popular open-source project (5M+ monthly downloads, large TypeScript monorepo).
Starting point: needed to contribute to the upload flow, but did not yet have a reliable mental model of the architecture.
What the skill did:
AbortControllerResult after ~30 minutes:
| Scenario | Regular AI agent | learn-codebase |
|---|---|---|
| "How does upload work?" | Shows full code dump | "What do you expect upload() to return?" |
| User doesn't know AbortController | Assumes knowledge or over-explains | Detects gap, explains simply, returns to questions |
| Complex architecture | "Here are 5 files to read" | "Conceptually it's three layers: UI, Model, Services" |
| Session end | "Let me know if you need anything else" | "Here are 4 concrete options for next steps" |
| Next session | Starts fresh | Reads journal: "Last time you explored upload flow..." |
Most coding agents are tuned to finish the task: ship the answer, unblock you, move on. This skill is tuned to leave you able to explain what you shipped — different objective, different friction. You still use the same agent; you add a mode that resists false fluency.
| Generic coding agent | learn-codebase | |
|---|---|---|
| Default behavior | Answers quickly | Pushes you to think first |
| Main optimization | Task completion | Mental model formation |
| During confusion | Tends to smooth over it | Uses confusion as a teaching signal |
| Across sessions | Often starts fresh | Compounds understanding in a journal |
| Long-term effect | Faster now, often shallower later | Slower now, more independent later |
If you already know the repo and just need a patch fast, use the normal agent flow. This skill is for the part before that, when false confidence is expensive — the stage where you can still admit "I don't know yet" before it ossifies into "I'd better not ask."
The skill uses proven pedagogical techniques:
The default path is the Skills CLI (npx skills): it pulls this repo from GitHub and installs into the right agent skill directories for Cursor and many other AI coding agents. You need Node.js so npx is available.
npx skillsAll projects (global / user-level):
npx skills add ktaletsk/learn-codebase -g
This repository only (from inside the project):
npx skills add ktaletsk/learn-codebase
Use -a <agent> to target specific agents (e.g. -a cursor), or run without it and follow the prompts. To update later: npx skills update (add -g for global installs). More skills: skills.sh.
git cloneIf you prefer to place the skill yourself:
Personal skill (all projects)
mkdir -p ~/.claude/skills
git clone https://github.com/ktaletsk/learn-codebase ~/.claude/skills/learn-codebase
Project skill (specific project)
mkdir -p .claude/skills
git clone https://github.com/ktaletsk/learn-codebase .claude/skills/learn-codebase
Start a learning session:
/learn-codebase
Helpful first prompts:
You: /learn-codebase
Agent: I don't see a learning journal yet—let's set one up.
What's your goal with this codebase? Are you:
- Contributing new features
- Fixing bugs
- Doing code review
- General exploration
You: I want to contribute to the file browser module
Agent: Good, concrete goal. Before we dive in, what's your familiarity
with the overall architecture? Have you worked with this codebase before?
You: I know it's TypeScript and uses Lumino widgets, but I'm new to the code
Agent: Perfect starting point. Looking at the directory structure,
where do you *expect* file browser code to live?
You: Maybe `packages/filebrowser` or something like that?
Agent: Good instinct — it's actually `packages/filebrowser-extension`
and `packages/filebrowser`. Before I show you the difference, why do
you think they split it into two packages?
You: Hmm... maybe one is the core logic and one is the JupyterLab plugin?
Agent: 🎯 Exactly. Now let's trace what happens when a user clicks
"New Folder"...
The skill maintains .claude/learning-journal.md tracking:
This file persists across sessions and is yours to review and edit.
Add to your journal's Focus & Goals:
- Learning style: Prefers tracing real user actions through the code
- Learning style: Learns best by comparing to patterns I already know
- Learning style: Wants to understand tests before implementation
Create CONCEPTS.md alongside the skill to prime domain knowledge:
# Key Concepts
## Lumino Widgets
The UI component system — everything visible inherits from Widget...
## Extension vs Package
Extensions register with JupyterLab, packages are standalone...
learn-codebase/
├── SKILL.md # Main skill instructions
├── JOURNAL-TEMPLATE.md # Template for new learning journals
├── QUESTION-PATTERNS.md # Socratic question reference
├── README.md # This file
└── LICENSE # MIT
This skill improves through real-world usage. After testing, consider contributing:
QUESTION-PATTERNS.mdGood first contribution ideas:
Built on research from:
This skill uses the open Agent Skills standard.
Tested:
~/.claude/skills/)Expected to work with compatible Agent Skills environments, but not fully validated here:
.cursor/skills/) — npx skills add can target Cursor with -a cursorIf you liked this skill, consider supporting to build more cool things in the future:
MIT
1000+ skills curated from Anthropic, Vercel, Stripe, and other engineering teams
A Claude Code skill by Hao (駱君昊) that learns your Facebook voice and auto-posts to FB / IG / Threads / X with a 14-day c
Claude Code skill for YouTube creators — channel audits, video SEO, retention scripts, thumbnails, content strategy, Sho
Design enforcement with memory — keeps your UI consistent across a project