Files
markitect-main/docs/wishlist.md
tegwick 1d13cbb355 feat: implement feature wishlist system (issue #85)
Add comprehensive wishlist management for capturing and refining feature ideas:

• CLI Commands:
  - markitect wish create: Create new wishlist items with templates
  - markitect wish list: List and filter wishes by stage
  - markitect wish promote: Promote wishes through workflow stages
  - markitect wish convert: Convert ready wishes to regular issues

• Workflow Stages:
  - discussion: Initial idea capture and brainstorming
  - draft: Create specification and requirements
  - ready: Prepare for conversion to development issue
  - archived: Preserve ideas that won't be pursued

• Features:
  - Automatic label management (wish, wish/stage, priority/level)
  - Multiple output formats (table, simple, json)
  - Stage filtering and organization
  - Structured templates for each workflow stage
  - Comprehensive documentation and best practices

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-03 19:12:45 +02:00

300 lines
8.0 KiB
Markdown

# 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.