--- name: brownfield-analyzer description: Analyzes existing brownfield projects to map documentation to SpecWeave's structure (PRD/HLD/Spec/Runbook). Use when migrating existing projects to SpecWeave, scanning legacy docs, or creating project context maps. Detects external tools (JIRA, ADO, GitHub) and supports incremental or comprehensive migration paths. --- # Brownfield Analyzer **Self-contained brownfield project analysis for ANY existing codebase.** --- ## Purpose Analyze existing projects and create migration plan to SpecWeave structure. Two paths supported: Quick Start (incremental) or Comprehensive (upfront). --- ## Two Migration Paths ### Path 1: Quick Start (Recommended for Large Projects) **Best for**: 50k+ LOC, fast iteration, small teams **Process**: 1. Initial scan: Document core architecture (1-3 hours) 2. Start working immediately 3. Per increment: Document → Modify → Update docs 4. Documentation grows with changes **Benefits**: - Start in days, not weeks - Focus where it matters - No analysis paralysis ### Path 2: Comprehensive Upfront **Best for**: <50k LOC, teams, regulated industries **Process**: 1. Full analysis (1-4 weeks) 2. Document all modules, business rules 3. Create baseline tests 4. Then start increments **Benefits**: - Complete context upfront - Full regression coverage - Team coordination - Compliance ready ### Automatic Recommendation | Project Size | LOC | Upfront Effort | Recommended | |--------------|-----|----------------|-------------| | Small | <10k | 4-8 hours | Comprehensive | | Medium | 10k-50k | 1-2 weeks | User Choice | | Large | 50k-200k | 2-4 weeks | Quick Start | | Very Large | 200k+ | 1-3 months | Quick Start (Mandatory) | --- ## Analysis Workflow ### Step 1: Project Assessment ```bash # Scan project find . -type f -name "*.ts" -o -name "*.js" -o -name "*.py" | wc -l find . -type f \( -name "*.ts" -o -name "*.js" \) -exec wc -l {} + | awk '{sum+=$1} END {print sum}' ``` **Calculate**: - Total files - Total LOC - Module count - Test coverage (if exists) **Output**: ``` 📊 Project Analysis Files: 1,245 LOC: 45,678 Modules: 23 Tests: 45% coverage 💡 Recommendation: Medium project → User choice (Quick Start or Comprehensive) ``` ### Step 2: Document Classification Scan for documentation: **PRD Candidates** (Product Requirements): - `requirements.md`, `PRD.md`, `product-spec.md` - `docs/product/`, `specs/requirements/` **HLD Candidates** (High-Level Design): - `architecture.md`, `design.md`, `ARCHITECTURE.md` - `docs/architecture/`, `docs/design/` **ADR Candidates** (Architecture Decision Records): - `adr/`, `decisions/`, `docs/decisions/` - Files with "ADR-" prefix or "decision" in name **Spec Candidates** (Technical Specs): - `spec.md`, `technical-spec.md` - `docs/specs/`, `docs/technical/` **Runbook Candidates** (Operations): - `runbook.md`, `operations.md`, `deployment.md` - `docs/ops/`, `docs/runbooks/` **Diagrams**: - `*.png`, `*.svg`, `*.drawio`, `*.mmd` - `diagrams/`, `docs/diagrams/` ### Step 3: External Tool Detection **Jira Integration**: ```bash # Search for Jira references grep -r "JIRA" . --include="*.md" --include="*.txt" grep -r "jira.atlassian" . --include="*.md" ``` **Azure DevOps**: ```bash grep -r "dev.azure.com" . --include="*.md" grep -r "visualstudio.com" . --include="*.md" ``` **GitHub Issues**: ```bash grep -r "github.com/.*/issues" . --include="*.md" ``` ### Step 4: Coding Standards Discovery **Auto-detect**: - ESLint config (`.eslintrc`, `eslint.config.js`) - Prettier config (`.prettierrc`) - TypeScript config (`tsconfig.json`) - Test config (`vitest.config`, `jest.config`) **Analyze patterns**: ```bash # Naming conventions grep -rh "^export function" src/ | head -20 grep -rh "^export class" src/ | head -20 # Import patterns grep -rh "^import" src/ | sort | uniq -c | sort -rn | head -10 ``` ### Step 5: Generate Migration Plan **Quick Start Plan**: ```markdown # Migration Plan: Quick Start Path ## Phase 1: Initial Setup (1-2 hours) - [ ] Run `specweave init` - [ ] Document core architecture only - [ ] Create 1-2 ADRs for critical decisions ## Phase 2: First Increment (1-3 days) - [ ] Select first feature to modify - [ ] Document module before touching - [ ] Create increment with /sw:increment - [ ] Implement changes - [ ] Update docs ## Phase 3: Iterate - [ ] Repeat per feature - [ ] Documentation grows organically ``` **Comprehensive Plan**: ```markdown # Migration Plan: Comprehensive Path ## Phase 1: Documentation Baseline (1-2 weeks) - [ ] Map all modules to .specweave/docs/internal/modules/ - [ ] Create ADRs for major architectural decisions - [ ] Document business rules - [ ] Identify technical debt ## Phase 2: Test Baseline (1 week) - [ ] Add baseline tests for core functionality - [ ] Target 60-70% coverage - [ ] Document test strategy ## Phase 3: Structure Migration (2-3 days) - [ ] Run `specweave init` - [ ] Migrate existing docs - [ ] Organize by SpecWeave structure ## Phase 4: Ready for Increments - [ ] Start feature work with full context ``` --- ## Migration Checklist ### Before SpecWeave Init - [ ] Assess project size (LOC, files) - [ ] Choose path (Quick Start or Comprehensive) - [ ] Backup existing docs - [ ] Identify external tool integrations - [ ] Check coding standards exist ### During Migration **Quick Start**: - [ ] Document core architecture only - [ ] Create 1-2 critical ADRs - [ ] Set up external tool sync (optional) - [ ] Start first increment immediately **Comprehensive**: - [ ] Scan all documentation - [ ] Classify and organize docs - [ ] Create complete module docs - [ ] Document all business rules - [ ] Create ADRs for decisions - [ ] Add baseline tests - [ ] Set up external tool sync ### After Migration - [ ] Verify `.specweave/` structure exists - [ ] Test increment workflow - [ ] Train team on SpecWeave - [ ] Document migration decisions --- ## Document Mapping **Map existing docs to SpecWeave structure**: ``` Existing Structure SpecWeave Structure ───────────────── ─────────────────── docs/product/ .specweave/docs/internal/strategy/ docs/architecture/ .specweave/docs/internal/architecture/ docs/decisions/ .specweave/docs/internal/architecture/adr/ docs/specs/ .specweave/docs/internal/specs/ docs/runbooks/ .specweave/docs/public/runbooks/ docs/api/ .specweave/docs/public/api-docs/ README.md .specweave/docs/public/README.md CONTRIBUTING.md .specweave/docs/public/CONTRIBUTING.md ``` --- ## External Tool Migration ### Jira → SpecWeave **1. Detect Jira usage**: ```bash grep -r "jira" . --include="*.md" | head -5 ``` **2. Map Jira structure**: - Epic → Feature (FS-XXX) - Story → User Story (US-XXX) - Task → Task (T-XXX) **3. Sync strategy**: ```bash # Option 1: Import existing Jira items /sw-jira:sync --import # Option 2: Start fresh, sync new work only # (Use SpecWeave as source of truth) ``` ### Azure DevOps → SpecWeave **Map work items**: - Feature → Feature (FS-XXX) - User Story → User Story (US-XXX) - Task → Task (T-XXX) **Sync**: ```bash /sw-ado:sync --import ``` ### GitHub Issues → SpecWeave **Map issues**: - Milestone → Feature (FS-XXX) - Issue → User Story (US-XXX) - Task list → Tasks (T-XXX) **Sync**: ```bash /sw-github:sync --import ``` --- ## Best Practices **✅ DO**: - Choose appropriate path (Quick Start for large projects) - Document before modifying code - Migrate incrementally (don't big-bang) - Preserve existing docs (don't delete) - Use external tool sync for existing items - Train team on SpecWeave workflow **❌ DON'T**: - Force Comprehensive for 100k+ LOC projects - Delete existing documentation - Migrate all features upfront (Quick Start) - Skip coding standards discovery - Ignore external tool integrations - Over-analyze in Quick Start mode --- ## Example: Large Project Migration **Scenario**: 85k LOC Node.js backend, Jira, 15% test coverage **Recommended**: Quick Start **Plan**: ``` Week 1: Setup (2 hours) - Run specweave init - Document core architecture (5 modules) - Create 2 ADRs (database, API design) - Configure Jira sync Week 1-2: First Increment - Select first feature: "Add rate limiting" - Document rate-limiting module - Create increment with /sw:increment - Implement with TDD - Update docs Week 3+: Iterate - Repeat per feature - Documentation grows to 40% over 3 months - Eventually covers critical paths ``` **Result**: Started working in 2 hours, documentation grows naturally. --- ## Example: Small Project Migration **Scenario**: 8k LOC Python app, GitHub Issues, 60% test coverage **Recommended**: Comprehensive Upfront **Plan**: ``` Week 1: Full Documentation (8 hours) - Document all 5 modules - Create 8 ADRs - Map business rules - Document API contracts Week 1: Test Baseline (4 hours) - Add missing unit tests (80% coverage) - Document test strategy Week 1: Structure Migration (2 hours) - Run specweave init - Migrate existing docs - Configure GitHub sync Week 2+: Start Increments - Full context available - High confidence changes ``` **Result**: 2 weeks to full documentation, then smooth increment workflow. --- ## Troubleshooting **Issue**: Can't find existing documentation **Solution**: Check common locations: `docs/`, `wiki/`, `.github/`, Notion exports **Issue**: Too many documents to classify **Solution**: Focus on architecture docs first, skip implementation details **Issue**: Conflicting documentation **Solution**: Use git history to find latest/canonical version **Issue**: External tool API limits **Solution**: Use throttled sync, batch imports --- **This skill is self-contained and works for ANY brownfield project.** ## Project-Specific Learnings **Before starting work, check for project-specific learnings:** ```bash # Check if skill memory exists for this skill cat .specweave/skill-memories/brownfield-analyzer.md 2>/dev/null || echo "No project learnings yet" ``` Project learnings are automatically captured by the reflection system when corrections or patterns are identified during development. These learnings help you understand project-specific conventions and past decisions.