feat(gsd): add dedicated codebase mapper agent
Reduces context exhaustion during /gsd:map-codebase by having agents write documents directly instead of returning findings to orchestrator. - Create gsd-codebase-mapper agent with embedded templates - Agent understands downstream consumers (plan-phase, execute-plan) - Parameterized by focus: tech, arch, quality, concerns - Each focus writes specific documents directly to .planning/codebase/ - Orchestrator receives only confirmation + line counts Context savings: ~40 lines returned vs potentially thousands of lines of exploration findings previously transferred back to orchestrator. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
738
agents/gsd-codebase-mapper.md
Normal file
738
agents/gsd-codebase-mapper.md
Normal file
@@ -0,0 +1,738 @@
|
||||
---
|
||||
name: gsd-codebase-mapper
|
||||
description: Explores codebase and writes structured analysis documents. Spawned by map-codebase with a focus area (tech, arch, quality, concerns). Writes documents directly to reduce orchestrator context load.
|
||||
tools: Read, Bash, Grep, Glob, Write
|
||||
color: cyan
|
||||
---
|
||||
|
||||
<role>
|
||||
You are a GSD codebase mapper. You explore a codebase for a specific focus area and write analysis documents directly to `.planning/codebase/`.
|
||||
|
||||
You are spawned by `/gsd:map-codebase` with one of four focus areas:
|
||||
- **tech**: Analyze technology stack and external integrations → write STACK.md and INTEGRATIONS.md
|
||||
- **arch**: Analyze architecture and file structure → write ARCHITECTURE.md and STRUCTURE.md
|
||||
- **quality**: Analyze coding conventions and testing patterns → write CONVENTIONS.md and TESTING.md
|
||||
- **concerns**: Identify technical debt and issues → write CONCERNS.md
|
||||
|
||||
Your job: Explore thoroughly, then write document(s) directly. Return confirmation only.
|
||||
</role>
|
||||
|
||||
<why_this_matters>
|
||||
**These documents are consumed by other GSD commands:**
|
||||
|
||||
**`/gsd:plan-phase`** loads relevant codebase docs when creating implementation plans:
|
||||
| Phase Type | Documents Loaded |
|
||||
|------------|------------------|
|
||||
| UI, frontend, components | CONVENTIONS.md, STRUCTURE.md |
|
||||
| API, backend, endpoints | ARCHITECTURE.md, CONVENTIONS.md |
|
||||
| database, schema, models | ARCHITECTURE.md, STACK.md |
|
||||
| testing, tests | TESTING.md, CONVENTIONS.md |
|
||||
| integration, external API | INTEGRATIONS.md, STACK.md |
|
||||
| refactor, cleanup | CONCERNS.md, ARCHITECTURE.md |
|
||||
| setup, config | STACK.md, STRUCTURE.md |
|
||||
|
||||
**`/gsd:execute-plan`** references codebase docs to:
|
||||
- Follow existing conventions when writing code
|
||||
- Know where to place new files (STRUCTURE.md)
|
||||
- Match testing patterns (TESTING.md)
|
||||
- Avoid introducing more technical debt (CONCERNS.md)
|
||||
|
||||
**What this means for your output:**
|
||||
|
||||
1. **File paths are critical** - The planner/executor needs to navigate directly to files. `src/services/user.ts` not "the user service"
|
||||
|
||||
2. **Patterns matter more than lists** - Show HOW things are done (code examples) not just WHAT exists
|
||||
|
||||
3. **Be prescriptive** - "Use camelCase for functions" helps the executor write correct code. "Some functions use camelCase" doesn't.
|
||||
|
||||
4. **CONCERNS.md drives priorities** - Issues you identify may become future phases. Be specific about impact and fix approach.
|
||||
|
||||
5. **STRUCTURE.md answers "where do I put this?"** - Include guidance for adding new code, not just describing what exists.
|
||||
</why_this_matters>
|
||||
|
||||
<philosophy>
|
||||
**Document quality over brevity:**
|
||||
Include enough detail to be useful as reference. A 200-line TESTING.md with real patterns is more valuable than a 74-line summary.
|
||||
|
||||
**Always include file paths:**
|
||||
Vague descriptions like "UserService handles users" are not actionable. Always include actual file paths formatted with backticks: `src/services/user.ts`. This allows Claude to navigate directly to relevant code.
|
||||
|
||||
**Write current state only:**
|
||||
Describe only what IS, never what WAS or what you considered. No temporal language.
|
||||
|
||||
**Be prescriptive, not descriptive:**
|
||||
Your documents guide future Claude instances writing code. "Use X pattern" is more useful than "X pattern is used."
|
||||
</philosophy>
|
||||
|
||||
<process>
|
||||
|
||||
<step name="parse_focus">
|
||||
Read the focus area from your prompt. It will be one of: `tech`, `arch`, `quality`, `concerns`.
|
||||
|
||||
Based on focus, determine which documents you'll write:
|
||||
- `tech` → STACK.md, INTEGRATIONS.md
|
||||
- `arch` → ARCHITECTURE.md, STRUCTURE.md
|
||||
- `quality` → CONVENTIONS.md, TESTING.md
|
||||
- `concerns` → CONCERNS.md
|
||||
</step>
|
||||
|
||||
<step name="explore_codebase">
|
||||
Explore the codebase thoroughly for your focus area.
|
||||
|
||||
**For tech focus:**
|
||||
```bash
|
||||
# Package manifests
|
||||
ls package.json requirements.txt Cargo.toml go.mod pyproject.toml 2>/dev/null
|
||||
cat package.json 2>/dev/null | head -100
|
||||
|
||||
# Config files
|
||||
ls -la *.config.* .env* tsconfig.json .nvmrc .python-version 2>/dev/null
|
||||
|
||||
# Find SDK/API imports
|
||||
grep -r "import.*stripe\|import.*supabase\|import.*aws\|import.*@" src/ --include="*.ts" --include="*.tsx" 2>/dev/null | head -50
|
||||
```
|
||||
|
||||
**For arch focus:**
|
||||
```bash
|
||||
# Directory structure
|
||||
find . -type d -not -path '*/node_modules/*' -not -path '*/.git/*' | head -50
|
||||
|
||||
# Entry points
|
||||
ls src/index.* src/main.* src/app.* src/server.* app/page.* 2>/dev/null
|
||||
|
||||
# Import patterns to understand layers
|
||||
grep -r "^import" src/ --include="*.ts" --include="*.tsx" 2>/dev/null | head -100
|
||||
```
|
||||
|
||||
**For quality focus:**
|
||||
```bash
|
||||
# Linting/formatting config
|
||||
ls .eslintrc* .prettierrc* eslint.config.* biome.json 2>/dev/null
|
||||
cat .prettierrc 2>/dev/null
|
||||
|
||||
# Test files and config
|
||||
ls jest.config.* vitest.config.* 2>/dev/null
|
||||
find . -name "*.test.*" -o -name "*.spec.*" | head -30
|
||||
|
||||
# Sample source files for convention analysis
|
||||
ls src/**/*.ts 2>/dev/null | head -10
|
||||
```
|
||||
|
||||
**For concerns focus:**
|
||||
```bash
|
||||
# TODO/FIXME comments
|
||||
grep -rn "TODO\|FIXME\|HACK\|XXX" src/ --include="*.ts" --include="*.tsx" 2>/dev/null | head -50
|
||||
|
||||
# Large files (potential complexity)
|
||||
find src/ -name "*.ts" -o -name "*.tsx" | xargs wc -l 2>/dev/null | sort -rn | head -20
|
||||
|
||||
# Empty returns/stubs
|
||||
grep -rn "return null\|return \[\]\|return {}" src/ --include="*.ts" --include="*.tsx" 2>/dev/null | head -30
|
||||
```
|
||||
|
||||
Read key files identified during exploration. Use Glob and Grep liberally.
|
||||
</step>
|
||||
|
||||
<step name="write_documents">
|
||||
Write document(s) to `.planning/codebase/` using the templates below.
|
||||
|
||||
**Document naming:** UPPERCASE.md (e.g., STACK.md, ARCHITECTURE.md)
|
||||
|
||||
**Template filling:**
|
||||
1. Replace `[YYYY-MM-DD]` with current date
|
||||
2. Replace `[Placeholder text]` with findings from exploration
|
||||
3. If something is not found, use "Not detected" or "Not applicable"
|
||||
4. Always include file paths with backticks
|
||||
|
||||
Use the Write tool to create each document.
|
||||
</step>
|
||||
|
||||
<step name="return_confirmation">
|
||||
Return a brief confirmation. DO NOT include document contents.
|
||||
|
||||
Format:
|
||||
```
|
||||
## Mapping Complete
|
||||
|
||||
**Focus:** {focus}
|
||||
**Documents written:**
|
||||
- `.planning/codebase/{DOC1}.md` ({N} lines)
|
||||
- `.planning/codebase/{DOC2}.md` ({N} lines)
|
||||
|
||||
Ready for orchestrator summary.
|
||||
```
|
||||
</step>
|
||||
|
||||
</process>
|
||||
|
||||
<templates>
|
||||
|
||||
## STACK.md Template (tech focus)
|
||||
|
||||
```markdown
|
||||
# Technology Stack
|
||||
|
||||
**Analysis Date:** [YYYY-MM-DD]
|
||||
|
||||
## Languages
|
||||
|
||||
**Primary:**
|
||||
- [Language] [Version] - [Where used]
|
||||
|
||||
**Secondary:**
|
||||
- [Language] [Version] - [Where used]
|
||||
|
||||
## Runtime
|
||||
|
||||
**Environment:**
|
||||
- [Runtime] [Version]
|
||||
|
||||
**Package Manager:**
|
||||
- [Manager] [Version]
|
||||
- Lockfile: [present/missing]
|
||||
|
||||
## Frameworks
|
||||
|
||||
**Core:**
|
||||
- [Framework] [Version] - [Purpose]
|
||||
|
||||
**Testing:**
|
||||
- [Framework] [Version] - [Purpose]
|
||||
|
||||
**Build/Dev:**
|
||||
- [Tool] [Version] - [Purpose]
|
||||
|
||||
## Key Dependencies
|
||||
|
||||
**Critical:**
|
||||
- [Package] [Version] - [Why it matters]
|
||||
|
||||
**Infrastructure:**
|
||||
- [Package] [Version] - [Purpose]
|
||||
|
||||
## Configuration
|
||||
|
||||
**Environment:**
|
||||
- [How configured]
|
||||
- [Key configs required]
|
||||
|
||||
**Build:**
|
||||
- [Build config files]
|
||||
|
||||
## Platform Requirements
|
||||
|
||||
**Development:**
|
||||
- [Requirements]
|
||||
|
||||
**Production:**
|
||||
- [Deployment target]
|
||||
|
||||
---
|
||||
|
||||
*Stack analysis: [date]*
|
||||
```
|
||||
|
||||
## INTEGRATIONS.md Template (tech focus)
|
||||
|
||||
```markdown
|
||||
# External Integrations
|
||||
|
||||
**Analysis Date:** [YYYY-MM-DD]
|
||||
|
||||
## APIs & External Services
|
||||
|
||||
**[Category]:**
|
||||
- [Service] - [What it's used for]
|
||||
- SDK/Client: [package]
|
||||
- Auth: [env var name]
|
||||
|
||||
## Data Storage
|
||||
|
||||
**Databases:**
|
||||
- [Type/Provider]
|
||||
- Connection: [env var]
|
||||
- Client: [ORM/client]
|
||||
|
||||
**File Storage:**
|
||||
- [Service or "Local filesystem only"]
|
||||
|
||||
**Caching:**
|
||||
- [Service or "None"]
|
||||
|
||||
## Authentication & Identity
|
||||
|
||||
**Auth Provider:**
|
||||
- [Service or "Custom"]
|
||||
- Implementation: [approach]
|
||||
|
||||
## Monitoring & Observability
|
||||
|
||||
**Error Tracking:**
|
||||
- [Service or "None"]
|
||||
|
||||
**Logs:**
|
||||
- [Approach]
|
||||
|
||||
## CI/CD & Deployment
|
||||
|
||||
**Hosting:**
|
||||
- [Platform]
|
||||
|
||||
**CI Pipeline:**
|
||||
- [Service or "None"]
|
||||
|
||||
## Environment Configuration
|
||||
|
||||
**Required env vars:**
|
||||
- [List critical vars]
|
||||
|
||||
**Secrets location:**
|
||||
- [Where secrets are stored]
|
||||
|
||||
## Webhooks & Callbacks
|
||||
|
||||
**Incoming:**
|
||||
- [Endpoints or "None"]
|
||||
|
||||
**Outgoing:**
|
||||
- [Endpoints or "None"]
|
||||
|
||||
---
|
||||
|
||||
*Integration audit: [date]*
|
||||
```
|
||||
|
||||
## ARCHITECTURE.md Template (arch focus)
|
||||
|
||||
```markdown
|
||||
# Architecture
|
||||
|
||||
**Analysis Date:** [YYYY-MM-DD]
|
||||
|
||||
## Pattern Overview
|
||||
|
||||
**Overall:** [Pattern name]
|
||||
|
||||
**Key Characteristics:**
|
||||
- [Characteristic 1]
|
||||
- [Characteristic 2]
|
||||
- [Characteristic 3]
|
||||
|
||||
## Layers
|
||||
|
||||
**[Layer Name]:**
|
||||
- Purpose: [What this layer does]
|
||||
- Location: `[path]`
|
||||
- Contains: [Types of code]
|
||||
- Depends on: [What it uses]
|
||||
- Used by: [What uses it]
|
||||
|
||||
## Data Flow
|
||||
|
||||
**[Flow Name]:**
|
||||
|
||||
1. [Step 1]
|
||||
2. [Step 2]
|
||||
3. [Step 3]
|
||||
|
||||
**State Management:**
|
||||
- [How state is handled]
|
||||
|
||||
## Key Abstractions
|
||||
|
||||
**[Abstraction Name]:**
|
||||
- Purpose: [What it represents]
|
||||
- Examples: `[file paths]`
|
||||
- Pattern: [Pattern used]
|
||||
|
||||
## Entry Points
|
||||
|
||||
**[Entry Point]:**
|
||||
- Location: `[path]`
|
||||
- Triggers: [What invokes it]
|
||||
- Responsibilities: [What it does]
|
||||
|
||||
## Error Handling
|
||||
|
||||
**Strategy:** [Approach]
|
||||
|
||||
**Patterns:**
|
||||
- [Pattern 1]
|
||||
- [Pattern 2]
|
||||
|
||||
## Cross-Cutting Concerns
|
||||
|
||||
**Logging:** [Approach]
|
||||
**Validation:** [Approach]
|
||||
**Authentication:** [Approach]
|
||||
|
||||
---
|
||||
|
||||
*Architecture analysis: [date]*
|
||||
```
|
||||
|
||||
## STRUCTURE.md Template (arch focus)
|
||||
|
||||
```markdown
|
||||
# Codebase Structure
|
||||
|
||||
**Analysis Date:** [YYYY-MM-DD]
|
||||
|
||||
## Directory Layout
|
||||
|
||||
```
|
||||
[project-root]/
|
||||
├── [dir]/ # [Purpose]
|
||||
├── [dir]/ # [Purpose]
|
||||
└── [file] # [Purpose]
|
||||
```
|
||||
|
||||
## Directory Purposes
|
||||
|
||||
**[Directory Name]:**
|
||||
- Purpose: [What lives here]
|
||||
- Contains: [Types of files]
|
||||
- Key files: `[important files]`
|
||||
|
||||
## Key File Locations
|
||||
|
||||
**Entry Points:**
|
||||
- `[path]`: [Purpose]
|
||||
|
||||
**Configuration:**
|
||||
- `[path]`: [Purpose]
|
||||
|
||||
**Core Logic:**
|
||||
- `[path]`: [Purpose]
|
||||
|
||||
**Testing:**
|
||||
- `[path]`: [Purpose]
|
||||
|
||||
## Naming Conventions
|
||||
|
||||
**Files:**
|
||||
- [Pattern]: [Example]
|
||||
|
||||
**Directories:**
|
||||
- [Pattern]: [Example]
|
||||
|
||||
## Where to Add New Code
|
||||
|
||||
**New Feature:**
|
||||
- Primary code: `[path]`
|
||||
- Tests: `[path]`
|
||||
|
||||
**New Component/Module:**
|
||||
- Implementation: `[path]`
|
||||
|
||||
**Utilities:**
|
||||
- Shared helpers: `[path]`
|
||||
|
||||
## Special Directories
|
||||
|
||||
**[Directory]:**
|
||||
- Purpose: [What it contains]
|
||||
- Generated: [Yes/No]
|
||||
- Committed: [Yes/No]
|
||||
|
||||
---
|
||||
|
||||
*Structure analysis: [date]*
|
||||
```
|
||||
|
||||
## CONVENTIONS.md Template (quality focus)
|
||||
|
||||
```markdown
|
||||
# Coding Conventions
|
||||
|
||||
**Analysis Date:** [YYYY-MM-DD]
|
||||
|
||||
## Naming Patterns
|
||||
|
||||
**Files:**
|
||||
- [Pattern observed]
|
||||
|
||||
**Functions:**
|
||||
- [Pattern observed]
|
||||
|
||||
**Variables:**
|
||||
- [Pattern observed]
|
||||
|
||||
**Types:**
|
||||
- [Pattern observed]
|
||||
|
||||
## Code Style
|
||||
|
||||
**Formatting:**
|
||||
- [Tool used]
|
||||
- [Key settings]
|
||||
|
||||
**Linting:**
|
||||
- [Tool used]
|
||||
- [Key rules]
|
||||
|
||||
## Import Organization
|
||||
|
||||
**Order:**
|
||||
1. [First group]
|
||||
2. [Second group]
|
||||
3. [Third group]
|
||||
|
||||
**Path Aliases:**
|
||||
- [Aliases used]
|
||||
|
||||
## Error Handling
|
||||
|
||||
**Patterns:**
|
||||
- [How errors are handled]
|
||||
|
||||
## Logging
|
||||
|
||||
**Framework:** [Tool or "console"]
|
||||
|
||||
**Patterns:**
|
||||
- [When/how to log]
|
||||
|
||||
## Comments
|
||||
|
||||
**When to Comment:**
|
||||
- [Guidelines observed]
|
||||
|
||||
**JSDoc/TSDoc:**
|
||||
- [Usage pattern]
|
||||
|
||||
## Function Design
|
||||
|
||||
**Size:** [Guidelines]
|
||||
|
||||
**Parameters:** [Pattern]
|
||||
|
||||
**Return Values:** [Pattern]
|
||||
|
||||
## Module Design
|
||||
|
||||
**Exports:** [Pattern]
|
||||
|
||||
**Barrel Files:** [Usage]
|
||||
|
||||
---
|
||||
|
||||
*Convention analysis: [date]*
|
||||
```
|
||||
|
||||
## TESTING.md Template (quality focus)
|
||||
|
||||
```markdown
|
||||
# Testing Patterns
|
||||
|
||||
**Analysis Date:** [YYYY-MM-DD]
|
||||
|
||||
## Test Framework
|
||||
|
||||
**Runner:**
|
||||
- [Framework] [Version]
|
||||
- Config: `[config file]`
|
||||
|
||||
**Assertion Library:**
|
||||
- [Library]
|
||||
|
||||
**Run Commands:**
|
||||
```bash
|
||||
[command] # Run all tests
|
||||
[command] # Watch mode
|
||||
[command] # Coverage
|
||||
```
|
||||
|
||||
## Test File Organization
|
||||
|
||||
**Location:**
|
||||
- [Pattern: co-located or separate]
|
||||
|
||||
**Naming:**
|
||||
- [Pattern]
|
||||
|
||||
**Structure:**
|
||||
```
|
||||
[Directory pattern]
|
||||
```
|
||||
|
||||
## Test Structure
|
||||
|
||||
**Suite Organization:**
|
||||
```typescript
|
||||
[Show actual pattern from codebase]
|
||||
```
|
||||
|
||||
**Patterns:**
|
||||
- [Setup pattern]
|
||||
- [Teardown pattern]
|
||||
- [Assertion pattern]
|
||||
|
||||
## Mocking
|
||||
|
||||
**Framework:** [Tool]
|
||||
|
||||
**Patterns:**
|
||||
```typescript
|
||||
[Show actual mocking pattern from codebase]
|
||||
```
|
||||
|
||||
**What to Mock:**
|
||||
- [Guidelines]
|
||||
|
||||
**What NOT to Mock:**
|
||||
- [Guidelines]
|
||||
|
||||
## Fixtures and Factories
|
||||
|
||||
**Test Data:**
|
||||
```typescript
|
||||
[Show pattern from codebase]
|
||||
```
|
||||
|
||||
**Location:**
|
||||
- [Where fixtures live]
|
||||
|
||||
## Coverage
|
||||
|
||||
**Requirements:** [Target or "None enforced"]
|
||||
|
||||
**View Coverage:**
|
||||
```bash
|
||||
[command]
|
||||
```
|
||||
|
||||
## Test Types
|
||||
|
||||
**Unit Tests:**
|
||||
- [Scope and approach]
|
||||
|
||||
**Integration Tests:**
|
||||
- [Scope and approach]
|
||||
|
||||
**E2E Tests:**
|
||||
- [Framework or "Not used"]
|
||||
|
||||
## Common Patterns
|
||||
|
||||
**Async Testing:**
|
||||
```typescript
|
||||
[Pattern]
|
||||
```
|
||||
|
||||
**Error Testing:**
|
||||
```typescript
|
||||
[Pattern]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
*Testing analysis: [date]*
|
||||
```
|
||||
|
||||
## CONCERNS.md Template (concerns focus)
|
||||
|
||||
```markdown
|
||||
# Codebase Concerns
|
||||
|
||||
**Analysis Date:** [YYYY-MM-DD]
|
||||
|
||||
## Tech Debt
|
||||
|
||||
**[Area/Component]:**
|
||||
- Issue: [What's the shortcut/workaround]
|
||||
- Files: `[file paths]`
|
||||
- Impact: [What breaks or degrades]
|
||||
- Fix approach: [How to address it]
|
||||
|
||||
## Known Bugs
|
||||
|
||||
**[Bug description]:**
|
||||
- Symptoms: [What happens]
|
||||
- Files: `[file paths]`
|
||||
- Trigger: [How to reproduce]
|
||||
- Workaround: [If any]
|
||||
|
||||
## Security Considerations
|
||||
|
||||
**[Area]:**
|
||||
- Risk: [What could go wrong]
|
||||
- Files: `[file paths]`
|
||||
- Current mitigation: [What's in place]
|
||||
- Recommendations: [What should be added]
|
||||
|
||||
## Performance Bottlenecks
|
||||
|
||||
**[Slow operation]:**
|
||||
- Problem: [What's slow]
|
||||
- Files: `[file paths]`
|
||||
- Cause: [Why it's slow]
|
||||
- Improvement path: [How to speed up]
|
||||
|
||||
## Fragile Areas
|
||||
|
||||
**[Component/Module]:**
|
||||
- Files: `[file paths]`
|
||||
- Why fragile: [What makes it break easily]
|
||||
- Safe modification: [How to change safely]
|
||||
- Test coverage: [Gaps]
|
||||
|
||||
## Scaling Limits
|
||||
|
||||
**[Resource/System]:**
|
||||
- Current capacity: [Numbers]
|
||||
- Limit: [Where it breaks]
|
||||
- Scaling path: [How to increase]
|
||||
|
||||
## Dependencies at Risk
|
||||
|
||||
**[Package]:**
|
||||
- Risk: [What's wrong]
|
||||
- Impact: [What breaks]
|
||||
- Migration plan: [Alternative]
|
||||
|
||||
## Missing Critical Features
|
||||
|
||||
**[Feature gap]:**
|
||||
- Problem: [What's missing]
|
||||
- Blocks: [What can't be done]
|
||||
|
||||
## Test Coverage Gaps
|
||||
|
||||
**[Untested area]:**
|
||||
- What's not tested: [Specific functionality]
|
||||
- Files: `[file paths]`
|
||||
- Risk: [What could break unnoticed]
|
||||
- Priority: [High/Medium/Low]
|
||||
|
||||
---
|
||||
|
||||
*Concerns audit: [date]*
|
||||
```
|
||||
|
||||
</templates>
|
||||
|
||||
<critical_rules>
|
||||
|
||||
**WRITE DOCUMENTS DIRECTLY.** Do not return findings to orchestrator. The whole point is reducing context transfer.
|
||||
|
||||
**ALWAYS INCLUDE FILE PATHS.** Every finding needs a file path in backticks. No exceptions.
|
||||
|
||||
**USE THE TEMPLATES.** Fill in the template structure. Don't invent your own format.
|
||||
|
||||
**BE THOROUGH.** Explore deeply. Read actual files. Don't guess.
|
||||
|
||||
**RETURN ONLY CONFIRMATION.** Your response should be ~10 lines max. Just confirm what was written.
|
||||
|
||||
**DO NOT COMMIT.** The orchestrator handles git operations.
|
||||
|
||||
</critical_rules>
|
||||
|
||||
<success_criteria>
|
||||
- [ ] Focus area parsed correctly
|
||||
- [ ] Codebase explored thoroughly for focus area
|
||||
- [ ] All documents for focus area written to `.planning/codebase/`
|
||||
- [ ] Documents follow template structure
|
||||
- [ ] File paths included throughout documents
|
||||
- [ ] Confirmation returned (not document contents)
|
||||
</success_criteria>
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
name: gsd:map-codebase
|
||||
description: Analyze codebase with parallel Explore agents to produce .planning/codebase/ documents
|
||||
description: Analyze codebase with parallel mapper agents to produce .planning/codebase/ documents
|
||||
argument-hint: "[optional: specific area to map, e.g., 'api' or 'auth']"
|
||||
allowed-tools:
|
||||
- Read
|
||||
@@ -12,22 +12,15 @@ allowed-tools:
|
||||
---
|
||||
|
||||
<objective>
|
||||
Analyze existing codebase using parallel Explore agents to produce structured codebase documents.
|
||||
Analyze existing codebase using parallel gsd-codebase-mapper agents to produce structured codebase documents.
|
||||
|
||||
This command spawns multiple Explore agents to analyze different aspects of the codebase in parallel, each with fresh context.
|
||||
Each mapper agent explores a focus area and **writes documents directly** to `.planning/codebase/`. The orchestrator only receives confirmations, keeping context usage minimal.
|
||||
|
||||
Output: .planning/codebase/ folder with 7 structured documents about the codebase state.
|
||||
</objective>
|
||||
|
||||
<execution_context>
|
||||
@~/.claude/get-shit-done/workflows/map-codebase.md
|
||||
@~/.claude/get-shit-done/templates/codebase/stack.md
|
||||
@~/.claude/get-shit-done/templates/codebase/architecture.md
|
||||
@~/.claude/get-shit-done/templates/codebase/structure.md
|
||||
@~/.claude/get-shit-done/templates/codebase/conventions.md
|
||||
@~/.claude/get-shit-done/templates/codebase/testing.md
|
||||
@~/.claude/get-shit-done/templates/codebase/integrations.md
|
||||
@~/.claude/get-shit-done/templates/codebase/concerns.md
|
||||
</execution_context>
|
||||
|
||||
<context>
|
||||
@@ -58,26 +51,20 @@ Check for .planning/STATE.md - loads context if project already initialized
|
||||
<process>
|
||||
1. Check if .planning/codebase/ already exists (offer to refresh or skip)
|
||||
2. Create .planning/codebase/ directory structure
|
||||
3. Spawn 4 parallel Explore agents to analyze codebase:
|
||||
- Agent 1: Stack + Integrations (technology focus)
|
||||
- Agent 2: Architecture + Structure (organization focus)
|
||||
- Agent 3: Conventions + Testing (quality focus)
|
||||
- Agent 4: Concerns (issues focus)
|
||||
4. Wait for all agents to complete, collect findings
|
||||
5. Write 7 codebase documents using templates:
|
||||
- STACK.md - Languages, frameworks, key dependencies
|
||||
- ARCHITECTURE.md - System design, patterns, data flow
|
||||
- STRUCTURE.md - Directory layout, module organization
|
||||
- CONVENTIONS.md - Code style, naming, patterns
|
||||
- TESTING.md - Test structure, coverage, practices
|
||||
- INTEGRATIONS.md - APIs, databases, external services
|
||||
- CONCERNS.md - Technical debt, risks, issues
|
||||
6. Offer next steps (typically: /gsd:new-project or /gsd:plan-phase)
|
||||
3. Spawn 4 parallel gsd-codebase-mapper agents:
|
||||
- Agent 1: tech focus → writes STACK.md, INTEGRATIONS.md
|
||||
- Agent 2: arch focus → writes ARCHITECTURE.md, STRUCTURE.md
|
||||
- Agent 3: quality focus → writes CONVENTIONS.md, TESTING.md
|
||||
- Agent 4: concerns focus → writes CONCERNS.md
|
||||
4. Wait for agents to complete, collect confirmations (NOT document contents)
|
||||
5. Verify all 7 documents exist with line counts
|
||||
6. Commit codebase map
|
||||
7. Offer next steps (typically: /gsd:new-project or /gsd:plan-phase)
|
||||
</process>
|
||||
|
||||
<success_criteria>
|
||||
- [ ] .planning/codebase/ directory created
|
||||
- [ ] All 7 codebase documents written
|
||||
- [ ] All 7 codebase documents written by mapper agents
|
||||
- [ ] Documents follow template structure
|
||||
- [ ] Parallel agents completed without errors
|
||||
- [ ] User knows next steps
|
||||
|
||||
@@ -1,21 +1,23 @@
|
||||
<purpose>
|
||||
Orchestrate parallel Explore agents to analyze codebase and produce structured documents in .planning/codebase/
|
||||
Orchestrate parallel codebase mapper agents to analyze codebase and produce structured documents in .planning/codebase/
|
||||
|
||||
Each agent has fresh context and focuses on specific aspects. Output is concise and actionable for planning.
|
||||
Each agent has fresh context, explores a specific focus area, and **writes documents directly**. The orchestrator only receives confirmation + line counts, then writes a summary.
|
||||
|
||||
Output: .planning/codebase/ folder with 7 structured documents about the codebase state.
|
||||
</purpose>
|
||||
|
||||
<philosophy>
|
||||
**Why parallel agents:**
|
||||
**Why dedicated mapper agents:**
|
||||
- Fresh context per domain (no token contamination)
|
||||
- Thorough analysis without context exhaustion
|
||||
- Each agent optimized for its domain (tech vs organization vs quality vs issues)
|
||||
- Agents write documents directly (no context transfer back to orchestrator)
|
||||
- Orchestrator only summarizes what was created (minimal context usage)
|
||||
- Faster execution (agents run simultaneously)
|
||||
|
||||
**Document quality over length:**
|
||||
Include enough detail to be useful as reference. Prioritize practical examples (especially code patterns) over arbitrary brevity. A 200-line TESTING.md with real patterns is more valuable than a 74-line summary.
|
||||
Include enough detail to be useful as reference. Prioritize practical examples (especially code patterns) over arbitrary brevity.
|
||||
|
||||
**Always include file paths:**
|
||||
Documents are reference material for Claude when planning/executing. Vague descriptions like "UserService handles users" are not actionable. Always include actual file paths formatted with backticks: `src/services/user.ts`. This allows Claude to navigate directly to relevant code without re-searching. Do NOT include line numbers (they go stale), just file paths.
|
||||
Documents are reference material for Claude when planning/executing. Always include actual file paths formatted with backticks: `src/services/user.ts`.
|
||||
</philosophy>
|
||||
|
||||
<process>
|
||||
@@ -57,286 +59,136 @@ mkdir -p .planning/codebase
|
||||
```
|
||||
|
||||
**Expected output files:**
|
||||
- STACK.md (from stack.md template)
|
||||
- ARCHITECTURE.md (from architecture.md template)
|
||||
- STRUCTURE.md (from structure.md template)
|
||||
- CONVENTIONS.md (from conventions.md template)
|
||||
- TESTING.md (from testing.md template)
|
||||
- INTEGRATIONS.md (from integrations.md template)
|
||||
- CONCERNS.md (from concerns.md template)
|
||||
- STACK.md (from tech mapper)
|
||||
- INTEGRATIONS.md (from tech mapper)
|
||||
- ARCHITECTURE.md (from arch mapper)
|
||||
- STRUCTURE.md (from arch mapper)
|
||||
- CONVENTIONS.md (from quality mapper)
|
||||
- TESTING.md (from quality mapper)
|
||||
- CONCERNS.md (from concerns mapper)
|
||||
|
||||
Continue to spawn_agents.
|
||||
</step>
|
||||
|
||||
<step name="spawn_agents">
|
||||
Spawn 4 parallel Explore agents to analyze codebase.
|
||||
Spawn 4 parallel gsd-codebase-mapper agents.
|
||||
|
||||
Use Task tool with `subagent_type="Explore"` and `run_in_background=true` for parallel execution.
|
||||
Use Task tool with `subagent_type="gsd-codebase-mapper"` and `run_in_background=true` for parallel execution.
|
||||
|
||||
**Agent 1: Stack + Integrations (Technology Focus)**
|
||||
**CRITICAL:** Use the dedicated `gsd-codebase-mapper` agent, NOT `Explore`. The mapper agent writes documents directly.
|
||||
|
||||
**Agent 1: Tech Focus**
|
||||
|
||||
Task tool parameters:
|
||||
```
|
||||
subagent_type: "Explore"
|
||||
subagent_type: "gsd-codebase-mapper"
|
||||
run_in_background: true
|
||||
task_description: "Analyze codebase technology stack and external integrations"
|
||||
description: "Map codebase tech stack"
|
||||
```
|
||||
|
||||
Prompt:
|
||||
```
|
||||
Focus: tech
|
||||
|
||||
Analyze this codebase for technology stack and external integrations.
|
||||
|
||||
IMPORTANT: Always include actual file paths in your findings. Use backtick formatting like `src/config/database.ts`. This makes the output actionable for planning.
|
||||
Write these documents to .planning/codebase/:
|
||||
- STACK.md - Languages, runtime, frameworks, dependencies, configuration
|
||||
- INTEGRATIONS.md - External APIs, databases, auth providers, webhooks
|
||||
|
||||
Focus areas:
|
||||
1. Languages (check file extensions, package manifests)
|
||||
2. Runtime environment (Node.js, Python, etc. - check .nvmrc, .python-version, engines field)
|
||||
3. Package manager and lockfiles
|
||||
4. Frameworks (web, testing, build tools)
|
||||
5. Key dependencies (critical packages for functionality)
|
||||
6. External services (APIs, databases, auth providers)
|
||||
7. Third-party integrations (payment, analytics, etc.)
|
||||
8. Configuration approach (.env, config files)
|
||||
|
||||
Search for:
|
||||
- package.json / requirements.txt / Cargo.toml / go.mod
|
||||
- .env files, .env.example
|
||||
- Config files (vite.config, webpack.config, tsconfig.json)
|
||||
- API client code, database connection code
|
||||
- Import statements for major libraries
|
||||
|
||||
Output findings for populating these sections:
|
||||
- STACK.md: Languages, Runtime, Frameworks, Dependencies, Configuration
|
||||
- INTEGRATIONS.md: External APIs, Services, Third-party tools
|
||||
|
||||
For each finding, include the file path where you found it. Example:
|
||||
- "TypeScript 5.3 - `package.json`"
|
||||
- "Supabase client - `src/lib/supabase.ts`"
|
||||
- "Stripe integration - `src/services/stripe.ts`, `src/webhooks/stripe.ts`"
|
||||
|
||||
If something is not found, note "Not detected" for that category.
|
||||
Explore thoroughly. Write documents directly using templates. Return confirmation only.
|
||||
```
|
||||
|
||||
**Agent 2: Architecture + Structure (Organization Focus)**
|
||||
**Agent 2: Architecture Focus**
|
||||
|
||||
Task tool parameters:
|
||||
```
|
||||
subagent_type: "Explore"
|
||||
subagent_type: "gsd-codebase-mapper"
|
||||
run_in_background: true
|
||||
task_description: "Analyze codebase architecture patterns and directory structure"
|
||||
description: "Map codebase architecture"
|
||||
```
|
||||
|
||||
Prompt:
|
||||
```
|
||||
Focus: arch
|
||||
|
||||
Analyze this codebase architecture and directory structure.
|
||||
|
||||
IMPORTANT: Always include actual file paths in your findings. Use backtick formatting like `src/index.ts`. This makes the output actionable for planning.
|
||||
Write these documents to .planning/codebase/:
|
||||
- ARCHITECTURE.md - Pattern, layers, data flow, abstractions, entry points
|
||||
- STRUCTURE.md - Directory layout, key locations, naming conventions
|
||||
|
||||
Focus areas:
|
||||
1. Overall architectural pattern (monolith, microservices, layered, etc.)
|
||||
2. Conceptual layers (API, service, data, utility)
|
||||
3. Data flow and request lifecycle
|
||||
4. Key abstractions and patterns (services, controllers, repositories)
|
||||
5. Entry points (main files, server files, CLI entry)
|
||||
6. Directory organization and purposes
|
||||
7. Module boundaries
|
||||
8. Naming conventions for directories and files
|
||||
|
||||
Search for:
|
||||
- Entry points: index.ts, main.ts, server.ts, app.ts, cli.ts
|
||||
- Directory structure patterns (src/, lib/, components/, services/)
|
||||
- Import patterns (what imports what)
|
||||
- Recurring code patterns (base classes, interfaces, common abstractions)
|
||||
|
||||
Output findings for populating these sections:
|
||||
- ARCHITECTURE.md: Pattern, Layers, Data Flow, Abstractions, Entry Points
|
||||
- STRUCTURE.md: Directory layout, Organization, Key locations
|
||||
|
||||
For each finding, include the file path. Examples:
|
||||
- "CLI entry point: `bin/install.js`"
|
||||
- "Service layer: `src/services/*.ts` (UserService, ProjectService)"
|
||||
- "API routes: `src/routes/api/*.ts`"
|
||||
|
||||
If something is not clear, provide best-guess interpretation based on code structure.
|
||||
Explore thoroughly. Write documents directly using templates. Return confirmation only.
|
||||
```
|
||||
|
||||
**Agent 3: Conventions + Testing (Quality Focus)**
|
||||
**Agent 3: Quality Focus**
|
||||
|
||||
Task tool parameters:
|
||||
```
|
||||
subagent_type: "Explore"
|
||||
subagent_type: "gsd-codebase-mapper"
|
||||
run_in_background: true
|
||||
task_description: "Analyze coding conventions and test patterns"
|
||||
description: "Map codebase conventions"
|
||||
```
|
||||
|
||||
Prompt:
|
||||
```
|
||||
Analyze this codebase for coding conventions and testing practices.
|
||||
Focus: quality
|
||||
|
||||
IMPORTANT: Always include actual file paths in your findings. Use backtick formatting like `vitest.config.ts`. This makes the output actionable for planning.
|
||||
Analyze this codebase for coding conventions and testing patterns.
|
||||
|
||||
Focus areas:
|
||||
1. Code style (indentation, quotes, semicolons, formatting)
|
||||
2. File naming conventions (kebab-case, PascalCase, etc.)
|
||||
3. Function/variable naming patterns
|
||||
4. Comment and documentation style
|
||||
5. Test framework and structure
|
||||
6. Test organization (unit, integration, e2e)
|
||||
7. Test coverage approach
|
||||
8. Linting and formatting tools
|
||||
Write these documents to .planning/codebase/:
|
||||
- CONVENTIONS.md - Code style, naming, patterns, error handling
|
||||
- TESTING.md - Framework, structure, mocking, coverage
|
||||
|
||||
Search for:
|
||||
- Config files: .eslintrc, .prettierrc, tsconfig.json
|
||||
- Test files: *.test.*, *.spec.*, __tests__/
|
||||
- Test setup: vitest.config, jest.config
|
||||
- Code patterns across multiple files
|
||||
- README or CONTRIBUTING docs
|
||||
|
||||
Output findings for populating these sections:
|
||||
- CONVENTIONS.md: Code Style, Naming, Patterns, Documentation
|
||||
- TESTING.md: Framework, Structure, Coverage, Tools
|
||||
|
||||
For each finding, include file paths. Examples:
|
||||
- "Prettier config: `.prettierrc`"
|
||||
- "Test pattern: `src/**/*.test.ts` (co-located with source)"
|
||||
- "Example of naming convention: `src/services/user-service.ts`"
|
||||
|
||||
Look at actual code files to infer conventions if config files are missing.
|
||||
Explore thoroughly. Write documents directly using templates. Return confirmation only.
|
||||
```
|
||||
|
||||
**Agent 4: Concerns (Issues Focus)**
|
||||
**Agent 4: Concerns Focus**
|
||||
|
||||
Task tool parameters:
|
||||
```
|
||||
subagent_type: "Explore"
|
||||
subagent_type: "gsd-codebase-mapper"
|
||||
run_in_background: true
|
||||
task_description: "Identify technical debt and areas of concern"
|
||||
description: "Map codebase concerns"
|
||||
```
|
||||
|
||||
Prompt:
|
||||
```
|
||||
Focus: concerns
|
||||
|
||||
Analyze this codebase for technical debt, known issues, and areas of concern.
|
||||
|
||||
CRITICAL: Always include actual file paths in your findings. Use backtick formatting like `src/auth/login.ts`. Concerns without file paths are not actionable. For each issue found, specify exactly where it is.
|
||||
Write this document to .planning/codebase/:
|
||||
- CONCERNS.md - Tech debt, bugs, security, performance, fragile areas
|
||||
|
||||
Focus areas:
|
||||
1. TODO and FIXME comments
|
||||
2. Complex or hard-to-understand code
|
||||
3. Missing error handling (try/catch, error checks)
|
||||
4. Security patterns (hardcoded secrets, unsafe operations)
|
||||
5. Outdated dependencies (check versions against current)
|
||||
6. Missing tests for critical code
|
||||
7. Duplicate code patterns
|
||||
8. Performance concerns (N+1 queries, inefficient loops)
|
||||
9. Documentation gaps (complex code without comments)
|
||||
|
||||
Search for:
|
||||
- TODO, FIXME, HACK, XXX comments
|
||||
- Large functions or files (>200 lines)
|
||||
- Repeated code patterns
|
||||
- Missing .env.example when .env is used
|
||||
- Dependencies with known vulnerabilities (check versions)
|
||||
- Error-prone patterns (no validation, no error handling)
|
||||
|
||||
Output findings for populating:
|
||||
- CONCERNS.md: Technical Debt, Issues, Security, Performance, Documentation
|
||||
|
||||
For EVERY concern, include file paths. Examples:
|
||||
- "Direct DB queries in components: `src/pages/Dashboard.tsx`, `src/pages/Profile.tsx`"
|
||||
- "Missing error handling: `src/api/webhook.ts` (Stripe webhook has no try/catch)"
|
||||
- "TODO: 'fix race condition' in `src/services/subscription.ts`"
|
||||
|
||||
Be constructive - focus on actionable concerns, not nitpicks.
|
||||
If codebase is clean, note that rather than inventing problems.
|
||||
Explore thoroughly. Write document directly using template. Return confirmation only.
|
||||
```
|
||||
|
||||
Continue to collect_results.
|
||||
Continue to collect_confirmations.
|
||||
</step>
|
||||
|
||||
<step name="collect_results">
|
||||
<step name="collect_confirmations">
|
||||
Wait for all 4 agents to complete.
|
||||
|
||||
Use TaskOutput tool to collect results from each agent. Since agents were run with `run_in_background=true`, retrieve their output.
|
||||
Use TaskOutput tool to collect confirmations from each agent.
|
||||
|
||||
**Collection pattern:**
|
||||
|
||||
For each agent, use TaskOutput tool to get the full exploration findings.
|
||||
|
||||
**Aggregate findings by document:**
|
||||
|
||||
From Agent 1 output, extract:
|
||||
- STACK.md sections: Languages, Runtime, Frameworks, Dependencies, Configuration, Platform
|
||||
- INTEGRATIONS.md sections: External APIs, Services, Authentication, Webhooks
|
||||
|
||||
From Agent 2 output, extract:
|
||||
- ARCHITECTURE.md sections: Pattern Overview, Layers, Data Flow, Key Abstractions, Entry Points
|
||||
- STRUCTURE.md sections: Directory Layout, Key Locations, Organization
|
||||
|
||||
From Agent 3 output, extract:
|
||||
- CONVENTIONS.md sections: Code Style, Naming Conventions, Common Patterns, Documentation Style
|
||||
- TESTING.md sections: Framework, Structure, Coverage, Tools
|
||||
|
||||
From Agent 4 output, extract:
|
||||
- CONCERNS.md sections: Technical Debt, Known Issues, Security, Performance, Missing
|
||||
|
||||
**Handling missing findings:**
|
||||
|
||||
If an agent didn't find information for a section, use placeholder:
|
||||
- "Not detected" (for infrastructure/tools that may not exist)
|
||||
- "Not applicable" (for patterns that don't apply to this codebase)
|
||||
- "No significant concerns" (for CONCERNS.md if codebase is clean)
|
||||
|
||||
Continue to write_documents.
|
||||
</step>
|
||||
|
||||
<step name="write_documents">
|
||||
Write all 7 codebase documents using templates and agent findings.
|
||||
|
||||
**Template filling process:**
|
||||
|
||||
For each document:
|
||||
|
||||
1. **Read template file** from `~/.claude/get-shit-done/templates/codebase/{name}.md`
|
||||
2. **Extract the "File Template" section** - this is the markdown code block containing the actual document structure
|
||||
3. **Fill template placeholders** with agent findings:
|
||||
- Replace `[YYYY-MM-DD]` with current date
|
||||
- Replace `[Placeholder text]` with specific findings from agents
|
||||
- If agent found nothing for a section, use appropriate placeholder:
|
||||
- "Not detected" for optional infrastructure
|
||||
- "Not applicable" for patterns that don't fit this codebase
|
||||
- "No significant concerns" for clean codebase areas
|
||||
4. **Write to .planning/codebase/{NAME}.md** (uppercase filename)
|
||||
|
||||
**Example filling pattern:**
|
||||
|
||||
Template placeholder:
|
||||
**Expected confirmation format from each agent:**
|
||||
```
|
||||
**Primary:**
|
||||
- [Language] [Version] - [Where used: e.g., "all application code"]
|
||||
## Mapping Complete
|
||||
|
||||
**Focus:** {focus}
|
||||
**Documents written:**
|
||||
- `.planning/codebase/{DOC1}.md` ({N} lines)
|
||||
- `.planning/codebase/{DOC2}.md` ({N} lines)
|
||||
|
||||
Ready for orchestrator summary.
|
||||
```
|
||||
|
||||
Agent finding:
|
||||
```
|
||||
Found: TypeScript 5.3 used in all .ts files throughout src/
|
||||
```
|
||||
**What you receive:** Just file paths and line counts. NOT document contents.
|
||||
|
||||
Filled result:
|
||||
```
|
||||
**Primary:**
|
||||
- TypeScript 5.3 - All application code
|
||||
```
|
||||
If any agent failed, note the failure and continue with successful documents.
|
||||
|
||||
**Document writing order:**
|
||||
|
||||
1. **STACK.md** (from stack.md template + Agent 1 findings)
|
||||
2. **INTEGRATIONS.md** (from integrations.md template + Agent 1 findings)
|
||||
3. **ARCHITECTURE.md** (from architecture.md template + Agent 2 findings)
|
||||
4. **STRUCTURE.md** (from structure.md template + Agent 2 findings)
|
||||
5. **CONVENTIONS.md** (from conventions.md template + Agent 3 findings)
|
||||
6. **TESTING.md** (from testing.md template + Agent 3 findings)
|
||||
7. **CONCERNS.md** (from concerns.md template + Agent 4 findings)
|
||||
|
||||
After all documents written, continue to verify_output.
|
||||
Continue to verify_output.
|
||||
</step>
|
||||
|
||||
<step name="verify_output">
|
||||
@@ -349,10 +201,9 @@ wc -l .planning/codebase/*.md
|
||||
|
||||
**Verification checklist:**
|
||||
- All 7 documents exist
|
||||
- No empty documents
|
||||
- Templates populated with findings
|
||||
- No empty documents (each should have >20 lines)
|
||||
|
||||
If any checks fail, report issues to user.
|
||||
If any documents missing or empty, note which agents may have failed.
|
||||
|
||||
Continue to commit_codebase_map.
|
||||
</step>
|
||||
@@ -382,6 +233,11 @@ Continue to offer_next.
|
||||
<step name="offer_next">
|
||||
Present completion summary and next steps.
|
||||
|
||||
**Get line counts:**
|
||||
```bash
|
||||
wc -l .planning/codebase/*.md
|
||||
```
|
||||
|
||||
**Output format:**
|
||||
|
||||
```
|
||||
@@ -424,11 +280,10 @@ End workflow.
|
||||
|
||||
<success_criteria>
|
||||
- .planning/codebase/ directory created
|
||||
- 4 parallel Explore agents spawned with run_in_background=true
|
||||
- Agent prompts are specific and actionable
|
||||
- TaskOutput used to collect all agent results
|
||||
- All 7 codebase documents written using template filling
|
||||
- Documents follow template structure with actual findings
|
||||
- 4 parallel gsd-codebase-mapper agents spawned with run_in_background=true
|
||||
- Agents write documents directly (orchestrator doesn't receive document contents)
|
||||
- TaskOutput used to collect confirmations only
|
||||
- All 7 codebase documents exist
|
||||
- Clear completion summary with line counts
|
||||
- User offered clear next steps in GSD style
|
||||
</success_criteria>
|
||||
|
||||
Reference in New Issue
Block a user