--- name: team-builder description: 並列チームを構成して派遣するためのインタラクティブなエージェント選択ツール origin: community --- # チームビルダー オンデマンドでエージェントチームを閲覧・構成するためのインタラクティブメニュー。フラット構成またはドメインサブディレクトリで整理されたエージェントコレクションに対応する。 ## 使用場面 * 複数のエージェントロール(markdownファイル)があり、あるタスクにどのエージェントを使うか選択したい場合 * 異なるドメインから(例えば、セキュリティ + SEO + アーキテクチャ)臨時チームを結成したい場合 * 決定する前に利用可能なエージェントを閲覧したい場合 ## 前提条件 エージェントファイルはロール、プロンプト(アイデンティティ、ルール、ワークフロー、成果物)を含むmarkdownファイルである必要がある。最初の `# Heading` がエージェント名として使用され、最初の段落が説明として使用される。 フラット構成とサブディレクトリの両方のレイアウトをサポートする: **サブディレクトリレイアウト** —— ドメインはフォルダー名から推論される: ``` 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 ``` ## 設定 エージェントディレクトリは順番に探索され、結果がマージされる: 1. `./agents/**/*.md` + `./agents/*.md` —— プロジェクトローカルのエージェント(両方の深さ) 2. `~/.claude/agents/**/*.md` + `~/.claude/agents/*.md` —— グローバルエージェント(両方の深さ) すべての場所の結果がマージされ、エージェント名で重複排除される。同名の場合、プロジェクトローカルのエージェントがグローバルエージェントより優先される。ユーザーがカスタムパスを指定した場合、そのパスを代わりに使用する。 ## 動作原理 ### ステップ 1:利用可能なエージェントを発見する 上記の探索順序を使用してエージェントディレクトリでグローバル検索を実行する。READMEファイルを除外する。見つかった各ファイルに対して: * **サブディレクトリレイアウト:** 親フォルダー名からドメインを抽出する * **フラットレイアウト:** すべてのファイル名プレフィックス(最初の `-` より前のテキスト)を収集する。プレフィックスが2つ以上のファイル名に現れる場合のみドメインとして適格(例:`engineering-security-engineer.md` と `engineering-software-architect.md` はどちらも `engineering` で始まる → Engineeringドメイン)。ユニークなプレフィックスを持つファイル(例:`code-reviewer.md`、`tdd-guide.md`)は「General」カテゴリーに分類される * 最初の `# Heading` からエージェント名を抽出する。見出しが見つからない場合は、ファイル名から名前を導出する(`.md` を除去し、ハイフンをスペースに置換し、タイトルケースに変換) * 見出しの後の最初の段落から一行のサマリーを抽出する すべての場所を探索した後にエージェントファイルが見つからない場合、ユーザーに通知する:「エージェントファイルが見つかりませんでした。確認済み:\[探索済みパスのリスト]。期待されるもの:これらのディレクトリ内のmarkdownファイル。」そして停止する。 ### ステップ 2:ドメインメニューを表示する ``` 利用可能なエージェントドメイン: 1. エンジニアリング — ソフトウェアアーキテクト、セキュリティエンジニア 2. マーケティング — SEOスペシャリスト 3. セールス — ディスカバリーコーチ、アウトバウンドストラテジスト ドメインを選択するか、特定のエージェントを指定してください(例:「1,3」または「security + seo」): ``` * エージェント数がゼロのドメインはスキップする(空ディレクトリ) * 各ドメインのエージェント数を表示する ### ステップ 3:選択を処理する 柔軟な入力を受け付ける: * 数字:「1,3」でEngineeringとSalesのすべてのエージェントを選択 * 名前:「security + seo」で発見されたエージェントに対してファジーマッチング * 「all from engineering」でそのドメインのすべてのエージェントを選択 5つ以上のエージェントが選択された場合、アルファベット順にリストアップして絞り込みを求める:「Nつのエージェントを選択しました(最大5つ)。どれを保持するか選択するか、アルファベット順の最初の5つを使用する場合は 'first 5' と言ってください。」 選択を確認する: ``` 選択済み:セキュリティエンジニア + SEOスペシャリスト どのようなタスクに取り組む予定ですか?(タスクを説明してください) ``` ### ステップ 4:エージェントを並列で起動する 1. 選択された各エージェントのmarkdownファイルを読み取る 2. まだ提供されていない場合は、タスクの説明を求める 3. Agentツールを使用してすべてのエージェントを並列で起動する: * `subagent_type: "general-purpose"` * `prompt: "{agent file content}\n\nTask: {task description}"` * 各エージェントは独立して実行する——エージェント間の通信は不要 4. エージェントが失敗した場合(エラー、タイムアウト、または空の出力)、インラインで失敗を記録し(例:「Security Engineer: failed — \[理由]」)、成功したエージェントの結果の処理を続ける ### ステップ 5:結果を統合する すべての出力を収集して統一されたレポートを提示する: * エージェント別にグループ化された結果 * 統合セクションで強調: * エージェント間のコンセンサス * 提案間の衝突または矛盾 * 推奨される次のステップ 1つのエージェントのみが選択された場合は、統合セクションをスキップして直接出力を提示する。 ## ルール * **動的発見のみ。** エージェントリストをハードコードしない。ディレクトリの新しいファイルはメニューに自動的に表示される。 * **チームあたり最大5つのエージェント。** 5つを超えると収益逓減とトークン使用量が多くなる。選択時に強制する。 * **並列分散。** すべてのエージェントが同時に実行される——Agentツールの並列呼び出しパターンを使用する。 * **並列Agent呼び出し(TeamCreateではない)。** このスキルは独立した作業の処理に並列Agentツール呼び出しを使用する。エージェントが議論したり互いに回答する必要がある場合のみ、TeamCreate(マルチエージェント会話のためのClaude Codeツール)が必要になる。 ## 例 ``` ユーザー: team builder Claude: 利用可能なエージェントドメイン: 1. エンジニアリング (2) — ソフトウェアアーキテクト、セキュリティエンジニア 2. マーケティング (1) — SEOスペシャリスト 3. セールス (4) — ディスカバリーコーチ、アウトバウンドストラテジスト、プロポーザルストラテジスト、セールスエンジニア 4. サポート (1) — エグゼクティブサマリー ドメインを選択するか、特定のエージェントを指定してください: ユーザー: security + seo Claude: 選択済み:セキュリティエンジニア + SEOスペシャリスト どのようなタスクに取り組む予定ですか? ユーザー: リリース前に私のNext.jsのeコマースサイトをレビューしてほしい [2つのエージェントが並列で起動され、それぞれがコードベースに専門知識を適用する] Claude: ## セキュリティエンジニアの発見事項 - [発見内容...] ## SEOスペシャリストの発見事項 - [発見内容...] ## 統合分析 両エージェントが同意:[...] 衝突点:セキュリティが推奨するCSPがインラインスタイルをブロックし、SEOはインラインのschemaマークアップを必要とする。解決策:[...] 次のステップ:[...] ```