Our review
Generates a CODEMAP.md file that serves as a navigational map for a codebase, including architecture diagrams and structural annotations.
Strengths
- Automatically analyzes tech stack and directory structure
- Generates Mermaid diagrams for application and IaC architectures
- Intelligently adjusts depth based on project size
- Supports merge/update mode to preserve manual additions
Limitations
- Requires tools like terraform graph to be initialized for advanced IaC diagrams
- May miss complex relationships in very large projects
- Generated file can become stale without regeneration
Use this skill to quickly create a comprehensive navigation map of a codebase, ideal for onboarding or project auditing.
Avoid using it on extremely large projects without prior filtering, or when execution time is limited as analysis can be heavy.
Security analysis
SafeThe skill uses only safe, prefixed Bash commands (ast-grep, terraform graph) for code analysis and infrastructure inspection. No destructive operations, network requests, or obfuscated payloads. Write access is limited to generating CODEMAP.md files. No exfiltration or privilege escalation risks.
No concerns found
Examples
Generate a CODEMAP.md for this project, including an architecture diagram and tech stack summary.Create a detailed map of the infrastructure as code in this repository, with Terraform resource relationships.Update the existing CODEMAP.md to reflect recent changes in the project structure, merging in any manual additions.name: codemap description: Generate navigational codebase maps with architecture diagrams. Use when mapping a codebase, creating architecture docs, visualizing project structure, generating infrastructure diagrams, understanding repo layout, or onboarding to a new project. allowed-tools:
- Read
- Write(./**)
- Glob
- Grep
- Bash(ast-grep:*)
- Bash(terraform graph:*)
- AskUserQuestion
- Task
Codemap Generator
Generate CODEMAP.md files that help humans and AI agents navigate codebases.
Output Separation
- CODEMAP.md = Auto-generated navigation map (this skill creates/updates)
- ARCHITECTURE.md = Hand-written design decisions (never touch)
Workflow
Phase 1: Project Analysis
-
Count files to determine project size:
- Use Glob with pattern
**/*excluding vendored paths - Exclude:
node_modules/,vendor/,__pycache__/,target/,.terraform/,.* - Count results to determine depth
- Use Glob with pattern
-
Detect project type(s):
- Check for IaC patterns (Terraform, Ansible, K8s, etc.)
- Check for application code (package.json, go.mod, requirements.txt, etc.)
- Projects can be mixed (app + infra)
-
Set depth based on file count: | Files | Depth | Output | |-------|-------|--------| | <50 | shallow | Single root CODEMAP.md | | 50-500 | medium | Root + key directories | | >500 | deep | Root + 2 levels, skip vendored |
Phase 2: Existing File Check
STOP. Check for existing CODEMAP.md before proceeding.
Before generating, check if CODEMAP.md exists.
If exists: Use AskUserQuestion with options:
- Overwrite completely
- Merge/update (preserve manual additions)
- Abort
If not exists: Proceed to generation.
Do NOT proceed to Phase 3 until resolved.
Phase 3: Content Generation
Generate sections based on what's detected:
For Application Code
- Tech Stack - languages, frameworks, key dependencies
- Directory Structure - annotated tree with purpose per directory
- Entry Points - main files, CLI commands, API servers
- Code Architecture Diagram - mermaid showing component relationships
- Key Files Reference - important files with one-line descriptions
For Infrastructure Code
- IaC Stack - Terraform, Ansible, K8s, etc.
- Infrastructure Topology Diagram - mermaid showing resource relationships
- Module/Role Hierarchy Diagram - mermaid showing code organization
- Resource Inventory - what's managed, providers used
For Mixed Repos
Include both sections with clear delineation.
Phase 4: Output
Write CODEMAP.md to project root (and subdirectories if depth warrants).
Detection Patterns
Application Code
| Indicator | Stack |
|-----------|-------|
| package.json | Node.js/JavaScript/TypeScript |
| go.mod | Go |
| Cargo.toml | Rust |
| requirements.txt, pyproject.toml, setup.py | Python |
| pom.xml, build.gradle | Java |
| Gemfile | Ruby |
| composer.json | PHP |
| *.csproj, *.sln | .NET |
Infrastructure as Code
| Indicator | Tool | Analysis Method |
|-----------|------|-----------------|
| *.tf files | Terraform | Parse resources, modules, use terraform graph if initialized |
| playbook*.yml + roles/ | Ansible | Map playbooks → roles → tasks |
| kind: in YAML, kustomization.yaml | Kubernetes | Parse manifests, map services/deployments |
| Chart.yaml | Helm | Parse templates, values |
| Pulumi.yaml | Pulumi | Treat like application code |
| AWSTemplateFormatVersion | CloudFormation | Parse resources, nested stacks |
| docker-compose.yml | Docker Compose | Map services, networks, volumes |
Mermaid Diagram Patterns
Code Architecture (Component Relationships)
graph TD
subgraph "API Layer"
A[REST API]
B[GraphQL]
end
subgraph "Business Logic"
C[Services]
D[Domain Models]
end
subgraph "Data Layer"
E[Repositories]
F[Database]
end
A --> C
B --> C
C --> D
C --> E
E --> F
Infrastructure Topology
graph LR
subgraph "AWS"
ALB[Load Balancer]
subgraph "ECS Cluster"
SVC1[Service A]
SVC2[Service B]
end
RDS[(PostgreSQL)]
REDIS[(Redis)]
end
ALB --> SVC1
ALB --> SVC2
SVC1 --> RDS
SVC2 --> RDS
SVC1 --> REDIS
Module Hierarchy (Terraform)
graph TD
ROOT[Root Module]
ROOT --> VPC[modules/vpc]
ROOT --> ECS[modules/ecs]
ROOT --> RDS[modules/rds]
ECS --> SG[modules/security-groups]
RDS --> SG
Analysis Techniques
Import Graph (AST-based)
For JS/TS:
ast-grep --pattern 'import $_ from "$SOURCE"' --lang ts
ast-grep --pattern 'require("$SOURCE")' --lang js
For Python:
ast-grep --pattern 'from $MODULE import $_' --lang python
ast-grep --pattern 'import $MODULE' --lang python
For Go:
ast-grep --pattern 'import "$PKG"' --lang go
Entry Point Detection
| File Pattern | Type |
|--------------|------|
| main.go, main.py, main.ts | Application entry |
| index.ts, index.js | Module entry |
| cli.py, cli.ts, cmd/ | CLI entry |
| server.ts, app.py, api/ | Server entry |
| *_test.go, *.test.ts, test_*.py | Test entry |
Terraform Resource Parsing
Extract from *.tf:
resourceblocks → managed infrastructuremoduleblocks → dependenciesproviderblocks → cloud targetsdatablocks → external references
If .terraform/ exists and terraform init has been run, can use:
terraform graph | # convert DOT to mermaid
Note: terraform graph requires initialized state. Skip if .terraform/ missing or init incomplete.
Output Template
# Codemap
> Auto-generated navigation map. Last updated: {date}
> For design decisions, see ARCHITECTURE.md (if exists)
## Tech Stack
- **Languages**: {detected languages}
- **Frameworks**: {detected frameworks}
- **Infrastructure**: {detected IaC tools}
## Directory Structure
\`\`\`
{annotated tree}
\`\`\`
## Code Architecture
\`\`\`mermaid
{component diagram}
\`\`\`
## Infrastructure Topology
\`\`\`mermaid
{infra diagram}
\`\`\`
## Entry Points
| Entry | Purpose | Command |
|-------|---------|---------|
| {file} | {purpose} | {how to run} |
## Key Files
| File | Purpose |
|------|---------|
| {path} | {description} |
Edge Cases
- Monorepos: Detect workspace patterns (lerna, nx, turborepo, go workspaces), generate per-package maps
- No clear structure: Generate minimal map with warnings about organization
- Vendored code: Always exclude from analysis (node_modules, vendor, .terraform, pycache)
- Generated code: Detect and label (protobuf, OpenAPI, etc.)
API Documentation Generator
Documentation
Automatically generates OpenAPI/Swagger API documentation.
Technical Writer
Documentation
Writes clear technical documentation following top style guides.
Documentation Maintenance
Documentation
This skill provides a structured workflow for updating project documentation including CLAUDE.md, README, and CHANGELOG. It walks through phases like inventorying existing docs, analyzing git history for needed changes, optimizing for AI readability, and ensuring cross-document consistency. Use it when synchronizing documentation with code changes or improving documentation effectiveness for AI coding agents.