This repository now contains a complete CrowdCode platform architecture for democratic, AI-assisted software development.
File: ARCHITECTURE.md
A comprehensive architecture document covering:
- Core philosophy (AI as contributor, not authority)
- System components (Issues, PRs, Voting, Promotion)
- Data flow diagrams
- Security considerations
- Scalability guidance
- Extension points
Key Innovation: Dual-track development where main branch represents stable code while feature branches remain publicly visible indefinitely.
Directory: .github/workflows/
Four automated workflows:
-
crowdcode-issue-to-pr.yml(Daily, 2 AM UTC)- Scans for feature request issues
- Generates pull requests with AI code (Phase 2)
- Links PRs to original issues
- Updates labels automatically
-
crowdcode-vote-counting.yml(Hourly)- Counts votes from PatchPanel members
- Updates PR descriptions with vote tallies
- Checks promotion criteria
- Adds ready-to-promote label when threshold met
-
crowdcode-feature-promotion.yml(Daily, 6 AM UTC)- Merges approved features to main
- Closes linked issues
- Updates labels and notifications
- Preserves feature branches for transparency
-
crowdcode-branch-visibility.yml(Weekly)- Generates feature dashboard JSON
- Lists all feature branches
- Tracks voting status
- Publishes to GitHub Pages (optional)
All workflows support dry-run mode for safe testing.
File: docs/VOTING_MECHANISM.md
Complete voting system specification:
- PatchPanel Membership: JSON-based voter registry
- Vote Methods: Reactions (👍 👎 👀) and PR reviews
- Physical Codes: PATCH-YYYY-NNNN format for in-person distribution
- Promotion Criteria: Configurable quorum and approval threshold
- Transparency: All votes public, complete audit trail
- Evolution: From simple reactions to advanced governance
Innovation: Physical code redemption enables exhibition/installation participation.
File: docs/REPO_STRUCTURE.md
Template and guide for CrowdCode-enabled repositories:
- Minimal required files and directories
- Configuration examples
- Script implementations
- Integration instructions
- ShelfSignals adaptation strategy
- Best practices and troubleshooting
Portability: Can be adopted by any GitHub repository with minimal changes.
File: docs/ROADMAP.md
Multi-year plan from ShelfSignals pilot to universal platform:
- Phase 1 (Weeks 1-4): ShelfSignals pilot ✅
- Phase 2 (Weeks 5-8): AI integration and automation
- Phase 3 (Weeks 9-16): Generalization and templates
- Phase 4 (Weeks 17-24): Ecosystem development
- Phase 5 (Months 6-12): Platform maturity
Clear Path: From specific implementation to GitHub Marketplace app.
Directory: .github/
Complete configuration setup:
-
ISSUE_TEMPLATE/feature-request.yml- Structured form for feature requests
- Required fields: name, description, use case
- Optional fields: acceptance criteria, priority
- CrowdCode terms acceptance
-
PATCHPANEL_MEMBERS.json- Voter registry with metadata
- Physical code management
- Role assignments
- Active status tracking
-
crowdcode-config.yml- Issue processing limits
- Voting thresholds and periods
- Promotion requirements
- Notification settings
- Label definitions
Directory: scripts/
Four operational scripts:
-
generate-feature-pr.py- Parses feature request issues
- Creates branch names from issue titles
- Generates PR descriptions
- Updates issue labels
- Ready for AI integration (Phase 2)
-
validate-votes.py- Loads PatchPanel membership
- Counts reactions and reviews
- Validates voter eligibility
- Calculates approval rates
- Updates PR descriptions with vote status
-
promote-feature.py- Identifies ready-to-promote PRs
- Validates promotion criteria
- Merges to main branch
- Closes linked issues
- Updates labels
-
generate-dashboard.py- Lists all feature branches
- Collects PR metadata
- Generates JSON dashboard data
- Creates README with feature list
Code Quality: All scripts pass syntax validation and CodeQL security scan.
Complete user and developer documentation:
README.md: Platform overview with quick linksdocs/GETTING_STARTED.md: Step-by-step setup guidedocs/WORKFLOW_DESIGN.md: Technical workflow detailsCONTRIBUTING.md: Contribution guidelinesLICENSE: MIT License
Comprehensive: Covers all aspects from philosophy to implementation.
-
Submit Feature Request
- User creates issue via template
- Provides description, use case, criteria
- Issue labeled
crowdcode:feature-request
-
AI Generates PR (Phase 2)
- Daily workflow scans for new issues
- AI generates implementation code
- PR created with branch
crowdcode/feature-N-slug - Issue updated to
crowdcode:pending-pr
-
Community Votes
- PatchPanel members review code
- Vote using 👍 👎 👀 reactions or PR reviews
- Hourly workflow counts votes
- PR description updated with tally
-
Automatic Promotion
- When threshold met, label
crowdcode:ready-to-promoteadded - Daily workflow merges to main
- Issue closed with success message
- Feature branch preserved for transparency
- When threshold met, label
Issue Created
↓
Daily: generate-feature-pr.py
↓
PR Created & Labeled
↓
Hourly: validate-votes.py
↓
Vote Count Updated
↓
Threshold Met?
↓ Yes
Daily: promote-feature.py
↓
Merged to Main
↓
Weekly: generate-dashboard.py
↓
Dashboard Updated
Default settings in .github/crowdcode-config.yml:
voting:
quorum: 3 # Minimum votes required
approval_threshold: 0.5 # 50% approval needed
voting_period_days: 7 # One week voting windowRecommended Adjustments:
- Small teams (2-5):
quorum: 2 - Medium teams (6-20):
quorum: 3 - Large teams (20+):
quorum: 5
Seven labels track feature lifecycle:
| Label | Purpose | Color |
|---|---|---|
crowdcode:feature-request |
New idea | Green |
crowdcode:pending-pr |
PR being generated | Yellow |
crowdcode:ai-generated |
Created by AI | Blue |
crowdcode:voting |
Active voting | Orange |
crowdcode:ready-to-promote |
Approved | Green |
crowdcode:promoted |
Merged | Purple |
crowdcode:archived |
Rejected | Light Purple |
All deliverables from the problem statement have been implemented:
-
✅ Generic CrowdCode workflow using GitHub primitives
- Issues for feature requests
- Branches for features
- Actions for automation
- Labels for metadata
-
✅ Scheduled automation proposal
- Daily issue scanning and PR generation
- Hourly vote counting
- Daily feature promotion
- Weekly dashboard updates
-
✅ Voting mechanism definition
- PatchPanel member restriction
- Minimal infrastructure (reactions/reviews)
- Transparent and auditable
- Physical code support planned
-
✅ ShelfSignals refactoring identified
- Reference application pathway clear
- Template extraction strategy defined
- Customization points documented
- Roadmap established
Upcoming work:
- Integrate GitHub Copilot API for code generation
- Test with real feature requests
- Refine vote counting logic
- Build feature dashboard UI
- Pilot with ShelfSignals project
To enable CrowdCode in your repository:
# Copy files from this repository
cp -r .github your-repo/
cp -r scripts your-repo/
cp -r docs your-repo/
# Update PatchPanel members
edit .github/PATCHPANEL_MEMBERS.json
# Create labels
gh label create "crowdcode:feature-request" --color "0e8a16"
# (repeat for all labels)
# Test workflows
gh workflow run crowdcode-issue-to-pr.yml -f dry_run=trueSee docs/GETTING_STARTED.md for complete setup instructions.
Unlike traditional AI coding assistants that replace developers, CrowdCode:
- Uses AI to generate proposals, not final code
- Requires human approval via voting
- Maintains human oversight at all stages
- Preserves creative agency for the community
Every aspect is public and auditable:
- All feature branches visible (even rejected ones)
- All votes visible (who voted how)
- Complete Git history (immutable record)
- Public dashboard (real-time status)
Power distributed across community:
- Anyone can propose features
- PatchPanel members vote on inclusion
- Transparent criteria for promotion
- Configurable thresholds
Physical codes enable offline participation:
- Exhibition visitors can join PatchPanel
- Conference attendees get voting rights
- Community events distribute access
- Digital democracy meets physical world
Platform optimized for:
- ✅ Openness: All code, votes, decisions public
- ✅ Traceability: Complete audit trail in Git
- ✅ Community Trust: Democracy over autocracy
- ✅ Simplicity: Minimal infrastructure, maximum impact
- ✅ Portability: Easy to adopt anywhere
CodeQL scan results: 0 vulnerabilities ✅
Security measures:
- Vote validation (PatchPanel membership required)
- Code review (human oversight mandatory)
- Audit trail (Git history immutable)
- Dry-run mode (test before production)
MIT License - See LICENSE file
Designed and implemented for the evcatalyst/CrowdCode repository as a platform for collaborative, community-driven software development.
Inspired by ShelfSignals and the vision of democratic participation in software creation.
CrowdCode Platform: Where AI proposes, humans decide, and transparency wins. 🚀