以下为本文档的中文说明
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 repositoriesREPOS=$(gh repo list org--limit100--jsonname,description,languages\\--jq'.[]|select(.name|test("frontend|backend|shared"))')# Get repository detailsREPO_DETAILS=$(echo"$REPOS"|jq-r'.name'|whileread-rrepo;dogh api repos$org/$repo--jq'{name, default_branch, languages, topics}'done|jq-s'.')# Initialize swarm with repository contextnpx ruv-swarm github multi-repo-init\\--repo-details"$REPO_DETAILS"\\--repos"org$frontend,org$backend,org$shared"\\--topologyhierarchical\\--shared-memory\\--sync-strategy eventual2. Repository Discovery
# Auto-discover related repositories with gh CLI# Search organization repositoriesREPOS=$(gh repo list my-organization--limit100\\--jsonname,description,languages,topics\\--jq'.[]|select(.languages|keys|contains(["TypeScript\er, tester]- name: backend url: github.com$my-org$backendrole: api agents:[architect, coder, tester]- name: shared url: github.com$my-org$sharedrole: 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 firstTRACKING_ISSUE=$(gh issue create\\--title"Dependency Update: typescript@5.0.0"\\--body"Tracking issue for updating TypeScript across all repositories"\\--label"dependencies,tracking"\\--jsonnumber-q.number)# Get all repos with TypeScriptTS_REPOS=$(gh repo list org--limit100--jsonname|jq-r'.[].name'|\\whileread-rrepo;doifgh api repos$org/$repo$contents$package.json2>$dev$null|\\jq-r'.content'|base64-d|grep-q'"typescript"';thenecho"$repo"fidone)# Update each repositoryecho"$TS_REPOS"|whileread-rrepo;do# Clone and updategh repo clone org/$repo$tmp/$repo----depth=1cd$tmp/$repo# Update dependencynpminstall--save-dev typescript@5.0.0# Test changesifnpmtest;then# Create PRgitcheckout-bupdate-typescript-5gitaddpackage.json package-lock.jsongitcommit-m"chore: Update TypeScript to 5.0.0 Part of #$TRACKING_ISSUE"gitpush origin HEAD ghprcreate\\--title"Update TypeScript to 5.0.0"\\--body"Updates TypeScript to version 5.0.0\ \ Tracking: #$TRACKING_ISSUE"\\--label"dependencies"else# Report failuregh issue comment$TRACKING_ISSUE\\--body"❌ Failed to update$repo- tests failing"ficd-doneRefactoring Operations
# Coordinate large-scale refactoringnpx ruv-swarm github multi-repo-refactor\\--pattern"rename:OldAPI->NewAPI"\\--analyze-impact\\--create-migration-guide\\--staged-rolloutSecurity Updates
# Coordinate security patchesnpx ruv-swarm github multi-repo-security\\--scan-all\\--patch-vulnerabilities\\--verify-fixes\\--compliance-reportCommunication Strategies
1. Webhook-Based Coordination
// webhook-coordinator.jsconst{MultiRepoSwarm}=require('ruv-swarm');constswarm=newMultiRepoSwarm({webhook:{url:'https:/$swarm-coordinator.example.com',secret:process.env.WEBHOOK_SECRET}});// Handle cross-repo eventsswarm.on('repo:update',async(event)=>{awaitswarm.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 coordinationkafka:brokers:['kafka1:9092','kafka2:9092']topics:swarm-events:partitions:10replication:3swarm-memory:partitions:5replication:3Advanced Features
1. Distributed Task Queue
# Create distributed task queuenpx ruv-swarm github multi-repo-queue\\--backendredis\\--workers10\\- -priority-routing\\--dead-letter-queue2. Cross-Repo Testing
# Run integration tests across reposnpx ruv-swarm github multi-repo-test\\--setup-test-env\\--link-services\\--run-e2e\\--tear-down3. Monorepo Migration
# Assist in monorepo migrationnpx ruv-swarm github to-monorepo\\--analyze-repos\\--suggest-structure\\--preserve-history\\--create-migration-prsMonitoring & Visualization
Multi-Repo Dashboard
# Launch monitoring dashboardnpx ruv-swarm github multi-repo-dashboard\\--port3000\\--metrics"agent-activity,task-progress,memory-usage"\\--real-timeDependency Graph
# Visualize repo dependenciesnpx ruv-swarm github dep-graph\\--formatmermaid\\--include-agents\\--show-data-flowHealth Monitoring
# Monitor swarm health across reposnpx ruv-swarm github health-check\\--repos"org/*"\\--check"connectivity,memory,agents"\\--alert-on-issuesSynchronization 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 developmentnpx ruv-swarm github microservices\\--services"auth,users,orders,payments"\\--ensure-compatibility\\--sync-contracts\\--integration-tests2. Library Updates
# Update shared library across consumersnpx ruv-swarm github lib-update\\--library"org$shared-lib"\\--version"2.0.0"\\--find-consumers\\--update-imports\\--run-tests3. Organization-Wide Changes
# Apply org-wide policy changesnpx ruv-swarm github org-policy\\--policy"add-security-headers"\\--repos"org/*"\\--validate-compliance\\--create-reportsBest 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 cachingnpx ruv-swarm github cache-strategy\\--analyze-patterns\\--suggest-cache-layers\\--implement-invalidationParallel Execution
# Optimize parallel operationsnpx ruv-swarm github parallel-optimize\\--analyze-dependencies\\--identify-parallelizable\\--execute-optimalResource Pooling
# Pool resources across reposnpx ruv-swarm github resource-pool\\--share-agents\\--distribute-load\\--monitor-usageTroubleshooting
Connectivity Issues
# Diagnose connectivity problemsnpx ruv-swarm github diagnose-connectivity\\--test-all-repos\\--check-permissions\\--verify-webhooksMemory Synchronization
# Debug memory sync issuesnpx ruv-swarm github debug-memory\\--check-consistency\\--identify-conflicts\\--repair-statePerformance Bottlenecks
# Identify performance issuesnpx ruv-swarm github perf-analysis\\--profile-operations\\--identify-bottlenecks\\--suggest-optimizationsExamples
Full-Stack Application Update
# Update full-stack applicationnpx ruv-swarm github fullstack-update\\--frontend"org$web-app"\\--backend"org$api-server"\\--database"org$db-migrations"\\--coordinate-deploymentCross-Team Collaboration
# Facilitate cross-team worknpx ruv-swarm github cross-team\\--teams"frontend,backend,devops"\\--task"implement-feature-x"\\--assign-by-expertise\\--track-progressSee 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":"related−skills−heading","className":"text−2xlfont−semiboldtracking−normaltext−foreground","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”]