UNPKG

handoff-ai

Version:

AI collaboration framework for persistent project knowledge and smooth handoffs

278 lines (217 loc) • 10 kB
# Codebase Improvement EPIC: Quality Enhancement with Handoff This EPIC provides a systematic approach for improving existing codebases through refactoring, testing, performance optimization, and technical debt reduction while maintaining consistency with established patterns. ## Goal To enhance code quality, maintainability, and performance while preserving existing functionality and building upon established architectural patterns documented in your Handoff knowledge base. ## šŸ” Implementation-Area Pattern Communication Protocol ### **When AI Encounters Pattern Conflicts in Implementation Area** **Only flag inconsistencies in code directly related to current implementation:** **Scope of Analysis:** - āœ… Files you need to modify for this feature - āœ… Functions you need to integrate with - āœ… Modules you need to extend or call - āœ… Similar functionality you need to match - āŒ Unrelated parts of the codebase - āŒ Files you won't touch - āŒ Legacy code that doesn't affect current work **Communication Process:** 1. **Stop and inform user** about conflicts in the implementation area 2. **Show specific examples** from files you'll be working with 3. **Offer clear options** for the current implementation 4. **Get user approval** before continuing 5. **Document the decision** in assumptions.md for future reference ### **Communication Template** ``` āš ļø PATTERN INCONSISTENCY IN IMPLEMENTATION AREA I found conflicting [pattern type] in the code I need to work with: **Files I need to modify/integrate with:** - File A (I need to modify): [specific example of pattern 1] - File B (I need to integrate with): [specific example of pattern 2] - File C (similar functionality): [specific example of pattern 3] **For this new implementation, I can:** A) Follow Pattern 1 approach (matches File A I'm modifying) B) Follow Pattern 2 approach (matches File B I'm integrating with) C) Follow Pattern 3 approach (matches similar functionality) D) Create adapter to work with existing patterns **Which approach would you prefer?** ``` ### **Common Pattern Conflicts to Watch For** - **Async patterns**: callbacks vs promises vs async/await - **Error handling**: exceptions vs error objects vs result types - **Component patterns**: class vs functional components - **State management**: local state vs global state vs context - **API patterns**: REST vs GraphQL vs RPC - **Testing patterns**: unit vs integration test approaches - **Import patterns**: ES6 vs CommonJS vs dynamic imports ## Engagement Level Selection ### šŸ¤ High Engagement (Collaborative) - Detailed discussion of improvement strategies and trade-offs - Best for: Critical systems, complex refactoring, or learning-focused improvements ### šŸŽÆ Medium Engagement (Guided) - AI proposes improvements, human approves major changes - Best for: Routine maintenance, known improvement areas ### šŸš€ Auto-Pilot (Autonomous) - AI identifies and implements safe improvements automatically - Best for: Code cleanup, formatting, simple optimizations ## Phase 1: Codebase Assessment ### šŸ¤ High Engagement Mode **AI Actions**: - Analyze codebase for improvement opportunities - Present detailed findings with impact assessment - Discuss priorities and constraints with human **Human Actions**: - Review improvement suggestions - Set priorities and constraints - Provide context on business requirements ### šŸŽÆ Medium Engagement Mode **AI Actions**: - Identify improvement opportunities - Categorize by impact and risk level - Present prioritized list for approval **Human Actions**: - Approve/reject improvement categories - Set overall improvement goals ### šŸš€ Auto-Pilot Mode **AI Actions**: - Scan for safe, low-risk improvements - Focus on code quality, formatting, and obvious optimizations - Document all planned changes in assumptions ## Phase 2: Improvement Planning ### Common Improvement Areas - **Code Quality**: Linting issues, code smells, complexity reduction - **Performance**: Optimization opportunities, resource usage - **Testing**: Coverage gaps, test quality, test automation - **Documentation**: Missing or outdated documentation - **Security**: Vulnerability fixes, security best practices - **Dependencies**: Updates, security patches, unused dependencies ### Planning Process 1. **Impact Assessment**: Evaluate benefits vs. risks 2. **Dependency Analysis**: Identify interconnected changes 3. **Testing Strategy**: Plan verification approach 4. **Rollback Plan**: Prepare for potential issues 5. **Timeline Estimation**: Realistic improvement schedule ## Phase 3: Implementation Strategy ### šŸ¤ High Engagement Implementation - Step-by-step implementation with human review - Detailed explanation of each change - Collaborative problem-solving for complex issues ### šŸŽÆ Medium Engagement Implementation - Batch improvements by category - Human approval for significant changes - Regular progress updates ### šŸš€ Auto-Pilot Implementation - Automated safe improvements - Comprehensive logging of all changes - Rollback preparation for each change ### Safety Measures (All Modes) - **Backup Creation**: Ensure code is backed up - **Branch Strategy**: Use feature branches for improvements - **Incremental Changes**: Small, reviewable commits - **Testing**: Run tests after each change - **Documentation**: Update relevant documentation ## Phase 4: Quality Assurance ### Testing Strategy - **Existing Tests**: Ensure all tests still pass - **New Tests**: Add tests for improved code - **Integration Testing**: Verify system-wide functionality - **Performance Testing**: Validate performance improvements ### Code Review Process - **Self-Review**: AI reviews its own changes - **Human Review**: Human approval based on engagement level - **Automated Checks**: Linting, formatting, security scans - **Documentation Review**: Ensure docs are updated ## Phase 5: Monitoring & Validation ### Post-Implementation Monitoring - **Performance Metrics**: Monitor system performance - **Error Tracking**: Watch for new issues - **User Feedback**: Collect feedback on changes - **System Stability**: Ensure stability is maintained ### Success Metrics - **Code Quality Scores**: Improved linting/complexity scores - **Test Coverage**: Increased test coverage percentage - **Performance Metrics**: Faster execution, lower resource usage - **Maintainability**: Easier future modifications ## Common Improvement Patterns ### Code Quality Improvements - Extract complex functions into smaller, focused functions - Remove code duplication through abstraction - Improve variable and function naming - Add type annotations and documentation ### Performance Optimizations - Optimize database queries - Implement caching strategies - Reduce unnecessary computations - Optimize data structures and algorithms ### Testing Enhancements - Add unit tests for untested code - Improve test coverage for edge cases - Add integration tests for critical paths - Implement automated testing pipelines ### Security Improvements - Update dependencies with security vulnerabilities - Implement security best practices - Add input validation and sanitization - Improve error handling and logging ## Handoff Integration ### Assumption Documentation - Document all improvement decisions in `.project/assumptions.md` - Record rationale for architectural changes - Note any deviations from established patterns ### Knowledge Preservation - Update architectural documentation - Record lessons learned - Document new patterns introduced - Update golden paths if affected ## Risk Management ### Low-Risk Improvements - Code formatting and linting fixes - Documentation updates - Dependency updates (patch versions) - Simple refactoring with good test coverage ### Medium-Risk Improvements - Performance optimizations - Refactoring with moderate complexity - Adding new tests - Minor architectural changes ### High-Risk Improvements - Major refactoring - Architectural changes - Database schema changes - Breaking API changes ## Phase 6: Documentation Sync & Handoff Preparation ### **Goal** Update project documentation with new patterns, decisions, and functionality before PR/merge, ensuring knowledge is preserved for future AI sessions and team members. ### šŸ¤ High Engagement Mode **AI Actions**: - Present documentation update plan to human - Collaborate on updating each type of documentation - Get approval for each major documentation change **Human Actions**: - Review and approve documentation updates - Provide context for business logic changes - Validate that new patterns are accurately documented ### šŸŽÆ Medium Engagement Mode **AI Actions**: - Automatically update obvious documentation (API changes, new components) - Present summary of major changes for approval - Update assumptions log with implementation decisions **Human Actions**: - Quick review and approval of documentation changes - Provide feedback on any inaccuracies ### šŸš€ Auto-Pilot Mode **AI Actions**: - Automatically update all relevant documentation - Log all changes in assumptions for later review - Flag any complex changes that might need human review ### **Documentation Update Checklist** - [ ] **Golden paths** updated for new user flows - [ ] **Architecture docs** reflect new components/patterns - [ ] **BDD features** cover new functionality - [ ] **API docs** updated for new/modified endpoints - [ ] **Assumptions log** updated with implementation decisions - [ ] **Test documentation** reflects new test patterns - [ ] **Configuration files** updated if new dependencies added - [ ] **README** updated if setup process changed ### **Output** Updated project documentation ready for PR review and team handoff, ensuring the next developer (or AI session) has complete context about the changes made. ## Conclusion This EPIC ensures that codebase improvements are systematic, safe, and aligned with your project's established patterns while building upon the knowledge preserved in your Handoff system.