--- name: agent-generator description: ユーザーの責任範囲定義から、Agentのマークダウンファイルを生成する。エージェント作成時、プラグイン要素生成時、またはユーザーがエージェント定義、責任範囲、Agent生成、エージェントドキュメントに言及した際に使用する。 --- # Agent Generator ## 概要 このSkillは、ユーザーが提供する責任範囲や対象フェーズの情報を基に、Agentのマークダウンファイルを生成する。ユーザーとの対話を通じて必要な情報を収集し、標準化されたエージェントのドキュメントを作成する。 ## 責任範囲 このSkillは以下の範囲をカバーする: - 既存エージェントの確認と重複チェック - ユーザーとの対話による責任範囲情報の収集 - 対象フェーズや役割の明確化 - エージェントファイルの生成 - プラグインアーキテクチャ規約の遵守確認 - markdownlint検証の実施 - ユーザーフィードバックの収集と反映 ## ワークフロー ### フェーズ1: 既存エージェント確認 エージェント生成前に、既存のエージェントを確認し、重複を避ける。 **実施内容:** 1. プラグインディレクトリ内の既存エージェントを確認する 2. 作成予定のエージェントと同じ責任範囲のエージェントが存在しないか確認する 3. 作成予定のエージェント内容と重複する記述が他のエージェントに含まれていないか確認する 4. 既存エージェントで代用できる場合はユーザーに提案する 5. 重複が避けられない場合は、どの内容を削除すべきかユーザーと確認する **確認対象:** - プラグインディレクトリ内のagentsディレクトリ内のドキュメント **質問例:** ```markdown 【既存エージェント確認】 プラグインディレクトリ内の既存エージェントを確認しました。 以下のエージェントと責任範囲が重複する可能性があります: - [既存エージェント名]: [既存エージェントの説明] 作成予定のエージェントから、これらの重複内容を除外してよろしいですか? ``` **既存エージェントで代用可能な場合:** ```markdown 【確認】 作成予定のエージェントと同じ責任範囲のエージェントが既に存在します: - [既存エージェント名]: [既存エージェントの説明] 既存エージェントで十分な場合は、新規作成は不要です。 それでも新規作成が必要ですか?必要な場合は、既存エージェントとの違いを教えてください。 ``` ### フェーズ2: 情報収集 ユーザーとの対話を通じて、エージェントに必要な情報を収集する。 **実施内容:** 1. エージェントの目的と役割を確認する 2. 責任範囲内の項目を把握する 3. 責任範囲外の項目を把握する 4. 対象フェーズや役割を明確にする 5. 注意事項として記述すべき内容を確認する 6. 使用可能なツール(tools)を確認する 7. 表示色(color)の希望を確認する 8. ユーザーとの対話時は、明確なタイトル付き質問、複数選択肢の提示、推奨オプションの明示を行う **質問例:** ```markdown 【責任範囲の確認】 このエージェントが担当する責任範囲を確認します。以下のどの範囲ですか? 1. 特定フェーズ全体(要件定義、設計、実装など)【推奨】 2. 特定領域全体(セキュリティ、パフォーマンス、品質管理など) 3. 複数フェーズにまたがる横断的な役割 ``` ### フェーズ3: コンテンツ生成 収集した情報を基に、エージェントファイルのコンテンツを生成する。 **実施内容:** 1. フロントマター(name, description, tools, model, color)を作成する 2. 役割セクションを記述する 3. 責任範囲を定義する(責任範囲内と責任範囲外に分けて記述) 4. 注意事項を記述する **フロントマターの作成:** ```markdown --- name: エージェント名(ケバブケース、例: requirements-agent) description: エージェントの簡潔な説明(1行、50文字以内) tools: 使用可能な外部ツール(例: "*", "Read", "Write", "Bash"など) model: inherit(通常はinherit、特定のモデルを指定する場合のみ変更) color: 表示色(例: blue, green, redなど) --- ``` **役割の記述:** - エージェントの目的と役割を明確に記述する - 担当する責任範囲の概要を説明する - 簡潔に1〜2段落で記述する **責任範囲の定義:** 責任範囲は「責任範囲内」と「責任範囲外」の2つのサブセクションに分けて記述する。 **責任範囲内:** - 太字の見出しと説明を組み合わせた形式で記述する - 「**[項目名]:** [説明]」の形式を使用する - 3〜5項目程度を記述する - エージェントが担当する具体的な範囲を明確にする **責任範囲外:** - 同様に太字の見出しと説明を組み合わせた形式で記述する - エージェントが担当しない範囲を明確にする - 混同しやすい範囲や誤解されやすい点を記述する - 2〜3項目程度を記述する **注意事項の記述:** - エージェントを使用する際の注意点を箇条書きで記述する - 制約事項、前提条件、重要な指針などを含める - 3〜5項目程度を記述する **プラグインアーキテクチャ規約の遵守:** 生成するエージェントは、プラグインアーキテクチャ規約に従う必要がある(独立性の原則、汎用性の原則など)。 **重要な制約:** - 他のエージェント、スキル、コマンドを参照しない - 固有名詞を含めない - 具体的なワークフローは記述しない(それはスキルの役割) - 責任範囲の定義に集中する **重複最小化の確認:** 既存エージェントと重複する内容が含まれていないかを確認し、エージェント固有の内容のみを記述する。 ### フェーズ4: 検証 生成したコンテンツを検証し、品質を確保する。 **実施内容:** 1. 設計原則の遵守を確認する 2. markdownlint検証を実施する 3. テンプレート構造の整合性を確認する 4. ユーザーにプレビューを提示する 5. フィードバックを収集する 6. 必要に応じて修正する **プラグインアーキテクチャ規約の確認:** - プラグインアーキテクチャ規約に従っている - 既存エージェントと重複する内容が含まれていない - 他の要素(エージェント、スキル、コマンド)を参照していない - 固有名詞が使用されていない - 具体的なワークフローが含まれていない ## アウトプット このスキルは以下を生成する: - **エージェントファイル**: エージェントの定義ファイル(ファイル名=エージェント名(ケバブケース)) - フロントマター(name, description, tools, model, color) - 役割 - 責任範囲(責任範囲内、責任範囲外) - 注意事項 ## 想定されるエラーと対処法 ### エラー1: 責任範囲が曖昧 **検出例:** ```markdown このエージェントは、いろいろな作業を担当する ``` **対処法:** - 具体的な表現を使用する(要件定義フェーズ全体、セキュリティ領域全体など) - 責任範囲を明確に列挙する - 「〜に対する責任を持つ」という表現を使用する ### エラー2: 具体的なワークフローが含まれている **検出例:** ```markdown ## ワークフロー 1. ユーザーから要件をヒアリングする 2. 要件を整理する 3. 要件定義書を作成する ``` **対処法:** - ワークフローは削除する(それはスキルの役割) - 責任範囲の定義に集中する - 「要件定義フェーズ全体に対する責任を持つ」という表現に置き換える ### エラー3: 他の要素を参照している **検出例:** ```markdown このエージェントは、requirements-structurer スキルを使用して要件を整理する ``` **対処法:** - 他の要素への参照を削除する - 汎用的な表現に置き換える(「要件を整理する責任を持つ」など) ## ベストプラクティス - 責任範囲は3〜5項目に抑える(多すぎると複雑になる) - 具体的なワークフローは記述しない(それはスキルの役割) - 他の要素(エージェント、スキル、コマンド)を参照しない - 固有名詞を使用しない - markdownlint検証は必ず実施する - ユーザーフィードバックを反映して改善する ## チェックリスト ### 既存エージェント確認完了時 - [ ] プラグインディレクトリ内の既存エージェントを確認した - [ ] 同じ責任範囲のエージェントが存在しないことを確認した - [ ] 重複する内容が他のエージェントに含まれていないことを確認した - [ ] 既存エージェントで代用できない理由が明確である - [ ] 重複する内容を除外する方針を決定した ### 情報収集完了時 - [ ] エージェントの目的と役割が明確になっている - [ ] 責任範囲内の項目を把握している - [ ] 責任範囲外の項目を把握している - [ ] 対象フェーズや役割が明確になっている - [ ] 注意事項として記述すべき内容が確認されている - [ ] 使用可能なツール(tools)が確認されている ### コンテンツ生成完了時 - [ ] フロントマター(name, description, tools, model, color)が記述されている - [ ] 役割が簡潔に記述されている - [ ] 責任範囲内が明確に定義されている(3〜5項目) - [ ] 責任範囲外が明確に定義されている(2〜3項目) - [ ] 注意事項が記述されている(3〜5項目) - [ ] 太字の見出しと説明の形式が正しく使用されている - [ ] プラグインアーキテクチャ規約に従っている - [ ] 既存エージェントと重複する内容が含まれていない - [ ] 他の要素(エージェント、スキル、コマンド)を参照していない - [ ] 固有名詞が使用されていない - [ ] 具体的なワークフローが含まれていない ### 検証完了時 - [ ] プラグインアーキテクチャ規約の遵守を確認した - [ ] markdownlint検証を実施した(エラーなし) - [ ] テンプレート構造の整合性を確認した - [ ] ユーザーにプレビューを提示した - [ ] フィードバックを収集した - [ ] 必要な修正を完了した ### 最終確認 - [ ] エージェントファイルが生成されている - [ ] すべてのセクションが適切に記述されている - [ ] プラグインアーキテクチャ規約が遵守されている - [ ] markdownlint検証に合格している - [ ] ユーザーの承認を得ている