Codebase exploration techniques for rapid discovery, architecture analysis, pattern detection, and dependency mapping.
From fuse-ai-pilotnpx claudepluginhub fusengine/agents --plugin fuse-ai-pilotThis skill uses the workspace's default tool permissions.
Designs and optimizes AI agent action spaces, tool definitions, observation formats, error recovery, and context for higher task completion rates.
Enables AI agents to execute x402 payments with per-task budgets, spending controls, and non-custodial wallets via MCP tools. Use when agents pay for APIs, services, or other agents.
Compares coding agents like Claude Code and Aider on custom YAML-defined codebase tasks using git worktrees, measuring pass rate, cost, time, and consistency.
Session: ${CLAUDE_SESSION_ID}
# List root files
ls -la
# Find config files
find . -maxdepth 2 -name "package.json" -o -name "*.config.*" -o -name "pyproject.toml" -o -name "go.mod" -o -name "Cargo.toml" 2>/dev/null
# Check for common entry points
ls -la src/ app/ lib/ cmd/ 2>/dev/null
# Tree view (excluding common noise)
tree -L 3 -I 'node_modules|dist|build|.git|__pycache__|.next|target|vendor' 2>/dev/null || find . -type d -maxdepth 3 | head -50
# Identify main directories
ls -la src/ lib/ app/ internal/ pkg/ 2>/dev/null
# JavaScript/TypeScript
grep -rn "main\|index\|app.listen\|createServer\|export default" --include="*.{js,ts,jsx,tsx}" | head -20
# Python
grep -rn "if __name__\|main()\|app.run\|uvicorn" --include="*.py" | head -20
# Go
grep -rn "func main\|http.ListenAndServe" --include="*.go" | head -20
# Rust
grep -rn "fn main" --include="*.rs" | head -10
# Node.js
cat package.json 2>/dev/null | head -50
# Python
cat pyproject.toml requirements.txt setup.py 2>/dev/null | head -50
# Go
cat go.mod 2>/dev/null
# Rust
cat Cargo.toml 2>/dev/null | head -50
# PHP
cat composer.json 2>/dev/null | head -50
Search for architectural patterns:
# MVC patterns
ls -la controllers/ models/ views/ routes/ 2>/dev/null
# Clean/Hexagonal Architecture
ls -la domain/ application/ infrastructure/ interfaces/ adapters/ ports/ 2>/dev/null
# Feature-based
ls -la features/ modules/ 2>/dev/null
# Next.js App Router
ls -la app/ pages/ components/ 2>/dev/null
| Pattern | Key Directories | Indicators |
|---|---|---|
| MVC | controllers/, models/, views/ | Rails, Laravel, Express |
| Clean Architecture | domain/, application/, infrastructure/ | DDD, Use cases |
| Hexagonal | adapters/, ports/, core/ | Ports & adapters |
| Feature-based | features/[name]/ | All layers per feature |
| Layered | presentation/, business/, data/ | Traditional 3-tier |
| Monolith | Single src/ | Mixed concerns |
| Microservices | Multiple services/ | Separate repos/folders |
| Next.js App Router | app/, components/, lib/ | Server/Client components |
| Modular Monolith | modules/[name]/ | Bounded contexts |
| File | Technology |
|---|---|
package.json | Dependencies, scripts |
tsconfig.json | TypeScript config |
next.config.* | Next.js |
vite.config.* | Vite |
webpack.config.* | Webpack |
tailwind.config.* | Tailwind CSS |
.eslintrc.* | ESLint |
prisma/schema.prisma | Prisma ORM |
Detection commands:
# Framework detection
grep -l "next\|react\|vue\|angular\|svelte" package.json 2>/dev/null
# Database/ORM
ls prisma/ drizzle/ migrations/ 2>/dev/null
# State management
grep -E "zustand|redux|@reduxjs|jotai|recoil" package.json 2>/dev/null
| File | Technology |
|---|---|
pyproject.toml | Modern Python project |
requirements.txt | Dependencies |
setup.py | Package setup |
manage.py | Django |
alembic.ini | Database migrations |
Detection commands:
# Framework detection
grep -E "django|flask|fastapi|starlette" pyproject.toml requirements.txt 2>/dev/null
# ORM
grep -E "sqlalchemy|django|tortoise|peewee" pyproject.toml requirements.txt 2>/dev/null
| File | Technology |
|---|---|
go.mod | Module definition |
go.sum | Dependencies lock |
cmd/ | Entry points |
internal/ | Private packages |
pkg/ | Public packages |
Detection commands:
# Framework detection
grep -E "gin|echo|fiber|chi|gorilla" go.mod 2>/dev/null
# Database
grep -E "gorm|sqlx|ent|pgx" go.mod 2>/dev/null
| File | Technology |
|---|---|
composer.json | Dependencies |
artisan | Laravel |
bin/console | Symfony |
| File | Technology |
|---|---|
Cargo.toml | Dependencies |
src/lib.rs | Library crate |
src/main.rs | Binary crate |
# TypeScript/JavaScript
ls -la src/interfaces/ src/types/ types/ 2>/dev/null
# Check for interfaces in components (violation)
grep -r "interface.*Props\|type.*Props" --include="*.tsx" src/components/ 2>/dev/null | head -10
# Hooks for business logic
ls -la src/hooks/ hooks/ 2>/dev/null
# Check for logic in components (violation)
grep -rn "useState\|useEffect\|async" --include="*.tsx" src/components/ 2>/dev/null | wc -l
# Store files
ls -la src/stores/ stores/ src/store/ 2>/dev/null
# Store usage
grep -r "useStore\|useSelector\|create(" --include="*.{ts,tsx}" src/ 2>/dev/null | head -10
## πΊοΈ Codebase Exploration: [Project Name]
### Structure Overview
- **Type**: Monolith / Microservices / Library / Monorepo
- **Tech Stack**: [Languages], [Frameworks], [Tools]
- **Architecture**: [Pattern detected]
- **Entry Points**: [Main files]
### Key Directories
src/ βββ [dir1]/ # [Purpose] βββ [dir2]/ # [Purpose] βββ [dir3]/ # [Purpose]
### Dependencies
- **Runtime**: [Key dependencies]
- **Dev**: [Build tools, linters]
- **Database**: [ORM, driver]
### Architecture Patterns
- [Pattern 1]: [Evidence]
- [Pattern 2]: [Evidence]
### Code Organization
- **Interfaces**: [Location or β mixed with components]
- **Business Logic**: [Location or β in components]
- **State**: [Store location or β prop drilling]
- **File Sizes**: [Compliant or β violations found]
### Potential Issues
- β οΈ [Issue 1]
- β οΈ [Issue 2]
### Recommendations
- π‘ [Suggestion 1]
- π‘ [Suggestion 2]
# One-liner for quick assessment
echo "=== Package Manager ===" && ls package.json pyproject.toml go.mod Cargo.toml composer.json 2>/dev/null && echo "=== Framework ===" && head -20 package.json 2>/dev/null | grep -E "next|react|vue|express" && echo "=== Structure ===" && ls -la src/ app/ lib/ 2>/dev/null
# Count files by extension
find . -type f -name "*.ts" -o -name "*.tsx" -o -name "*.js" -o -name "*.jsx" 2>/dev/null | wc -l
find . -type f -name "*.py" 2>/dev/null | wc -l
find . -type f -name "*.go" 2>/dev/null | wc -l
# Find files > 100 lines (potential violations)
find . -name "*.ts" -o -name "*.tsx" -o -name "*.py" 2>/dev/null | xargs wc -l 2>/dev/null | sort -rn | head -20