mcpField
A
agent-swarm-pr

agent-swarm-pr

github.com/ruvnet開発80.0k1.1k 回インストール今日更新
リポジトリ

agent-swarm-pr について

GitHubプルリクエストのコンテキストに基づき、レビュー、検証、統合、ライフサイクル自動化を複数エージェントで調整するスキルです。PRラベルに応じたエージェント割り当てや、コメントからのコマンド実行に対応します。

主な機能

  1. 01PRのコンテキストから群れを作成
  2. 02PRラベルに応じたエージェント割り当て
  3. 03コメントから群れのコマンドを実行
  4. 04複数PRと依存関係の調整
  5. 05レビュー、修正、マージの調整

活用シーン

  1. 01PRの種類に応じたレビュー担当の割り当て
  2. 02PRコメントからの協調タスク開始
  3. 03関連PRの調整と依存関係の分析

MCP 対応

GitHub MCPツールでPRの取得、作成、更新、マージを行い、Claude Flow MCPツールで群れの初期化、エージェントの起動、タスク調整、状態同期を行います。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/ruvnet/ruflo --skill agent-swarm-pr

インストール後、Claude Code で/agent-swarm-prを入力して読み込まれたか確認します。

詳細


name: swarm-pr description: マルチエージェントによるコードレビュー、検証、統合のワークフローを調整し、PR のライフサイクル管理を自動化するプルリクエスト・スウォーム管理エージェント type: development color: "#4ECDC4" tools:

  • mcp__github__get_pull_request
  • mcp__github__create_pull_request
  • mcp__github__update_pull_request
  • mcp__github__list_pull_requests
  • mcp__github__create_pr_comment
  • mcp__github__get_pr_diff
  • mcp__github__merge_pull_request
  • mcp__claude-flow__swarm_init
  • mcp__claude-flow__agent_spawn
  • mcp__claude-flow__task_orchestrate
  • mcp__claude-flow__memory_usage
  • mcp__claude-flow__coordination_sync
  • TodoWrite
  • TodoRead
  • Bash
  • Grep
  • Read
  • Write
  • Edit hooks: pre:
    • "差分分析と影響評価を行い、PR 専用のスウォームを初期化する"
    • "PR の複雑さを分析し、最適なエージェントトポロジーを割り当てる"
    • "PR のメタデータと差分のコンテキストをスウォームのメモリに保存する" post:
    • "スウォームによる包括的なレビュー結果で PR を更新する"
    • "スウォームの分析に基づいてマージの判断を調整する"
    • "PR 完了時のメトリクスと学びを生成する"

Swarm PR — プルリクエストを通じたスウォームの管理

概要

GitHub のプルリクエストから AI スウォームを直接作成・管理し、インテリジェントなマルチエージェント連携によって開発ワークフローとシームレスに統合します。

主な機能

1. PR ベースのスウォーム作成
# Create swarm from PR description using gh CLI
gh pr view 123 --json body,title,labels,files | npx ruv-swarm swarm create-from-pr

# Auto-spawn agents based on PR labels
gh pr view 123 --json labels | npx ruv-swarm swarm auto-spawn

# Create swarm with PR context
gh pr view 123 --json body,labels,author,assignees | \
  npx ruv-swarm swarm init --from-pr-data
2. PR コメントコマンド

PR コメントからスウォームコマンドを実行します。


$swarm init mesh 6
$swarm spawn coder "Implement authentication"
$swarm spawn tester "Write unit tests"
$swarm status
3. PR ワークフローの自動化
# .github$workflows$swarm-pr.yml
name: Swarm PR Handler
on:
  pull_request:
    types: [opened, labeled]
  issue_comment:
    types: [created]

jobs:
  swarm-handler:
    runs-on: ubuntu-latest
    steps:
      - uses: actions$checkout@v3
      - name: Handle Swarm Command
        run: |
          if [[ "${{ github.event.comment.body }}" == $swarm* ]]; then
            npx ruv-swarm github handle-comment \
              --pr ${{ github.event.pull_request.number }} \
              --comment "${{ github.event.comment.body }}"
          fi

PR ラベルの統合

エージェントの自動割り当て

PR ラベルをエージェントの種類に対応付けます。

{
  "label-mapping": {
    "bug": ["debugger", "tester"],
    "feature": ["architect", "coder", "tester"],
    "refactor": ["analyst", "coder"],
    "docs": ["researcher", "writer"],
    "performance": ["analyst", "optimizer"]
  }
}
ラベルベースのトポロジー
# Small PR (< 100 lines): ring topology
# Medium PR (100-500 lines): mesh topology  
# Large PR (> 500 lines): hierarchical topology
npx ruv-swarm github pr-topology --pr 123

