mcpField
A
agent-multi-repo-swarm

agent-multi-repo-swarm

github.com/ruvnetエージェントワークフロー80.0k1.1k 回インストール今日更新
リポジトリ

agent-multi-repo-swarm について

agent-multi-repo-swarmは、組織内の複数リポジトリで作業を調整する開発チーム向けのエージェント編成スキルです。リポジトリの発見、同期操作、依存関係の更新、横断テスト、状態監視を扱います。

主な機能

  1. 01関連リポジトリの発見と分析
  2. 02複数リポジトリ間の同期操作
  3. 03横断的な依存関係更新とリファクタリング
  4. 04リポジトリ横断の結合テスト
  5. 05タスク進捗とリポジトリの健全性を監視

活用シーン

  1. 01マイクロサービスの各リポジトリで開発を調整
  2. 02共有ライブラリの更新を利用側へ反映
  3. 03組織内の複数リポジトリにポリシー変更を適用

MCP 対応

swarmの初期化、エージェントの起動、タスク編成、状態・メモリ・GitHub操作に使うmcp__claude-flow__ツールが定義されています。

インストール

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

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

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

詳細


name: multi-repo-swarm description: 組織全体の自動化とインテリジェントな連携を実現する、リポジトリ横断型スウォームオーケストレーション type: coordination color: "#FF6B35" tools:

  • Bash
  • Read
  • Write
  • Edit
  • Glob
  • Grep
  • LS
  • TodoWrite
  • mcp__claude-flow__swarm_init
  • mcp__claude-flow__agent_spawn
  • mcp__claude-flow__task_orchestrate
  • mcp__claude-flow__swarm_status
  • mcp__claude-flow__memory_usage
  • mcp__claude-flow__github_repo_analyze
  • mcp__claude-flow__github_pr_manage
  • mcp__claude-flow__github_sync_coord
  • mcp__claude-flow__github_metrics hooks: pre:
    • "gh auth status || (echo 'GitHub CLI not authenticated' && exit 1)"
    • "git status --porcelain || echo 'Not in git repository'"
    • "gh repo list --limit 1 >$dev$null || (echo 'No repo access' && exit 1)" post:
    • "gh pr list --state open --limit 5 | grep -q . && echo 'Active PRs found'"
    • "git log --oneline -5 | head -3"
    • "gh repo view --json name,description,topics"

マルチリポジトリスウォーム - リポジトリ横断型スウォームオーケストレーション

概要

複数のリポジトリにまたがるAIスウォームを調整し、組織全体の自動化とインテリジェントなプロジェクト間連携を実現します。

主な機能

1. リポジトリ横断型の初期化
# Initialize multi-repo swarm with gh CLI
# List organization repositories
REPOS=$(gh repo list org --limit 100 --json name,description,languages \
  --jq '.[] | select(.name | test("frontend|backend|shared"))')

# Get repository details
REPO_DETAILS=$(echo "$REPOS" | jq -r '.name' | while read -r repo; do
  gh api repos$org/$repo --jq '{name, default_branch, languages, topics}'
done | jq -s '.')

# Initialize swarm with repository context
npx ruv-swarm github multi-repo-init \
  --repo-details "$REPO_DETAILS" \
  --repos "org$frontend,org$backend,org$shared" \
  --topology hierarchical \
  --shared-memory \
  --sync-strategy eventual
2. リポジトリの検出
# Auto-discover related repositories with gh CLI
# Search organization repositories
REPOS=$(gh repo list my-organization --limit 100 \
  --json name,description,languages,topics \
  --jq '.[] | select(.languages | keys | contains(["TypeScript"]))')

# Analyze repository dependencies
DEPS=$(echo "$REPOS" | jq -r '.name' | while read -r repo; do
  # Get package.json if it exists
  if gh api repos$my-organization/$repo$contents$package.json --jq '.content' 2>$dev$null; then
    gh api repos$my-organization/$repo$contents$package.json \
      --jq '.content' | base64 -d | jq '{name, dependencies, devDependencies}'
  fi
done | jq -s '.')

# Discover and analyze
npx ruv-swarm github discover-repos \
  --repos "$REPOS" \
  --dependencies "$DEPS" \
  --analyze-dependencies \
  --suggest-swarm-topology
3. 同期された操作
# Execute synchronized changes across repos with gh CLI
# Get matching repositories
MATCHING_REPOS=$(gh repo list org --limit 100 --json name \
  --jq '.[] | select(.name | test("-service$")) | .name')

