--- name: workflow-skill-generator description: ユーザーの作業フローから、Workflow Skillのマークダウンファイルを生成する。ワークフロースキル作成時、業務プロセス文書化時、またはユーザーがWorkflow Skill、作業フロー、業務プロセス、手順書に言及した際に使用する。 --- # Workflow Skill Generator ## 概要 このSkillは、ユーザーが提供する作業フローや業務プロセスの情報を基に、Workflow Skillのマークダウンファイル(SKILL.md)を生成する。ユーザーとの対話を通じて必要な情報を収集し、適切なテンプレートを選択して、標準化されたワークフロースキルのドキュメントを作成する。 ## 責任範囲 このSkillは以下の範囲をカバーする: - 既存スキルの確認と重複チェック - ユーザーとの対話による作業フロー情報の収集 - ワークフローのフェーズ分解と整理 - 入力・出力・実施内容の明確化 - テンプレート(simple版/full版)の選択 - SKILL.mdファイルの生成 - テンプレートファイルの生成(ドキュメント生成を含む場合、skills/[スキル名]/templates/配下) - プラグインアーキテクチャ規約の遵守確認 - markdownlint検証の実施 - ユーザーフィードバックの収集と反映 ## ワークフロー ### フェーズ1: 既存スキル確認 スキル生成前に、既存のスキルを確認し、重複を避ける。 **実施内容:** 1. プラグインディレクトリ内の既存スキルを確認する 2. 作成予定のスキルと同じ目的のスキルが存在しないか確認する 3. 作成予定のスキル内容と重複する記述が他のスキルに含まれていないか確認する 4. 既存スキルで代用できる場合はユーザーに提案する 5. 重複が避けられない場合は、どの内容を削除すべきかユーザーと確認する **確認対象:** - プラグインディレクトリ内のskillsディレクトリ内のドキュメント **質問例:** ```markdown 【既存スキル確認】 プラグインディレクトリ内の既存スキルを確認しました。 以下のスキルと内容が重複する可能性があります: - interaction-guidelines: ユーザーとの対話パターン、質問技法 - documentation-standards: Markdown記述ルール、markdownlint検証 作成予定のスキルから、これらの重複内容を除外してよろしいですか? ``` **既存スキルで代用可能な場合:** ```markdown 【確認】 作成予定のスキルと同じ目的のスキルが既に存在します: - [既存スキル名]: [既存スキルの説明] 既存スキルで十分な場合は、新規作成は不要です。 それでも新規作成が必要ですか?必要な場合は、既存スキルとの違いを教えてください。 ``` ### フェーズ2: 情報収集 ユーザーとの対話を通じて、ワークフロースキルに必要な情報を収集する。 **実施内容:** 1. スキルの目的と対象作業を確認する 2. 作業フローの全体像を把握する 3. フェーズ分解の可能性を検討する 4. 入力データと出力データを特定する 5. 前提条件や制約事項を確認する 6. ユーザーとの対話時は、明確なタイトル付き質問、複数選択肢の提示、推奨オプションの明示を行う ### フェーズ3: テンプレート選択 収集した情報を基に、適切なテンプレート(simple版/full版)を選択する。 **実施内容:** 1. スキルの複雑度を評価する 2. テンプレートの選択肢(simple版/full版)を提示する 3. 推奨テンプレートを明示してユーザーに確認する **テンプレート選択基準:** - simple版: フェーズが2〜3個程度のシンプルな作業 - full版: フェーズが4個以上の複雑な作業、良い例/悪い例が必要 ### フェーズ4: コンテンツ生成 選択したテンプレートを基に、SKILL.mdファイルのコンテンツを生成する。 **実施内容:** 1. フロントマター(name, description)を作成する 2. 概要セクションを記述する 3. 責任範囲を定義する 4. 前提条件を記述する(該当する場合) 5. 基本方針を記述する(該当する場合) 6. ワークフローをフェーズごとに記述する 7. アウトプット定義を記述する 8. チェックリストを作成する 9. エラー処理・ベストプラクティスを記述する(full版の場合) 10. ドキュメント生成を含む場合、テンプレートファイルを生成し、skills/[スキル名]/templates/配下に配置する **フロントマターの作成:** ```markdown --- name: スキル名(ケバブケース、例: database-schema-designer) description: スキルの簡潔な説明(1行、50文字以内) --- ``` **概要の記述:** - スキルの目的を明確に記述する - 実行する作業の範囲を説明する - 簡潔に1〜2段落で記述する **責任範囲の定義:** - 箇条書きで3〜5項目を記述する - 「〜を収集する」「〜を生成する」「〜を検証する」のような動詞で表現する - スキルがカバーする範囲を明確にする **ワークフローの記述:** 各フェーズに以下を含める: - フェーズ名(例: フェーズ1: 情報収集) - フェーズの説明(1〜2行) - 実施内容(箇条書き) - 入力データ(該当する場合) - 出力データ(該当する場合) - 良い例/悪い例(full版の場合) **チェックリストの作成:** - 各フェーズの完了時チェックリスト - 最終確認チェックリスト - 具体的で検証可能な項目を記述する **プラグインアーキテクチャ規約の遵守:** 生成するスキルは、プラグインアーキテクチャ規約に従う必要がある(独立性の原則、汎用性の原則、単一責任の原則など)。 **重複最小化の確認:** 既存スキルと重複する内容が含まれていないかを確認し、スキル固有の内容のみを記述する。 ### フェーズ5: 検証 生成したコンテンツを検証し、品質を確保する。 **実施内容:** 1. 設計原則の遵守を確認する 2. markdownlint検証を実施する 3. テンプレート構造の整合性を確認する 4. ユーザーにプレビューを提示する 5. フィードバックを収集する 6. 必要に応じて修正する **プラグインアーキテクチャ規約の確認:** - プラグインアーキテクチャ規約に従っている - 既存スキルと重複する内容が含まれていない ## アウトプット このスキルは以下を生成する: - **SKILL.md**: ワークフロースキルの定義ファイル - フロントマター(name, description) - 概要、責任範囲、基本方針 - ワークフロー(フェーズごとの実施内容) - アウトプット定義 - チェックリスト - エラー処理・ベストプラクティス(full版の場合) ## 想定されるエラーと対処法 ### エラー1: 責任範囲が曖昧 **検出例:** ```markdown このSkillは、いろいろな作業を行う ``` **対処法:** - 具体的な動詞を使用する(収集する、生成する、検証する) - 責任範囲を明確に列挙する ## ベストプラクティス - フェーズは2〜5個に抑える(多すぎると複雑になる) - 各フェーズの実施内容は3〜5項目程度にする - チェックリストは具体的で検証可能な項目にする - 良い例/悪い例は実用的なものを記述する(full版の場合) - markdownlint検証は必ず実施する - ユーザーフィードバックを反映して改善する ## チェックリスト ### 既存スキル確認完了時 - [ ] プラグインディレクトリ内の既存スキルを確認した - [ ] 同じ目的のスキルが存在しないことを確認した - [ ] 重複する内容が他のスキルに含まれていないことを確認した - [ ] 既存スキルで代用できない理由が明確である - [ ] 重複する内容を除外する方針を決定した ### 情報収集完了時 - [ ] スキルの目的が明確になっている - [ ] 作業フローの全体像を把握している - [ ] フェーズ分解の方針が決まっている - [ ] 入力データと出力データが特定されている - [ ] 前提条件や制約事項が確認されている ### テンプレート選択完了時 - [ ] スキルの複雑度を評価した - [ ] テンプレート(simple/full)を選択した - [ ] ユーザーの確認を得た ### コンテンツ生成完了時 - [ ] フロントマター(name, description)が記述されている - [ ] 概要が簡潔に記述されている - [ ] 責任範囲が明確に定義されている - [ ] ワークフローがフェーズごとに記述されている - [ ] 各フェーズに実施内容が含まれている - [ ] アウトプット定義が記述されている - [ ] チェックリストが作成されている - [ ] プラグインアーキテクチャ規約に従っている - [ ] 既存スキルと重複する内容が含まれていない ### 検証完了時 - [ ] プラグインアーキテクチャ規約の遵守を確認した - [ ] markdownlint検証を実施した(エラーなし) - [ ] テンプレート構造の整合性を確認した - [ ] ユーザーにプレビューを提示した - [ ] フィードバックを収集した - [ ] 必要な修正を完了した ### 最終確認 - [ ] SKILL.mdファイルが生成されている - [ ] すべてのセクションが適切に記述されている - [ ] プラグインアーキテクチャ規約が遵守されている - [ ] markdownlint検証に合格している - [ ] ユーザーの承認を得ている