# Feature Wishlist System - Issue #85 The Feature Wishlist system provides a structured approach for capturing, discussing, and refining feature ideas before they become formal development tasks. ## Overview The wishlist system helps teams: - **Capture Ideas**: Preserve creative insights that emerge during discussions - **Organize Thoughts**: Structure rough ideas before formal specification - **Facilitate Discussion**: Provide dedicated space for collaborative refinement - **Prevent Loss**: Ensure good ideas aren't forgotten - **Gradual Refinement**: Allow concepts to mature over time ## Workflow Stages ### 1. 💡 Discussion Stage (`wish/discussion`) - **Purpose**: Initial idea capture and brainstorming - **Activities**: Gather thoughts, explore possibilities, ask questions - **Output**: Refined understanding of the concept ### 2. 📝 Draft Stage (`wish/draft`) - **Purpose**: Create initial specification and requirements - **Activities**: Document detailed requirements, identify dependencies - **Output**: Draft implementation plan ### 3. ✅ Ready Stage (`wish/ready`) - **Purpose**: Prepare for conversion to regular development issue - **Activities**: Final review, priority assignment, resource planning - **Output**: Well-formed issue ready for development ### 4. 🗄️ Archived Stage (`wish/archived`) - **Purpose**: Preserve ideas that won't be pursued currently - **Activities**: Document decision rationale, mark for future consideration - **Output**: Archived record with context ## CLI Commands ### Create a Wishlist Item ```bash # Basic wish creation markitect wish create "Smart document templates" # With description and priority markitect wish create "Real-time collaboration" \ --description "Enable multiple users to edit documents simultaneously" \ --priority high \ --stage discussion ``` ### List Wishlist Items ```bash # List all wishlist items markitect wish list # Filter by stage markitect wish list --stage discussion markitect wish list --stage ready # Different output formats markitect wish list --format json markitect wish list --format simple ``` ### Promote Wishlist Items ```bash # Promote to next logical stage markitect wish promote 86 # Promote to specific stage markitect wish promote 86 --stage ready ``` ### Convert to Regular Issue ```bash # Convert ready wish to regular issue markitect wish convert 86 # Convert with custom title markitect wish convert 86 --title "Implement smart document templates" ``` ## Labels and Organization ### Core Labels - `wish` - Primary wishlist identifier - `wish/discussion` - Currently being discussed - `wish/draft` - Has initial specification draft - `wish/ready` - Ready for development - `wish/archived` - Archived or rejected ### Additional Labels - `priority/low|medium|high` - Priority levels - `effort/small|medium|large` - Estimated effort - `category/ui|api|infrastructure` - Feature categories ## Issue Templates ### Discussion Stage Template ```markdown ## 💡 Feature Wish **Summary**: [Brief description of the idea] ## Current Thinking *What's the initial idea or inspiration?* ## Potential Benefits *Why might this be valuable?* ## Questions to Explore *What aspects need more thought?* ## Related Concepts *Are there similar ideas or existing features this relates to?* ``` ### Draft Stage Template ```markdown ## 📝 Feature Specification Draft **Summary**: [Refined description] ## Requirements ### Functional Requirements - [ ] Requirement 1 - [ ] Requirement 2 ### Non-Functional Requirements - [ ] Performance expectations - [ ] Compatibility requirements ## Implementation Approach *High-level approach and key considerations* ## Dependencies *What other features or changes are needed?* ## Success Criteria *How will we know this feature is successful?* ``` ## Best Practices ### Creating Good Wishes 1. **Start Small**: Begin with simple, focused ideas 2. **Be Specific**: Include concrete examples when possible 3. **Ask Questions**: Identify what needs exploration 4. **Link Related**: Connect to existing features or issues ### Discussion Guidelines 1. **Stay Open**: All ideas deserve consideration 2. **Ask Clarifying Questions**: Help refine the concept 3. **Share Examples**: Provide concrete use cases 4. **Consider Alternatives**: Explore different approaches ### Promotion Criteria **Discussion → Draft** - Clear understanding of the problem - Identified potential solutions - Community interest confirmed **Draft → Ready** - Detailed requirements documented - Implementation approach defined - Dependencies identified - Success criteria established **Ready → Regular Issue** - Complete specification - Priority and effort estimated - Development resources available ## Examples ### Example 1: Simple Wish Creation ```bash markitect wish create "Export to PDF" \ --description "Allow users to export markdown documents to PDF format" \ --stage discussion ``` ### Example 2: Full Workflow ```bash # 1. Create initial wish markitect wish create "Smart document templates" # 2. List and review wishes markitect wish list --stage discussion # 3. Promote after discussion markitect wish promote 86 --stage draft # 4. Add detailed specification (manual editing) # 5. Promote when ready markitect wish promote 86 --stage ready # 6. Convert to development issue markitect wish convert 86 ``` ### Example 3: Wish Filtering ```bash # Show only high-priority ready items markitect wish list --stage ready | grep "priority/high" # Export all wishes for analysis markitect wish list --format json > wishlist-export.json ``` ## Integration with Development Process ### Connecting to Regular Issues - Converted wishes automatically reference original wishlist item - Original wish is closed with link to new issue - Maintains traceability from idea to implementation ### Project Planning - Use `wish/ready` items for sprint planning - Filter by priority and effort for roadmap planning - Track conversion rate from wishes to implemented features ### Community Engagement - Encourage team members to create wishes freely - Use wishlist for user feedback and feature requests - Regular review meetings to promote wishes through stages ## Reporting and Analytics ### Useful Queries ```bash # Count wishes by stage markitect wish list --format json | jq 'group_by(.labels[].name | select(startswith("wish/"))) | map({stage: .[0].labels[].name, count: length})' # Find oldest wishes needing attention markitect wish list --stage discussion --format json | jq 'sort_by(.created_at) | .[0:5]' # Track conversion success rate # (Count of converted wishes vs total wishes created) ``` ### Metrics to Track - **Creation Rate**: How many wishes are being created - **Promotion Rate**: How quickly wishes move through stages - **Conversion Rate**: Percentage of wishes that become regular issues - **Stage Distribution**: Where wishes tend to accumulate ## Troubleshooting ### Common Issues **"No wishlist items found"** - Check if labels were created properly: `tea label list | grep wish` - Verify issue has correct labels **"Failed to promote wish"** - Ensure issue exists and you have permissions - Check if labels are properly configured **Convert command fails** - Verify wish is in `ready` stage - Check issue permissions and repository access ### Recovery Commands ```bash # Manually add wish labels to existing issue tea issue edit 86 --labels "wish,wish/discussion" # Fix missing stage labels tea issue edit 86 --labels "wish,wish/draft,priority/medium" ``` ## Maintenance ### Regular Tasks 1. **Weekly Review**: Check wishes in discussion stage 2. **Monthly Promotion**: Move mature wishes to next stage 3. **Quarterly Cleanup**: Archive stale or obsolete wishes 4. **Annual Analysis**: Review wishlist effectiveness and process improvements ### Automated Maintenance (Future) - Auto-archive wishes inactive for 6+ months - Remind assignees of wishes ready for promotion - Generate wishlist health reports The Feature Wishlist system transforms ad-hoc idea management into a structured, trackable process that ensures valuable insights are captured, refined, and eventually implemented.