-
Notifications
You must be signed in to change notification settings - Fork 7
Open
Labels
DiscussionIssues where community input is encouraged to help refine the ideaIssues where community input is encouraged to help refine the ideaHouse KeepingTasks for development flow and codebase organizationTasks for development flow and codebase organization
Description
Problem
Currently, we maintain feature voting in roadmap-data.json which creates duplication and synchronization issues:
- Duplicate tracking: Both
roadmap-data.jsonand GitHub issues track the same features - Sync challenges: Votes in JSON don't reflect GitHub issue priorities or discussions
- Limited collaboration: JSON voting is isolated from GitHub's collaborative features
- Maintenance overhead: Two systems need to be kept in sync manually
Current State Analysis
The roadmap-data.json contains 23 features with vote scores, but many already have corresponding GitHub issues:
find-usages(score: 6) → Issue Implement find-usages command #2 ✅ Implementedextract-method(score: 9) → Issue Implement extract-method command #4move-file(score: 0) → Issue Implement move-file command #3 ✅ Implementedauto-import-organizer(score: 4) → Issue Implement auto-import-organizer command #11safe-delete(score: 3) → Issue Implement safe-delete command #12
Proposed Solution
Replace the JSON-based voting system with GitHub-native features:
1. GitHub Reactions for Voting
Use GitHub's reaction system for lightweight voting:
- 👍 = Vote for this feature
- ❤️ = High priority/critical need
- 🚀 = Want to implement this
- 👎 = Not needed/low priority
2. Issue Sorting by Engagement
Create tooling to list issues by engagement metrics:
# List issues by vote count (reactions)
refakts roadmap:list --sort-by votes
# List issues by recent activity
refakts roadmap:list --sort-by activity
# List issues by implementation readiness
refakts roadmap:list --sort-by ready3. Migration Strategy
- Create GitHub issues for roadmap features that don't have them yet
- Link existing votes by adding reactions equivalent to JSON scores
- Update roadmap commands to read from GitHub API instead of JSON
- Archive roadmap-data.json once migration is complete
Implementation Approach
Enhanced Roadmap Commands
// New GitHub-based roadmap system
class GitHubRoadmapService {
async listFeaturesByVotes(): Promise<FeatureIssue[]> {
// Fetch issues with 'enhancement' label
// Sort by reaction count (👍 + ❤️ + 🚀)
// Include issue metadata and discussion activity
}
async voteForFeature(issueNumber: number, voteType: ReactionType): Promise<void> {
// Add reaction to GitHub issue
// Update local cache if needed
}
}New Command Interface
# List features by vote count
refakts roadmap:status --sort votes
# Vote for a feature
refakts roadmap:vote 42 # Adds 👍 reaction to issue #42
# View feature details with voting history
refakts roadmap:view 42 # Shows issue details + reaction summaryBenefits
Better Integration
- Native GitHub features: Reactions, comments, labels, milestones
- Unified discussion: Feature voting happens alongside technical discussion
- Better visibility: GitHub notifications and activity feeds
- Searchable: GitHub's powerful search and filtering
Improved Collaboration
- Public voting: Community can participate in feature prioritization
- Context-rich: Votes can include comments explaining why
- Implementation tracking: Issues can track progress from idea to completion
- Cross-referencing: Easy linking between related features and bugs
Simplified Maintenance
- Single source of truth: GitHub issues only
- Automatic sync: No manual JSON updates needed
- Rich metadata: Labels, assignees, milestones, project boards
- API access: Programmatic access via GitHub API
Migration Plan
Phase 1: Create Missing Issues
Create GitHub issues for roadmap features that don't have them:
extract-delegate-class(score: 0)extract-field(score: 0)extract-type-alias(score: 1)extract-interface(score: 1)extract-superclass(score: 0)- And others without
githubIssuefield
Phase 2: Transfer Votes
Convert JSON scores to GitHub reactions:
- Score 9 (
extract-method) → Multiple 👍 + ❤️ reactions - Score 6 (
find-usages) → Multiple 👍 reactions (but mark as ✅ implemented) - Score 4 (
auto-import-organizer) → Several 👍 reactions - etc.
Phase 3: Update Tooling
- Modify
roadmap:statusto read from GitHub API - Update
roadmap:voteto add GitHub reactions - Add new sorting and filtering options
- Update documentation and help text
Phase 4: Archive JSON
- Remove
roadmap-data.json - Update post-commit hooks if they reference it
- Clean up related scripts and utilities
Acceptance Criteria
- GitHub issues exist for all roadmap features
- Vote counts are preserved as GitHub reactions
-
refakts roadmap:statusdisplays GitHub-based data -
refakts roadmap:vote <issue-number>adds reactions - Issues can be sorted by vote count, activity, readiness
- Migration script to transfer existing votes
- Documentation updated to reflect new workflow
-
roadmap-data.jsonremoved after successful migration
Priority
Medium - Improves feature tracking and eliminates duplication, but doesn't block current development workflows.
🤖 Generated with Claude Code
Co-Authored-By: Claude noreply@anthropic.com
Metadata
Metadata
Assignees
Labels
DiscussionIssues where community input is encouraged to help refine the ideaIssues where community input is encouraged to help refine the ideaHouse KeepingTasks for development flow and codebase organizationTasks for development flow and codebase organization