iterative-code-exploration
Iterative Code Exploration
A systematic pattern for progressively exploring and understanding unfamiliar codebases through iterative context refinement.
The Problem
When working with new codebases, you often don't know:
- Which files contain relevant code
- What patterns and conventions exist
- What terminology the project uses
- How components interact
Standard approaches fail:
- Read everything: Time-consuming and overwhelming
- Guess locations: Often misses critical context
- Ask broad questions: Returns too much irrelevant information
The Solution: 4-Phase Iterative Loop
┌─────────────────────────────────────────────┐
│ │
│ ┌──────────┐ ┌──────────┐ │
│ │ DISCOVER │─────▶│ EVALUATE │ │
│ └──────────┘ └──────────┘ │
│ ▲ │ │
│ │ ▼ │
│ ┌──────────┐ ┌──────────┐ │
│ │ LOOP │◀─────│ REFINE │ │
│ └──────────┘ └──────────┘ │
│ │
│ Max 3-4 cycles, then synthesize │
└─────────────────────────────────────────────┘
Phase 1: DISCOVER
Start with broad exploration:
# Find entry points
find . -name "main.*" -o -name "index.*" -o -name "app.*" | head -20
# Discover project structure
tree -L 3 -I 'node_modules|dist|build'
# Find configuration
find . -name "*.config.*" -o -name "package.json" -o -name "*.toml"
# Identify key patterns
grep -r "export class" --include="*.ts" src/ | head -20
grep -r "def " --include="*.py" . | head -20
Document initial findings:
- Project type (web app, library, service, etc.)
- Tech stack (languages, frameworks)
- Architecture hints (monorepo, microservices, etc.)
Phase 2: EVALUATE
Assess discovered files for relevance:
# Read high-value files
cat README.md
cat ARCHITECTURE.md 2>/dev/null
cat docs/overview.md 2>/dev/null
# Check package manifests
cat package.json | jq '.dependencies, .scripts'
cat Cargo.toml 2>/dev/null
cat requirements.txt 2>/dev/null
Scoring Criteria:
- Critical (★★★): Entry points, core logic, main configs
- Important (★★): Utilities, shared components, types
- Supporting (★): Tests, docs, examples
- Noise (-): Generated files, vendored code
Phase 3: REFINE
Focus on specific areas identified as relevant:
# Dive into specific modules
ls -la src/core/
cat src/core/index.ts
# Trace dependencies
grep -r "import.*from.*core" --include="*.ts" src/ | head -20
# Find related patterns
grep -A 5 -B 5 "class UserService" src/**/*.ts
# Check tests for usage examples
find . -name "*.test.*" -o -name "*.spec.*" | head -10
Build mental model:
- How components connect
- What patterns are used consistently
- Where similar functionality lives
Phase 4: LOOP
Decision point - do you need more context?
Continue if:
- Key functionality still unclear
- Dependencies not fully traced
- Patterns inconsistent or confusing
Stop if:
- Core logic understood
- Can explain main flows
- Ready to make changes confidently
Practical Workflow
For Feature Implementation
-
Discover: Find similar existing features
grep -r "feature-name" src/ find . -name "*feature*" -
Evaluate: Review implementation patterns
cat src/features/similar-feature/index.ts -
Refine: Check tests and edge cases
cat src/features/similar-feature/*.test.ts -
Loop: Trace dependencies until clear
For Bug Fixing
-
Discover: Locate error origin
grep -r "error message" src/ git log -S "error message" -
Evaluate: Understand surrounding context
cat path/to/file.ts | grep -A 20 -B 20 "error location" -
Refine: Check call sites and callers
grep -r "functionName" --include="*.ts" src/ -
Loop: Expand context as needed
For Refactoring
-
Discover: Map current structure
find src/ -name "*.ts" | xargs wc -l | sort -n grep -r "class\|interface" --include="*.ts" src/ | wc -l -
Evaluate: Identify coupling points
grep -r "import.*from.*module" src/ | cut -d: -f2 | sort | uniq -c | sort -rn -
Refine: Find all usages
grep -r "ComponentName" --include="*.ts" src/ -
Loop: Ensure all references found
Output Template
After each loop iteration, document:
## Iteration N
**Query**: What I was looking for
**Found**: X files, Y patterns, Z components
**Relevance**: High/Medium/Low with reasons
**Gaps**: What's still unclear
**Next**: What to explore in next iteration
**Key Files**:
- path/to/file.ts - Core implementation (★★★)
- path/to/other.ts - Supporting utility (★★)
**Mental Model Update**:
- New understanding of X
- Connection between Y and Z
- Pattern: Description
Integration Points
Complements:
- knowledge-architecture: For documenting discoveries
- second-brain-librarian: For saving exploration notes
- project-orchestration: For planning exploration strategy
- testing-patterns: For learning through tests
Tips
- Start wide, then narrow focus
- Document assumptions to validate
- Use tests as documentation
- Follow imports/exports
- Check git history for context
- Look for comments explaining "why"
More from 4444j99/a-i--skills
creative-writing-craft
Craft compelling fiction and creative nonfiction with attention to structure, voice, prose style, and revision. Supports short stories, novel chapters, essays, and hybrid forms. Triggers on creative writing, fiction writing, story craft, prose style, or literary technique requests.
183skill-creator
Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Claude's capabilities with specialized knowledge, workflows, or tool integrations.
15freelance-client-ops
Manage freelance and client work professionally—proposals, contracts, scope management, invoicing, and client communication. Covers the business side of creative work. Triggers on freelance, client work, proposals, contracts, pricing, or project scope requests.
14generative-music-composer
Creates algorithmic music composition systems using procedural generation, Markov chains, L-systems, and neural approaches for ambient, adaptive, and experimental music.
12generative-art-algorithms
Create algorithmic and generative art using mathematical patterns, noise functions, particle systems, and procedural generation. Covers flow fields, L-systems, fractals, and creative coding foundations. Triggers on generative art, algorithmic art, creative coding, procedural generation, or mathematical visualization requests.
10interfaith-sacred-geometry
Generate sacred geometry patterns with interfaith symbolism for spiritual visualizations and art. Use when creating visual representations that honor multiple religious traditions, designing meditation aids, building soul journey visualizations, or producing art that bridges sacred traditions through geometric harmony. Triggers on sacred geometry requests, interfaith symbol design, spiritual visualization projects, or multi-tradition sacred art.
8