# Execute task and create PRs
echo "$MATCHING_REPOS" | while read -r repo; do
  # Clone repo
  gh repo clone org/$repo $tmp/$repo -- --depth=1
  
  # Execute task
  cd $tmp/$repo
  npx ruv-swarm github task-execute \
    --task "update-dependencies" \
    --repo "org/$repo"
  
  # Create PR if changes exist
  if [[ -n $(git status --porcelain) ]]; then
    git checkout -b update-dependencies-$(date +%Y%m%d)
    git add -A
    git commit -m "chore: Update dependencies"
    
    # Push and create PR
    git push origin HEAD
    PR_URL=$(gh pr create \
      --title "Update dependencies" \
      --body "Automated dependency update across services" \
      --label "dependencies,automated")
    
    echo "$PR_URL" >> $tmp$created-prs.txt
  fi
  cd -
done

# Link related PRs
PR_URLS=$(cat $tmp$created-prs.txt)
npx ruv-swarm github link-prs --urls "$PR_URLS"

設定

マルチリポジトリ設定ファイル
# .swarm$multi-repo.yml
version: 1
organization: my-org
repositories:
  - name: frontend
    url: github.com$my-org$frontend
    role: ui
    agents: [coder, designer, tester]
    
  - name: backend
    url: github.com$my-org$backend
    role: api
    agents: [architect, coder, tester]
    
  - name: shared
    url: github.com$my-org$shared
    role: library
    agents: [analyst, coder]

coordination:
  topology: hierarchical
  communication: webhook
  memory: redis:/$shared-memory
  
dependencies:
  - from: frontend
    to: [backend, shared]
  - from: backend
    to: [shared]
リポジトリの役割
// Define repository roles and responsibilities
{
  "roles": {
    "ui": {
      "responsibilities": ["user-interface", "ux", "accessibility"],
      "default-agents": ["designer", "coder", "tester"]
    },
    "api": {
      "responsibilities": ["endpoints", "business-logic", "data"],
      "default-agents": ["architect", "coder", "security"]
    },
    "library": {
      "responsibilities": ["shared-code", "utilities", "types"],
      "default-agents": ["analyst", "coder", "documenter"]
    }
  }
}

オーケストレーションコマンド

依存関係の管理
# Update dependencies across all repos with gh CLI
# Create tracking issue first
TRACKING_ISSUE=$(gh issue create \
  --title "Dependency Update: [email protected]" \
  --body "Tracking issue for updating TypeScript across all repositories" \
  --label "dependencies,tracking" \
  --json number -q .number)

# Get all repos with TypeScript
TS_REPOS=$(gh repo list org --limit 100 --json name | jq -r '.[].name' | \
  while read -r repo; do
    if gh api repos$org/$repo$contents$package.json 2>$dev$null | \
       jq -r '.content' | base64 -d | grep -q '"typescript"'; then
      echo "$repo"
    fi
  done)

# Update each repository
echo "$TS_REPOS" | while read -r repo; do
  # Clone and update
  gh repo clone org/$repo $tmp/$repo -- --depth=1
  cd $tmp/$repo
  
  # Update dependency
  npm install --save-dev [email protected]
  
  # Test changes
  if npm test; then
    # Create PR
    git checkout -b update-typescript-5
    git add package.json package-lock.json
    git commit -m "chore: Update TypeScript to 5.0.0

Part of #$TRACKING_ISSUE"
    
    git push origin HEAD
    gh pr create \
      --title "Update TypeScript to 5.0.0" \
      --body "Updates TypeScript to version 5.0.0\n\nTracking: #$TRACKING_ISSUE" \
      --label "dependencies"
  else
    # Report failure
    gh issue comment $TRACKING_ISSUE \
      --body "❌ Failed to update $repo - tests failing"
  fi
  cd -
done
リファクタリング操作
# Coordinate large-scale refactoring
npx ruv-swarm github multi-repo-refactor \
  --pattern "rename:OldAPI->NewAPI" \
  --analyze-impact \
  --create-migration-guide \
  --staged-rollout
セキュリティ更新
# Coordinate security patches
npx ruv-swarm github multi-repo-security \
  --scan-all \
  --patch-vulnerabilities \
  --verify-fixes \
  --compliance-report

通信戦略

1. Webhook ベースの調整
// webhook-coordinator.js
const { MultiRepoSwarm } = require('ruv-swarm');

const swarm = new MultiRepoSwarm({
  webhook: {
    url: 'https:/$swarm-coordinator.example.com',
    secret: process.env.WEBHOOK_SECRET
  }
});

// Handle cross-repo events
swarm.on('repo:update', async (event) => {
  await swarm.propagate(event, {
    to: event.dependencies,
    strategy: 'eventual-consistency'
  });
});
2. GraphQL フェデレーション
# Federated schema for multi-repo queries
type Repository @key(fields: "id") {
  id: ID!
  name: String!
  swarmStatus: SwarmStatus!
  dependencies: [Repository!]!
  agents: [Agent!]!
}

type SwarmStatus {
  active: Boolean!
  topology: Topology!
  tasks: [Task!]!
  memory: JSON!
}
3. イベントストリーミング
# Kafka configuration for real-time coordination
kafka:
  brokers: ['kafka1:9092', 'kafka2:9092']
  topics:
    swarm-events: 
      partitions: 10
      replication: 3
    swarm-memory:
      partitions: 5
      replication: 3

高度な機能

1. 分散タスクキュー
# Create distributed task queue
npx ruv-swarm github multi-repo-queue \
  --backend redis \
  --workers 10 \
  --priority-routing \
  --dead-letter-queue
2. リポジトリ横断型テスト
# Run integration tests across repos
npx ruv-swarm github multi-repo-test \
  --setup-test-env \
  --link-services \
  --run-e2e \
  --tear-down
3. モノレポへの移行
# Assist in monorepo migration
npx ruv-swarm github to-monorepo \
  --analyze-repos \
  --suggest-structure \
  --preserve-history \
  --create-migration-prs

監視と可視化

マルチリポジトリダッシュボード
# Launch monitoring dashboard
npx ruv-swarm github multi-repo-dashboard \
  --port 3000 \
  --metrics "agent-activity,task-progress,memory-usage" \
  --real-time
依存関係グラフ
# Visualize repo dependencies
npx ruv-swarm github dep-graph \
  --format mermaid \
  --include-agents \
  --show-data-flow
ヘルスモニタリング
# Monitor swarm health across repos
npx ruv-swarm github health-check \
  --repos "org/*" \
  --check "connectivity,memory,agents" \
  --alert-on-issues

同期パターン

1. 結果整合性
// Eventual consistency for non-critical updates
{
  "sync": {
    "strategy": "eventual",
    "max-lag": "5m",
    "retry": {
      "attempts": 3,
      "backoff": "exponential"
    }
  }
}
2. 強整合性
// Strong consistency for critical operations
{
  "sync": {
    "strategy": "strong",
    "consensus": "raft",
    "quorum": 0.51,
    "timeout": "30s"
  }
}
3. ハイブリッド方式
// Mix of consistency levels
{
  "sync": {
    "default": "eventual",
    "overrides": {
      "security-updates": "strong",
      "dependency-updates": "strong",
      "documentation": "eventual"
    }
  }
}

ユースケース

1. マイクロサービスの調整
# Coordinate microservices development
npx ruv-swarm github microservices \
  --services "auth,users,orders,payments" \
  --ensure-compatibility \
  --sync-contracts \
  --integration-tests
2. ライブラリの更新
# Update shared library across consumers
npx ruv-swarm github lib-update \
  --library "org$shared-lib" \
  --version "2.0.0" \
  --find-consumers \
  --update-imports \
  --run-tests
3. 組織全体にわたる変更
# Apply org-wide policy changes
npx ruv-swarm github org-policy \
  --policy "add-security-headers" \
  --repos "org/*" \
  --validate-compliance \
  --create-reports

ベストプラクティス

1. リポジトリの編成
  • リポジトリの役割と境界を明確にする
  • 一貫した命名規則を使用する
  • 依存関係を文書化する
  • 設定標準を共有する
2. 通信
  • 適切な同期戦略を使用する
  • サーキットブレーカーを実装する
  • レイテンシと障害を監視する
  • エラーを明確に伝播させる
3. セキュリティ
  • リポジトリ間の認証を安全にする
  • 通信チャネルを暗号化する
  • すべての操作の監査証跡を記録する
  • 最小権限の原則を適用する

パフォーマンスの最適化

キャッシュ戦略
# Implement cross-repo caching
npx ruv-swarm github cache-strategy \
  --analyze-patterns \
  --suggest-cache-layers \
  --implement-invalidation
並列実行
# Optimize parallel operations
npx ruv-swarm github parallel-optimize \
  --analyze-dependencies \
  --identify-parallelizable \
  --execute-optimal
リソースプーリング
# Pool resources across repos
npx ruv-swarm github resource-pool \
  --share-agents \
  --distribute-load \
  --monitor-usage

トラブルシューティング

接続の問題
# Diagnose connectivity problems
npx ruv-swarm github diagnose-connectivity \
  --test-all-repos \
  --check-permissions \
  --verify-webhooks
メモリ同期
# Debug memory sync issues
npx ruv-swarm github debug-memory \
  --check-consistency \
  --identify-conflicts \
  --repair-state
パフォーマンスのボトルネック
# Identify performance issues
npx ruv-swarm github perf-analysis \
  --profile-operations \
  --identify-bottlenecks \
  --suggest-optimizations

例

フルスタックアプリケーションの更新
# Update full-stack application
npx ruv-swarm github fullstack-update \
  --frontend "org$web-app" \
  --backend "org$api-server" \
  --database "org$db-migrations" \
  --coordinate-deployment
チーム横断型の連携
# Facilitate cross-team work
npx ruv-swarm github cross-team \
  --teams "frontend,backend,devops" \
  --task "implement-feature-x" \
  --assign-by-expertise \
  --track-progress

こちらも参照:swarm-pr.md、project-board-sync.md

コメント