Awesome-omni-skill team-composition
This skill should be used when determining how many teammates to spawn and what agent types to use, based on tasks.md analysis.
git clone https://github.com/diegosouzapw/awesome-omni-skill
T=$(mktemp -d) && git clone --depth=1 https://github.com/diegosouzapw/awesome-omni-skill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/development/team-composition" ~/.claude/skills/diegosouzapw-awesome-omni-skill-team-composition && rm -rf "$T"
skills/development/team-composition/SKILL.mdTeam Composition
This skill determines the optimal number of teammates and the correct agent type for a swarm run. It is invoked during the planning phase, before team creation.
Analysis Process
- Read
from the spec directory.tasks.md - Parse the File Manifest at the bottom of tasks.md (or the
section of each task).Files: - Compute parallel batches by analyzing file conflicts:
- Two tasks conflict if they share any file (CREATE or MODIFY).
- Tasks with dependencies cannot be in the same batch as their prerequisites.
- Group non-conflicting, dependency-free tasks into batches (same algorithm as the coordinator's Runtime Parallelism Computation).
- Find the largest batch. That count is the maximum number of useful teammates — spawning more than that means idle agents burning tokens.
- Apply the hard cap of 5 teammates. Beyond 5, coordination overhead and token costs grow faster than throughput. Diminishing returns hit hard.
- Recommended teammate count:
. Using 4 instead of 5 gives a buffer for the coordinator to stay responsive.min(largest_batch_size, 4)
Examples
| Total Tasks | Largest Batch Size | Recommended teammates |
|---|---|---|
| 6 | 2 | 2 |
| 10 | 6 | 4 (capped) |
| 3 | 1 | 1 |
| 8 | 3 | 3 |
| 12 | 10 | 4 (capped) |
Agent Type Selection
When --agent-type
is explicitly provided
--agent-typeUse that type for all teammates. No analysis needed.
When --agent-type
is auto
or not provided
--agent-typeautoAnalyze the project to determine the dominant language/framework:
-
Check for build system / config files (most reliable signal):
--> Go project -->go.modgolang-pro
with TypeScript dependencies orpackage.json
-->tsconfig.jsontypescript-pro
without TypeScript -->package.json
(JS projects benefit from TS tooling awareness)typescript-pro
--> Rust project -->Cargo.tomlrust-pro
,pyproject.toml
,setup.py
,setup.cfg
-->requirements.txtpython-pro
--> Elixir project -->mix.exselixir-expert
-
If no config files found, check file extensions in the project root and
directory:src/- Majority
files -->.gogolang-pro - Majority
/.ts
files -->.tsxtypescript-pro - Majority
/.js
files -->.jsxtypescript-pro - Majority
files -->.pypython-pro - Majority
files -->.rsrust-pro - Majority
/.ex
files -->.exselixir-expert - Majority
files -->.sqlsql-pro
- Majority
-
If tasks span multiple languages (e.g., Go backend + TypeScript frontend), use
. Specialized agents struggle when they hit code outside their domain.general-purpose -
If unclear or mixed, default to
. It is the safest fallback.general-purpose
Agent Type Availability Note
The language-specific types (
golang-pro, typescript-pro, python-pro, rust-pro, elixir-expert, sql-pro) are NOT included with this plugin. They are third-party agent definitions that may or may not be installed in the user's environment.
Fallback chain (always apply):
- Try detected language-specific agent (e.g.,
,golang-pro
)typescript-pro - If unavailable → fall back to
(included with this plugin)swarm-executor - If unavailable → fall back to
(always available)general-purpose
Agent Type Reference
| Agent Type | Best For | Included? |
|---|---|---|
| Go projects, CLI tools, servers | No (third-party) |
| TypeScript/JavaScript, React, Node.js, Next.js | No (third-party) |
| Python, Django, Flask, FastAPI, data pipelines | No (third-party) |
| Rust projects, systems programming | No (third-party) |
| Elixir/Phoenix projects | No (third-party) |
| Database-heavy work, migrations, query tuning | No (third-party) |
| Any language, this plugin's built-in executor | Yes |
| Multi-language, mixed projects, unclear scope | Yes (built-in) |
Cost Awareness
Exact costs depend on model, pricing, prompt length, and task complexity. No dollar estimates are provided — they would be speculative.
What affects cost:
- Number of teammates (each is an independent LLM session)
- Task complexity (more turns = more tokens)
- Verification cycles (failed tasks trigger retries)
Cost-saving tips:
- Sequential mode for < 4 tasks
- Fewer teammates with more tasks > many idle teammates
to cap runaway sessions--max-iterations- Review plan before execution (don't use
unless you mean it)--yolo
Output Format
When reporting team composition to the user or the coordinator, always use this format:
Team: <N> x <agent-type> in worktrees Computed batches: <B> (largest batch: <L> tasks)
Example Output
Team: 3 x golang-pro in worktrees Computed batches: 4 (largest batch: 3 tasks)
If the user has not confirmed yet, present this and wait for approval before proceeding to team creation.