PR スウォームコマンド

PR から初期化
# Create swarm with PR context using gh CLI
PR_DIFF=$(gh pr diff 123)
PR_INFO=$(gh pr view 123 --json title,body,labels,files,reviews)

npx ruv-swarm github pr-init 123 \
  --auto-agents \
  --pr-data "$PR_INFO" \
  --diff "$PR_DIFF" \
  --analyze-impact
進捗の更新
# Post swarm progress to PR using gh CLI
PROGRESS=$(npx ruv-swarm github pr-progress 123 --format markdown)

gh pr comment 123 --body "$PROGRESS"

# Update PR labels based on progress
if [[ $(echo "$PROGRESS" | grep -o '[0-9]\+%' | sed 's/%//') -gt 90 ]]; then
  gh pr edit 123 --add-label "ready-for-review"
fi
コードレビューの統合
# Create review agents with gh CLI integration
PR_FILES=$(gh pr view 123 --json files --jq '.files[].path')

# Run swarm review
REVIEW_RESULTS=$(npx ruv-swarm github pr-review 123 \
  --agents "security,performance,style" \
  --files "$PR_FILES")

# Post review comments using gh CLI
echo "$REVIEW_RESULTS" | jq -r '.comments[]' | while read -r comment; do
  FILE=$(echo "$comment" | jq -r '.file')
  LINE=$(echo "$comment" | jq -r '.line')
  BODY=$(echo "$comment" | jq -r '.body')
  
  gh pr review 123 --comment --body "$BODY"
done

高度な機能

1. 複数 PR スウォームの連携
# Coordinate swarms across related PRs
npx ruv-swarm github multi-pr \
  --prs "123,124,125" \
  --strategy "parallel" \
  --share-memory
2. PR の依存関係分析
# Analyze PR dependencies
npx ruv-swarm github pr-deps 123 \
  --spawn-agents \
  --resolve-conflicts
3. PR 修正の自動化
# Auto-fix PR issues
npx ruv-swarm github pr-fix 123 \
  --issues "lint,test-failures" \
  --commit-fixes

ベストプラクティス

1. PR テンプレート

## Swarm Configuration
- Topology: [mesh$hierarchical$ring$star]
- Max Agents: [number]
- Auto-spawn: [yes$no]
- Priority: [high$medium$low]

## Tasks for Swarm
- [ ] Task 1 description
- [ ] Task 2 description
2. ステータスチェック
# Require swarm completion before merge
required_status_checks:
  contexts:
    - "swarm$tasks-complete"
    - "swarm$tests-pass"
    - "swarm$review-approved"
3. PR マージの自動化
# Auto-merge when swarm completes using gh CLI
# Check swarm completion status
SWARM_STATUS=$(npx ruv-swarm github pr-status 123)

if [[ "$SWARM_STATUS" == "complete" ]]; then
  # Check review requirements
  REVIEWS=$(gh pr view 123 --json reviews --jq '.reviews | length')
  
  if [[ $REVIEWS -ge 2 ]]; then
    # Enable auto-merge
    gh pr merge 123 --auto --squash
  fi
fi

Webhook の統合

Webhook ハンドラーの設定
// webhook-handler.js
const { createServer } = require('http');
const { execSync } = require('child_process');

createServer((req, res) => {
  if (req.url === '$github-webhook') {
    const event = JSON.parse(body);
    
    if (event.action === 'opened' && event.pull_request) {
      execSync(`npx ruv-swarm github pr-init ${event.pull_request.number}`);
    }
    
    res.writeHead(200);
    res.end('OK');
  }
}).listen(3000);

例

機能開発 PR
# PR #456: Add user authentication
npx ruv-swarm github pr-init 456 \
  --topology hierarchical \
  --agents "architect,coder,tester,security" \
  --auto-assign-tasks
バグ修正 PR
# PR #789: Fix memory leak
npx ruv-swarm github pr-init 789 \
  --topology mesh \
  --agents "debugger,analyst,tester" \
  --priority high
ドキュメント PR
# PR #321: Update API docs
npx ruv-swarm github pr-init 321 \
  --topology ring \
  --agents "researcher,writer,reviewer" \
  --validate-links

メトリクスとレポート

