| name | cmux-orchestrate |
| description | cmux 기반 멀티-AI 팀 오케스트레이션. cmux 워크스페이스에 Claude/Gemini/Codex를 독립 프로세스로 배치해 물리적 다중 레벨 팀을 구성합니다. Agent Teams API 없이 진짜 병렬 실행. 이기종 AI 팀 구성, 사이드바 실시간 모니터링, 동적 팀 확장/축소 지원. "/cmux-orchestrate", "cmux로 팀 실행", "멀티 AI 팀", "gemini codex claude 병렬 실행" 등 cmux 환경에서 여러 AI를 팀으로 구성하는 요청이라면 반드시 이 스킬을 사용하세요. |
| triggers | ["/cmux-orchestrate","cmux 팀","cmux로 팀 실행","멀티 AI 팀","이기종 AI 팀"] |
| version | 1.0.0 |
/cmux-orchestrate — cmux 기반 멀티-AI 팀 오케스트레이션
team-orchestrate와의 차이: Agent Teams API(flat) 대신 cmux 워크스페이스(물리 계층)를 사용.
L1 리드가 자신의 L2 워커를 직접 스폰 → 진짜 3-Level 독립 프로세스.
아키텍처
현재 Claude 세션 (Level 0: team-lead)
│ 모니터링: cmux sidebar + .claude/collab/reports/
│
├─ cmux workspace "arch-lead" (Level 1)
│ process: claude or codex
│ 스폰: backend-builder 워크스페이스를 직접 생성
│ └─ cmux workspace "backend-builder" (Level 2)
│
├─ cmux workspace "design-lead" (Level 1)
│ process: gemini or claude
│ 스폰: frontend-builder 워크스페이스를 직접 생성
│ └─ cmux workspace "frontend-builder" (Level 2)
│
└─ cmux workspace "qa-lead" (Level 1)
process: claude
핵심 원칙: 각 에이전트는 독립 프로세스 → 컨텍스트 격리 + 진짜 병렬
Prerequisites
cmux ping || { echo "cmux 필요"; exit 1; }
[ -f TASKS.md ] || { echo "/tasks-init로 먼저 생성"; exit 1; }
export CMUX_SOCKET_MODE=allowAll
기본 AI 라우팅
| 역할 | 기본 AI | 이유 |
|---|
| team-lead | claude | 전략, 조율, 판단 |
| arch-lead | claude | 아키텍처 결정, 코드 리뷰 |
| backend-builder | codex | 코드 생성 최적화 |
| design-lead | gemini | 창의성, 비주얼 판단 |
| frontend-builder | gemini | UI/UX 구현 |
| qa-lead | claude | 분석적 검증 |
| reviewer | claude | 코드 리뷰, 품질 판단 |
커스터마이징: references/ai-routing.md 참조
실행 순서
Step 1: TASKS.md 분석
grep "domain:" TASKS.md | sort -u
분석 결과로 팀 토폴로지 결정:
backend 도메인 → arch-lead + backend-builder
frontend 도메인 → design-lead + frontend-builder
qa 태그 → qa-lead
- 도메인 없음 → arch-lead만
Step 2: 협업 디렉토리 초기화
mkdir -p .claude/collab/{reports,requests,decisions,contexts,inbox}
Step 3: 에이전트 컨텍스트 파일 작성
각 L1 리드용 브리핑 파일을 .claude/collab/contexts/ 에 작성.
내용: 역할, 담당 도메인 태스크 목록, 통신 규약, 워커 스폰 방법.
상세 프롬프트 템플릿: references/agent-prompts.md
Step 4: L1 리드 스폰 (병렬)
ARCH_WS=$(cmux new-workspace 2>&1 | awk '{print $2}')
cmux send --workspace $ARCH_WS "cd $(pwd)
"
cmux send --workspace $ARCH_WS \
"claude --dangerously-skip-permissions -p \"\$(cat .claude/collab/contexts/arch-lead.md)\"
"
cmux set-status "arch-lead" "starting" --icon hammer --color "#ff9500"
DESIGN_WS=$(cmux new-workspace 2>&1 | awk '{print $2}')
cmux send --workspace $DESIGN_WS "cd $(pwd)
"
cmux send --workspace $DESIGN_WS \
"gemini --yolo \"\$(cat .claude/collab/contexts/design-lead.md)\"
"
cmux set-status "design-lead" "starting" --icon brush --color "#5856d6"
QA_WS=$(cmux new-workspace 2>&1 | awk '{print $2}')
cmux send --workspace $QA_WS "cd $(pwd)
"
cmux send --workspace $QA_WS \
"claude --dangerously-skip-permissions -p \"\$(cat .claude/collab/contexts/qa-lead.md)\"
"
cmux set-status "qa-lead" "waiting" --icon checklist --color "#8e8e93"
Step 5: 모니터링 루프
team-lead는 블로킹 없이 아래를 반복 확인:
cmux sidebar-state
ls .claude/collab/reports/
ls .claude/collab/inbox/
긴급 이슈 → 리드가 cmux notify로 즉시 알림.
Step 6: 크로스 도메인 조율
리드 간 충돌/의존성 발생 시:
cmux send --workspace $ARCH_WS \
"API 스펙 변경 사항을 .claude/collab/requests/REQ-001.md 에 기록하고 design-lead에 공유
"
결정 사항 → .claude/collab/decisions/DEC-NNN.md 에 기록.
Step 7: 동적 팀 확장/축소
EXTRA_WS=$(cmux new-workspace 2>&1 | awk '{print $2}')
cmux send --workspace $ARCH_WS \
"WS=\$(cmux new-workspace 2>&1 | awk '{print \$2}') && cmux send --workspace \$WS \"cd $(pwd) && codex exec '\$(cat .claude/collab/contexts/backend-builder-2.md)'\"
"
cmux send --workspace $DONE_WS "exit
"
cmux close-workspace --workspace $DONE_WS
cmux clear-status "backend-builder"
Step 8: 종료
for WS in $ARCH_WS $DESIGN_WS $QA_WS; do
cmux send --workspace $WS "exit
"
done
cmux close-workspace --workspace $ARCH_WS
cmux close-workspace --workspace $DESIGN_WS
cmux close-workspace --workspace $QA_WS
cmux clear-status
cmux log --level success -- "Team disbanded. All tasks complete."
에이전트 내부 규약 (L1 리드 컨텍스트에 포함)
사이드바 상태 보고 (리드 → team-lead)
cmux set-status "{role}" "active" --icon hammer --color "#ff9500"
cmux set-progress 0.0 --label "{role}: starting"
cmux set-progress 0.4 --label "{role}: T1.2 in progress"
cmux set-status "{role}" "phase-1 done" --icon checkmark --color "#34c759"
cmux log --level success -- "{role}: Phase 1 complete (3/3 tasks)"
cmux set-status "{role}" "BLOCKED" --icon warning --color "#ff3b30"
cmux notify --title "{role} BLOCKED" --body "크로스 도메인 의존성 발생. team-lead 확인 필요"
파일 기반 리포트 (리드 → team-lead)
cat > .claude/collab/reports/$(date +%Y%m%d)-{role}-phase-N.md << 'EOF'
- Completed: T1.1, T1.2, T1.3
- Decisions: ADR-001 작성
- Issues: 없음
- Next: Phase 2 대기
EOF
L1 → L2 워커 스폰 (리드가 직접)
WORKER_CTX=".claude/collab/contexts/backend-builder.md"
cat > $WORKER_CTX << 'EOF'
[워커 컨텍스트 - 담당 태스크, 테스트 명령, 보고 방법]
EOF
WS=$(cmux new-workspace 2>&1 | awk '{print $2}')
cmux send --workspace $WS "cd $(pwd) && codex exec \"\$(cat $WORKER_CTX)\"
"
cmux set-status "backend-builder" "spawned" --icon gear --color "#007aff"
워커 프롬프트 템플릿: references/agent-prompts.md
team-orchestrate와 비교
| team-orchestrate | cmux-orchestrate |
|---|
| 에이전트 실행 | Agent Teams API (in-process) | 독립 프로세스 (cmux workspace) |
| 계층 구조 | 논리적 (SendMessage 프로토콜) | 물리적 (프로세스 계층) |
| 지원 AI | Claude만 | Claude + Gemini + Codex |
| 컨텍스트 | 공유 (같은 프로세스) | 격리 (독립 세션) |
| 상태 모니터링 | TaskList 폴링 | cmux sidebar 실시간 |
| 장애 격리 | 한 에이전트 문제 → 전체 영향 | 독립 프로세스 → 격리됨 |
| 요구사항 | CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS | cmux (CMUX_SOCKET_MODE=allowAll) |
Fallback
| 상황 | 동작 |
|---|
| cmux 없음 | /team-orchestrate (Agent Teams API 기반) 사용 권장 |
| codex CLI 없음 | Claude 워크스페이스가 대체 |
| gemini CLI 없음 | Claude 워크스페이스가 대체 |
| 워크스페이스 생성 실패 | 로그 기록 후 해당 역할 건너뜀 |
| Agent 타임아웃 (5분) | Claude가 직접 해당 역할 수행 |
참고 파일
| 파일 | 내용 |
|---|
references/agent-prompts.md | 각 역할별 컨텍스트 파일 템플릿 |
references/ai-routing.md | AI 모델 배정 커스터마이징 가이드 |