以下为本文档的中文说明

Agent Multi-Repo Swarm 是 ruvnet 开发的一项跨仓库群智编排技能,旨在协调 AI 代理在多个代码仓库之间的协同工作。该技能的核心能力是让 AI 代理能够跨越单个仓库的边界,在组织级别实现自动化和智能化的跨项目协作。其主要功能包括:跨仓库初始化——通过 GitHub CLI 列出组织中的仓库,筛选相关的前端、后端或共享仓库,获取仓库详情包括默认分支、编程语言和主题标签,然后基于这些上下文信息初始化群智系统;智能任务分配——根据仓库之间的依赖关系和变更影响范围,将任务分配给最合适的代理;跨仓库变更协调——当一个仓库的变更影响到其他仓库时,自动发现并同步相应的调整。该技能特别适用于拥有多个相关代码仓库的中大型开发团队、微服务架构下的协同开发场景、以及需要跨项目保持代码一致性和版本同步的组织。其核心特点包括:对 GitHub 仓库生态的深度集成、基于仓库元数据的智能决策、以及支持大规模多代理并行工作的架构设计。该技能将单仓库开发范式延伸至多仓库生态系统,有效解决了跨项目协作中的信息孤岛问题。该技能代表了软件工程自动化从单仓库到多仓库、从单代理到多代理的重要演进方向,为大型组织的 DevOps 实践提供了全新的智能化解决方案。


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

# 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

# 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\
er, 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

// 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

# 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; 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\
\
Tracking: #$TRACKING_ISSUE" \\
      --label "dependencies"
  else
    # Report failure
    gh issue comment $TRACKING_ISSUE \\
      --body "❌ Failed to update $repo - tests failing"
  fi
  cd -
done

Refactoring Operations

# Coordinate large-scale refactoring
npx ruv-swarm github multi-repo-refactor \\
  --pattern "rename:OldAPI->NewAPI" \\
  --analyze-impact \\
  --create-migration-guide \\
  --staged-rollout

Security Updates

# Coordinate security patches
npx ruv-swarm github multi-repo-security \\
  --scan-all \\
  --patch-vulnerabilities \\
  --verify-fixes \\
  --compliance-report

Communication Strategies

1. Webhook-Based Coordination

// 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 Federation

# 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. Event Streaming

# 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

Advanced Features

1. Distributed Task Queue

# Create distributed task queue
npx ruv-swarm github multi-repo-queue \\
  --backend redis \\
  --workers 10 \\
  -
-priority-routing \\
  --dead-letter-queue

2. Cross-Repo Testing

# Run integration tests across repos
npx ruv-swarm github multi-repo-test \\
  --setup-test-env \\
  --link-services \\
  --run-e2e \\
  --tear-down

3. Monorepo Migration

# Assist in monorepo migration
npx ruv-swarm github to-monorepo \\
  --analyze-repos \\
  --suggest-structure \\
  --preserve-history \\
  --create-migration-prs

Monitoring & Visualization

Multi-Repo Dashboard

# Launch monitoring dashboard
npx ruv-swarm github multi-repo-dashboard \\
  --port 3000 \\
  --metrics "agent-activity,task-progress,memory-usage" \\
  --real-time

Dependency Graph

# Visualize repo dependencies
npx ruv-swarm github dep-graph \\
  --format mermaid \\
  --include-agents \\
  --show-data-flow

Health Monitoring

# Monitor swarm health across repos
npx ruv-swarm github health-check \\
  --repos "org/*" \\
  --check "connectivity,memory,agents" \\
  --alert-on-issues

Synchronization Patterns

1. Eventually Consistent

// Eventual consistency for non-critical updates
{
  "sync": {
    "strategy": "eventual",
    "max-lag": "5m",
    "retry": {
      "attempts": 3,
      "backoff": "exponential"
    }
  }
}

2. Strong Consistency

// Strong consistency for critical operations
{
  "sync": {
    "strategy": "strong",
    "consensus": "raft",
    "quorum": 0.51,
    "timeout": "30s"
  }
}

3. Hybrid Approach

// Mix of consistency levels
{
  "sync": {
    "default": "eventual",
    "overrides": {
      "security-updates": "strong",
      "dependency-updates": "strong",
      "documentation": "eventual"
    }
  }
}

Use Cases

1. Microservices Coordination

# Coordinate microservices development
npx ruv-swarm github microservices \\
  --services "auth,users,orders,payments" \\
  --ensure-compatibility \\
  --sync-contracts \\
  --integration-tests

2. Library Updates

# 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. Organization-Wide Changes

# Apply org-wide policy changes
npx ruv-swarm github org-policy \\
  --policy "add-security-headers" \\
  --repos "org/*" \\
  --validate-compliance \\
  --create-reports

Best Practices

