Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
133 changes: 133 additions & 0 deletions .github/ISSUE_TEMPLATE/feature-request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,133 @@
name: CrowdCode Feature Request
description: Submit a feature idea for AI-powered implementation
title: "[FEATURE] "
labels: ["crowdcode:feature-request"]
body:
- type: markdown
attributes:
value: |
## 🤖 CrowdCode Feature Request

This feature will be reviewed and potentially implemented by AI (GitHub Copilot).
PatchPanel members will vote on whether to promote it to the main branch.

**How it works:**
1. You submit this feature request
2. AI generates a pull request with implementation
3. PatchPanel members review and vote
4. If approved, the feature is merged to main

All feature branches remain visible, even if not merged.

- type: input
id: feature-name
attributes:
label: Feature Name
description: Short, descriptive name for this feature
placeholder: "e.g., Dark Mode Support, Advanced Search, Export to CSV"
validations:
required: true

- type: textarea
id: description
attributes:
label: Feature Description
description: Detailed description of what this feature should do
placeholder: |
Describe the feature in detail:
- What functionality should it add?
- How should it work?
- What should the user experience be?

Be as specific as possible to help the AI generate accurate code.
validations:
required: true

- type: textarea
id: use-case
attributes:
label: Use Case / Motivation
description: Why is this feature needed?
placeholder: |
Explain why this feature would be valuable:
- What problem does it solve?
- Who would benefit from it?
- How does it align with project goals?

Help the community understand the value proposition.
validations:
required: true

- type: textarea
id: acceptance-criteria
attributes:
label: Acceptance Criteria
description: How will we know this feature is complete and working correctly?
placeholder: |
List specific, testable criteria:
- [ ] User can toggle dark mode via button in header
- [ ] Dark mode preference is saved to localStorage
- [ ] All UI elements have appropriate dark mode colors
- [ ] Accessibility (contrast ratios) maintained in dark mode

These help validate the AI-generated implementation.
validations:
required: false

- type: dropdown
id: priority
attributes:
label: Priority
description: How important is this feature?
options:
- Low - Nice to have
- Medium - Would improve the project
- High - Important for project goals
- Critical - Blocks other work or fixes major issue
default: 1
validations:
required: false

- type: textarea
id: technical-notes
attributes:
label: Technical Notes (Optional)
description: Any technical considerations or suggestions for implementation
placeholder: |
Optional technical guidance for AI implementation:
- Suggested approach or architecture
- Files that may need changes
- Dependencies or libraries to consider
- Potential challenges or edge cases to handle
- Similar features in other projects for reference
validations:
required: false

- type: textarea
id: examples
attributes:
label: Examples or References (Optional)
description: Links to similar features, mockups, or examples
placeholder: |
Helpful references:
- Screenshots or mockups
- Links to similar features in other projects
- Code examples or snippets
- Design inspiration
validations:
required: false

- type: checkboxes
id: terms
attributes:
label: CrowdCode Terms
description: By submitting this issue, you agree that
options:
- label: This feature will be implemented by AI (GitHub Copilot)
required: true
- label: The implementation will be subject to PatchPanel voting
required: true
- label: The feature branch will remain public even if not merged
required: true
- label: I have searched existing issues to avoid duplicates
required: true
20 changes: 20 additions & 0 deletions .github/PATCHPANEL_MEMBERS.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"version": "1.0",
"updated": "2025-12-21T21:00:00Z",
"description": "Authorized PatchPanel members for CrowdCode voting",
"members": [
{
"github_username": "evcatalyst",
"joined": "2025-12-21T21:00:00Z",
"role": "founding",
"active": true,
"notes": "Project founder"
}
],
"codes": {
"prefix": "PATCH",
"year": 2025,
"next_sequence": 1,
"redemption_enabled": false
}
}
86 changes: 86 additions & 0 deletions .github/crowdcode-config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
# CrowdCode Platform Configuration

# Issue Processing
issue_processing:
max_per_run: 5 # Maximum number of issues to process per workflow run
labels:
feature_request: "crowdcode:feature-request"
pending_pr: "crowdcode:pending-pr"
ai_generated: "crowdcode:ai-generated"
voting: "crowdcode:voting"
ready_to_promote: "crowdcode:ready-to-promote"
promoted: "crowdcode:promoted"
archived: "crowdcode:archived"

# AI Code Generation
ai_generation:
enabled: true
model: "gpt-4" # AI model to use for code generation
max_tokens: 4000
temperature: 0.7
retry_attempts: 3
timeout_seconds: 300

