---
name: agent-team-organizer
description: |
  Claude Code のエージェントチーム構成を設計するスキルです。
  品質向上（別セッションでの再鑑・多角的レビュー）を主目的としたチーム構成を対話形式で提案します。
  次のような場面で積極的に使ってください：
  - エージェントチームやマルチエージェントの話題が出たとき
  - 実装・設計の品質を別の視点でチェックしたいとき
  - アーキテクチャレビュー、ドメインエキスパートレビュー、テストなど多角的な検証をしたいとき
  - 大規模・複雑なタスクを複数セッションで分担・協調したいとき
  - TeamCreate / SendMessage / TaskCreate の使い方を聞かれたとき
  「エージェントチーム」と明示されなくても、品質検証や役割分担の相談があれば使ってください。
---

# エージェントチーム構成スキル

## 設計哲学

エージェントチームの主目的は**並列化による時間短縮ではなく、別セッションでの再鑑による品質向上**です。
同じ問題を異なる視点・役割で見ることで、単一セッションでは気づきにくい問題を発見できます。

並列実行が明示的に求められている場合はその目的に合わせた構成にしますが、
特に指定がない限り「品質・再鑑」のフレームで考えてください。

## ヒアリングフロー

ユーザーとの対話を通じてチーム構成を決めていきます。以下の情報を引き出してください。

### 1. タスクと目的を理解する
- 何を達成したいのか
- 特に不安な点・確認したい品質観点は何か
- 現在の段階（設計中・実装済み・テスト前 など）

### 2. どんな再鑑が必要かを一緒に考える
役割は決め打ちせず、ユーザーのコンテキストに応じて候補を提示します。

**例：システム開発の場合の役割候補**
- アーキテクト：設計の妥当性・スケーラビリティ・技術的負債
- ドメインエキスパート：業務要件との整合性・ユースケースの網羅性
- セキュリティレビュワー：脆弱性・認証認可・データ保護
- パフォーマンスエンジニア：ボトルネック・クエリ最適化・スケーリング
- テスター：テスト戦略・境界値・エッジケース・回帰リスク
- デビルズアドボケイト：批判的検証・前提への挑戦・代替案の探索

**例：ドキュメント・設計検討の場合**
- 批判的レビュワー：論理の穴・抜け漏れを探す
- ユーザー視点レビュワー：実際の利用者視点での検証
- 実装担当者視点：実現可能性・実装コストの評価

ドメインを聞いて適切な候補を提示し、ユーザーと一緒に絞り込みます。

### 3. チームサイズの決定
- 推奨: 3〜5メンバー（公式ドキュメントの推奨値）
- 各メンバーに5〜6タスク程度が最適なバランス
- 役割が増えすぎると調整コストが増大するため、最小限の構成から始める

### 4. チーム名を提案する
タスクの目的を端的に表す英語のケバブケース名を提案します。
- 例：`auth-security-review`、`db-design-validation`、`feature-payment-team`
- 短く・内容が一目でわかる名前を推奨

## アウトプット生成

チーム構成が固まったら、カレントディレクトリの `.claude/agent-team-organizer/{チーム名}.md` に出力します。

### 出力ファイルの構成

```markdown
# チーム名

## 目的
（何を達成するためのチームか）

## チーム構成

| メンバー名 | 役割 | 担当観点 |
|-----------|------|---------|
| lead | チームリード | 全体調整・統合 |
| member-a | （役割名） | （観点） |
| member-b | （役割名） | （観点） |

## 各メンバーの責任範囲

### lead（チームリード）
- タスク管理と割り当て
- 各メンバーの知見の統合
- 最終的な判断・まとめ

### member-a（役割名）
- （担当する具体的な観点・チェック項目）

### member-b（役割名）
- （担当する具体的な観点・チェック項目）

## タスクリスト案

- [ ] （タスク1）
- [ ] （タスク2）
- [ ] ...

## 起動手順

### 前提条件
エージェントチーム機能を有効化してください。
`settings.json` に以下を追加：
json
{
  "env": {
    "CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1"
  }
}

### チーム起動プロンプト例
（ユーザーがコピーして使えるプロンプト例）

## 注意事項
- セッション再開時にin-processメンバーは復元されません
- ネストされたチームは不可（リードのみがチーム管理可能）
- 1セッションにつき1チームまで
```

## エージェントチームの仕組み（参考情報）

ユーザーが技術的な詳細を知りたい場合に補足します。

### サブエージェントとの違い
| | サブエージェント | エージェントチーム |
|---|---|---|
| コンテキスト | 独自ウィンドウ・結果を呼び出し元に返す | 独自ウィンドウ・完全独立 |
| 通信 | メインエージェントにのみ報告 | メンバー同士が直接メッセージ |
| 調整 | メインが全ての作業を管理 | 共有タスクリストで自己調整 |

### 主な制限事項
- `/resume` でin-processメンバーは復元されない
- タスクステータスが遅れることがある（手動更新が必要な場合も）
- シャットダウンに時間がかかることがある
- ネストされたチームは不可

### メンバー間の通信
- **直接メッセージ**: `SendMessage` ツールでメンバー同士が直接連絡できる（リードを経由しない）
- **ブロードキャスト**: 全メンバーへの一斉送信も可能（コストが増えるため多用は避ける）
- **タスクリスト共有**: 全員が同じタスクリストを参照し、空きタスクを自己割り当てできる

### 設定ファイルの場所
- チーム設定: `~/.claude/teams/{チーム名}/config.json`
- タスクリスト: `~/.claude/tasks/{チーム名}/`

## 対話のガイドライン

- まずユーザーのタスクを聞き、どんな品質観点が必要かを引き出してください
- 役割の候補を提示して一緒に絞り込む対話スタイルを基本としてください
- チーム構成が固まったら、出力ファイルを生成してください
- 出力後、起動プロンプト例もチャットに表示して即使えるようにしてください
