Multi Team Coding

SkillDB 作者 longfer v1.0.0

完整的 AI 驱动编程工作流。包含:(1) 多团队并行开发(OpenClaw + Claude Code/Codex/OpenCode),(2) 一人公司模式(单日 90+ 提交),(3) Playwright 自动化测试(E2E/API/视觉/性能),(4) 自动 PR 管理和合并。适用于独立开发者、初创团队、开源项目维护。

源码 ↗

安装 / 下载方式

TotalClaw CLI推荐
totalclaw install skilldb:longfer~multi-team-coding
cURL直接下载,无需登录
curl -fsSL https://skills.taituai.com/api/skills/skilldb%3Alongfer~multi-team-coding/file -o multi-team-coding.md
Git 仓库获取源码
git clone https://github.com/openclaw/skills/commit/a99d241aca0c35560fecfcd42324df2a7a84f675
# AI 驱动编程工作流

完整的自动化编程解决方案,从任务分配到测试、部署全流程自动化。

## 📚 目录

1. [多团队并行开发](#多团队并行开发)
2. [一人公司模式](#一人公司模式)
3. [Playwright 自动化测试](#playwright-自动化测试)
4. [快速开始](#快速开始)
5. [完整示例](#完整示例)

---

# 多团队并行开发

基于 OpenClaw + OpenCode 的自主工程团队模式,通过主 agent 编排多个 coding agent 并行工作,实现代码自动化。

## 核心理念

**编排器模式(Orchestrator Pattern)**:
- 主 agent(你)作为编排器,负责任务分解、分配和协调
- 多个 coding agent(Claude Code/Codex/OpenCode)作为工作团队
- 每个团队在独立的 git worktree 中工作,互不干扰
- 自动追踪进度、处理依赖、合并结果

**关键优势**:
- 并行执行,速度提升 2-5 倍
- 智能任务分解,自动识别依赖关系
- 实时进度监控,异常自动告警
- 自动冲突检测和解决建议

## 架构设计

```
主 Agent(编排器)
    ├── 任务分析器:分解需求为独立子任务
    ├── 任务调度器:分配任务给可用团队
    ├── 进度监控器:实时追踪各团队状态
    ├── 冲突检测器:识别潜在代码冲突
    └── 结果集成器:合并各团队成果

工作团队(Coding Agents)
    ├── Team A: 独立 worktree + coding agent
    ├── Team B: 独立 worktree + coding agent
    ├── Team C: 独立 worktree + coding agent
    └── Team N: 独立 worktree + coding agent
```

## 工作流程

### 1. 智能任务分解

主 agent 分析用户需求,自动识别:
- 独立模块(可并行)
- 依赖关系(需串行)
- 共享资源(需协调)
- 优先级排序

```bash
# 示例:构建电商系统
任务树:
├── [P0] 数据库设计(基础,其他依赖)
├── [P1] 并行组
│   ├── Team A: 用户认证模块
│   ├── Team B: 商品管理 API
│   └── Team C: 订单系统
└── [P2] 前端集成(依赖 P1 完成)
```

### 2. 动态工作空间创建

为每个团队自动创建隔离的工作环境:

```bash
# 主项目目录
PROJECT_ROOT=$(pwd)
WORKSPACE_BASE=/tmp/multi-team-$(date +%s)

# 创建任务状态追踪文件
cat > $WORKSPACE_BASE/status.json << 'EOF'
{
  "project": "电商系统",
  "started": "2026-03-09T07:00:00Z",
  "teams": {},
  "dependencies": {}
}
EOF

# 为每个团队创建 worktree
create_team_workspace() {
  local team_name=$1
  local task_desc=$2
  local branch_name="team-${team_name}"
  local work_dir="${WORKSPACE_BASE}/${team_name}"
  
  git worktree add -b $branch_name $work_dir main
  
  # 记录团队信息
  echo "{\"status\": \"created\", \"task\": \"$task_desc\", \"dir\": \"$work_dir\"}" \
    > $WORKSPACE_BASE/teams/${team_name}.json
}
```

### 3. 启动工作团队

使用统一的启动模板,支持多种 coding agent:

```bash
# 启动函数(支持 Claude Code/Codex/OpenCode)
start_team() {
  local team_name=$1
  local agent_type=$2  # claude, codex, opencode
  local task_prompt=$3
  local work_dir="${WORKSPACE_BASE}/${team_name}"
  
  # 构建完整提示词
  local full_prompt="
【团队】: $team_name
【任务】: $task_prompt

【要求】:
1. 遵循项目代码规范(参考 .editorconfig)
2. 编写单元测试(覆盖率 > 80%)
3. 更新相关文档
4. 提交前运行 lint 和 format
5. 提交信息格式:feat($team_name): 简短描述

【完成标准】:
- 所有测试通过
- 代码审查通过
- 文档完整

【完成后执行】:
git add . && git commit -m 'feat($team_name): 完成任务'
openclaw system event --text '✅ $team_name 完成:$task_prompt' --mode now
"

  # 根据 agent 类型选择命令
  case $agent_type in
    claude)
      bash pty:true workdir:$work_dir background:true \
        command:"claude '$full_prompt'"
      ;;
    codex)
      bash pty:true workdir:$work_dir background:true \
        command:"codex exec --full-auto '$full_prompt'"
      ;;
    opencode)
      bash pty:true workdir:$work_dir background:true \
        command:"opencode run '$full_prompt'"
      ;;
  esac
  
  # 记录 session ID
  echo $! > $WORKSPACE_BASE/teams/${team_name}.pid
}

# 示例:启动多个团队
start_team "auth" "claude" "实现用户认证模块:注册、登录、JWT、密码加密"
start_team "products" "codex" "实现商品管理 API:CRUD、分类、搜索、库存"
start_team "orders" "opencode" "实现订单系统:创建、支付、状态管理、历史"
```

### 4. 实时进度监控

主 agent 持续监控各团队状态:

```bash
# 监控脚本
monitor_teams() {
  local workspace=$1
  
  while true; do
    echo "=== 团队状态 $(date +%H:%M:%S) ==="
    
    for team_file in $workspace/teams/*.json; do
      team_name=$(basename $team_file .json)
      pid_file="$workspace/teams/${team_name}.pid"
      
      if [ -f "$pid_file" ]; then
        pid=$(cat $pid_file)
        
        # 检查进程状态
        if ps -p $pid > /dev/null; then
          # 获取最新输出
          process action:log sessionId:$pid limit:5
          echo "  [$team_name] 🟢 运行中"
        else
          echo "  [$team_name] ✅ 已完成"
        fi
      fi
    done
    
    echo ""
    sleep 30
  done
}

# 后台启动监控
monitor_teams $WORKSPACE_BASE &
MONITOR_PID=$!
```

### 5. 智能冲突检测

在合并前自动检测潜在冲突:

```bash
# 冲突检测函数
detect_conflicts() {
  local workspace=$1
  local conflicts=()
  
  echo "🔍 检测潜在冲突..."
  
  # 收集所有团队修改的文件
  declare -A file_teams
  
  for team_dir in $workspace/*/; do
    team_name=$(basename $team_dir)
    
    # 获取该团队修改的文件
    cd $team_dir
    modified_files=$(git diff --name-only main)
    
    for file in $modified_files; do
      if [ -n "${file_teams[$file]}" ]; then
        conflicts+=("⚠️  冲突:$file 被 ${file_teams[$file]} 和 $team_name 同时修改")
      else
        file_teams[$file]=$team_name
      fi
    done
  done
  
  # 报告冲突
  if [ ${#conflicts[@]} -gt 0 ]; then
    echo "❌ 发现 ${#conflicts[@]} 个潜在冲突:"
    printf '%s\n' "${conflicts[@]}"
    return 1
  else
    echo "✅ 无冲突,可以安全合并"
    return 0
  fi
}
```

### 6. 自动结果集成

智能合并各团队成果:

```bash
# 集成函数
integrate_results() {
  local workspace=$1
  local project_root=$2
  
  cd $project_root
  
  echo "🔄 开始集成各团队成果..."
  
  # 按依赖顺序合并
  local merge_order=("auth" "products" "orders" "frontend")
  
  for team_name in "${merge_order[@]}"; do
    echo "  合并 $team_name..."
    
    # 合并分支
    if git merge --no-ff team-${team_name} -m "feat: 集成 $team_name 模块"; then
      echo "  ✅ $team_name 合并成功"
    else
      echo "  ❌ $team_name 合并失败,需要手动解决"
      git merge --abort
      
      # 调用 AI 辅助解决冲突
      bash pty:true command:"claude '解决以下合并冲突:
$(git diff --name-only --diff-filter=U)

要求:
1. 分析冲突原因
2. 保留正确的代码
3. 确保功能完整
4. 提交解决方案
'"
      return 1
    fi
  done
  
  echo "✅ 所有模块集成完成"
}
```

### 7. 自动化测试验证

集成后自动运行测试套件:

```bash
# 验证函数
validate_integration() {
  local project_root=$1
  
  cd $project_root
  
  echo "🧪 运行集成测试..."
  
  # 安装依赖
  if [ -f "package.json" ]; then
    npm install
  elif [ -f "requirements.txt" ]; then
    pip install -r requirements.txt
  fi
  
  # 运行测试
  if npm test; then
    echo "✅ 所有测试通过"
    return 0
  else
    echo "❌ 测试失败,回滚集成"
    git reset --hard HEAD~1
    return 1
  fi
}
```

---

# 一人公司模式

基于 Elvis Sun 的实战经验:**单日 94 次提交,30 分钟合并 7 个 PR,完全不打开编辑器**。

## 核心理念

**本地优先 + 自动化 + 批量处理**

- AI 跑在本地,不依赖云端网页
- 不需要一直盯着屏幕
- 不需要频繁点击权限弹窗
- 让 AI 团队自主工作,你只需要审查结果

## 快速启动

```bash
cd your-project
bash ~/.openclaw/workspace/skills/multi-team-coding/examples/one-person-company.sh
```

详细文档:[ONE-PERSON-COMPANY.md](./ONE-PERSON-COMPANY.md)

---

# Playwright 自动化测试

基于 Claude Code + Playwright CLI 实现端到端测试自动化。

## 核心优势

- **高效**:26K tokens vs 114K tokens (MCP)
- **可靠**:基于可访问性树,不依赖截图
- **并行**:多浏览器、多测试同时运行
- **持久化**:保存认证状态,避免重复登录

## 快速启动

```bash
cd your-project
bash ~/.openclaw/workspace/skills/multi-team-coding/examples/playwright-test-workflow.sh
```

详细文档:[PLAYWRIGHT-AUTOMATION.md](./PLAYWRIGHT-AUTOMATION.md)

---

# 快速开始

## 场景 1:批量修复 Bug

```bash
# 自动从 GitHub Issues 获取所有 bug
# 并行启动多个 Claude Code 团队修复
cd your-project
bash ~/.openclaw/workspace/skills/multi-team-coding/examples/claude-code-teams.sh 5
```

## 场景 2:开发新功能 + 自动测试

```bash
# 1. 开发功能
bash ~/.openclaw/workspace/skills/multi-team-coding/examples/claude-code-teams.sh

# 2. 生成并运行测试
bash ~/.openclaw/workspace/skills/multi-team-coding/examples/playwright-test-workflow.sh
```

## 场景 3:一人公司全自动模式

```bash
# 早上启动,下午收获
bash ~/.openclaw/workspace/skills/multi-team-coding/examples/one-person-company.sh
```

---

# 完整示例

## 电商系统开发(端到端)

```bash
#!/bin/bash
# 完整的电商系统开发流程

PROJECT_ROOT=~/Projects/ecommerce
cd $PROJECT_ROOT

echo "🚀 启动电商系统开发"

# 1. 并行开发核心功能
echo "📝 Step 1: 并行开发功能模块..."
bash ~/.openclaw/workspace/skills/multi-team-coding/examples/claude-code-teams.sh 5

# 等待开发完成
echo "⏳ 等待开发完成..."
wait

# 2. 生成自动化测试
echo "🧪 Step 2: 生成自动化测试..."
bash ~/.openclaw/workspace/skills/multi-team-coding/examples/playwright-test-workflow.sh << EOF
1
EOF

# 等待测试生成
wait

# 3. 运行测试
echo "🚀 Step 3: 运行测试..."
bash ~/.openclaw/workspace/skills/multi-team-coding/examples/playwright-test-workflow.sh << EOF
2
EOF

# 4. 自动合并 PR
echo "🔄 Step 4: 合并通过的 PR..."
gh pr list --state open --json number,statusCheckRollup | \
  jq -r '.[] | select(.statusCheckRollup[0].state == "SUCCESS") | .number' | \
  while read pr; do
    gh pr merge $pr --squash --delete-branch
  done

echo "🎉 完成!"
echo "📊 查看报告:"
echo "  - 开发报告: /tmp/claude-teams-*/report-*.md"
echo "  - 测试报告: playwright-report/index.html"
```

--