codebase-mapping
skillRepository structure and dependency analysis for understanding a codebase's architecture. Use when needing to (1) generate a file tree or structure map, (2) analyze import/dependency graphs, (3) identify entry points and module boundaries, (4) understand the overall layout of an unfamiliar codebase, or (5) prepare for deeper architectural analysis.
apm::install
apm install @aiskillstore/codebase-mappingapm::skill.md
---
name: codebase-mapping
description: Repository structure and dependency analysis for understanding a codebase's architecture. Use when needing to (1) generate a file tree or structure map, (2) analyze import/dependency graphs, (3) identify entry points and module boundaries, (4) understand the overall layout of an unfamiliar codebase, or (5) prepare for deeper architectural analysis.
---
# Codebase Mapping
Maps repository structure and dependencies to enable targeted architectural analysis.
## Quick Start
Generate a structural map:
```bash
python scripts/map_codebase.py /path/to/repo --output structure.json
```
## Process
1. **Clone or access** the target repository
2. **Generate file tree** excluding noise (node_modules, __pycache__, .git, etc.)
3. **Parse imports** to build dependency graph
4. **Identify entry points** (main.py, index.ts, setup.py, pyproject.toml)
5. **Detect boundaries** - package structure and public APIs
## Output Artifacts
The skill produces:
- `file_tree.txt` - Annotated directory structure
- `dependencies.json` - Import graph in adjacency list format
- `entry_points.md` - Identified entry points with descriptions
- `module_map.md` - Package boundaries and public interfaces
## Key Patterns to Identify
### Entry Point Detection
Look for these patterns:
- Python: `if __name__ == "__main__"`, `setup.py`, `pyproject.toml`
- Node: `package.json` main/bin fields, `index.js`
- Frameworks: `app.py` (Flask), `manage.py` (Django), `main.ts` (Nest)
### Dependency Classification
Classify imports as:
- **External**: Third-party packages (from package manager)
- **Internal**: Project modules (relative imports)
- **Standard**: Language standard library
### Noise Exclusion
Always exclude:
```
node_modules/
__pycache__/
.git/
.venv/
venv/
dist/
build/
*.egg-info/
.mypy_cache/
.pytest_cache/
```
## Integration with Other Skills
This skill provides the foundation for:
- `data-substrate-analysis` → Focus on types.py, models.py
- `execution-engine-analysis` → Focus on runner files
- `control-loop-extraction` → Focus on agent.py, loop files
- `component-model-analysis` → Focus on base classes
## Example Output
```markdown
## Repository: langchain
### Structure Summary
- 342 Python modules across 28 packages
- Primary entry: langchain/__init__.py
- Core packages: agents, chains, llms, tools
### Key Files for Analysis
- Types: langchain/schema.py, langchain/types.py
- Execution: langchain/agents/executor.py
- Tools: langchain/tools/base.py
```