# Voting System
voting:
quorum: 3 # Minimum number of votes required
approval_threshold: 0.5 # 50% approval needed (0.0 to 1.0)
voting_period_days: 7 # How long voting stays open
auto_close_on_threshold: true # Automatically close voting when threshold met
count_reactions: true # Count PR reactions as votes
count_reviews: true # Count PR reviews as votes

# Valid reactions for voting
valid_reactions:
approve: ["+1", "thumbsup", "heart"]
reject: ["-1", "thumbsdown"]
review: ["eyes", "thinking_face"]
Comment on lines +35 to +37
Copy link

Copilot AI Dec 22, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The voting configuration lists "heart" and "thinking_face" as valid reactions, but these aren't mentioned in the documentation or PR description templates. The docs and templates only show 👍👎👀 (thumbsup, thumbsdown, eyes). This inconsistency could confuse users about which reactions count. Either remove these from the config or document them properly.

Suggested change
approve: ["+1", "thumbsup", "heart"]
reject: ["-1", "thumbsdown"]
review: ["eyes", "thinking_face"]
approve: ["+1", "thumbsup"]
reject: ["-1", "thumbsdown"]
review: ["eyes"]

Copilot uses AI. Check for mistakes.

# Review state mappings
review_mapping:
APPROVED: "approve"
CHANGES_REQUESTED: "reject"
COMMENTED: "review"

# Feature Promotion
promotion:
merge_method: "squash" # Options: merge, squash, rebase
require_tests: false # Require tests to pass before promotion
require_codeql: false # Require CodeQL security scan before promotion
auto_delete_branch: false # Keep feature branches visible
auto_deploy: false # Automatically deploy after promotion
notify_members: true # Notify PatchPanel members of promotion

# Branch Management
branches:
prefix: "crowdcode/feature" # Prefix for feature branches
base_branch: "main" # Base branch for features
protection_rules:
require_review: false # AI generates, humans vote instead
require_status_checks: false

# PatchPanel
patchpanel:
membership_file: ".github/PATCHPANEL_MEMBERS.json"
allow_membership_requests: true
require_physical_codes: false
membership_issue_label: "crowdcode:membership-request"

# Notifications
notifications:
slack:
enabled: false
webhook_secret: "SLACK_WEBHOOK"
discord:
enabled: false
webhook_secret: "DISCORD_WEBHOOK"
github:
enabled: true
mention_on_promotion: true

# Dashboard
dashboard:
enabled: true
path: "docs/features"
update_readme: true
generate_changelog: true
59 changes: 59 additions & 0 deletions .github/workflows/crowdcode-branch-visibility.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
name: CrowdCode - Branch Visibility

on:
push:
branches:
- 'crowdcode/feature-*'
pull_request:
types: [opened, closed, reopened]
schedule:
- cron: '0 0 * * 0' # Weekly on Sunday
workflow_dispatch:

permissions:
contents: write

jobs:
update-dashboard:
runs-on: ubuntu-latest

steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0 # Need all branches

- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: '3.11'

- name: Install dependencies
run: |
pip install PyGithub pyyaml

- name: Generate Feature Dashboard
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GITHUB_REPOSITORY: ${{ github.repository }}
run: |
mkdir -p docs/features
python scripts/generate-dashboard.py

- name: Commit Dashboard Updates
run: |
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
git add docs/features/
if git diff --staged --quiet; then
echo "No changes to commit"
else
git commit -m "Update feature dashboard [skip ci]"
git push
fi

- name: Summary
run: |
echo "## CrowdCode Branch Visibility Summary" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "Feature dashboard updated." >> $GITHUB_STEP_SUMMARY
50 changes: 50 additions & 0 deletions .github/workflows/crowdcode-feature-promotion.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
name: CrowdCode - Feature Promotion

on:
schedule:
- cron: '0 6 * * *' # Daily at 6 AM UTC
workflow_dispatch:
inputs:
dry_run:
description: 'Dry run mode (no actual changes)'
required: false
default: 'false'
type: boolean

permissions:
pull-requests: write
contents: write
issues: write

jobs:
promote-features:
runs-on: ubuntu-latest

steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0 # Full history for merging

- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: '3.11'

- name: Install dependencies
run: |
pip install PyGithub pyyaml

- name: Promote Features
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GITHUB_REPOSITORY: ${{ github.repository }}
DRY_RUN: ${{ github.event.inputs.dry_run || 'false' }}
run: |
python scripts/promote-feature.py

- name: Summary
run: |
echo "## CrowdCode Feature Promotion Summary" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "Feature promotion completed. Check script output for details." >> $GITHUB_STEP_SUMMARY
Loading