跳到主要内容

team 精选

N coordinated agents on shared task list using Claude Code implicit agent teams

在 GitHub 打开

安装方式

cp -r skills/team ~/.claude/skills/team

把该 skill 目录放进客户端 skills 目录。不同客户端的目录可能不同,Claude Code 默认是 ~/.claude/skills/

整仓一次性获取:git clone --depth 1 https://github.com/Yeachan-Heo/oh-my-claudecode.git

依赖与权限

  • 需要 API Key —— 使用前需配置相应的密钥环境变量
  • 需要联网访问外部服务
  • 依赖外部命令:git node npm go make
  • 以上为按正文与 frontmatter 自动推断的信号,仅供参考;安装前建议先阅读原文。

SKILL.md 正文

来源 Yeachan-Heo/oh-my-claudecode@8262f9f · 许可 MIT · 内容未修改

Team Skill

Spawn N coordinated agents working on a shared task list using Claude Code's implicit agent team. Claude Code 2.1.178+ removed native TeamCreate/TeamDelete; with CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1, each session has one implicit team and teammates are spawned directly with the Agent/Task tool using distinct name values. This skill still preserves OMC's legacy tmux/CLI worker orchestration where documented (omc team / /omc-teams). The implicit team and omc team do not share a result: one finishing does not make the other succeed.

The swarm compatibility alias was removed in #1131.

Usage

/oh-my-claudecode:team N:agent-type "task description"
/oh-my-claudecode:team "task description"
/oh-my-claudecode:team ralph "task description"

