オプション

team-builder

affaan-m/ECC affaan-m/ECC

利用可能なエージェントのペルソナを閲覧し、最大5人のエージェントからなる臨時のチームを編成して、タスクを並行して処理させ、その結果を統合します。

...すべて拡張します
0
更新された時間 2026年10月2日

チームビルダー

必要に応じてエージェントチームを閲覧・編成するためのインタラクティブなメニューです。フラットな構造またはドメインサブディレクトリ形式のエージェントコレクションに対応しています。

使用場面

  • 複数のエージェント・ペルソナ(Markdownファイル)があり、タスクに使用するペルソナを選定したい場合
  • 異なるドメイン(例:セキュリティ+SEO+アーキテクチャ)から臨機応変なチームを編成したい場合
  • 決定する前に、利用可能なエージェントを確認したい場合

前提条件

エージェントファイルは、ペルソナのプロンプト(アイデンティティ、ルール、ワークフロー、成果物)を含むマークダウンファイルである必要があります。最初の# 見出しがエージェント名として、最初の段落が説明として使用されます。

フラットレイアウトとサブディレクトリレイアウトの両方がサポートされています:

サブディレクトリ形式— ドメインはフォルダ名から推測されます:

agents/
├── engineering/
│   ├── security-engineer.md
│   └── software-architect.md
├── marketing/
│   └── seo-specialist.md
└── sales/
    └── discovery-coach.md

フラットレイアウト— 共通のファイル名プレフィックスからドメインが推測されます。2つ以上のファイルが同じプレフィックスを共有する場合、そのプレフィックスはドメインとして扱われます。一意のプレフィックスを持つファイルは「General」に振り分けられます。 注:アルゴリズムは最初の「-」で分割するため、複数語からなるドメイン(例:product-management)の場合は、代わりにサブディレクトリ構成を使用する必要があります:

agents/
├── engineering-security-engineer.md
├── engineering-software-architect.md
├── marketing-seo-specialist.md
├── marketing-content-strategist.md
├── sales-discovery-coach.md
└── sales-outbound-strategist.md

設定

