Install
openclaw skills install create-teamBuilds a runnable Claude Code Agent Teams skill package — produces SKILL.md as a lead-operator playbook, agents/<role>.md subagent definitions for runtime spawning, references/<role>.md role specs with 8 sections (Scope/Inputs/Outputs/Boundaries + Spawn Prompt/Owned Paths/Task Template/Plan Approval), and optional hooks/. Use when the user wants a reusable multi-agent team that the team lead can spawn end-to-end, not just static role documentation.
openclaw skills install create-teamUse this skill when the user needs a runnable team package that a Claude Code team lead can execute end-to-end:
Agent({subagent_type, team_name, name, prompt}) with prompts already templatedblockedBy dependencies pre-mappedIf the user only needs pretty role docs (no intent to actually run a team), this skill is overkill — write plain markdown instead.
Read ../agent-teams.md (or the live page at code.claude.com) for the runtime model. Key points this skill encodes:
subagent_type: <role> if a definition exists at .claude/agents/<role>.md (project) or ~/.claude/agents/<role>.md (user). The definition's tools allowlist and model are honored at runtime.TeamDelete, or you'll leak resources.<skill-root>/ # same as `name`, lowercase-hyphen
├── SKILL.md # lead's operating playbook
├── agents/ # source of truth for subagent definitions
│ ├── <role-a>.md # frontmatter: name/description/tools/model
│ └── <role-b>.md
├── references/
│ ├── member.md # role index + suggested invocation order
│ ├── <role-a>.md # 8-section role spec
│ └── <role-b>.md
└── hooks/ # optional quality gates
├── teammate-idle.sh
└── task-completed.sh
agents/*.md are source files. To make them runtime-discoverable, the lead either copies or symlinks them into .claude/agents/ (project scope) or ~/.claude/agents/ (user scope) — see Bootstrap step in the generated SKILL.md.
Confirm before writing anything:
name — must match exactly; lowercase-hyphen (e.g. code-review-team).CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1.For every role, fill all 8 sections (full skeleton in references/templates.md):
| # | Section | Purpose |
|---|---|---|
| 1 | Scope | What the role delivers |
| 2 | Inputs | What it needs from user/peers |
| 3 | Outputs | Artifacts produced |
| 4 | Boundaries | Explicit non-goals |
| 5 | Spawn Prompt | Verbatim text the lead pastes into Agent({prompt}) |
| 6 | Owned Paths | File globs this role exclusively writes (cross-role overlap forbidden) |
| 7 | Task Template | 3–6 typical tasks with blockedBy edges |
| 8 | Plan Approval | true for risky/architectural roles, else false |
agents/<slug>.md — subagent definition. Frontmatter: name, description, tools allowlist, model. Body = role's operating instructions (this is appended to the teammate's system prompt at spawn).references/<slug>.md — full 8-section spec. This is for humans and for the lead to reference; not loaded into teammate context automatically.Keep them in sync — drift between agents/ and references/ is the #1 failure mode.
Required sections (skeleton in references/templates.md):
teammateMode choiceagents/*.md to .claude/agents/ so subagent_type worksTeamCreate + per-role Agent calls with the spawn prompts wired upTaskCreate calls with addBlockedBy mapped from each role's Task TemplateSendMessage, how to handle plan_approval_request, when to waitshutdown_request loop, then TeamDelete/resume of in-process teammates, permissions set at spawnFor quality gates — see references/templates.md "Hooks" section. Wire them via project .claude/settings.json. Examples:
TeammateIdle exit code 2 → block idle until tests passTaskCompleted exit code 2 → block completion if acceptance artifact missingRun references/checklist.md. The hardest constraint: Owned Paths must have zero cross-role overlap.
agents/<slug>.md and references/<slug>.md. One without the other is a half-built team.../code-review-team/ — a 3-person parallel PR review teamagents/.