// This skill should be used when the user asks about "analyzing codebase", "understanding project structure", "code exploration", "architecture discovery", "codebase patterns", or needs to systematically analyze and document a codebase's organization and conventions.
| name | Codebase Analysis |
| description | This skill should be used when the user asks about "analyzing codebase", "understanding project structure", "code exploration", "architecture discovery", "codebase patterns", or needs to systematically analyze and document a codebase's organization and conventions. |
| version | 1.0.0 |
This skill provides systematic approaches to analyzing and understanding codebases of any size and complexity.
Small (<50 files): Comprehensive scan of all files
Medium (50-500 files): Representative sampling per category
Large (>500 files): Strategic sampling of key areas
Run these tracks concurrently for efficiency:
# Files to examine:
- README.md, README*.md
- package.json "description" field
- docs/ or documentation/ folder
- Main entry points (index.ts, main.ts, app.ts)
- API documentation
# Configuration files:
- package.json (dependencies, devDependencies, scripts)
- tsconfig.json / jsconfig.json
- Build configs: vite.config.*, webpack.config.*, rollup.config.*
- Test configs: jest.config.*, vitest.config.*
- Linter configs: .eslintrc.*, eslint.config.*
- Formatter configs: .prettierrc.*, prettier.config.*
# Analyze:
- Top-level directories (src/, lib/, packages/, apps/)
- 2-3 representative files per major directory
- Naming conventions (kebab-case, camelCase, PascalCase)
- Module organization patterns
- Index/barrel files
# Patterns to identify:
- Export style: named vs default exports
- Component patterns: functional vs class, HOCs
- State management: Redux, Zustand, Context
- Testing patterns: unit, integration, e2e
- Error handling: try/catch, Result types, error boundaries
## Package: {name}
**Purpose**: {description}
**Type**: Library | Application | CLI | Framework
**Entry**: {main entry point}
### Dependencies
- Production: {count} packages
- Development: {count} packages
- Key deps: {list critical dependencies}
### Scripts
| Script | Command | Purpose |
|--------|---------|---------|
| dev | {cmd} | Development server |
| build | {cmd} | Production build |
| test | {cmd} | Run tests |
## Directory: {path}
**Purpose**: {description}
**Pattern**: {naming convention}
**File Count**: {count}
### Structure
{tree representation, 2-3 levels}
### Key Files
| File | Purpose |
|------|---------|
| {file} | {purpose} |
## Detected Conventions
### Confirmed Patterns
- {Pattern}: {evidence} (found in X% of files)
### Inconsistencies
⚠️ {Pattern}: {variant1} ({X%}) vs {variant2} ({Y%})
Recommendation: Standardize on {recommended}
For monorepos (pnpm workspaces, yarn workspaces, nx, turborepo):
## Monorepo Structure
### Workspace Configuration
- Tool: {pnpm/yarn/npm/nx/turborepo}
- Config: {workspace config file}
### Packages
| Package | Type | Dependencies |
|---------|------|--------------|
| {name} | {lib/app} | {internal deps} |
### Build Order
1. {package1} (no deps)
2. {package2} (depends on 1)
3. {package3} (depends on 1, 2)
### Shared Configuration
- TypeScript: {shared tsconfig}
- Testing: {shared test config}
- Linting: {shared lint config}
## Issues Detected
### Critical
❌ {issue}: {description}
Location: {file:line}
Impact: {impact}
### Warning
⚠️ {issue}: {description}
Location: {file:line}
Recommendation: {fix}
### Info
ℹ️ {observation}
When used during /steering: