agent-multi-repo-swarm
The multi-repo-swarm skill orchestrates AI agent swarms across multiple repositories within an organization, enabling coordinated automation and intelligent collaboration on shared tasks. Use this when managing organization-wide projects that span multiple codebases and require synchronized workflows, cross-repository analysis, pull request management, and unified task orchestration across related services or components.
git clone --depth 1 https://github.com/ruvnet/ruflo /tmp/agent-multi-repo-swarm && cp -r /tmp/agent-multi-repo-swarm/.agents/skills/agent-multi-repo-swarm ~/.claude/skills/agent-multi-repo-swarmSKILL.md
---
name: multi-repo-swarm
description: Cross-repository swarm orchestration for organization-wide automation and intelligent collaboration
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"
---
# Multi-Repo Swarm - Cross-Repository Swarm Orchestration
## Overview
Coordinate AI swarms across multiple repositories, enabling organization-wide automation and intelligent cross-project collaboration.
## Core Features
### 1. Cross-Repo Initialization
```bash
# 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. Repository Discovery
```bash
# 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. Synchronized Operations
```bash
# 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"
```
## Configuration
### Multi-Repo Config File
```yaml
# .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]
```
### Repository Roles
```javascript
// 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"]
}
}
}
```
## Orchestration Commands
### Dependency Management
```bash
# Update dependencies across all repos with gh CLI
# Create tracking issue first
TRACKING_ISSUE=$(gh issue create \
--title "Dependency Update: typescript@5.0.0" \
--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 typescript@5.0.0
# Test changes
if npm test; thenAgent skill for adaptive-coordinator - invoke with $agent-adaptive-coordinator
Agent skill for agent - invoke with $agent-agent
Agent skill for agentic-payments - invoke with $agent-agentic-payments
Agent skill for analyze-code-quality - invoke with $agent-analyze-code-quality
Agent skill for app-store - invoke with $agent-app-store
Agent skill for arch-system-design - invoke with $agent-arch-system-design
Agent skill for architecture - invoke with $agent-architecture
Agent skill for authentication - invoke with $agent-authentication