1. Repository Organization

  • Clear repository roles and boundaries
  • Consistent naming conventions
  • Documented dependencies
  • Shared configuration standards

2. Communication

  • Use appropriate sync strategies
  • Implement circuit breakers
  • Monitor latency and failures
  • Clear error propagation

3. Security

  • Secure cross-repo authentication
  • Encrypted communication channels
  • Audit trail for all operations
  • Principle of least privilege

Performance Optimization

Caching Strategy

# Implement cross-repo caching
npx ruv-swarm github cache-strategy \\
  --analyze-patterns \\
  --suggest-cache-layers \\
  --implement-invalidation

Parallel Execution

# Optimize parallel operations
npx ruv-swarm github parallel-optimize \\
  --analyze-dependencies \\
  --identify-parallelizable \\
  --execute-optimal

Resource Pooling

# Pool resources across repos
npx ruv-swarm github resource-pool \\
  --share-agents \\
  --distribute-load \\
  --monitor-usage

Troubleshooting

Connectivity Issues

# Diagnose connectivity problems
npx ruv-swarm github diagnose-connectivity \\
  --test-all-repos \\
  --check-permissions \\
  --verify-webhooks

Memory Synchronization

# Debug memory sync issues
npx ruv-swarm github debug-memory \\
  --check-consistency \\
  --identify-conflicts \\
  --repair-state

Performance Bottlenecks

# Identify performance issues
npx ruv-swarm github perf-analysis \\
  --profile-operations \\
  --identify-bottlenecks \\
  --suggest-optimizations

Examples

Full-Stack Application Update

# Update full-stack application
npx ruv-swarm 
github fullstack-update \\
  --frontend "org$web-app" \\
  --backend "org$api-server" \\
  --database "org$db-migrations" \\
  --coordinate-deployment

Cross-Team Collaboration

# Facilitate cross-team work
npx ruv-swarm github cross-team \\
  --teams "frontend,backend,devops" \\
  --task "implement-feature-x" \\
  --assign-by-expertise \\
  --track-progress

See also: swarm-pr.md, project-board-sync.md3d:[“ " , " "," ","L40”,null,{“content”:“$41”,“frontMatter”:{“name”:“agent-multi-repo-swarm”,“description”:“Agent skill for multi-repo-swarm - invoke with $agent-multi-repo-swarm”}}]

3e:[“KaTeX parse error: Expected '}', got 'EOF' at end of input: …,"children":[["”,“div”,null,{“className”:“flex items-center justify-between border-b border-border bg-muted/30 px-4 py-2.5”,“children”:[[“KaTeX parse error: Expected '}', got 'EOF' at end of input: …","children":["”,“span”,null,{“className”:“truncate text-xs font-medium text-muted-foreground”,“children”:“同仓库更多 Skills”}]}],[“KaTeX parse error: Expected 'EOF', got '}' at position 88: …ldren":"同仓库"}]]}̲],["”,“div”,null,{“className”:“p-4 sm:p-5”,“children”:[[“ " , " h 2 " , n u l l , " i d " : " r e l a t e d − s k i l l s − h e a d i n g " , " c l a s s N a m e " : " t e x t − 2 x l f o n t − s e m i b o l d t r a c k i n g − n o r m a l t e x t − f o r e g r o u n d " , " c h i l d r e n " : " 同仓库更多 S k i l l s " ] , [ " ","h2",null,{"id":"related-skills-heading","className":"text-2xl font-semibold tracking-normal text-foreground","children":"同仓库更多 Skills"}],[" ","h2",null,"id":"relatedskillsheading","className":"text2xlfontsemiboldtrackingnormaltextforeground","children":"同仓库更多Skills"],["”,“div”,null,{“className”:“mt-4 grid gap-3 sm:grid-cols-2”,“children”:[“ L 42 " , " L42"," L42","L43”,“ L 44 " , " L44"," L44","L45”,“ L 46 " , " L46"," L46","L47”]}]]}]]}]

48:I[206516,[“/_next/static/chunks/051aanbhrv4br.js”,“/_next/static/chunks/0mizr60h7ayzt.js”,“/_next/static/chunks/0v9lm1dmbdoo-.js”,“/_next/static/chunks/0rxr1j1j3j-.r.js”,“/_next/static/chunks/02ftybezfvqjd.js”,“/_next/static/chunks/0.v9ksvnnj8ia.js”,“/_next/static/chunks/0bn6id96nx3k.js",“/_next/static/chunks/13ybnhn37c.tc.js”,“/_next/static/chunks/0_fnrdtruz8uf.js”,“/_next/static/chunks/0r6l15utt1mwb.js”,“/_next/static/chunks/0dm9a5into854.js”,"/_next/static/chunks/07k6hqoibtcn.js”,“/next/static/chunks/0b4cao.4y…j.js”,“/_next/static/chunks/02i-n28z7kjd0.js”],“default”]

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