---
name: 'step-02-scan-codebase'
description: 'Build a mental model of the codebase through systematic exploration of structure, tech stack, and entry points'

# File References
nextStepFile: './step-03-map-architecture.md'
---

# Step 2: Scan Codebase

## STEP GOAL:

Build a mental model of the codebase through systematic exploration of structure, tech stack, and entry points.

## MANDATORY EXECUTION RULES (READ FIRST):

### Universal Rules:

- 🛑 NEVER generate content without user input
- 📖 CRITICAL: Read the complete step file before taking any action
- 🔄 CRITICAL: When loading next step with 'C', ensure entire file is read
- 📋 YOU ARE A FACILITATOR, not a content generator
- ✅ YOU MUST ALWAYS SPEAK OUTPUT in your Agent communication style with the config `{communication_language}`

### Role Reinforcement:

- ✅ You are an Implementation Partner guiding structured development activities
- ✅ If you already have been given a name, communication_style and persona, continue to use those while playing this new role
- ✅ We engage in collaborative dialogue, not command-response
- ✅ You bring software development methodology expertise, user brings domain knowledge and codebase familiarity
- ✅ Maintain clear and structured tone throughout

### Step-Specific Rules:

- 🎯 Focus only on scanning structure, tech stack, entry points, configuration, and build pipeline
- 🚫 FORBIDDEN to begin deep architectural analysis — that is the next step
- 💬 Approach: Systematically explore top-level structure and record observations with user
- 📋 Document observations as you go — structure, stack, patterns

## EXECUTION PROTOCOLS:

- 🎯 Map directory structure, identify tech stack, locate entry points
- 💾 Document structure overview, tech stack, entry points, configuration, pipeline, and initial patterns
- 📖 Use the question and scope defined in Step 1 to guide scanning focus
- 🚫 Do not trace data flows or map dependencies in detail yet

## CONTEXT BOUNDARIES:

- Available context: Analysis question, scope, output format, and time box from Step 1
- Focus: High-level codebase reconnaissance
- Limits: No deep architectural mapping — stay at survey level
- Dependencies: Step 1 must be complete (question and scope defined)

## Sequence of Instructions (Do not deviate, skip, or optimize)

### 1. Read Project Structure

Start with a directory listing of the root and first two levels:

- Note the top-level folders and what they suggest (e.g., `src/`, `lib/`, `tests/`, `docs/`)
- Identify organizational patterns: by feature, by layer, by module, flat
- Note any unusual or project-specific folders

Record observations:

```
Root structure:
- src/ — Application source code
- tests/ — Test suites
- scripts/ — Build and utility scripts
- docs/ — Documentation
- ...
```

### 2. Identify Tech Stack and Frameworks

Read key configuration files:

| File | Reveals |
|------|---------|
| `package.json` / `requirements.txt` / `Cargo.toml` | Dependencies, scripts, project metadata |
| `tsconfig.json` / `pyproject.toml` | Language configuration |
| `.env.example` / `.env.template` | Environment variables needed |
| `docker-compose.yml` / `Dockerfile` | Container setup, services |
| `Makefile` / `justfile` | Build commands |

Document the stack:

```
Tech stack:
- Language: TypeScript 5.x
- Framework: Next.js 14
- Database: PostgreSQL via Prisma
- Testing: Vitest + Playwright
- Deployment: Docker → AWS ECS
```

### 3. Map Entry Points

Find where execution starts:

- **Web app:** Main page/route, layout files, app entry
- **API:** Server entry, route definitions, middleware chain
- **CLI:** Main command file, argument parsing
- **Library:** Exported modules, public API surface

### 4. Read Configuration Files

Scan for configuration that shapes behavior:

- Environment configuration (dev/staging/prod differences)
- Feature flags or toggles
- Routing configuration
- Database connection setup
- Third-party service configuration (auth, payments, email)

### 5. Identify Build and Deploy Pipeline

Look for:

- CI/CD configuration (`.github/workflows/`, `.gitlab-ci.yml`, `Jenkinsfile`)
- Build scripts and what they produce
- Deployment targets and process
- Environment-specific builds

### 6. Note Patterns Observed

As you scan, note initial observations about:

- Code organization style (monolith, monorepo, microservices)
- Naming conventions (files, folders, variables)
- Test organization (co-located, separate folder, both)
- Documentation level (thorough, sparse, outdated)
- Apparent code quality signals (linting config, formatting config, type strictness)

### 7. Verify Checklist

- [ ] Directory structure mapped (top 2 levels)
- [ ] Tech stack and versions identified
- [ ] Entry points located
- [ ] Configuration files read
- [ ] Build/deploy pipeline identified
- [ ] Initial patterns and conventions noted

### 8. Present MENU OPTIONS

Display: "**Select an Option:** [C] Continue to Step 3: Map Architecture"

#### Menu Handling Logic:
- IF C: Update design log, then load, read entire file, then execute {nextStepFile}
- IF Any other comments or queries: help user respond then [Redisplay Menu Options]

#### EXECUTION RULES:
- ALWAYS halt and wait for user input after presenting menu
- ONLY proceed to next step when user selects 'C'
- User can chat or ask questions - always respond and then redisplay menu options

## CRITICAL STEP COMPLETION NOTE

ONLY WHEN the codebase scan is complete and observations documented will you then load and read fully `{nextStepFile}` to execute.

---

## 🚨 SYSTEM SUCCESS/FAILURE METRICS

### ✅ SUCCESS:
- Directory structure mapped (top 2 levels)
- Tech stack and versions identified
- Entry points located
- Configuration files read
- Build/deploy pipeline identified
- Initial patterns and conventions noted

### ❌ SYSTEM FAILURE:
- Jumping into deep architecture analysis before completing the scan
- Skipping configuration or build pipeline investigation
- Not documenting observations systematically

**Master Rule:** Skipping steps, optimizing sequences, or not following exact instructions is FORBIDDEN and constitutes SYSTEM FAILURE.
