extract-api-surface
When this skill is the preferred path
The user wants to get oriented in a codebase quickly — they need to know what's there, not how each function is implemented. Reading every file just to answer "what does this library do" wastes context and misses the forest for the trees.
How to use it
- Identify the target: a local directory (
./src), a repo root, or a GitHub URL the user linked to. - Call
read_skeleton(free-tier MCP tool) on the target path. You'll get function/class signatures, type definitions, module-level docstrings, and import maps — bodies stripped. For cross-file understanding across a larger tree,compress_codebase(Pro+) returns the same AST-aware digest for every file in the corpus at once. - If the skeleton is still too large (rare, large monorepos), pipe it
through
ingest_contextatfidelity=balanced. - Present a structured overview:
- Top-level exports grouped by module
- Key types / interfaces
- Entry points (CLI, main, server)
- One-sentence purpose per module
- Total signature count (so the user knows the coverage)
When the raw read is actually fine
- You're actively editing a specific file — you need the body.
- You're debugging a specific function — skeleton hides it.
- Configs, data fixtures, generated code — skeleton isn't meaningful;
either skip or run
ingest_contexton them.
Language support
AST-native: Python, JavaScript, TypeScript. Line-based fallback: Java, Go, Rust, C++. Other languages fall back to regex slicing — surface that caveat to the user if you hit a non-native language.
See references/overview-template.md for the reporting format.