skills/codebase-study-guide/SKILL.md
Generate a pedagogically-grounded study guide for learning an unfamiliar codebase. Use when the user wants to onboard onto a codebase, understand a project's architecture, create learning materials for a team, or asks things like "help me learn this codebase", "create an onboarding guide", "I'm new to this project", "how does this system work", "study guide for this repo", or "explain this codebase to me". Produces a structured document that builds understanding from purpose to systems to patterns, using evidence-based learning techniques (elaborative interrogation, concept mapping, threshold concepts, worked examples, progressive disclosure).
npx skillsauth add petekp/agent-skills codebase-study-guideInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Generate a study guide that builds durable understanding of a codebase using evidence-based learning techniques. The guide helps readers grasp not just what the code does, but why it exists and how its parts relate.
These principles shape every section of the guide. See references/pedagogy.md for the full research basis.
Use AskUserQuestion to understand the audience and focus:
question: "Who is the primary audience for this study guide?"
header: "Audience"
options:
- label: "New team member"
description: "Developer joining this team, needs full onboarding"
- label: "Experienced dev, new codebase"
description: "Senior engineer who knows the stack but not this project"
- label: "Cross-team collaborator"
description: "Someone who needs to interface with this system, not own it"
- label: "Future me"
description: "Personal reference for a codebase I'm exploring now"
Then clarify depth:
question: "What depth should the guide cover?"
header: "Depth"
options:
- label: "Full guide (Recommended)"
description: "Purpose, architecture, systems, patterns, interfaces, and exploration tasks"
- label: "Architecture overview"
description: "Purpose and high-level systems only, no deep dives"
- label: "Specific subsystem"
description: "Deep dive into one area of the codebase"
Conduct systematic exploration using the Explore agent or direct tools. Investigate in this order:
main, route handlers, CLI entry, event listeners)Also look for:
From the exploration, identify 2-3 codebase-specific threshold concepts — ideas that are:
Examples: "Everything is an event," "ownership determines lifecycle," "the config is the source of truth," "reads and writes are separate models."
Before writing, create a mental model of the system as a concept map:
This becomes the "System Map" section of the guide and informs the sequencing of everything else.
Follow the template structure in references/guide-template.md. Key principles while writing:
For each system/module section:
For the Mermaid diagrams:
graph TD for system architecture and data flowsequenceDiagram for request flows and interactionsclassDiagram for domain models with relationshipsFor the exploration tasks:
Before delivering the guide:
Write the guide as a single Markdown file placed at a sensible location (.claude/docs/study-guide.md or as specified by the user). The guide should be self-contained — a reader with access to the codebase and the guide should need nothing else.
development
Compile a plain-language task into a concise, auditable Codex or Claude Code `/goal`, or explain why a normal prompt fits better. Use when the user asks to draft, formulate, rewrite, tighten, or create a goal for multi-step work that needs a durable objective, transcript-visible proof, constraints, bounded stop conditions, host-aware operation, and risk-based review depth.
tools
Expert Unix and macOS systems engineer for shell scripting, system administration, command-line tools, launchd, Homebrew, networking, and low-level system tasks. Use when the user asks about Unix commands, shell scripts, macOS system configuration, process management, or troubleshooting system issues.
testing
Apply professional typography principles to create readable, hierarchical, and aesthetically refined interfaces. Use when setting type scales, choosing fonts, adjusting spacing, designing text-heavy layouts, implementing dark mode typography, or when asked about readability, font pairing, line height, measure, typographic hierarchy, variable fonts, font loading, or OpenType features.
development
Create visual parameter tuning panels for iterative adjustment of animations, layouts, colors, typography, physics, or any numeric/visual values. Use when the user asks to "create a tuning panel", "add parameter controls", "build a debug panel", "tweak parameters visually", "fine-tune values", "dial in the settings", or "adjust parameters interactively". Also triggers on mentions of "leva", "dat.GUI", or "tweakpane".