Claude Code Plugins

Community-maintained marketplace

Feedback
0
0

GitHub issue-based swarm coordination for intelligent task decomposition and progress tracking. Use for transforming issues into multi-agent tasks, automated triage, task breakdown, and issue lifecycle management.

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name github-swarm-issue
description GitHub issue-based swarm coordination for intelligent task decomposition and progress tracking. Use for transforming issues into multi-agent tasks, automated triage, task breakdown, and issue lifecycle management.

GitHub Swarm Issue Skill

Overview

This skill transforms GitHub Issues into intelligent swarm tasks, enabling automatic task decomposition, agent coordination, and comprehensive progress tracking. It provides issue-to-swarm conversion, automated triage, and lifecycle management.

Key Capabilities:

  • Issue-to-swarm conversion with automatic decomposition
  • Issue comment commands for swarm control
  • Automated triage and labeling
  • Task breakdown with subtask creation
  • Progress tracking with visual updates
  • Duplicate detection and linking

Quick Start

# Get issue details for swarm initialization
gh issue view 456 --json title,body,labels,assignees,comments

# List issues ready for swarm processing
gh issue list --label "swarm-ready"

# Add swarm label to trigger processing
gh issue edit 456 --add-label "swarm-ready"

# Post swarm status comment
gh issue comment 456 --body "Swarm initialized for this issue"

When to Use

  • Complex Issues: Multi-step tasks requiring decomposition
  • Bug Investigation: Issues needing systematic debugging
  • Feature Requests: New features requiring architecture and implementation
  • Technical Debt: Refactoring tasks with multiple components
  • Epic Management: Coordinating child issues under parent

Usage Examples

1. Issue-to-Swarm Conversion

# Get complete issue context
ISSUE=$(gh issue view 456 --json title,body,labels,assignees,comments,projectItems)

# Analyze issue complexity
BODY=$(echo "$ISSUE" | jq -r '.body')
LABEL_COUNT=$(echo "$ISSUE" | jq '.labels | length')
COMMENT_COUNT=$(echo "$ISSUE" | jq '.comments | length')

