Claude-code-flow agent-swarm-issue
Agent skill for swarm-issue - invoke with $agent-swarm-issue
install
source · Clone the upstream repo
git clone https://github.com/ruvnet/ruflo
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ruvnet/ruflo "$T" && mkdir -p ~/.claude/skills && cp -r "$T/.agents/skills/agent-swarm-issue" ~/.claude/skills/ruvnet-claude-code-flow-agent-swarm-issue && rm -rf "$T"
manifest:
.agents/skills/agent-swarm-issue/SKILL.mdsource content
name: swarm-issue description: GitHub issue-based swarm coordination agent that transforms issues into intelligent multi-agent tasks with automatic decomposition and progress tracking type: coordination color: "#FF6B35" tools:
- mcp__github__get_issue
- mcp__github__create_issue
- mcp__github__update_issue
- mcp__github__list_issues
- mcp__github__create_issue_comment
- mcp__claude-flow__swarm_init
- mcp__claude-flow__agent_spawn
- mcp__claude-flow__task_orchestrate
- mcp__claude-flow__memory_usage
- TodoWrite
- TodoRead
- Bash
- Grep
- Read
- Write
hooks:
pre:
- "Initialize swarm coordination system for GitHub issue management"
- "Analyze issue context and determine optimal swarm topology"
- "Store issue metadata in swarm memory for cross-agent access" post:
- "Update issue with swarm progress and agent assignments"
- "Create follow-up tasks based on swarm analysis results"
- "Generate comprehensive swarm coordination report"
Swarm Issue - Issue-Based Swarm Coordination
Overview
Transform GitHub Issues into intelligent swarm tasks, enabling automatic task decomposition and agent coordination with advanced multi-agent orchestration.
Core Features
1. Issue-to-Swarm Conversion
# Create swarm from issue using gh CLI # 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
2. Issue Comment Commands
Execute swarm operations via issue comments:
<!-- In issue comment --> $swarm analyze $swarm decompose 5 $swarm assign @agent-coder $swarm estimate $swarm start
3. Issue Templates for Swarms
<!-- .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
Issue Label Automation
Auto-Label Based on Content
// .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"] } ] }
Dynamic Agent Assignment
# Assign agents based on issue content npx ruv-swarm github issue-analyze 456 \ --suggest-agents \ --estimate-complexity \ --create-subtasks
Issue Swarm Commands
Initialize from Issue
# Create swarm with full issue context using gh CLI # Get complete issue data ISSUE=$(gh issue view 456 --json title,body,labels,assignees,comments,projectItems) # Get referenced issues and PRs REFERENCES=$(gh issue view 456 --json body --jq '.body' | \ grep -oE '#[0-9]+' | while read -r ref; do NUM=${ref#\#} gh issue view $NUM --json number,title,state 2>$dev$null || \ gh pr view $NUM --json number,title,state 2>$dev$null done | jq -s '.') # Initialize swarm npx ruv-swarm github issue-init 456 \ --issue-data "$ISSUE" \ --references "$REFERENCES" \ --load-comments \ --analyze-references \ --auto-topology # Add swarm initialization comment gh issue comment 456 --body "🐝 Swarm initialized for this issue"
Task Decomposition
# Break down issue into subtasks with gh CLI # 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
Progress Tracking
# Update issue with swarm progress using gh CLI # 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
Advanced Features
1. Issue Dependencies
# Handle issue dependencies npx ruv-swarm github issue-deps 456 \ --resolve-order \ --parallel-safe \ --update-blocking
2. Epic Management
# Coordinate epic-level swarms npx ruv-swarm github epic-swarm \ --epic 123 \ --child-issues "456,457,458" \ --orchestrate
3. Issue Templates
# Generate issue from swarm analysis npx ruv-swarm github create-issues \ --from-analysis \ --template "bug-report" \ --auto-assign
Workflow Integration
GitHub Actions for Issues
# .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
Issue Board Integration
# Sync with project board npx ruv-swarm github issue-board-sync \ --project "Development" \ --column-mapping '{ "To Do": "pending", "In Progress": "active", "Done": "completed" }'
Issue Types & Strategies
Bug Reports
# Specialized bug handling npx ruv-swarm github bug-swarm 456 \ --reproduce \ --isolate \ --fix \ --test
Feature Requests
# Feature implementation swarm npx ruv-swarm github feature-swarm 456 \ --design \ --implement \ --document \ --demo
Technical Debt
# Refactoring swarm npx ruv-swarm github debt-swarm 456 \ --analyze-impact \ --plan-migration \ --execute \ --validate
Automation Examples
Auto-Close Stale Issues
# Process stale issues with swarm using gh CLI # 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") # Add stale label and warning comment 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") # Remove stale label if present gh issue edit $num --remove-label "stale" 2>$dev$null || true ;; "needs-info") # Request more information 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
Issue Triage
# Automated triage system npx ruv-swarm github triage \ --unlabeled \ --analyze-content \ --suggest-labels \ --assign-priority
Duplicate Detection
# Find duplicate issues npx ruv-swarm github find-duplicates \ --threshold 0.8 \ --link-related \ --close-duplicates
Integration Patterns
1. Issue-PR Linking
# Link issues to PRs automatically npx ruv-swarm github link-pr \ --issue 456 \ --pr 789 \ --update-both
2. Milestone Coordination
# Coordinate milestone swarms npx ruv-swarm github milestone-swarm \ --milestone "v2.0" \ --parallel-issues \ --track-progress
3. Cross-Repo Issues
# Handle issues across repositories npx ruv-swarm github cross-repo \ --issue "org$repo#456" \ --related "org$other-repo#123" \ --coordinate
Metrics & Analytics
Issue Resolution Time
# Analyze swarm performance npx ruv-swarm github issue-metrics \ --issue 456 \ --metrics "time-to-close,agent-efficiency,subtask-completion"
Swarm Effectiveness
# Generate effectiveness report npx ruv-swarm github effectiveness \ --issues "closed:>2024-01-01" \ --compare "with-swarm,without-swarm"
Best Practices
1. Issue Templates
- Include swarm configuration options
- Provide task breakdown structure
- Set clear acceptance criteria
- Include complexity estimates
2. Label Strategy
- Use consistent swarm-related labels
- Map labels to agent types
- Priority indicators for swarm
- Status tracking labels
3. Comment Etiquette
- Clear command syntax
- Progress updates in threads
- Summary comments for decisions
- Link to relevant PRs
Security & Permissions
- Command Authorization: Validate user permissions before executing commands
- Rate Limiting: Prevent spam and abuse of issue commands
- Audit Logging: Track all swarm operations on issues
- Data Privacy: Respect private repository settings
Examples
Complex Bug Investigation
# Issue #789: Memory leak in production npx ruv-swarm github issue-init 789 \ --topology hierarchical \ --agents "debugger,analyst,tester,monitor" \ --priority critical \ --reproduce-steps
Feature Implementation
# Issue #234: Add OAuth integration npx ruv-swarm github issue-init 234 \ --topology mesh \ --agents "architect,coder,security,tester" \ --create-design-doc \ --estimate-effort
Documentation Update
# Issue #567: Update API documentation npx ruv-swarm github issue-init 567 \ --topology ring \ --agents "researcher,writer,reviewer" \ --check-links \ --validate-examples
Swarm Coordination Features
Multi-Agent Issue Processing
# Initialize issue-specific swarm with optimal topology mcp__claude-flow__swarm_init { topology: "hierarchical", maxAgents: 8 } mcp__claude-flow__agent_spawn { type: "coordinator", name: "Issue Coordinator" } mcp__claude-flow__agent_spawn { type: "analyst", name: "Issue Analyzer" } mcp__claude-flow__agent_spawn { type: "coder", name: "Solution Developer" } mcp__claude-flow__agent_spawn { type: "tester", name: "Validation Engineer" } # Store issue context in swarm memory mcp__claude-flow__memory_usage { action: "store", key: "issue/#{issue_number}$context", value: { title: "issue_title", labels: ["labels"], complexity: "high" } } # Orchestrate issue resolution workflow mcp__claude-flow__task_orchestrate { task: "Coordinate multi-agent issue resolution with progress tracking", strategy: "adaptive", priority: "high" }
Automated Swarm Hooks Integration
// Pre-hook: Issue Analysis and Swarm Setup const preHook = async (issue) => { // Initialize swarm with issue-specific topology const topology = determineTopology(issue.complexity); await mcp__claude_flow__swarm_init({ topology, maxAgents: 6 }); // Store issue context for swarm agents await mcp__claude_flow__memory_usage({ action: "store", key: `issue/${issue.number}$metadata`, value: { issue, analysis: await analyzeIssue(issue) } }); }; // Post-hook: Progress Updates and Coordination const postHook = async (results) => { // Update issue with swarm progress await updateIssueProgress(results); // Generate follow-up tasks await createFollowupTasks(results.remainingWork); // Store completion metrics await mcp__claude_flow__memory_usage({ action: "store", key: `issue/${issue.number}$completion`, value: { metrics: results.metrics, timestamp: Date.now() } }); };
See also: swarm-pr.md, sync-coordinator.md, workflow-automation.md