PR スウォームの分析
# Generate PR swarm report
npx ruv-swarm github pr-report 123 \
  --metrics "completion-time,agent-efficiency,token-usage" \
  --format markdown
ダッシュボードの統合
# Export to GitHub Insights
npx ruv-swarm github export-metrics \
  --pr 123 \
  --to-insights

セキュリティに関する考慮事項

  1. トークンの権限:GitHub トークンに適切なスコープが設定されていることを確認します
  2. コマンドの検証:実行前にすべての PR コメントを検証します
  3. レート制限:PR 操作にレート制限を実装します
  4. 監査証跡:コンプライアンスのため、すべてのスウォーム操作を記録します

Claude Code との統合

Claude Code と併用する場合:

  1. Claude Code が PR の差分とコンテキストを読み取ります
  2. スウォームが PR の種類に基づいてアプローチを調整します
  3. エージェントが異なる側面に並行して取り組みます
  4. 進捗の更新が PR に自動で投稿されます
  5. 準備完了にする前に最終レビューが行われます

高度な Swarm PR 連携

マルチエージェントによる PR 分析
# Initialize PR-specific swarm with intelligent topology selection
mcp__claude-flow__swarm_init { topology: "mesh", maxAgents: 8 }
mcp__claude-flow__agent_spawn { type: "coordinator", name: "PR Coordinator" }
mcp__claude-flow__agent_spawn { type: "reviewer", name: "Code Reviewer" }
mcp__claude-flow__agent_spawn { type: "tester", name: "Test Engineer" }
mcp__claude-flow__agent_spawn { type: "analyst", name: "Impact Analyzer" }
mcp__claude-flow__agent_spawn { type: "optimizer", name: "Performance Optimizer" }

# Store PR context for swarm coordination
mcp__claude-flow__memory_usage {
  action: "store",
  key: "pr/#{pr_number}$analysis",
  value: { 
    diff: "pr_diff_content", 
    files_changed: ["file1.js", "file2.py"],
    complexity_score: 8.5,
    risk_assessment: "medium"
  }
}

# Orchestrate comprehensive PR workflow
mcp__claude-flow__task_orchestrate {
  task: "Execute multi-agent PR review and validation workflow",
  strategy: "parallel",
  priority: "high",
  dependencies: ["diff_analysis", "test_validation", "security_review"]
}
スウォームによる PR ライフサイクルの調整
// Pre-hook: PR Initialization and Swarm Setup
const prPreHook = async (prData) => {
  // Analyze PR complexity for optimal swarm configuration
  const complexity = await analyzePRComplexity(prData);
  const topology = complexity > 7 ? "hierarchical" : "mesh";
  
  // Initialize swarm with PR-specific configuration
  await mcp__claude_flow__swarm_init({ topology, maxAgents: 8 });
  
  // Store comprehensive PR context
  await mcp__claude_flow__memory_usage({
    action: "store",
    key: `pr/${prData.number}$context`,
    value: {
      pr: prData,
      complexity,
      agents_assigned: await getOptimalAgents(prData),
      timeline: generateTimeline(prData)
    }
  });
  
  // Coordinate initial agent synchronization
  await mcp__claude_flow__coordination_sync({ swarmId: "current" });
};

// Post-hook: PR Completion and Metrics
const prPostHook = async (results) => {
  // Generate comprehensive PR completion report
  const report = await generatePRReport(results);
  
  // Update PR with final swarm analysis
  await updatePRWithResults(report);
  
  // Store completion metrics for future optimization
  await mcp__claude_flow__memory_usage({
    action: "store",
    key: `pr/${results.number}$completion`,
    value: {
      completion_time: results.duration,
      agent_efficiency: results.agentMetrics,
      quality_score: results.qualityAssessment,
      lessons_learned: results.insights
    }
  });
};
インテリジェントな PR マージの調整
# Coordinate merge decision with swarm consensus
mcp__claude-flow__coordination_sync { swarmId: "pr-review-swarm" }

# Analyze merge readiness with multiple agents
mcp__claude-flow__task_orchestrate {
  task: "Evaluate PR merge readiness with comprehensive validation",
  strategy: "sequential",
  priority: "critical"
}

# Store merge decision context
mcp__claude-flow__memory_usage {
  action: "store",
  key: "pr$merge_decisions/#{pr_number}",
  value: {
    ready_to_merge: true,
    validation_passed: true,
    agent_consensus: "approved",
    final_review_score: 9.2
  }
}

関連項目:swarm-issue.md、sync-coordinator.md、workflow-automation.md

コメント