# Determine swarm topology based on complexity
if [ $LABEL_COUNT -gt 3 ] || [ ${#BODY} -gt 1000 ]; then
  TOPOLOGY="hierarchical"
  MAX_AGENTS=8
elif echo "$BODY" | grep -qE "(\[ \]|1\.|step)" ; then
  TOPOLOGY="mesh"
  MAX_AGENTS=5
else
  TOPOLOGY="ring"
  MAX_AGENTS=3
fi

echo "Issue #456: Using $TOPOLOGY topology with $MAX_AGENTS agents"

# Initialize swarm comment
gh issue comment 456 --body "## Swarm Initialized

**Topology**: $TOPOLOGY
**Agents**: $MAX_AGENTS

Processing issue for task decomposition..."

2. Task Decomposition

# Get issue body
ISSUE_BODY=$(gh issue view 456 --json body --jq '.body')

# Extract tasks from issue body (markdown checklist items)
TASKS=$(echo "$ISSUE_BODY" | grep -E '^\s*-\s*\[ \]' | sed 's/.*\[ \]//')

# Create subtask checklist
SUBTASK_LIST=""
TASK_NUM=1
echo "$TASKS" | while read -r task; do
  SUBTASK_LIST+="- [ ] $TASK_NUM. $task\n"
  TASK_NUM=$((TASK_NUM + 1))
done

# Update issue with structured subtasks
UPDATED_BODY="$ISSUE_BODY

## Swarm Task Breakdown
$SUBTASK_LIST

---
Decomposed by Swarm Agent"

gh issue edit 456 --body "$UPDATED_BODY"

# Create linked issues for major subtasks
gh issue create \
  --title "Subtask: Implement authentication" \
  --body "Part of #456

## Task
Implement the authentication module.

## Acceptance Criteria
- [ ] User login works
- [ ] Token refresh works
- [ ] Logout clears session" \
  --label "subtask"

3. Progress Tracking

# Track issue progress
track_progress() {
  local ISSUE_NUM=$1

  # Get current issue state
  ISSUE=$(gh issue view $ISSUE_NUM --json body,labels)
  BODY=$(echo "$ISSUE" | jq -r '.body')

  # Count completed vs total tasks
  TOTAL=$(echo "$BODY" | grep -cE '^\s*-\s*\[[ x]\]' || echo 0)
  COMPLETED=$(echo "$BODY" | grep -cE '^\s*-\s*\[x\]' || echo 0)
  PERCENT=$((COMPLETED * 100 / TOTAL))

  # Generate progress bar
  FILLED=$((PERCENT / 5))
  EMPTY=$((20 - FILLED))
  PROGRESS_BAR=$(printf '█%.0s' $(seq 1 $FILLED))$(printf '░%.0s' $(seq 1 $EMPTY))

  # Post progress update
  gh issue comment $ISSUE_NUM --body "## Progress Update

**Completion**: $PERCENT% [$PROGRESS_BAR]
**Tasks**: $COMPLETED / $TOTAL completed

$([ $PERCENT -eq 100 ] && echo '✅ All tasks complete!' || echo '🔄 Work in progress...')

---
Updated: $(date '+%Y-%m-%d %H:%M')"
}

track_progress 456

4. Issue Comment Commands

Use these commands in issue comments:

<!-- Analyze issue and suggest approach -->
/swarm analyze

<!-- Decompose into subtasks -->
/swarm decompose 5

<!-- Assign specific agent type -->
/swarm assign @coder

<!-- Estimate effort -->
/swarm estimate

<!-- Start swarm processing -->
/swarm start

<!-- Check progress -->
/swarm progress

<!-- Complete and summarize -->
/swarm complete

5. Automated Triage

# Triage unlabeled issues
triage_issues() {
  # Get unlabeled issues
  gh issue list --label "" --json number,title,body | \
    jq -r '.[] | @base64' | while read -r encoded; do
      ISSUE=$(echo "$encoded" | base64 -d)
      NUM=$(echo "$ISSUE" | jq -r '.number')
      TITLE=$(echo "$ISSUE" | jq -r '.title')
      BODY=$(echo "$ISSUE" | jq -r '.body')

      # Analyze content for auto-labeling
      LABELS=""

      # Bug detection
      if echo "$TITLE $BODY" | grep -qiE "bug|error|broken|crash|fail"; then
        LABELS="bug"
      fi

      # Feature detection
      if echo "$TITLE $BODY" | grep -qiE "feature|add|implement|new"; then
        LABELS="${LABELS:+$LABELS,}enhancement"
      fi

      # Performance detection
      if echo "$TITLE $BODY" | grep -qiE "slow|performance|optimize|speed"; then
        LABELS="${LABELS:+$LABELS,}performance"
      fi

      # Security detection
      if echo "$TITLE $BODY" | grep -qiE "security|vulnerability|auth|permission"; then
        LABELS="${LABELS:+$LABELS,}security"
      fi

      # Apply labels
      if [ -n "$LABELS" ]; then
        gh issue edit $NUM --add-label "$LABELS"
        echo "Issue #$NUM: Added labels $LABELS"
      fi
    done
}

triage_issues

6. Stale Issue Management

# Process stale issues
manage_stale_issues() {
  # Get issues not updated in 30 days
  STALE_DATE=$(date -d '30 days ago' '+%Y-%m-%d')

  gh issue list --state open --json number,title,updatedAt | \
    jq -r ".[] | select(.updatedAt < \"$STALE_DATE\") | .number" | \
    while read -r num; do
      # Check if already marked stale
      LABELS=$(gh issue view $num --json labels --jq '.labels[].name')

      if echo "$LABELS" | grep -q "stale"; then
        # Already stale for 7+ days - close
        STALE_CHECK=$(date -d '7 days ago' '+%Y-%m-%d')
        UPDATED=$(gh issue view $num --json updatedAt --jq '.updatedAt[:10]')

        if [ "$UPDATED" \< "$STALE_CHECK" ]; then
          gh issue close $num --comment "Closing due to inactivity. Feel free to reopen if still relevant."
        fi
      else
        # Mark as stale
        gh issue edit $num --add-label "stale"
        gh issue comment $num --body "This issue has been inactive for 30 days. It will be closed in 7 days if there's no activity."
      fi
    done
}

manage_stale_issues

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 (collaborative)
        - hierarchical (structured)
        - ring (sequential)
        - star (centralized)
    validations:
      required: true

  - type: input
    id: agents
    attributes:
      label: Required Agents
      placeholder: "coder, tester, analyst"

  - type: textarea
    id: description
    attributes:
      label: Task Description
      placeholder: "Describe what needs to be done..."
    validations:
      required: true

  - type: textarea
    id: subtasks
    attributes:
      label: Subtasks (Optional)
      placeholder: |
        - [ ] Subtask 1
        - [ ] Subtask 2
        - [ ] Subtask 3

MCP Tool Integration

Multi-Agent Issue Processing

// Initialize issue-specific swarm
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/456/context",
  value: {
    issue_number: 456,
    title: "Implement authentication",
    labels: ["feature", "priority:high"],
    complexity: "high",
    agents_assigned: ["coordinator", "analyst", "coder", "tester"]
  }
}

// Orchestrate issue resolution
mcp__claude-flow__task_orchestrate {
  task: "Coordinate multi-agent issue resolution with progress tracking",
  strategy: "adaptive",
  priority: "high"
}

GitHub Integration Tools

// Track issues
mcp__claude-flow__github_issue_track {
  repo: "owner/repo",
  action: "triage"
}

// Analyze repository
mcp__claude-flow__github_repo_analyze {
  repo: "owner/repo",
  analysis_type: "code_quality"
}

// Get metrics
mcp__claude-flow__github_metrics {
  repo: "owner/repo"
}

GitHub Actions Integration

# .github/workflows/issue-swarm.yml
name: Issue Swarm Handler
on:
  issues:
    types: [opened, labeled]
  issue_comment:
    types: [created]

jobs:
  process-new-issue:
    if: github.event.action == 'opened'
    runs-on: ubuntu-latest
    steps:
      - name: Auto-Triage Issue
        env:
          GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        run: |
          TITLE="${{ github.event.issue.title }}"
          BODY="${{ github.event.issue.body }}"

          # Determine labels based on content
          LABELS=""
          if echo "$TITLE $BODY" | grep -qiE "bug|error"; then
            LABELS="bug"
          elif echo "$TITLE $BODY" | grep -qiE "feature|add"; then
            LABELS="enhancement"
          fi

          if [ -n "$LABELS" ]; then
            gh issue edit ${{ github.event.issue.number }} --add-label "$LABELS"
          fi

  handle-swarm-label:
    if: github.event.action == 'labeled' && github.event.label.name == 'swarm-ready'
    runs-on: ubuntu-latest
    steps:
      - name: Initialize Swarm
        env:
          GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        run: |
          gh issue comment ${{ github.event.issue.number }} \
            --body "## Swarm Processing Started

          This issue has been queued for swarm processing.

          **Status**: Analyzing...
          **ETA**: ~15 minutes"

  handle-commands:
    if: github.event_name == 'issue_comment' && startsWith(github.event.comment.body, '/swarm')
    runs-on: ubuntu-latest
    steps:
      - name: Process Command
        run: |
          COMMAND="${{ github.event.comment.body }}"
          echo "Processing swarm command: $COMMAND"

Issue Types and Strategies

Bug Reports

# Specialized bug handling
handle_bug() {
  local ISSUE_NUM=$1

  gh issue comment $ISSUE_NUM --body "## Bug Investigation Swarm

**Agents Assigned:**
- Debugger: Reproduce and isolate
- Analyst: Root cause analysis
- Tester: Regression tests
- Coder: Fix implementation

**Process:**
1. Reproduce the bug
2. Isolate to minimal case
3. Identify root cause
4. Implement fix
5. Add regression tests
6. Verify fix"
}

Feature Requests

# Feature implementation workflow
handle_feature() {
  local ISSUE_NUM=$1

  gh issue comment $ISSUE_NUM --body "## Feature Implementation Swarm

**Agents Assigned:**
- Architect: Design approach
- Coder: Implementation
- Tester: Test coverage
- Reviewer: Code quality

**Phases:**
1. Design review
2. Implementation
3. Testing
4. Documentation
5. Demo/Review"
}

Best Practices

1. Issue Templates

  • Include swarm configuration options
  • Provide structured task breakdown
  • Set clear acceptance criteria
  • Include complexity estimates

2. Label Strategy

  • Use consistent swarm-related labels (swarm-ready, swarm-processing)
  • Map labels to agent types
  • Include priority indicators
  • Track status with labels

3. Comment Etiquette

  • Clear command syntax (/swarm command)
  • Progress updates in threads
  • Summary comments for decisions
  • Link to relevant PRs

4. Progress Tracking

  • Regular status updates
  • Visual progress indicators
  • ETA estimates
  • Blocker identification

Metrics and Analytics

# Issue resolution metrics
generate_metrics() {
  # Get closed issues from last 30 days
  gh issue list --state closed --json number,title,createdAt,closedAt,labels | \
    jq '{
      total_closed: length,
      avg_resolution_days: ([.[].createdAt, .[].closedAt] | map(fromdateiso8601) | . as $dates | (($dates[1] - $dates[0]) / 86400)) | add / length,
      by_label: group_by(.labels[].name) | map({label: .[0].labels[0].name, count: length})
    }'
}

generate_metrics

Related Skills


Version History

  • 1.0.0 (2026-01-02): Initial skill conversion from swarm-issue agent