This guide will help you enable CrowdCode in a new or existing repository.
CrowdCode is a collaborative software development platform that enables:
- π‘ Community Feature Requests via GitHub Issues
- π€ AI-Powered Implementation via GitHub Copilot
- π³οΈ Democratic Voting via PatchPanel membership
- πΏ Transparent Development with public feature branches
Copy the CrowdCode files to your repository:
# Create directories
mkdir -p .github/workflows
mkdir -p .github/ISSUE_TEMPLATE
mkdir -p scripts
mkdir -p docs/features
# Copy workflow files (from this repository)
cp .github/workflows/crowdcode-*.yml your-repo/.github/workflows/
# Copy configuration files
cp .github/ISSUE_TEMPLATE/feature-request.yml your-repo/.github/ISSUE_TEMPLATE/
cp .github/PATCHPANEL_MEMBERS.json your-repo/.github/
cp .github/crowdcode-config.yml your-repo/.github/
# Copy scripts
cp scripts/*.py your-repo/scripts/Edit .github/PATCHPANEL_MEMBERS.json to add initial members:
{
"version": "1.0",
"updated": "2025-12-21T21:00:00Z",
"members": [
{
"github_username": "your-username",
"joined": "2025-12-21T21:00:00Z",
"role": "founding",
"active": true,
"notes": "Project founder"
}
]
}Create the required labels in your repository:
# Using GitHub CLI
gh label create "crowdcode:feature-request" --color "0e8a16" --description "New feature idea"
gh label create "crowdcode:pending-pr" --color "fbca04" --description "PR generation in progress"
gh label create "crowdcode:ai-generated" --color "0075ca" --description "Created by AI"
gh label create "crowdcode:voting" --color "d93f0b" --description "Active voting period"
gh label create "crowdcode:ready-to-promote" --color "0e8a16" --description "Approved, ready to merge"
gh label create "crowdcode:promoted" --color "6f42c1" --description "Merged to main"
gh label create "crowdcode:archived" --color "d4c5f9" --description "Rejected or superseded"Or create them manually in your repository settings under Issues > Labels.
Add CrowdCode information to your README.md:
# Your Project
[](./CROWDCODE.md)
## Features
This project uses [CrowdCode](./CROWDCODE.md) for collaborative feature development.
- π‘ [Submit a feature idea](../../issues/new?template=feature-request.yml)
- π³οΈ [View voting features](../../pulls?q=is%3Apr+label%3Acrowdcode%3Avoting)
- πΏ [Browse feature branches](../../branches/all)Create a test feature request:
gh issue create \
--label "crowdcode:feature-request" \
--title "[FEATURE] Test Feature" \
--body "This is a test feature to verify CrowdCode is working."Or use the issue template in your browser:
- Go to your repository
- Click "Issues" > "New Issue"
- Select "CrowdCode Feature Request"
- Fill out the form
Manually trigger the workflows to test:
# Test PR generation
gh workflow run crowdcode-issue-to-pr.yml
# Check workflow status
gh run list --workflow=crowdcode-issue-to-pr.ymlEdit .github/crowdcode-config.yml to adjust voting:
voting:
quorum: 3 # Minimum votes required (adjust for team size)
approval_threshold: 0.5 # 50% approval needed (0.0 to 1.0)
voting_period_days: 7 # How long voting stays openRecommendations:
- Small teams (2-5):
quorum: 2,threshold: 0.5 - Medium teams (6-20):
quorum: 3,threshold: 0.5 - Large teams (20+):
quorum: 5,threshold: 0.6
Configure how features are merged:
promotion:
merge_method: "squash" # Options: merge, squash, rebase
require_tests: true # Require passing tests
require_codeql: false # Require security scan
auto_delete_branch: false # Keep branches visible- User submits feature request via GitHub Issue
- Daily workflow scans for new issues
- AI generates code (Phase 2 - coming soon)
- PR created automatically with AI implementation
- PatchPanel members vote using reactions or reviews
- Vote counting runs hourly
- Feature promoted when threshold met
- Branch remains visible for transparency
To vote on a feature PR:
- Go to the Pull Request
- React to the PR description:
- π = Approve (merge this feature)
- π = Reject (don't merge)
- π = Need more review
Or submit a formal review:
- Approve = Strong support
- Request Changes = Blocking concerns
- Comment = Feedback without blocking
Only votes from PatchPanel members count toward promotion.
Votes are counted automatically every hour. The PR description shows:
- Current vote tally
- Approval rate
- Quorum status
- Ready to promote status
Edit .github/PATCHPANEL_MEMBERS.json:
{
"members": [
{
"github_username": "new-member",
"joined": "2025-12-21T21:00:00Z",
"role": "contributor",
"active": true,
"notes": "Active contributor"
}
]
}Commit and push the changes.
Enable physical code redemption:
# In .github/crowdcode-config.yml
patchpanel:
require_physical_codes: trueUsers can redeem codes via issues to join PatchPanel.
Problem: Workflows don't trigger automatically
Solutions:
- Check GitHub Actions is enabled in repository settings
- Verify workflow files have correct permissions
- Check workflow run logs for errors
- Try manual trigger:
gh workflow run crowdcode-issue-to-pr.yml
Problem: Reactions/reviews don't update vote count
Solutions:
- Verify username is in PATCHPANEL_MEMBERS.json
- Check spelling of username (case-sensitive)
- Ensure
active: truein member record - Verify PR has
crowdcode:votinglabel - Wait for hourly vote counting workflow
Problem: CrowdCode labels don't exist
Solutions:
- Create labels manually or via
gh label create - Check label names match config exactly
- Labels are case-sensitive
Problem: Issues don't create PRs
Solutions:
- Verify issue has
crowdcode:feature-requestlabel - Check workflow run logs for errors
- Ensure GITHUB_TOKEN has sufficient permissions
- Try dry-run mode:
gh workflow run crowdcode-issue-to-pr.yml -f dry_run=true
- Start Small: Begin with 2-3 PatchPanel members
- Communicate Clearly: Explain CrowdCode to contributors
- Set Expectations: Document voting process in CONTRIBUTING.md
- Monitor Activity: Review workflow runs weekly
- Iterate: Adjust thresholds based on team size and activity
- Vote Promptly: Review PRs within voting period
- Provide Feedback: Comment on concerns or suggestions
- Be Constructive: Explain rejection reasons
- Test Features: Try out code before voting
- Stay Active: Participate regularly in voting
- Be Specific: Provide detailed descriptions
- Define Success: Include acceptance criteria
- Explain Value: Describe use case and motivation
- Be Patient: AI generation takes time
- Engage: Respond to questions and feedback
- β Install CrowdCode files
- β Configure PatchPanel members
- β Create labels
- β Test with sample issue
- π Read ARCHITECTURE.md
- π Read VOTING_MECHANISM.md
- π Read WORKFLOW_DESIGN.md
- π Start using CrowdCode for real features!
- π Check documentation in
docs/directory - π Open an issue for bugs
- π¬ Start a discussion for questions
- π§ Contact project maintainers
- CrowdCode - Reference implementation
- ShelfSignals - Pilot project (coming soon)
Welcome to CrowdCode! π
By enabling democratic, AI-assisted development, you're joining a community that values transparency, collaboration, and innovation.