A comprehensive skill for managing GitHub projects using AI swarm coordination. This skill combines intelligent issue management, automated project board synchronization, and swarm-based coordination for efficient project delivery.
Inherits all available tools
Additional assets for this skill
This skill inherits all available tools. When active, it can use any tool Claude has access to.
examples/cross-repo-projects.mdexamples/kanban-automation.mdexamples/sprint-planning.mdreadme.mdresources/readme.mdresources/scripts/issue-tracker.jsresources/scripts/milestone-manager.jsresources/scripts/project-board-automation.jsresources/scripts/sprint-planner.jsresources/templates/issue-template.mdresources/templates/project-config.yamlresources/templates/sprint-template.jsontests/board-sync.test.jstests/issue-management.test.jstests/sprint-planning.test.jsBEFORE any automation hook, validate:
NEVER:
ALWAYS:
Evidence-Based Techniques for Automation:
name: github-project-management title: GitHub Project Management version: 2.0.0 category: github description: Comprehensive GitHub project management with swarm-coordinated issue tracking, project board automation, and sprint planning author: Claude Code tags:
A comprehensive skill for managing GitHub projects using AI swarm coordination. This skill combines intelligent issue management, automated project board synchronization, and swarm-based coordination for efficient project delivery.
# Create a coordinated issue
gh issue create \
--title "Feature: Advanced Authentication" \
--body "Implement OAuth2 with social login..." \
--label "enhancement,swarm-ready"
# Initialize swarm for issue
npx claude-flow@alpha hooks pre-task --description "Feature implementation"
# Get project ID
PROJECT_ID=$(gh project list --owner @me --format json | \
jq -r '.projects[0].id')
# Initialize board sync
npx ruv-swarm github board-init \
--project-id "$PROJECT_ID" \
--sync-mode "bidirectional"
// Initialize issue management swarm
mcp__claude-flow__swarm_init { topology: "star", maxAgents: 3 }
mcp__claude-flow__agent_spawn { type: "coordinator", name: "Issue Coordinator" }
mcp__claude-flow__agent_spawn { type: "researcher", name: "Requirements Analyst" }
mcp__claude-flow__agent_spawn { type: "coder", name: "Implementation Planner" }
// Create comprehensive issue
mcp__github__create_issue {
owner: "org",
repo: "repository",
title: "Integration Review: Complete system integration",
body: `## ๐ Integration Review
### Overview
Comprehensive review and integration between components.
### Objectives
- [ ] Verify dependencies and imports
- [ ] Ensure API integration
- [ ] Check hook system integration
- [ ] Validate data systems alignment
### Swarm Coordination
This issue will be managed by coordinated swarm agents for optimal progress tracking.`,
labels: ["integration", "review", "enhancement"],
assignees: ["username"]
}
// Set up automated tracking
mcp__claude-flow__task_orchestrate {
task: "Monitor and coordinate issue progress with automated updates",
strategy: "adaptive",
priority: "medium"
}
# Create multiple related issues using gh CLI
gh issue create \
--title "Feature: Advanced GitHub Integration" \
--body "Implement comprehensive GitHub workflow automation..." \
--label "feature,github,high-priority"
gh issue create \
--title "Bug: Merge conflicts in integration branch" \
--body "Resolve merge conflicts..." \
--label "bug,integration,urgent"
gh issue create \
--title "Documentation: Update integration guides" \
--body "Update all documentation..." \
--label "documentation,integration"
</details>
<details>
<summary><strong>Issue-to-Swarm Conversion</strong></summary>
# Get issue details
ISSUE_DATA=$(gh issue view 456 --json title,body,labels,assignees,comments)
# Create swarm from issue
npx ruv-swarm github issue-to-swarm 456 \
--issue-data "$ISSUE_DATA" \
--auto-decompose \
--assign-agents
# Batch process multiple issues
ISSUES=$(gh issue list --label "swarm-ready" --json number,title,body,labels)
npx ruv-swarm github issues-batch \
--issues "$ISSUES" \
--parallel
# Update issues with swarm status
echo "$ISSUES" | jq -r '.[].number' | while read -r num; do
gh issue edit $num --add-label "swarm-processing"
done
Execute swarm operations via issue comments:
<!-- In issue comment -->
/swarm analyze
/swarm decompose 5
/swarm assign @agent-coder
/swarm estimate
/swarm start
</details>
<details>
<summary><strong>Automated Issue Triage</strong></summary>
// .github/swarm-labels.json
{
"rules": [
{
"keywords": ["bug", "error", "broken"],
"labels": ["bug", "swarm-debugger"],
"agents": ["debugger", "tester"]
},
{
"keywords": ["feature", "implement", "add"],
"labels": ["enhancement", "swarm-feature"],
"agents": ["architect", "coder", "tester"]
},
{
"keywords": ["slow", "performance", "optimize"],
"labels": ["performance", "swarm-optimizer"],
"agents": ["analyst", "optimizer"]
}
]
}
# Analyze and triage unlabeled issues
npx ruv-swarm github triage \
--unlabeled \
--analyze-content \
--suggest-labels \
--assign-priority
# Find and link duplicate issues
npx ruv-swarm github find-duplicates \
--threshold 0.8 \
--link-related \
--close-duplicates
</details>
<details>
<summary><strong>Task Decomposition & Progress Tracking</strong></summary>
# Get issue body
ISSUE_BODY=$(gh issue view 456 --json body --jq '.body')
# Decompose into subtasks
SUBTASKS=$(npx ruv-swarm github issue-decompose 456 \
--body "$ISSUE_BODY" \
--max-subtasks 10 \
--assign-priorities)
# Update issue with checklist
CHECKLIST=$(echo "$SUBTASKS" | jq -r '.tasks[] | "- [ ] " + .description')
UPDATED_BODY="$ISSUE_BODY
## Subtasks
$CHECKLIST"
gh issue edit 456 --body "$UPDATED_BODY"
# Create linked issues for major subtasks
echo "$SUBTASKS" | jq -r '.tasks[] | select(.priority == "high")' | while read -r task; do
TITLE=$(echo "$task" | jq -r '.title')
BODY=$(echo "$task" | jq -r '.description')
gh issue create \
--title "$TITLE" \
--body "$BODY
Parent issue: #456" \
--label "subtask"
done
# Get current issue state
CURRENT=$(gh issue view 456 --json body,labels)
# Get swarm progress
PROGRESS=$(npx ruv-swarm github issue-progress 456)
# Update checklist in issue body
UPDATED_BODY=$(echo "$CURRENT" | jq -r '.body' | \
npx ruv-swarm github update-checklist --progress "$PROGRESS")
# Edit issue with updated body
gh issue edit 456 --body "$UPDATED_BODY"
# Post progress summary as comment
SUMMARY=$(echo "$PROGRESS" | jq -r '
"## ๐ Progress Update
**Completion**: \(.completion)%
**ETA**: \(.eta)
### Completed Tasks
\(.completed | map("- โ
" + .) | join("\n"))
### In Progress
\(.in_progress | map("- ๐ " + .) | join("\n"))
### Remaining
\(.remaining | map("- โณ " + .) | join("\n"))
---
๐ค Automated update by swarm agent"')
gh issue comment 456 --body "$SUMMARY"
# Update labels based on progress
if [[ $(echo "$PROGRESS" | jq -r '.completion') -eq 100 ]]; then
gh issue edit 456 --add-label "ready-for-review" --remove-label "in-progress"
fi
</details>
<details>
<summary><strong>Stale Issue Management</strong></summary>
# Find stale issues
STALE_DATE=$(date -d '30 days ago' --iso-8601)
STALE_ISSUES=$(gh issue list --state open --json number,title,updatedAt,labels \
--jq ".[] | select(.updatedAt < \"$STALE_DATE\")")
# Analyze each stale issue
echo "$STALE_ISSUES" | jq -r '.number' | while read -r num; do
# Get full issue context
ISSUE=$(gh issue view $num --json title,body,comments,labels)
# Analyze with swarm
ACTION=$(npx ruv-swarm github analyze-stale \
--issue "$ISSUE" \
--suggest-action)
case "$ACTION" in
"close")
gh issue comment $num --body "This issue has been inactive for 30 days and will be closed in 7 days if there's no further activity."
gh issue edit $num --add-label "stale"
;;
"keep")
gh issue edit $num --remove-label "stale" 2>/dev/null || true
;;
"needs-info")
gh issue comment $num --body "This issue needs more information. Please provide additional context or it may be closed as stale."
gh issue edit $num --add-label "needs-info"
;;
esac
done
# Close issues that have been stale for 37+ days
gh issue list --label stale --state open --json number,updatedAt \
--jq ".[] | select(.updatedAt < \"$(date -d '37 days ago' --iso-8601)\") | .number" | \
while read -r num; do
gh issue close $num --comment "Closing due to inactivity. Feel free to reopen if this is still relevant."
done
</details>
# Get project details
PROJECT_ID=$(gh project list --owner @me --format json | \
jq -r '.projects[] | select(.title == "Development Board") | .id')
# Initialize swarm with project
npx ruv-swarm github board-init \
--project-id "$PROJECT_ID" \
--sync-mode "bidirectional" \
--create-views "swarm-status,agent-workload,priority"
# Create project fields for swarm tracking
gh project field-create $PROJECT_ID --owner @me \
--name "Swarm Status" \
--data-type "SINGLE_SELECT" \
--single-select-options "pending,in_progress,completed"
# .github/board-sync.yml
version: 1
project:
name: "AI Development Board"
number: 1
mapping:
# Map swarm task status to board columns
status:
pending: "Backlog"
assigned: "Ready"
in_progress: "In Progress"
review: "Review"
completed: "Done"
blocked: "Blocked"
# Map agent types to labels
agents:
coder: "๐ง Development"
tester: "๐งช Testing"
analyst: "๐ Analysis"
designer: "๐จ Design"
architect: "๐๏ธ Architecture"
# Map priority to project fields
priority:
critical: "๐ด Critical"
high: "๐ก High"
medium: "๐ข Medium"
low: "โช Low"
# Custom fields
fields:
- name: "Agent Count"
type: number
source: task.agents.length
- name: "Complexity"
type: select
source: task.complexity
- name: "ETA"
type: date
source: task.estimatedCompletion
</details>
<details>
<summary><strong>Task Synchronization</strong></summary>
# Sync swarm tasks with project cards
npx ruv-swarm github board-sync \
--map-status '{
"todo": "To Do",
"in_progress": "In Progress",
"review": "Review",
"done": "Done"
}' \
--auto-move-cards \
--update-metadata
# Enable real-time board updates
npx ruv-swarm github board-realtime \
--webhook-endpoint "https://api.example.com/github-sync" \
--update-frequency "immediate" \
--batch-updates false
# List issues with label
ISSUES=$(gh issue list --label "enhancement" --json number,title,body)
# Add issues to project
echo "$ISSUES" | jq -r '.[].number' | while read -r issue; do
gh project item-add $PROJECT_ID --owner @me --url "https://github.com/$GITHUB_REPOSITORY/issues/$issue"
done
# Process with swarm
npx ruv-swarm github board-import-issues \
--issues "$ISSUES" \
--add-to-column "Backlog" \
--parse-checklist \
--assign-agents
</details>
<details>
<summary><strong>Smart Card Management</strong></summary>
# Automatically assign cards to agents
npx ruv-swarm github board-auto-assign \
--strategy "load-balanced" \
--consider "expertise,workload,availability" \
--update-cards
# Smart card movement based on rules
npx ruv-swarm github board-smart-move \
--rules '{
"auto-progress": "when:all-subtasks-done",
"auto-review": "when:tests-pass",
"auto-done": "when:pr-merged"
}'
# Bulk card operations
npx ruv-swarm github board-bulk \
--filter "status:blocked" \
--action "add-label:needs-attention" \
--notify-assignees
</details>
<details>
<summary><strong>Custom Views & Dashboards</strong></summary>
// Custom board views
{
"views": [
{
"name": "Swarm Overview",
"type": "board",
"groupBy": "status",
"filters": ["is:open"],
"sort": "priority:desc"
},
{
"name": "Agent Workload",
"type": "table",
"groupBy": "assignedAgent",
"columns": ["title", "status", "priority", "eta"],
"sort": "eta:asc"
},
{
"name": "Sprint Progress",
"type": "roadmap",
"dateField": "eta",
"groupBy": "milestone"
}
]
}
// Dashboard with performance widgets
{
"dashboard": {
"widgets": [
{
"type": "chart",
"title": "Task Completion Rate",
"data": "completed-per-day",
"visualization": "line"
},
{
"type": "gauge",
"title": "Sprint Progress",
"data": "sprint-completion",
"target": 100
},
{
"type": "heatmap",
"title": "Agent Activity",
"data": "agent-tasks-per-day"
}
]
}
}
</details>
# Manage sprints with swarms
npx ruv-swarm github sprint-manage \
--sprint "Sprint 23" \
--auto-populate \
--capacity-planning \
--track-velocity
# Track milestone progress
npx ruv-swarm github milestone-track \
--milestone "v2.0 Release" \
--update-board \
--show-dependencies \
--predict-completion
# Setup agile board
npx ruv-swarm github agile-board \
--methodology "scrum" \
--sprint-length "2w" \
--ceremonies "planning,review,retro" \
--metrics "velocity,burndown"
# Setup kanban board
npx ruv-swarm github kanban-board \
--wip-limits '{
"In Progress": 5,
"Review": 3
}' \
--cycle-time-tracking \
--continuous-flow
</details>
<details>
<summary><strong>Progress Tracking & Analytics</strong></summary>
# Fetch project data
PROJECT_DATA=$(gh project item-list $PROJECT_ID --owner @me --format json)
# Get issue metrics
ISSUE_METRICS=$(echo "$PROJECT_DATA" | jq -r '.items[] | select(.content.type == "Issue")' | \
while read -r item; do
ISSUE_NUM=$(echo "$item" | jq -r '.content.number')
gh issue view $ISSUE_NUM --json createdAt,closedAt,labels,assignees
done)
# Generate analytics with swarm
npx ruv-swarm github board-analytics \
--project-data "$PROJECT_DATA" \
--issue-metrics "$ISSUE_METRICS" \
--metrics "throughput,cycle-time,wip" \
--group-by "agent,priority,type" \
--time-range "30d" \
--export "dashboard"
# Track and visualize progress
npx ruv-swarm github board-progress \
--show "burndown,velocity,cycle-time" \
--time-period "sprint" \
--export-metrics
# Generate reports
npx ruv-swarm github board-report \
--type "sprint-summary" \
--format "markdown" \
--include "velocity,burndown,blockers" \
--distribute "slack,email"
# Track board performance
npx ruv-swarm github board-kpis \
--metrics '[
"average-cycle-time",
"throughput-per-sprint",
"blocked-time-percentage",
"first-time-pass-rate"
]' \
--dashboard-url
# Track team performance
npx ruv-swarm github team-metrics \
--board "Development" \
--per-member \
--include "velocity,quality,collaboration" \
--anonymous-option
</details>
<details>
<summary><strong>Release Planning</strong></summary>
# Plan releases using board data
npx ruv-swarm github release-plan-board \
--analyze-velocity \
--estimate-completion \
--identify-risks \
--optimize-scope
</details>
# Sync across multiple boards
npx ruv-swarm github multi-board-sync \
--boards "Development,QA,Release" \
--sync-rules '{
"Development->QA": "when:ready-for-test",
"QA->Release": "when:tests-pass"
}'
# Cross-organization sync
npx ruv-swarm github cross-org-sync \
--source "org1/Project-A" \
--target "org2/Project-B" \
--field-mapping "custom" \
--conflict-resolution "source-wins"
</details>
<details>
<summary><strong>Issue Dependencies & Epic Management</strong></summary>
# Handle issue dependencies
npx ruv-swarm github issue-deps 456 \
--resolve-order \
--parallel-safe \
--update-blocking
# Coordinate epic-level swarms
npx ruv-swarm github epic-swarm \
--epic 123 \
--child-issues "456,457,458" \
--orchestrate
</details>
<details>
<summary><strong>Cross-Repository Coordination</strong></summary>
# Handle issues across repositories
npx ruv-swarm github cross-repo \
--issue "org/repo#456" \
--related "org/other-repo#123" \
--coordinate
</details>
<details>
<summary><strong>Team Collaboration</strong></summary>
# Distribute work among team
npx ruv-swarm github board-distribute \
--strategy "skills-based" \
--balance-workload \
--respect-preferences \
--notify-assignments
# Generate standup reports
npx ruv-swarm github standup-report \
--team "frontend" \
--include "yesterday,today,blockers" \
--format "slack" \
--schedule "daily-9am"
# Coordinate reviews via board
npx ruv-swarm github review-coordinate \
--board "Code Review" \
--assign-reviewers \
--track-feedback \
--ensure-coverage
</details>
## ๐ Integration Task
### Overview
[Brief description of integration requirements]
### Objectives
- [ ] Component A integration
- [ ] Component B validation
- [ ] Testing and verification
- [ ] Documentation updates
### Integration Areas
#### Dependencies
- [ ] Package.json updates
- [ ] Version compatibility
- [ ] Import statements
#### Functionality
- [ ] Core feature integration
- [ ] API compatibility
- [ ] Performance validation
#### Testing
- [ ] Unit tests
- [ ] Integration tests
- [ ] End-to-end validation
### Swarm Coordination
- **Coordinator**: Overall progress tracking
- **Analyst**: Technical validation
- **Tester**: Quality assurance
- **Documenter**: Documentation updates
### Progress Tracking
Updates will be posted automatically by swarm agents during implementation.
---
๐ค Generated with Claude Code
## ๐ Bug Report
### Problem Description
[Clear description of the issue]
### Expected Behavior
[What should happen]
### Actual Behavior
[What actually happens]
### Reproduction Steps
1. [Step 1]
2. [Step 2]
3. [Step 3]
### Environment
- Package: [package name and version]
- Node.js: [version]
- OS: [operating system]
### Investigation Plan
- [ ] Root cause analysis
- [ ] Fix implementation
- [ ] Testing and validation
- [ ] Regression testing
### Swarm Assignment
- **Debugger**: Issue investigation
- **Coder**: Fix implementation
- **Tester**: Validation and testing
---
๐ค Generated with Claude Code
## โจ Feature Request
### Feature Description
[Clear description of the proposed feature]
### Use Cases
1. [Use case 1]
2. [Use case 2]
3. [Use case 3]
### Acceptance Criteria
- [ ] Criterion 1
- [ ] Criterion 2
- [ ] Criterion 3
### Implementation Approach
#### Design
- [ ] Architecture design
- [ ] API design
- [ ] UI/UX mockups
#### Development
- [ ] Core implementation
- [ ] Integration with existing features
- [ ] Performance optimization
#### Testing
- [ ] Unit tests
- [ ] Integration tests
- [ ] User acceptance testing
### Swarm Coordination
- **Architect**: Design and planning
- **Coder**: Implementation
- **Tester**: Quality assurance
- **Documenter**: Documentation
---
๐ค Generated with Claude Code
<!-- .github/ISSUE_TEMPLATE/swarm-task.yml -->
name: Swarm Task
description: Create a task for AI swarm processing
body:
- type: dropdown
id: topology
attributes:
label: Swarm Topology
options:
- mesh
- hierarchical
- ring
- star
- type: input
id: agents
attributes:
label: Required Agents
placeholder: "coder, tester, analyst"
- type: textarea
id: tasks
attributes:
label: Task Breakdown
placeholder: |
1. Task one description
2. Task two description
# .github/workflows/issue-swarm.yml
name: Issue Swarm Handler
on:
issues:
types: [opened, labeled, commented]
jobs:
swarm-process:
runs-on: ubuntu-latest
steps:
- name: Process Issue
uses: ruvnet/swarm-action@v1
with:
command: |
if [[ "${{ github.event.label.name }}" == "swarm-ready" ]]; then
npx ruv-swarm github issue-init ${{ github.event.issue.number }}
fi
# Sync with project board
npx ruv-swarm github issue-board-sync \
--project "Development" \
--column-mapping '{
"To Do": "pending",
"In Progress": "active",
"Done": "completed"
}'
# Specialized bug handling
npx ruv-swarm github bug-swarm 456 \
--reproduce \
--isolate \
--fix \
--test
# Feature implementation swarm
npx ruv-swarm github feature-swarm 456 \
--design \
--implement \
--document \
--demo
# Refactoring swarm
npx ruv-swarm github debt-swarm 456 \
--analyze-impact \
--plan-migration \
--execute \
--validate
# Diagnose sync problems
npx ruv-swarm github board-diagnose \
--check "permissions,webhooks,rate-limits" \
--test-sync \
--show-conflicts
# Optimize board performance
npx ruv-swarm github board-optimize \
--analyze-size \
--archive-completed \
--index-fields \
--cache-views
# Recover board data
npx ruv-swarm github board-recover \
--backup-id "2024-01-15" \
--restore-cards \
--preserve-current \
--merge-conflicts
Automatic tracking of:
# Analyze swarm performance
npx ruv-swarm github issue-metrics \
--issue 456 \
--metrics "time-to-close,agent-efficiency,subtask-completion"
# Generate effectiveness report
npx ruv-swarm github effectiveness \
--issues "closed:>2024-01-01" \
--compare "with-swarm,without-swarm"
github-pr-workflow - Link issues to pull requests automaticallygithub-release-management - Coordinate release issues and milestonessparc-orchestrator - Complex project coordination workflowssparc-tester - Automated testing workflows for issues# 1. Create feature issue with swarm coordination
gh issue create \
--title "Feature: Real-time Collaboration" \
--body "$(cat <<EOF
## Feature: Real-time Collaboration
### Overview
Implement real-time collaboration features using WebSockets.
### Objectives
- [ ] WebSocket server setup
- [ ] Client-side integration
- [ ] Presence tracking
- [ ] Conflict resolution
- [ ] Testing and documentation
### Swarm Coordination
This feature will use mesh topology for parallel development.
EOF
)" \
--label "enhancement,swarm-ready,high-priority"
# 2. Initialize swarm and decompose tasks
ISSUE_NUM=$(gh issue list --label "swarm-ready" --limit 1 --json number --jq '.[0].number')
npx ruv-swarm github issue-init $ISSUE_NUM \
--topology mesh \
--auto-decompose \
--assign-agents "architect,coder,tester"
# 3. Add to project board
PROJECT_ID=$(gh project list --owner @me --format json | jq -r '.projects[0].id')
gh project item-add $PROJECT_ID --owner @me \
--url "https://github.com/$GITHUB_REPOSITORY/issues/$ISSUE_NUM"
# 4. Set up automated tracking
npx ruv-swarm github board-sync \
--auto-move-cards \
--update-metadata
# 5. Monitor progress
npx ruv-swarm github issue-progress $ISSUE_NUM \
--auto-update-comments \
--notify-on-completion
# Issue Management
gh issue create --title "..." --body "..." --label "..."
npx ruv-swarm github issue-init <number>
npx ruv-swarm github issue-decompose <number>
npx ruv-swarm github triage --unlabeled
# Project Boards
npx ruv-swarm github board-init --project-id <id>
npx ruv-swarm github board-sync
npx ruv-swarm github board-analytics
# Sprint Management
npx ruv-swarm github sprint-manage --sprint "Sprint X"
npx ruv-swarm github milestone-track --milestone "vX.X"
# Analytics
npx ruv-swarm github issue-metrics --issue <number>
npx ruv-swarm github board-kpis
Last Updated: 2025-10-19 Version: 2.0.0 Maintainer: Claude Code