skills/deploy-agent-team/SKILL.md
This skill should be used when the user says "deploy a team", "spin up agents to work on this", "use all our agents", "coordinate specialists", or wants to break a large task into parallel sub-tasks handled by multiple domain experts simultaneously. Orchestrates Claude Code's experimental agent team system using the full bopen-tools specialist roster.
npx skillsauth add b-open-io/prompts deploy-agent-teamInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Deploy a coordinated team of specialized agents from the bopen-tools kit using Claude Code's agent team system. Agents work in parallel on independent tasks and communicate through a shared task list and message bus.
Agent teams require this env var to be set:
CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1
Add to ~/.claude/settings.json:
{
"env": {
"CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1"
}
}
Without this, TeamCreate will fail.
mode on Every Agent SpawnWARNING: The default permission mode will block teammates waiting for permission prompts that never arrive, stalling the whole team.
Always set mode: "bypassPermissions" when spawning teammates:
Agent(
subagent_type: "bopen-tools:designer",
team_name: "feature-billing",
name: "designer",
mode: "bypassPermissions", # ← REQUIRED
prompt: "..."
)
See references/permissions-and-isolation.md for all mode options and worktree isolation.
| Agent | subagent_type | Best for |
|-------|--------------|----------|
| researcher | bopen-tools:researcher | Libraries, APIs, docs, competitive analysis |
| nextjs | bopen-tools:nextjs | Next.js, React, Vercel, RSC, app router |
| designer | bopen-tools:designer | UI, Tailwind, shadcn/ui, accessibility |
| agent-builder | bopen-tools:agent-builder | AI agent systems, LLM integration, Vercel AI SDK |
| database | bopen-tools:database | Schema, queries, PostgreSQL, Redis, Convex |
| integration-expert | bopen-tools:integration-expert | REST APIs, webhooks, third-party services |
| code-auditor | bopen-tools:code-auditor | Security review, vulnerability scanning |
| tester | bopen-tools:tester | Unit, integration, e2e tests, CI |
| documentation-writer | bopen-tools:documentation-writer | READMEs, API docs, PRDs, guides |
| devops | bopen-tools:devops | Vercel+Railway+Bun, CI/CD, monitoring |
| optimizer | bopen-tools:optimizer | Bundle analysis, Lighthouse, Core Web Vitals |
| architecture-reviewer | bopen-tools:architecture-reviewer | System design, refactoring strategy, tech debt |
| mobile | bopen-tools:mobile | React Native, Swift, Kotlin, Flutter |
| payments | bopen-tools:payments | Stripe, billing, financial transactions |
| marketer | bopen-tools:marketer | CRO, SEO, copy, launch strategy |
| legal | product-skills:legal | Privacy, compliance, ToS |
| mcp | bopen-tools:mcp | MCP server setup, config, diagnostics |
Full roster with per-agent skills to mention in spawn prompts: references/agent-roster.md
Before calling any tools, identify:
TeamCreate(
team_name: "feature-billing",
description: "Implement Stripe billing with UI, API, tests, and docs"
)
Set dependencies with addBlockedBy where order matters:
TaskCreate(
subject: "Design billing UI components",
description: "Create PricingCard, BillingHistory, UpgradeModal using shadcn/ui.
Repo: ~/code/myapp. Tailwind v4. Output: src/components/billing/.",
activeForm: "Designing billing UI"
) → id: "1"
TaskCreate(
subject: "Implement Stripe integration",
description: "Set up webhooks, subscription creation, customer portal.
Repo: ~/code/myapp. API routes in app/api/billing/.",
activeForm: "Implementing Stripe integration"
) → id: "2"
TaskCreate(
subject: "Write billing test suite",
description: "Vitest tests for all billing API routes and webhook handler.
Repo: ~/code/myapp. Tests in __tests__/billing/.",
activeForm: "Writing billing tests"
) → id: "3"
TaskUpdate(taskId: "3", addBlockedBy: ["2"]) # tests wait for Stripe impl
Agent(
subagent_type: "bopen-tools:designer",
team_name: "feature-billing",
name: "designer",
mode: "bypassPermissions",
prompt: "..." # see references/spawn-prompt-guide.md
)
Every spawn prompt must be self-contained — teammates have zero conversation history. See references/spawn-prompt-guide.md for the full template and how to list each agent's available skills.
Messages from teammates arrive automatically. Check progress:
TaskList()
Answer a blocked teammate:
SendMessage(
type: "message",
recipient: "backend",
content: "Stripe webhook secret is STRIPE_WEBHOOK_SECRET in .env.local",
summary: "Stripe secret location"
)
SendMessage(type: "shutdown_request", recipient: "designer", content: "Work complete")
SendMessage(type: "shutdown_request", recipient: "backend", content: "Work complete")
SendMessage(type: "shutdown_request", recipient: "tester", content: "Work complete")
# Wait for each shutdown_response, then:
TeamDelete()
Parallel from the start:
├── researcher: research best practices / prior art
├── designer: UI components
├── nextjs or integration-expert: API / server logic
└── database: schema changes
Blocked until implementation complete:
├── tester: test suite
└── documentation-writer: feature docs
Parallel:
├── code-auditor: full vulnerability scan (Semgrep, CodeQL)
└── architecture-reviewer: structural/design issues
Blocked until audit complete:
├── nextjs or integration-expert: fix findings
└── tester: regression tests
Parallel:
├── code-auditor: security review
├── tester: coverage audit
├── optimizer: Lighthouse + bundle
├── documentation-writer: user-facing docs
└── legal: privacy / ToS
Blocked until all above complete:
└── devops: deploy pipeline
mode: "bypassPermissions" on every Agent spawn or teammates block| Problem | Fix |
|---------|-----|
| TeamCreate fails | Check CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 is set |
| Teammate blocks/stalls | Missing mode: "bypassPermissions" — always set this |
| Teammate not claiming tasks | Check blockedBy deps with TaskGet |
| Teammate idle and unresponsive | Send a direct SendMessage — idle agents wake on receipt |
| TeamDelete fails | Teammates still running. Send shutdown_request to each |
| Teammate went off-script | Send correction via SendMessage. If severe, shutdown and respawn |
references/permissions-and-isolation.md — mode parameter options, worktree isolation for parallel editsreferences/agent-roster.md — full roster table + which skills to mention per agent in spawn promptsreferences/spawn-prompt-guide.md — complete spawn prompt template with skills sectiondevelopment
This skill should be used when the user asks to "design a business card", "make a printable PDF", "render HTML to PDF", "generate a postcard", "build print collateral", "set up an HTML print pipeline", or needs help with bleed, safe areas, font embedding, or QR generation for print. Provides a Playwright-based pipeline with multiple bundled templates and theme variants for business cards (minimal, watercolor light, watercolor dark) and instructions for adding new templates.
tools
Get recent tweets from an X/Twitter user. Use when user asks "what has @username posted", "recent tweets from", "user's X posts", "show timeline for", "what is @user saying". Requires X_BEARER_TOKEN.
data-ai
Get X/Twitter user profile by username. Use when user asks "who is @username", "get X profile", "lookup Twitter user", "find X account", "user details", "follower count for". Requires X_BEARER_TOKEN.
data-ai
Search recent X/Twitter posts by query. Returns RAW TWEETS (last 7 days). Use when user asks "search X for", "find tweets about", "what are people saying about", "Twitter search", "raw tweets about". For AI summaries/sentiment, use x-research instead. Requires X_BEARER_TOKEN.