Parameters

  • N - Number of teammate agents (1-20). Optional; defaults to auto-sizing based on task decomposition.
  • agent-type - OMC agent to spawn for the team-exec stage (e.g., executor, debugger, designer, codex, gemini, antigravity). Optional; defaults to stage-aware routing. Use codex to spawn Codex CLI workers, gemini for Gemini CLI workers (enterprise/API-key tier), or antigravity for Antigravity CLI (agy) workers (Google's successor to the Gemini CLI; requires respective CLIs installed). See Stage Agent Routing below.
  • task - High-level task to decompose and distribute among teammates
  • ralph - Optional modifier. When present, wraps the team pipeline in Ralph's persistence loop (retry on failure, architect verification before completion). See Team + Ralph Composition below.

Examples

/team 5:executor "fix all TypeScript errors across the project"
/team 3:debugger "fix build errors in src/"
/team 4:designer "implement responsive layouts for all page components"
/team "refactor the auth module with security review"
/team ralph "build a complete REST API for user management"
# With Codex CLI workers (requires: npm install -g @openai/codex)
/team 2:codex "review architecture and suggest improvements"
# With Gemini CLI workers (requires: npm install -g @google/gemini-cli)
/team 2:gemini "redesign the UI components"
# With Antigravity CLI workers (requires: install per https://antigravity.google)
/team 2:antigravity "redesign the UI components"
# Mixed: Codex for backend analysis, Gemini/Antigravity for frontend (delegate per-task with /oh-my-claudecode:ask)

Architecture

User: "/team 3:executor fix all TypeScript errors"
              |
              v
      [TEAM ORCHESTRATOR (Lead)]
              |
              +-- Use the session's implicit Claude Code team
              |       -> no TeamCreate call; lead remains current session
              |
              +-- Analyze & decompose task into subtasks
              |       -> explore/architect produces subtask list
              |
              +-- Create task list entries from the implementation plan
              |       -> TODO/task entries #1, #2, #3 with dependencies
              |
              +-- Update task-list entries (pre-assign owners)
              |       -> task #1 owner=worker-1, etc.
              |
              +-- Task(name="worker-1") x 3
              |       -> spawns teammates into the team
              |
              +-- Monitor loop
              |       <- teammate messages (auto-delivered by the active team surface)
              |       -> task-list/TodoWrite review for progress
              |       -> message teammates through the active team surface to unblock/coordinate
              |
              +-- Completion
                      -> request shutdown from each teammate through the active team surface
                      <- shutdown acknowledgement from teammates
                      -> state_clear(mode="team", session_id="<current_session_id>")
                      -> preserve shared/legacy state for explicit --all cleanup

Native Claude Code team model (2.1.178+):

- No per-team ~/.claude/teams/<name>/ directory is created by this skill.
- No TeamCreate/TeamDelete calls are available.
- `team_name` is accepted by native Claude Code only as ignored legacy metadata; do not rely on it for routing.
- Spawn teammates directly via Agent/Task with `name="worker-N"`.

Goal Workflow Relationship

Team is the OMC authority for parallel, staged execution. Use the deterministic conflict policies refuse, adopt_existing, and artifact_only rather than non-deterministic warning handling. If a task mentions Claude Code /goal, Ralph, or artifact-only Ultragoal, keep Team as the primary loop authority unless the leader explicitly hands off. Use /goal only as a documented native Claude Code handoff target or as visible evidence from the lead session; do not claim the /goal evaluator independently runs commands, reads files, or replaces team-verify / team-fix. Artifact-only Ultragoal references should be treated as durable goal ledger/checkpoint/evidence artifacts, not as worker execution by themselves.

Staged Pipeline (Canonical Team Runtime)

Team execution follows a staged pipeline:

team-plan -> team-prd -> team-exec -> team-verify -> team-fix (loop)

Stage Agent Routing

Each pipeline stage uses specialized agents -- not just executors. The lead selects agents based on the stage and task characteristics.

StageRequired AgentsOptional AgentsSelection Criteria
team-planexplore (haiku), planner (opus)analyst (opus), architect (opus)Use analyst for unclear requirements. Use architect for systems with complex boundaries.
team-prdanalyst (opus)critic (opus)Use critic to challenge scope.
team-execexecutor (sonnet)executor (opus), debugger (sonnet), designer (sonnet), writer (haiku), test-engineer (sonnet)Match agent to subtask type. Use executor (model=opus) for complex autonomous work, designer for UI, debugger for compilation issues, writer for docs, test-engineer for test creation.
team-verifyverifier (sonnet)test-engineer (sonnet), security-reviewer (sonnet), code-reviewer (opus)Always run verifier. Add security-reviewer for auth/crypto changes. Add code-reviewer for >20 files or architectural changes. code-reviewer also covers style/formatting checks.
team-fixexecutor (sonnet)debugger (sonnet), executor (opus)Use debugger for type/build errors and regression isolation. Use executor (model=opus) for complex multi-file fixes.

Routing rules:

  1. The lead picks agents per stage, not the user. The user's N:agent-type parameter only overrides the team-exec stage worker type. All other stages use stage-appropriate specialists.
  2. Specialist agents complement executor agents. Route analysis/review to architect/critic Claude agents and UI work to designer agents. Tmux CLI workers do not participate in Claude's native team messaging.
  3. Cost mode affects model tier. In downgrade: opus agents to sonnet, sonnet to haiku where quality permits. team-verify always uses at least sonnet.
  4. Risk level escalates review. Security-sensitive or >20 file changes must include security-reviewer + code-reviewer (opus) in team-verify.

Stage Entry/Exit Criteria

  • team-plan
  • Entry: Team invocation is parsed and orchestration starts.
  • Agents: explore scans codebase, planner creates task graph, optionally analyst/architect for complex tasks.
  • Exit: decomposition is complete and a runnable task graph is prepared.
  • team-prd
  • Entry: scope is ambiguous or acceptance criteria are missing.
  • Agents: analyst extracts requirements, optionally critic.
  • Exit: acceptance criteria and boundaries are explicit.
  • team-exec
  • Entry: task list assignment and worker spawn are complete.
  • Agents: workers spawned as the appropriate specialist type per subtask (see routing table).
  • Exit: execution tasks reach terminal state for the current pass.
  • team-verify
  • Entry: execution pass finishes.
  • Agents: verifier + task-appropriate reviewers (see routing table).
  • Exit (pass): verification gates pass with no required follow-up.
  • Exit (fail): fix tasks are generated and control moves to team-fix.
  • team-fix
  • Entry: verification found defects/regressions/incomplete criteria.
  • Agents: executor/debugger depending on defect type.
  • Exit: fixes are complete and flow returns to team-exec then team-verify.

Verify/Fix Loop and Stop Conditions

Continue team-exec -> team-verify -> team-fix until:

  1. verification passes and no required fix tasks remain, or
  2. work reaches an explicit terminal blocked/failed outcome with evidence.

team-fix is bounded by max attempts. If fix attempts exceed the configured limit, transition to terminal failed (no infinite loop).

Run closeout (either terminal outcome). Before /oh-my-claudecode:cancel state cleanup, append at most three factual lines to .omc/notepads/team/problems.md (blockers additionally in .omc/notepads/team/issues.md) — what broke (defects that survived a fix round, three-strike halts) and what dragged (worker environment friction, missing checks, unreachable information). Preserve existing entries: append only and never replace the shared file. If there are no observations, append nothing; an empty closeout is valid, so do not write “no lessons.” Observations only; landing them on repo surfaces is refit's job, with the user's approval. For a terminal failed outcome, also draft an incident work item with the failure signature, evidence pointers, and reopen path; append it to the local .omc/notepads/team/issues.md. Post it to a tracker only when the user or mode invocation explicitly authorizes that external action.

Stage Handoff Convention

When transitioning between stages, important context — decisions made, alternatives rejected, risks identified — lives only in the lead's conversation history. If the lead's context compacts or agents restart, this knowledge is lost.

Each completing stage MUST produce a handoff document before transitioning.

The lead writes handoffs to .omc/handoffs/<stage-name>.md.

Handoff Format

## Handoff: <current-stage> → <next-stage>

- **Decided**: [key decisions made in this stage]
- **Rejected**: [alternatives considered and why they were rejected]
- **Risks**: [identified risks for the next stage]
- **Files**: [key files created or modified]
- **Remaining**: [items left for the next stage to handle]

Handoff Rules

  1. Lead reads previous handoff BEFORE spawning next stage's agents. The handoff content is included in the next stage's agent spawn prompts, ensuring agents start with full context.
  2. Handoffs accumulate. The verify stage can read all prior handoffs (plan → prd → exec) for full decision history.
  3. On team cancellation, handoffs survive in .omc/handoffs/ for session resume. They are not deleted by native Claude Code team cleanup; no TeamDelete call exists in Claude Code 2.1.178+.
  4. Handoffs are lightweight. 10-20 lines max. They capture decisions and rationale, not full specifications (those live in deliverable files like DESIGN.md).

Example

## Handoff: team-plan → team-exec

- **Decided**: Microservice architecture with 3 services (auth, api, worker). PostgreSQL for persistence. JWT for auth tokens.
- **Rejected**: Monolith (scaling concerns), MongoDB (team expertise is SQL), session cookies (API-first design).
- **Risks**: Worker service needs Redis for job queue — not yet provisioned. Auth service has no rate limiting in initial design.
- **Files**: DESIGN.md, TEST_STRATEGY.md
- **Remaining**: Database migration scripts, CI/CD pipeline config, Redis provisioning.

Resume and Cancel Semantics

  • Resume: restart from the last non-terminal stage using staged state + live task status. Read .omc/handoffs/ to recover stage transition context.
  • Cancel: use the authoritative flow in

skills/cancel/SKILL.md; do not duplicate its flag, scope, or state-cleanup

rules here. Handoff files in .omc/handoffs/ are preserved for resume.

  • Terminal states are complete, failed, and cancelled.

Windows psmux tmux-compatible gate

On native Windows, do not tell users that /team requires WSL or that tmux is unavailable until the actual tmux-compatible binary has been checked. Native psmux installs a tmux-compatible command (often tmux / tmux.cmd) and is a supported Team multiplexer.

Before blocking or falling back on Windows:

  1. Check tmux -V (or the platform equivalent such as where tmux followed by tmux -V).
  2. Treat a successful psmux-backed tmux -V as tmux available.
  3. If psmux/tmux is available, continue the normal Team flow; do not emit WSL-required guidance.
  4. Only when no tmux-compatible binary is available, tell the user to install psmux for native Windows support or use WSL2 as an alternative.

Workflow

Resume Check (Before Initialization)

Resolve the current session identity from the invocation context before touching Team state. In CLI contexts, OMC_SESSION_ID is authoritative; in hook contexts, the payload's session_id is authoritative. When an identity is available, pass it explicitly and consistently:

state_read(mode="team", session_id="<current_session_id>")

state_read without session_id reads legacy/aggregate state and may include other sessions. Never select or resume a Team from an unscoped aggregate response. If no identity is available, use only an explicitly identified legacy state; never infer ownership from session entries in an aggregate response.

Read existing session state before deriving a slug, decomposing work, or writing/initializing state. If active=true and current_phase is non-terminal, resume the recorded stage using the existing handoffs and task-list state for that Team. Preserve team_name, current_phase, fix_loop_count, max_fix_loops, stage_history, and all other existing Team state fields, including worker/task/launch-attempt records. Use the same session_id on every subsequent state_write and state_clear, applying only partial updates under the existing state lock. Do not run the new-team initialization below, derive a replacement slug, create duplicate tasks, spawn duplicate workers, or repeat launch attempts.

If state is malformed, unreadable, or otherwise corrupt, report the diagnostic and preserve the original bytes. Do not replace, clear, initialize, or treat it as a new run.

The following initialization phases apply only to a new run with no active, scoped state.

Phase 1: Parse Input

  • Extract N (agent count), validate 1-20
  • Extract agent-type, validate it maps to a known OMC subagent
  • Extract task description

Phase 2: Analyze & Decompose

Use explore or architect (via MCP or agent) to analyze the codebase and break the task into N subtasks:

  • Each subtask should be file-scoped or module-scoped to avoid conflicts
  • Subtasks must be independent or have clear dependency ordering
  • Each subtask needs a concise subject and detailed description
  • Identify dependencies between subtasks (e.g., "shared types must be fixed before consumers")

Phase 3: Initialize Team State

Use the session's implicit Claude Code team. Do not call TeamCreate; Claude Code 2.1.178+ removed that tool and automatically gives the session one implicit team when CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 is enabled.

Derive a slug such as fix-ts-errors for OMC state, prompt labels, handoffs, and human-readable reporting only. Native Claude Code may accept team_name as legacy metadata, but it is ignored for routing.

Write OMC state using the state_write MCP tool for proper session-scoped persistence:

Use the same resolved session_id from the Resume Check for this and every later Team state call; if no identity is available, use only the explicitly identified legacy state described above.

state_write(mode="team", session_id="<current_session_id>", active=true, current_phase="team-plan", state={
  "team_name": "fix-ts-errors",
  "agent_count": 3,
  "agent_types": "executor",
  "task": "fix all TypeScript errors",
  "fix_loop_count": 0,
  "max_fix_loops": 3,
  "linked_ralph": false,
  "stage_history": "team-plan"
})
Note: The MCP state_write tool transports all values as strings. Consumers must coerce agent_count, fix_loop_count, max_fix_loops to numbers and linked_ralph to boolean when reading state.

State schema fields:

FieldTypeDescription
activebooleanWhether team mode is active
current_phasestringCurrent pipeline stage: team-plan, team-prd, team-exec, team-verify, team-fix
team_namestringOMC slug for state, handoffs, and reporting; ignored by native Claude Code routing
agent_countnumberNumber of worker agents
agent_typesstringComma-separated agent types used in team-exec
taskstringOriginal task description
fix_loop_countnumberCurrent fix iteration count
max_fix_loopsnumberMaximum fix iterations before failing (default: 3)
linked_ralphbooleanWhether team is linked to a ralph persistence loop
stage_historystringComma-separated list of stage transitions with timestamps

Update state on every stage transition:

state_write(mode="team", session_id="<current_session_id>", current_phase="team-exec", state={
  "stage_history": "team-plan:2026-02-07T12:00:00Z,team-prd:2026-02-07T12:01:00Z,team-exec:2026-02-07T12:02:00Z"
})

Phase 4: Create Tasks

Create task list entries for each subtask using TodoWrite or the active task-list surface. Task-list tools are for tracking only; they do not create native teams.

// Task-list entry for subtask 1
{
  "subject": "Fix type errors in src/auth/",
  "description": "Fix all TypeScript errors in src/auth/login.ts, src/auth/session.ts, and src/auth/types.ts. Run tsc --noEmit to verify.",
  "activeForm": "Fixing auth type errors"
}

Response stores a task file (e.g. 1.json):

{
  "id": "1",
  "subject": "Fix type errors in src/auth/",
  "description": "Fix all TypeScript errors in src/auth/login.ts...",
  "activeForm": "Fixing auth type errors",
  "owner": "",
  "status": "pending",
  "blocks": [],
  "blockedBy": []
}

For tasks with dependencies, update the active task-list entries after creation:

// Task #3 depends on task #1 (shared types must be fixed first)
{
  "taskId": "3",
  "addBlockedBy": ["1"]
}

Pre-assign owners from the lead to avoid race conditions (there is no atomic claiming):

// Assign task #1 to worker-1
{
  "taskId": "1",
  "owner": "worker-1"
}

Phase 5: Spawn Teammates

Spawn N teammates directly using the Agent/Task tool with distinct name values. Each teammate gets the team worker preamble (see below) plus their specific assignment. Do not call TeamCreate, and do not rely on team_name; Claude Code 2.1.178+ ignores it for native routing.

{
  "subagent_type": "oh-my-claudecode:executor",
  "name": "worker-1",
  "prompt": "<worker-preamble + assigned tasks>"
}

Response:

{
  "agent_id": "worker-1",
  "name": "worker-1"
}

Side effects:

  • Teammate is spawned into the session's implicit Claude Code team
  • An internal task is auto-created (with metadata._internal: true) tracking the agent lifecycle
  • Internal tasks may appear in task-list output -- filter them when counting real tasks

IMPORTANT: Spawn all teammates in parallel (they are background agents). Do NOT wait for one to finish before spawning the next.

Phase 6: Monitor

The lead orchestrator monitors progress through two channels:

  1. Inbound messages -- Teammates message team-lead when they complete tasks or need help. These arrive through the active team/conversation surface.
  1. Task-list polling/review -- Periodically check TodoWrite or the active task-list surface for overall progress:
   #1 [completed] Fix type errors in src/auth/ (worker-1)
   #3 [in_progress] Fix type errors in src/api/ (worker-2)
   #5 [pending] Fix type errors in src/utils/ (worker-3)

Format: #ID [status] subject (owner)

Coordination actions the lead can take:

  • Unblock a teammate: Send a message with guidance or missing context through the active team surface
  • Reassign work: If a teammate finishes early, update the task-list entry to assign pending work to them and notify through the active team surface
  • Handle failures: If a teammate reports failure, reassign the task or spawn a replacement

Task Watchdog Policy

Monitor for stuck or failed teammates:

  • Max in-progress age: If a task stays in_progress for more than 5 minutes without messages, send a status check
  • Suspected dead worker: No messages + stuck task for 10+ minutes → reassign task to another worker
  • Reassign threshold: If a worker fails 2+ tasks, stop assigning new tasks to it

Phase 6.5: Stage Transitions (State Persistence)

On every stage transition, update OMC state:

// Entering team-exec after planning
state_write(mode="team", session_id="<current_session_id>", current_phase="team-exec", state={
  "stage_history": "team-plan:T1,team-prd:T2,team-exec:T3"
})

// Entering team-verify after execution
state_write(mode="team", session_id="<current_session_id>", current_phase="team-verify")

// Entering team-fix after verify failure
state_write(mode="team", session_id="<current_session_id>", current_phase="tea

质量与来源

所属仓库
Yeachan-Heo/oh-my-claudecode
仓库星标
4.0 万
最近更新
今天
采集时间
今天
commit
8262f9f790ee
内容指纹
sha256:c3d1f030a23320b
文件路径
skills/team/SKILL.md

同仓库其它 Skill

查看全部 48 个
agent-doc-discipline
Writing-time discipline for documents agents consume (the five surfaces, specs, tickets, .omc/skills/) — every rule checkable and carrying a why, steps before reference, one meaning in one home, no restating what the environment already says. Mandatory at drydock seed generation and the launch C5 sediment pass; opt-in for any other agent-facing doc edit. The companion of minimal-code-discipline: that one disciplines code, this one disciplines papers.
精选 Yeachan-Heo/oh-my-claudecode 4.0 万 原文
Claude CodeCodex CLIMCP 客户端
ai-slop-cleaner
Clean AI-generated code slop with a regression-safe, deletion-first workflow and optional reviewer-only mode
精选 Yeachan-Heo/oh-my-claudecode 4.0 万 原文
Claude CodeCodex CLIMCP 客户端
architecture-survey
Periodic architecture survey — walks the module graph and reports ranked deepening candidates (shallow modules, hypothetical seams, logic behind the wrong seam). Survey, not rescue: it finds candidates and hands them to the captain; it never refactors on its own.
精选 Yeachan-Heo/oh-my-claudecode 4.0 万 原文
Claude CodeCodex CLIMCP 客户端
ask-navigator
Shipyard's navigator — chart a foggy effort (destination unclear, questions not yet stateable) into a map of decision tickets on the repo's issue tracker, then work the frontier one ticket per session until the way is clear, and hand the collapsed decisions to /launch as a mission brief. Wayfinding, not building: it produces decisions, never deliverables.
精选 Yeachan-Heo/oh-my-claudecode 4.0 万 原文
Claude CodeCodex CLIMCP 客户端
ask
Process-first advisor routing for Claude, Codex, Gemini, Antigravity, Grok, or Cursor via `omc ask`, with artifact capture and no raw CLI assembly
精选 Yeachan-Heo/oh-my-claudecode 4.0 万 原文
Claude CodeCodex CLIMCP 客户端
autopilot
Full autonomous execution from idea to working code
精选 Yeachan-Heo/oh-my-claudecode 4.0 万 原文
Claude CodeCodex CLIMCP 客户端

相似 Skill

更多「编码」
access
Manage Discord channel access — approve pairings, edit allowlists, set DM/group policy. Use when the user asks to pair, approve someone, check who's allowed, or change policy for the Discord channel.
精选 anthropics/claude-plugins-official 3.8 万 原文
Claude CodeMCP 客户端
configure
Set up the Discord channel — save the bot token and review access policy. Use when the user pastes a Discord bot token, asks to configure Discord, asks "how do I set this up" or "who can reach me," or wants to check channel status.
精选 anthropics/claude-plugins-official 3.8 万 原文
Claude CodeMCP 客户端
access
Manage iMessage channel access — approve pairings, edit allowlists, set DM/group policy. Use when the user asks to pair, approve someone, check who's allowed, or change policy for the iMessage channel.
精选 anthropics/claude-plugins-official 3.8 万 原文
Claude CodeMCP 客户端
configure
Check iMessage channel setup and review access policy. Use when the user asks to configure iMessage, asks "how do I set this up" or "who can reach me," or wants to know why texts aren't reaching the assistant.
精选 anthropics/claude-plugins-official 3.8 万 原文
Claude CodeMCP 客户端
access
Manage Telegram channel access — approve pairings, edit allowlists, set DM/group policy. Use when the user asks to pair, approve someone, check who's allowed, or change policy for the Telegram channel.
精选 anthropics/claude-plugins-official 3.8 万 原文
Claude CodeMCP 客户端
configure
Set up the Telegram channel — save the bot token and review access policy. Use when the user pastes a Telegram bot token, asks to configure Telegram, asks "how do I set this up" or "who can reach me," or wants to check channel status.
精选 anthropics/claude-plugins-official 3.8 万 原文
Claude CodeMCP 客户端