UNPKG

homebridge-rabbitair

Version:
190 lines (137 loc) 5.29 kB
# Enhancement Workflow ## Overview The enhancement workflow is designed for **minor enhancements** to existing functionality. It uses a streamlined, single-document approach where the spec, plan, and tasks are condensed into one file for quick implementation. ## When to Use Use `/speckit.enhance` when: - Adding small improvements to existing features - Making minor UI/UX enhancements - Adding simple helper functions or utilities - Improving error messages or user feedback - Adding minor configuration options - Making small performance optimizations - Adding simple validation or edge case handling **Do NOT use `/speckit.enhance` for**: - Major new features → use `/speckit.specify` instead - Bug fixes → use `/speckit.bugfix` instead - Changing existing feature behavior → use `/speckit.modify` instead - Large refactoring efforts → use `/speckit.refactor` instead - Emergency fixes → use `/speckit.hotfix` instead **Rule of thumb**: If it needs more than 1 phase or complex planning, use `/speckit.specify` instead. ## Process ### 1. Planning Phase - Document the enhancement in a single file - Define what's changing and why - Create a simple, single-phase plan with tasks - Identify files to modify ### 2. Implementation - Follow the task list - Write tests as needed - Make the changes - Verify everything works ### 3. Verification - All tests pass - No regressions - Documentation updated if needed ## Quality Gates - ✅ Enhancement MUST be small enough for a single-phase plan - ✅ Changes MUST be clearly defined - ✅ Tests MUST be added for new behavior - ✅ All tests MUST pass before marking complete ## Files Created ``` specs/ └── enhance/ └── 001-description/ └── enhancement.md # Single document with spec + plan + tasks ``` ## Command Usage ```bash /speckit.enhance "add tooltip to save button" ``` This will: 1. Create branch `enhance/001-add-tooltip-to` 2. Generate `enhancement.md` with condensed template 3. Set `SPECIFY_ENHANCE` environment variable 4. Ready for immediate implementation **Next steps after running the command:** 1. Review and complete the enhancement document 2. Follow the implementation tasks 3. Verify all tests pass 4. Mark as complete ## Example Enhancement ```markdown # Enhancement: Add Tooltip to Save Button **Enhancement ID**: enhance-001 **Priority**: Low **Component**: UI Components ## Overview Add a helpful tooltip to the save button explaining what data will be saved. ## Proposed Changes - Add tooltip component to SaveButton - Include text: "Save profile changes to database" **Files to Modify**: - components/SaveButton.tsx - add Tooltip wrapper ## Implementation Plan **Phase 1: Implementation** **Tasks**: 1. [ ] Import Tooltip component from UI library 2. [ ] Wrap SaveButton with Tooltip 3. [ ] Add tooltip text prop 4. [ ] Test tooltip appears on hover 5. [ ] Verify button still functions correctly **Acceptance Criteria**: - [ ] Tooltip appears on hover - [ ] Tooltip text is clear and helpful - [ ] Save functionality unchanged ``` ## Comparison with Full Feature Workflow | Aspect | Enhancement | Feature | |--------|-------------|---------| | **Scope** | Minor improvements | New functionality | | **Documentation** | Single condensed file | Separate spec, plan, tasks files | | **Planning** | 1 phase maximum | Multiple phases as needed | | **Complexity** | Simple, quick changes | Complex, multi-step implementation | | **Timeline** | Hours to 1 day | Days to weeks | ## Tips ### When to Upgrade to Feature If during planning you find: - More than 5-7 tasks needed - Multiple phases required - Complex architecture decisions - Significant breaking changes - Multiple components affected Consider using `/speckit.specify` instead for proper feature development. ### Writing Good Enhancement Specs ```markdown # Good: Clear and concise Add validation to email input field to check format before submission # Bad: Too vague Make email better # Good: Specific scope Add loading spinner to login button during authentication # Bad: Too broad (should be feature) Redesign entire authentication flow with OAuth and SSO ``` ### Common Pitfalls - ❌ Using enhance for major features → Creates technical debt - ❌ Skipping tests for "small" changes → Introduces bugs - ❌ Not documenting the change → Team confusion - ❌ Breaking existing behavior → Should use `/speckit.modify` ## Integration with Constitution This workflow upholds: - **Section III: Test-Driven Development** - Tests written for new behavior - **Section VI: Workflow Selection** - Proper workflow for minor enhancements - **Quality Gates** - Clear definition and verification required ## Related Workflows - **Feature** - For major new functionality (multi-phase planning) - **Modify** - For changing existing feature behavior - **Bugfix** - For fixing defects - **Refactor** - For code quality improvements without behavior change ## Metrics Track these for continuous improvement: - Average time from enhancement request to completion - Percentage of enhancements that should have been features - Test coverage of enhancements - Number of enhancements per component --- *Enhancement Workflow Documentation - Part of Specify Extension System*