エージェントは 2 つの方法で検出され、エージェント名に基づいて統合および重複排除されます:

  1. claude agentsコマンド(主要) —claude agentsを実行すると、ユーザーエージェント、プラグインエージェント(例:everything-claude-code:architect)、組み込みエージェントを含め、CLIが認識しているすべてのエージェントを取得します。これにより、パス設定を一切行わなくても、ECCマーケットプレイスからのインストールが自動的にカバーされます。
  2. ファイルグロブ(フォールバック、エージェントコンテンツの読み取り用) — エージェントのマークダウンファイルは以下から読み込まれます:
    • ./agents/**/*.md+./agents/*.md— プロジェクトローカルのエージェント
    • ~/.claude/agents/**/*.md+~/.claude/agents/*.md— グローバルユーザーエージェント

名前が重複する場合は、優先順位の高いソースが優先されます:ユーザーエージェント > プラグインエージェント > 組み込みエージェント。ユーザーが指定した場合、代わりにカスタムパスを使用することも可能です。

仕組み

ステップ 1: 利用可能なエージェントの検出

`claude agents` を実行して、エージェントの完全なリストを取得します。各行を解析します:

  • プラグインエージェントには「plugin-name:」というプレフィックスが付いています(例:everything-claude-code:security-reviewer)。「:」以降の部分をエージェント名として、プラグイン名をドメインとして使用します。
  • ユーザーエージェントには接頭辞がありません。~/.claude/agents/または./agents/から対応するマークダウンファイルを読み込み、名前と説明を抽出します。
  • 組み込みエージェント(例:Explore、Plan)は、ユーザーが明示的に含めるよう指定しない限り、スキップされます。

Markdown ファイルから読み込まれるユーザーエージェントの場合:

  • サブディレクトリ構成の場合:親フォルダ名からドメインを抽出します
  • フラット構成の場合:すべてのファイル名プレフィックス(最初の「-」の前のテキスト)を収集します。プレフィックスがドメインとして認められるのは、2つ以上のファイル名に現れる場合のみです(例:engineering-security-engineer.mdとengineering-software-architect.md はどちらもengineeringで始まるため、Engineering ドメインとなります)。 一意のプレフィックスを持つファイル(例:code-reviewer.md、tdd-guide.md)は「General」の下にグループ化される
  • 最初の# 見出しからエージェント名を抽出する。見出しが見つからない場合は、ファイル名から名前を導出する(.md を削除し、ハイフンをスペースに置き換え、タイトルケースにする)
  • 見出しの直後の最初の段落から、1行の要約を抽出する

claude agentsを実行し、ファイルの場所を調査してもエージェントが見つからない場合は、ユーザーに「エージェントが見つかりません。claude agentsを実行して設定を確認してください。」と通知し、処理を停止する。

ステップ 2: ドメインメニューの提示

利用可能なエージェントドメイン:
1. エンジニアリング — ソフトウェアアーキテクト、セキュリティエンジニア
2. マーケティング — SEOスペシャリスト
3. 営業 — ディスカバリーコーチ、アウトバウンドストラテジスト

ドメインを選択するか、特定のエージェント名を指定してください(例:「1,3」または「security + seo」):
  • エージェントが0人のドメイン(空のディレクトリ)はスキップします
  • ドメインごとのエージェント数を表示

ステップ3:選択の処理

柔軟な入力を許可:

  • 数値:「1,3」と指定すると、エンジニアリングおよび営業のすべてのエージェントが選択されます
  • 名前:「security + seo」は、検出されたエージェントに対してあいまい一致検索を行います
  • 「all from engineering」と入力すると、そのドメイン内のすべてのエージェントが選択されます

5 つ以上のエージェントが選択された場合は、アルファベット順に一覧表示し、ユーザーに絞り込みを依頼します:「N 個のエージェントが選択されました(最大 5 つ)。保持するエージェントを選択するか、『最初の 5 つ』と発声して、アルファベット順の上位 5 つを使用してください。」

選択の確認:

選択済み:セキュリティエンジニア + SEOスペシャリスト
彼らはどのような作業を行うべきか?(タスクを記述してください):

ステップ4:エージェントを並列で起動

  1. 選択された各エージェントのマークダウンファイルを読み込む
  2. タスクの説明がまだ入力されていない場合は、入力を促す
  3. Agentツールを使用して、すべてのエージェントを並列で起動する:
    • subagent_type: "general-purpose"
    • prompt: "{エージェントファイルの内容}\n\nタスク: {タスクの説明}"
    • 各エージェントは独立して実行されるため、エージェント間の通信は必要ない
  4. エージェントが失敗した場合(エラー、タイムアウト、または出力が空の場合)、その失敗をインラインで記録し(例: 「セキュリティエンジニア: 失敗 — [理由]」)、成功したエージェントの結果処理を続行します

ステップ 5: 結果の統合

すべての出力を収集し、統一されたレポートを作成します:

  • エージェントごとにグループ化された結果
  • 以下の点を強調した統合セクション:
    • エージェント間の合意点
    • 提言間の矛盾や対立
    • 推奨される今後の対応

エージェントが1つしか選択されていない場合は、統合をスキップして、結果を直接提示する。

ルール

  • 動的な検出のみとする。エージェントのリストをハードコーディングしてはならない。ディレクトリに新しいファイルが追加されると、メニューに自動的に表示される。
  • 1チームあたり最大5つのエージェント。5つを超えると効果が薄れ、トークンの使用量が過剰になります。選択時にこの制限を適用してください。
  • 並列ディスパッチ。すべてのエージェントは同時に実行されます。Agentツールの並列呼び出しパターンを使用してください。
  • TeamCreateではなく、Agentの並列呼び出しを使用します。このスキルでは、独立した作業を行うためにAgentツールの並列呼び出しを使用します。TeamCreate(マルチエージェント対話用のClaude Codeツール)は、エージェント同士が議論したり、互いに応答したりする必要がある場合にのみ必要です。

例

ユーザー: チームビルダー

Claude:
利用可能なエージェントのドメイン:
1. エンジニアリング (2) — ソフトウェアアーキテクト、セキュリティエンジニア
2. マーケティング (1) — SEOスペシャリスト
3. 営業 (4) — ディスカバリー・コーチ、アウトバウンド・ストラテジスト、提案戦略家、セールスエンジニア
4. サポート (1) — エグゼクティブ・サマリー

ドメインを選択するか、特定のエージェント名を指定してください:

ユーザー: security + seo

Claude:
選択済み:セキュリティエンジニア + SEOスペシャリスト
彼らにどのような作業をさせますか?

ユーザー: リリース前に私の Next.js EC サイトをレビューしてください

[両エージェントが並行して起動し、それぞれが専門分野を活かしてコードベースを分析する]

Claude:
## セキュリティエンジニアの分析結果
- [分析結果...]

## SEOスペシャリストの分析結果
- [分析結果...]

## 統合
両エージェントが合意した点:[...]
対立点:セキュリティ側はインラインスタイルをブロックするCSPを推奨しているが、SEO側はインラインのスキーママークアップが必要としている。解決策:[...]
今後の手順:[...]
GitHubで見る
---
name: team-builder
description: Browse available agent personas and compose ad-hoc teams of up to 5 agents to work in parallel on a task, then synthesize their results.
---

# Team Builder

Interactive menu for browsing and composing agent teams on demand. Works with flat or domain-subdirectory agent collections.

## When to Use

- You have multiple agent personas (markdown files) and want to pick which ones to use for a task
- You want to compose an ad-hoc team from different domains (e.g., Security + SEO + Architecture)
- You want to browse what agents are available before deciding

## Prerequisites

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.

Both flat and subdirectory layouts are supported:

**Subdirectory layout** — domain is inferred from the folder name:

```
agents/
├── engineering/
│   ├── security-engineer.md
│   └── software-architect.md
├── marketing/
│   └── seo-specialist.md
└── sales/
    └── discovery-coach.md
```

**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:

```
agents/
├── engineering-security-engineer.md
├── engineering-software-architect.md
├── marketing-seo-specialist.md
├── marketing-content-strategist.md
├── sales-discovery-coach.md
└── sales-outbound-strategist.md
```

## Configuration

Agents are discovered via two methods, merged and deduplicated by agent name:

1. **`claude agents` command** (primary) — run `claude agents` to get all agents known to the CLI, including user agents, plugin agents (e.g. `everything-claude-code:architect`), and built-in agents. This automatically covers ECC marketplace installs without any path configuration.
2. **File glob** (fallback, for reading agent content) — agent markdown files are read from:
   - `./agents/**/*.md` + `./agents/*.md` — project-local agents
   - `~/.claude/agents/**/*.md` + `~/.claude/agents/*.md` — global user agents

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.

## How It Works

### Step 1: Discover Available Agents

Run `claude agents` to get the full agent list. Parse each line:
- **Plugin agents** are prefixed with `plugin-name:` (e.g., `everything-claude-code:security-reviewer`). Use the part after `:` as the agent name and the plugin name as the domain.
- **User agents** have no prefix. Read the corresponding markdown file from `~/.claude/agents/` or `./agents/` to extract the name and description.
- **Built-in agents** (e.g., `Explore`, `Plan`) are skipped unless the user explicitly asks to include them.

For user agents loaded from markdown files:
- **Subdirectory layout:** extract the domain from the parent folder name
- **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"
- 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)
- Extract a one-line summary from the first paragraph after the heading

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.

### Step 2: Present Domain Menu

```
Available agent domains:
1. Engineering — Software Architect, Security Engineer
2. Marketing — SEO Specialist
3. Sales — Discovery Coach, Outbound Strategist

Pick domains or name specific agents (e.g., "1,3" or "security + seo"):
```

- Skip domains with zero agents (empty directories)
- Show agent count per domain

### Step 3: Handle Selection

Accept flexible input:
- Numbers: "1,3" selects all agents from Engineering and Sales
- Names: "security + seo" fuzzy-matches against discovered agents
- "all from engineering" selects every agent in that domain

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."

Confirm selection:
```
Selected: Security Engineer + SEO Specialist
What should they work on? (describe the task):
```

### Step 4: Spawn Agents in Parallel

1. Read each selected agent's markdown file
2. Prompt for the task description if not already provided
3. Spawn all agents in parallel using the Agent tool:
   - `subagent_type: "general-purpose"`
   - `prompt: "{agent file content}\n\nTask: {task description}"`
   - Each agent runs independently — no inter-agent communication needed
4. If an agent fails (error, timeout, or empty output), note the failure inline (e.g., "Security Engineer: failed — [reason]") and continue with results from agents that succeeded

### Step 5: Synthesize Results

Collect all outputs and present a unified report:
- Results grouped by agent
- Synthesis section highlighting:
  - Agreements across agents
  - Conflicts or tensions between recommendations
  - Recommended next steps

If only 1 agent was selected, skip synthesis and present the output directly.

## Rules

- **Dynamic discovery only.** Never hardcode agent lists. New files in the directory auto-appear in the menu.
- **Max 5 agents per team.** More than 5 produces diminishing returns and excessive token usage. Enforce at selection time.
- **Parallel dispatch.** All agents run simultaneously — use the Agent tool's parallel invocation pattern.
- **Parallel Agent calls, not TeamCreate.** This skill uses parallel Agent tool calls for independent work. TeamCreate (a Claude Code tool for multi-agent dialogue) is only needed when agents must debate or respond to each other.

## Examples

```
User: team builder

Claude:
Available agent domains:
1. Engineering (2) — Software Architect, Security Engineer
2. Marketing (1) — SEO Specialist
3. Sales (4) — Discovery Coach, Outbound Strategist, Proposal Strategist, Sales Engineer
4. Support (1) — Executive Summary

Pick domains or name specific agents:

User: security + seo

Claude:
Selected: Security Engineer + SEO Specialist
What should they work on?

User: Review my Next.js e-commerce site before launch

[Both agents spawn in parallel, each applying their specialty to the codebase]

Claude:
## Security Engineer Findings
- [findings...]

## SEO Specialist Findings
- [findings...]

## Synthesis
Both agents agree on: [...]
Tension: Security recommends CSP that blocks inline styles, SEO needs inline schema markup. Resolution: [...]
Next steps: [...]
```

すべてのファイル

1件のファイル

team-builderをインストール

スキルファイルをダウンロードし、.claude/skills/ ディレクトリに解凍してください。

ZIPをダウンロード

リポジトリをクローンし、スキルファイルをプロジェクトにコピーしてください。

git clone https://github.com/affaan-m/ECC/tree/main/skills/team-builder # Copy SKILL.md to your .claude/skills/ directory

コピー コピー
クイックセットアップ: スキルフォルダを .claude/skills/ にコピーしてください。 Claude が自動的にそのスキルを検出して使用します。
リポジトリ affaan-m/ECC

関連スキル

airtable-automation
更新された時間 2026年6月29日
seo-programmatic
更新された時間 2026年6月29日
notion-automation
更新された時間 2026年6月29日
fairdb-backup-manager
更新された時間 2026年6月29日
OR