# /sdd:story-refactor ## Meta - Version: 2.0 - Category: story-management - Complexity: high - Purpose: Create refactoring story based on code analysis and project standards ## Definition **Purpose**: Analyze codebase against project standards and create a prioritized refactoring story with specific, actionable requirements. **Syntax**: `/sdd:story-refactor [objective]` ## Parameters | Parameter | Type | Required | Default | Description | Validation | |-----------|------|----------|---------|-------------|------------| | objective | string | No | comprehensive | Refactoring focus area or general analysis | Any text phrase | ## INSTRUCTION: Create Refactoring Story ### INPUTS - objective: Optional refactoring focus (e.g., "improve performance", "reduce complexity") - Project context from `/docs/project-context/` directory - Current codebase state - Active stories from `/docs/stories/development/` ### PROCESS #### Phase 1: Project Context Loading 1. **CHECK** if `/docs/project-context/` directory exists 2. IF missing: - SUGGEST running `/sdd:project-init` first - EXIT with initialization guidance 3. **LOAD** project context from: - `/docs/project-context/coding-standards.md` - Code quality rules and thresholds - `/docs/project-context/technical-stack.md` - Framework patterns and best practices - `/docs/project-context/development-process.md` - Quality requirements #### Phase 2: Objective Definition 1. **PARSE** optional objective parameter 2. IF no objective provided: - SET analysis mode = comprehensive - ANALYZE all code quality dimensions 3. IF objective provided: - MAP objective to analysis focus areas: * "improve performance" → Database queries, N+1, caching, assets * "reduce complexity" → Cyclomatic complexity, nesting, method length * "extract reusable components" → Duplicate code, large components * "improve accessibility" → ARIA, keyboard nav, screen readers * "optimize for mobile" → Responsive design, touch, performance * Custom → Interpret and adapt analysis - PRIORITIZE findings aligned with objective #### Phase 3: Code Analysis 1. **ANALYZE** codebase using DISCOVERED standards from project context: **Structure Issues**: - SCAN for functions exceeding length limits (from coding-standards.md) - CHECK nesting depth against complexity thresholds - IDENTIFY duplicate code blocks - FLAG complex conditionals **Naming Conventions**: - VERIFY variables follow naming patterns - CHECK consistency with style guide - VALIDATE function naming conventions **Framework Patterns** (from technical-stack.md): - Laravel: Eloquent patterns, validation, authorization - React: Hooks patterns, prop validation - Vue: Composition API, reactivity - Django: MVT patterns, form validation - Express: Middleware patterns, error handling - [DISCOVERED framework]: Apply specific patterns **Error Handling**: - CHECK error boundaries exist (per framework) - VERIFY comprehensive error handling - VALIDATE loading states present **Performance**: - IDENTIFY database N+1 queries - CHECK for missing caching opportunities - ANALYZE asset optimization - MEASURE component render efficiency **Accessibility** (if relevant): - VERIFY ARIA attributes present - CHECK keyboard navigation support - VALIDATE screen reader compatibility - TEST focus management 2. **PRIORITIZE** findings: IF comprehensive mode: - Priority 1: Security/bug issues requiring immediate attention - Priority 2: Maintainability issues affecting development velocity - Priority 3: Style and optimization improvements IF objective-focused mode: - Priority 1: Changes directly supporting objective - Priority 2: Critical security/bug issues (non-conflicting) - Priority 3: Supporting improvements complementing objective #### Phase 4: Story ID Generation 1. **GENERATE** story ID in format `STORY-YYYY-NNN`: - YYYY = current year - NNN = next available number 2. **CHECK** for existing IDs across all story directories 3. **ENSURE** uniqueness #### Phase 5: Story File Creation 1. **ENSURE** `/docs/stories/backlog/` directory exists 2. **CREATE** story file at `/docs/stories/backlog/[story-id].md` 3. **POPULATE** refactoring story template with: - Story ID and title (auto-generated based on objective) - Status: backlog - Today's date as "Started" date - Refactoring objective (clear goal statement) - Background (why refactoring needed, analysis summary) - Analysis Findings (organized by priority, with file:line references) - Requirements (specific, actionable refactoring tasks) - Acceptance Criteria (testable completion criteria) - Implementation Notes (technical guidance, patterns to follow) - Testing Requirements (verify functionality maintained) - Risk Assessment (potential risks, mitigation strategies) - Impact Analysis (affected components, tests, dependencies) 4. **REFERENCE** analysis findings: - Include file paths and line numbers - Show before/after code examples - Note pattern violations with framework references - Link to relevant coding standard sections #### Phase 6: Completion Summary 1. **DISPLAY** refactoring summary: ``` ✅ Refactoring Story Created ═══════════════════════════════════ Story ID: [STORY-YYYY-NNN] Title: [Auto-generated Title] Location: /docs/stories/backlog/[story-id].md Status: backlog Analysis Mode: [Comprehensive / Objective-focused: {objective}] Findings: - Priority 1 (Critical): [count] issues - Priority 2 (Important): [count] issues - Priority 3 (Nice to have): [count] improvements Files Affected: [count] files Estimated Complexity: [Low/Medium/High] ``` 2. **SUGGEST** next steps: ``` 💡 NEXT STEPS: 1. Review story in /docs/stories/backlog/[story-id].md 2. /sdd:story-start [story-id] # Move to development when ready 3. /sdd:project-status # View all stories ``` ### OUTPUTS - `/docs/stories/backlog/[story-id].md` - New refactoring story with comprehensive analysis - Analysis summary with prioritized findings ### RULES - MUST generate unique story ID across all directories - MUST analyze using DISCOVERED project standards (no assumptions) - MUST prioritize findings by objective if provided - MUST include file paths and line numbers in findings - MUST provide specific, actionable refactoring tasks - SHOULD include before/after code examples - SHOULD reference framework patterns from technical-stack.md - NEVER suggest refactoring without analysis evidence - ALWAYS include risk assessment for breaking changes - MUST verify all existing tests will pass post-refactoring ## Refactoring Story Template ```markdown # [STORY-ID]: [Refactoring Title] ## Status: backlog **Started:** [Today's Date] **Completed:** **Branch:** (none - in backlog) ## Objective [Clear statement of refactoring goal based on analysis] ## Background [Why this refactoring is needed - analysis context, pain points, violations found] ## Analysis Findings ### Priority 1: Critical - [ ] **[File:Line]**: [Issue description] - Current: [Code example or pattern] - Standard: [Expected pattern from coding-standards.md] - Impact: [Why this matters] ### Priority 2: Important - [ ] **[File:Line]**: [Issue description] - Current: [Code example] - Suggested: [Improved pattern] - Benefit: [Improvement gained] ### Priority 3: Nice to Have - [ ] **[File:Line]**: [Improvement opportunity] - Enhancement: [What to improve] - Justification: [Why it helps] ## Requirements ### R1: [Requirement Title] **What**: [Specific change needed] **Why**: [Business/technical justification] **How**: [Suggested approach or pattern] **Tests**: [Impact on existing tests] **Dependencies**: [Related components] ### R2: [Requirement Title] [Same structure as R1] ## Acceptance Criteria - [ ] All Priority 1 issues resolved - [ ] Code quality metrics maintained or improved - [ ] All existing functionality works identically - [ ] All tests pass (no failures introduced) - [ ] Code follows [framework] patterns from technical-stack.md - [ ] Performance metrics maintained or improved - [ ] Documentation updated where necessary ## Implementation Notes **Approach**: [Recommended refactoring strategy] **Stack**: [Auto-populated from technical-stack.md] **Patterns**: [Framework-specific patterns to apply] **Tools**: [Linters, formatters, static analysis tools to use] ## Testing Requirements ### Existing Tests - [ ] All unit tests pass - [ ] All integration tests pass - [ ] All E2E tests pass - [ ] No regressions in test coverage ### New Tests - [ ] [New test scenario 1] - [ ] [New test scenario 2] ### Manual Testing - [ ] [Manual verification step 1] - [ ] [Manual verification step 2] ## Risk Assessment ### High Risk - **[Risk description]**: [Mitigation strategy] ### Medium Risk - **[Risk description]**: [Mitigation strategy] ### Low Risk - **[Risk description]**: [Mitigation strategy] ## Impact Analysis **Components Affected**: [List of components/modules] **Tests Affected**: [List of test files] **Dependencies**: [External dependencies or other stories] **Breaking Changes**: [Yes/No - details if yes] ## Progress Log - [Today]: Created refactoring story from code analysis ## Rollback Plan [How to rollback if issues arise during refactoring] ## Lessons Learned [To be filled when complete] ``` ## Examples ### Example 1: Comprehensive Refactoring ```bash INPUT: /sdd:story-refactor OUTPUT: → Checking project context... → Loading coding standards and framework patterns... → Analyzing codebase comprehensively... → Found 23 issues across 8 files ✅ Refactoring Story Created ═══════════════════════════════════ Story ID: STORY-2025-012 Title: Comprehensive Code Quality Improvements Location: /docs/stories/backlog/STORY-2025-012.md Status: backlog Analysis Mode: Comprehensive Findings: - Priority 1 (Critical): 3 issues - Priority 2 (Important): 12 issues - Priority 3 (Nice to have): 8 improvements Files Affected: 8 files Estimated Complexity: High 💡 NEXT STEPS: 1. Review story in /docs/stories/backlog/STORY-2025-012.md 2. /sdd:story-start STORY-2025-012 # Move to development when ready 3. /sdd:project-status # View all stories ``` ### Example 2: Performance-Focused Refactoring ```bash INPUT: /sdd:story-refactor improve performance OUTPUT: → Checking project context... → Loading coding standards and framework patterns... → Analyzing for performance issues... → Scanning database queries, caching, assets... → Found 7 performance issues across 5 files ✅ Refactoring Story Created ═══════════════════════════════════ Story ID: STORY-2025-013 Title: Performance Optimization Refactoring Location: /docs/stories/backlog/STORY-2025-013.md Status: backlog Analysis Mode: Objective-focused (improve performance) Findings: - Priority 1 (Performance): 7 issues • 3 N+1 query problems • 2 missing cache opportunities • 2 unoptimized asset loads - Priority 2 (Critical): 0 issues - Priority 3 (Supporting): 2 improvements Files Affected: 5 files Estimated Complexity: Medium 💡 NEXT STEPS: 1. Review story in /docs/stories/backlog/STORY-2025-013.md 2. /sdd:story-start STORY-2025-013 # Move to development when ready 3. /sdd:project-status # View all stories ``` ### Example 3: Accessibility Refactoring ```bash INPUT: /sdd:story-refactor improve accessibility OUTPUT: → Checking project context... → Analyzing ARIA, keyboard nav, screen reader support... → Found 15 accessibility issues across 6 components ✅ Refactoring Story Created ═══════════════════════════════════ Story ID: STORY-2025-014 Title: Accessibility Compliance Refactoring Location: /docs/stories/backlog/STORY-2025-014.md Status: backlog Analysis Mode: Objective-focused (improve accessibility) Findings: - Priority 1 (Accessibility): 15 issues • 8 missing ARIA attributes • 4 keyboard navigation gaps • 3 screen reader issues - Priority 2 (Critical): 0 issues - Priority 3 (Supporting): 5 improvements Files Affected: 6 components Estimated Complexity: Medium 💡 NEXT STEPS: 1. Review story in /docs/stories/backlog/STORY-2025-014.md 2. /sdd:story-start STORY-2025-014 # Move to development when ready 3. /sdd:project-status # View all stories ``` ## Edge Cases ### No Project Context - DETECT missing `/docs/project-context/` directory - SUGGEST running `/sdd:project-init` - CANNOT proceed without coding standards - EXIT with clear guidance ### No Code Issues Found - REPORT clean codebase status - SUGGEST code is already well-refactored - OFFER to create story anyway for future improvements - DOCUMENT analysis results even if no issues ### Framework Not Recognized - DETECT framework from technical-stack.md - FALL BACK to generic code analysis if unknown - WARN that framework-specific patterns unavailable - CONTINUE with structure/naming analysis ### Conflicting Standards - DETECT contradictions in project context - LOG warnings about conflicts - ASK user to clarify which standard applies - DOCUMENT decision in story ## Error Handling - **Missing /docs/project-context/**: Exit with suggestion to run `/sdd:project-init` - **No coding-standards.md**: Cannot analyze - critical file missing - **Analysis errors**: Log specific files causing issues, continue with others - **Invalid objective**: Interpret broadly or ask user for clarification ## Performance Considerations - Code analysis may take 30-60 seconds for large codebases - Show progress indicators during analysis - Cache project context for session - Analyze only relevant files based on objective ## Related Commands - `/sdd:project-init` - Initialize project structure with standards - `/sdd:project-brief` - Define project goals and constraints - `/sdd:story-new` - Create feature story - `/sdd:story-start [id]` - Begin refactoring work - `/sdd:project-status` - View all stories ## Constraints - ✅ MUST use DISCOVERED standards (no assumptions) - ✅ MUST include file:line references in findings - ✅ MUST prioritize by objective when provided - ⚠️ NEVER suggest refactoring without evidence - 📋 MUST provide specific, actionable tasks - 🔧 SHOULD include before/after examples - 💾 MUST assess risk for breaking changes - 🧪 MUST verify existing tests will pass