// Navigate, search, and understand project structures. Use when onboarding to a codebase, locating implementations, tracing dependencies, or understanding architecture. Provides patterns for file searching with Glob, code searching with Grep, and systematic architecture analysis.
| name | codebase-exploration |
| description | Navigate, search, and understand project structures. Use when onboarding to a codebase, locating implementations, tracing dependencies, or understanding architecture. Provides patterns for file searching with Glob, code searching with Grep, and systematic architecture analysis. |
Systematic patterns for navigating and understanding codebases efficiently.
Start broad, then narrow down. This three-step pattern works for any codebase.
# Understand top-level structure
ls -la
# Find configuration files (reveals tech stack)
ls -la *.json *.yaml *.yml *.toml 2>/dev/null
# Check for documentation
ls -la README* CLAUDE.md docs/ 2>/dev/null
# Find source directories
Glob: **/src/**/*.{ts,js,py,go,rs,java}
# Find test directories
Glob: **/{test,tests,__tests__,spec}/**/*
# Find entry points
Glob: **/index.{ts,js,py} | **/main.{ts,js,py,go,rs}
# Package/dependency files
Glob: **/package.json | **/requirements.txt | **/go.mod | **/Cargo.toml
# Build configuration
Glob: **/{tsconfig,vite.config,webpack.config,jest.config}.*
# Environment/deployment
Glob: **/{.env*,docker-compose*,Dockerfile}
When you need to locate where something is implemented:
# Find function/class definitions
Grep: (function|class|interface|type)\s+TargetName
# Find exports
Grep: export\s+(default\s+)?(function|class|const)\s+TargetName
# Find specific patterns (adjust for language)
Grep: def target_name # Python
Grep: func TargetName # Go
Grep: fn target_name # Rust
When you need to find where something is used:
# Find imports of a module
Grep: import.*from\s+['"].*target-module
# Find function calls
Grep: targetFunction\(
# Find references (broad search)
Grep: TargetName
When you need to understand system structure:
# Find all route definitions
Grep: (app\.(get|post|put|delete)|router\.)
# Find database models/schemas
Grep: (Schema|Model|Entity|Table)\s*\(
Glob: **/{models,entities,schemas}/**/*
# Find service boundaries
Glob: **/{services,controllers,handlers}/**/*
Grep: (class|interface)\s+\w+Service
# Web application routes
Grep: (Route|path|endpoint)
Glob: **/routes/**/* | **/*router*
# CLI commands
Grep: (command|program\.)
Glob: **/cli/**/* | **/commands/**/*
# Event handlers
Grep: (on|handle|subscribe)\s*\(
# Environment variables
Grep: (process\.env|os\.environ|env\.)
# Feature flags
Grep: (feature|flag|toggle)
# Constants/config objects
Grep: (const|let)\s+(CONFIG|config|settings)
Glob: **/{config,constants}/**/*
# Database queries
Grep: (SELECT|INSERT|UPDATE|DELETE|find|create|update)
Grep: (prisma|sequelize|typeorm|mongoose)\.
# API calls
Grep: (fetch|axios|http\.|request\()
# State management
Grep: (useState|useReducer|createStore|createSlice)
files_with_matches for discovery, content for analysisAfter exploration, summarize findings:
## Codebase Overview
**Tech Stack:** [Languages, frameworks, tools]
**Architecture:** [Monolith, microservices, modular, etc.]
**Entry Points:** [Main files, routes, handlers]
## Key Directories
- `src/` - [Purpose]
- `lib/` - [Purpose]
- `tests/` - [Purpose]
## Conventions Observed
- Naming: [Pattern]
- File organization: [Pattern]
- Testing: [Pattern]
## Dependencies
- [Key dependency]: [Purpose]
- [Key dependency]: [Purpose]