$npx -y skills add affaan-m/everything-claude-code --skill team-builderInteractive agent picker for composing and dispatching parallel teams
| 1 | # Team Builder |
| 2 | |
| 3 | Interactive menu for browsing and composing agent teams on demand. Works with flat or domain-subdirectory agent collections. |
| 4 | |
| 5 | ## When to Use |
| 6 | |
| 7 | - You have multiple agent personas (markdown files) and want to pick which ones to use for a task |
| 8 | - You want to compose an ad-hoc team from different domains (e.g., Security + SEO + Architecture) |
| 9 | - You want to browse what agents are available before deciding |
| 10 | |
| 11 | ## Prerequisites |
| 12 | |
| 13 | Agent files must be markdown files containing a persona prompt (identity, rules, workflow, deliverables). The first `# Heading` is used as the agent name and the first paragraph as the description. |
| 14 | |
| 15 | Both flat and subdirectory layouts are supported: |
| 16 | |
| 17 | **Subdirectory layout** — domain is inferred from the folder name: |
| 18 | |
| 19 | ``` |
| 20 | agents/ |
| 21 | ├── engineering/ |
| 22 | │ ├── security-engineer.md |
| 23 | │ └── software-architect.md |
| 24 | ├── marketing/ |
| 25 | │ └── seo-specialist.md |
| 26 | └── sales/ |
| 27 | └── discovery-coach.md |
| 28 | ``` |
| 29 | |
| 30 | **Flat layout** — domain inferred from shared filename prefixes. A prefix counts as a domain when 2+ files share it. Files with unique prefixes go to "General". Note: the algorithm splits at the first `-`, so multi-word domains (e.g., `product-management`) should use the subdirectory layout instead: |
| 31 | |
| 32 | ``` |
| 33 | agents/ |
| 34 | ├── engineering-security-engineer.md |
| 35 | ├── engineering-software-architect.md |
| 36 | ├── marketing-seo-specialist.md |
| 37 | ├── marketing-content-strategist.md |
| 38 | ├── sales-discovery-coach.md |
| 39 | └── sales-outbound-strategist.md |
| 40 | ``` |
| 41 | |
| 42 | ## Configuration |
| 43 | |
| 44 | Agents are discovered via two methods, merged and deduplicated by agent name: |
| 45 | |
| 46 | 1. **`claude agents` command** (primary) — run `claude agents` to get all agents known to the CLI, including user agents, plugin agents (e.g. `ecc:architect`), and built-in agents. This automatically covers ECC marketplace installs without any path configuration. |
| 47 | 2. **File glob** (fallback, for reading agent content) — agent markdown files are read from: |
| 48 | - `./agents/**/*.md` + `./agents/*.md` — project-local agents |
| 49 | - `~/.claude/agents/**/*.md` + `~/.claude/agents/*.md` — global user agents |
| 50 | |
| 51 | Earlier sources take precedence when names collide: user agents > plugin agents > built-in agents. A custom path can be used instead if the user specifies one. |
| 52 | |
| 53 | ## How It Works |
| 54 | |
| 55 | ### Step 1: Discover Available Agents |
| 56 | |
| 57 | Run `claude agents` to get the full agent list. Parse each line: |
| 58 | - **Plugin agents** are prefixed with `plugin-name:` (e.g., `ecc:security-reviewer`). Use the part after `:` as the agent name and the plugin name as the domain. |
| 59 | - **User agents** have no prefix. Read the corresponding markdown file from `~/.claude/agents/` or `./agents/` to extract the name and description. |
| 60 | - **Built-in agents** (e.g., `Explore`, `Plan`) are skipped unless the user explicitly asks to include them. |
| 61 | |
| 62 | For user agents loaded from markdown files: |
| 63 | - **Subdirectory layout:** extract the domain from the parent folder name |
| 64 | - **Flat layout:** collect all filename prefixes (text before the first `-`). A prefix qualifies as a domain only if it appears in 2 or more filenames (e.g., `engineering-security-engineer.md` and `engineering-software-architect.md` both start with `engineering` → Engineering domain). Files with unique prefixes (e.g., `code-reviewer.md`, `tdd-guide.md`) are grouped under "General" |
| 65 | - Extract the agent name from the first `# Heading`. If no heading is found, derive the name from the filename (strip `.md`, replace hyphens with spaces, title-case) |
| 66 | - Extract a one-line summary from the first paragraph after the heading |
| 67 | |
| 68 | If no agents are found after running `claude agents` and probing file locations, inform the user: "No agents found. Run `claude agents` to verify your setup." Then stop. |
| 69 | |
| 70 | ### Step 2: Present Domain Menu |
| 71 | |
| 72 | ``` |
| 73 | Available agent domains: |
| 74 | 1. Engineering — Software Architect, Security Engineer |
| 75 | 2. Marketing — SEO Specialist |
| 76 | 3. Sales — Discovery Coach, Outbound Strategist |
| 77 | |
| 78 | Pick domains or name specific agents (e.g., "1,3" or "security + seo"): |
| 79 | ``` |
| 80 | |
| 81 | - Skip domains with zero agents (empty directories) |
| 82 | - Show agent count per domain |
| 83 | |
| 84 | ### Step 3: Handle Selection |
| 85 | |
| 86 | Accept flexible input: |
| 87 | - Numbers: "1,3" selects all agents from Engineering and Sales |
| 88 | - Names: "security + seo" fuzzy-matches against discovered agents |
| 89 | - "all from engineering" selects every agent in that domain |
| 90 | |
| 91 | If more than 5 agents are selected, list them alphabetically and ask the user to narrow down: "You selected N agents (max 5). Pick which to keep, or say 'first 5' to use the first five alphabetically." |
| 92 | |
| 93 | Confirm selection: |
| 94 | ``` |
| 95 | Selected: Security Engineer + SEO Specialist |
| 96 | What should they work on? (describe the task): |
| 97 | ``` |
| 98 | |
| 99 | ### Step 4: Spawn Agents in Parallel |
| 100 | |
| 101 | 1. Read each selected agent's markdown file |
| 102 | 2. Prompt for the task description if not already provided |
| 103 | 3. Spawn all agents in parallel using the Agent tool: |
| 104 | - `subagent_type: "general-purpose"` |
| 105 | - `prompt: "{agent file content}\n\n |