14 KiB
14 KiB
name, description
| name | description |
|---|---|
| domain-analyzer | ユーザーの業務領域や目的を分析し、必要な機能を抽出する。プラグイン企画時、業務分析時、機能要件定義時、またはユーザーが業務領域分析、ドメイン分析、機能抽出、プラグイン設計に言及した際に使用する。 |
Domain Analyzer
概要
このSkillは、ユーザーが提供する業務領域や目的の情報を基に、プラグイン化に必要な機能を分析・抽出する。ユーザーとの対話を通じて業務の本質を理解し、自動化すべき作業や必要なプラグイン要素を特定する。
責任範囲
このSkillは以下の範囲をカバーする:
- ユーザーの業務領域や目的の理解
- 業務の特徴・制約・前提条件の把握
- 自動化可能な機能の抽出
- 機能のカテゴリ分類と優先順位付け
- 推奨エージェント・スキル・コマンドの提案
- 業務領域分析レポートの作成
ワークフロー
フェーズ1: 情報収集
ユーザーとの対話を通じて、業務領域や目的に関する基本情報を収集する。
実施内容:
- 業務領域の概要を確認する
- プラグイン化の目的を明確にする
- 対象ユーザー(利用者)を特定する
- 現在の課題や問題点を把握する
- 期待される効果や成果を確認する
質問例:
【業務領域の確認】
プラグイン化したい業務領域を教えてください。以下のどれに近いですか?
1. 開発プロセス(要件定義、設計、実装、テストなど)
2. ドキュメント作成(技術文書、仕様書、マニュアルなど)
3. データ処理(分析、変換、集計など)
4. その他(具体的に教えてください)
良い例:
業務領域: データベース設計
目的: データベーススキーマ設計を効率化し、設計品質を向上させる
対象ユーザー: バックエンド開発者、データベースエンジニア
課題: 手作業でのER図作成に時間がかかり、正規化の検証が不十分
期待効果: 設計時間を50%削減し、正規化ルール違反をゼロにする
悪い例:
業務領域: いろいろなこと
目的: 便利にしたい
対象ユーザー: みんな
課題: よくわからない
期待効果: 良くなる
フェーズ2: 領域分析
収集した情報を基に、業務領域の特徴や制約を分析する。
実施内容:
- 業務の特徴を整理する
- 技術的制約を特定する
- ビジネス的制約を特定する
- 前提条件や依存関係を把握する
- 既存ツールやプロセスとの関係を確認する
分析観点:
- 業務の複雑度(シンプル/標準/複雑)
- 自動化の難易度(容易/中程度/困難)
- 必要な専門知識のレベル(基本/中級/上級)
- 対象範囲の広さ(狭い/中程度/広い)
良い例:
【分析結果】
業務の特徴:
- データベース設計は段階的なプロセス(概念設計 → 論理設計 → 物理設計)
- 正規化ルールや命名規則など、明確な規約が存在する
- ER図やテーブル定義書など、複数の成果物が必要
技術的制約:
- データベース製品(MySQL, PostgreSQL, SQL Serverなど)により構文が異なる
- 既存データベースとの互換性を考慮する必要がある
ビジネス的制約:
- 設計変更のコストが高いため、初期段階での品質確保が重要
- チーム内での設計レビューが必須
悪い例:
【分析結果】
業務の特徴: 複雑
制約: いろいろある
フェーズ3: 機能抽出
業務領域から、プラグインとして実装すべき機能を抽出する。
実施内容:
- 業務の各ステップを分解する
- 自動化可能な作業を特定する
- 手作業が必要な部分を明確にする
- 各機能の入力と出力を定義する
- 機能間の依存関係を整理する
抽出基準:
- 繰り返し実施される作業
- 明確なルールやパターンがある作業
- 検証や品質チェックが必要な作業
- ドキュメント生成が必要な作業
- テンプレートファイルを使用する作業(ドキュメント生成、フォーム入力、定型文作成など)
良い例:
【抽出された機能】
1. エンティティ定義の収集
- 入力: ユーザーからの要求、既存システムの情報
- 処理: エンティティの特定、属性の定義、関連の整理
- 出力: エンティティ一覧、属性リスト
2. 正規化の実施
- 入力: エンティティ定義
- 処理: 第1正規形〜第3正規形への変換、正規化ルール検証
- 出力: 正規化されたテーブル定義
3. ER図の生成
- 入力: 正規化されたテーブル定義
- 処理: ER図の自動生成、レイアウト最適化
- 出力: ER図(Mermaid形式)
4. テーブル定義書の作成
- 入力: テーブル定義、制約情報
- 処理: 定義書フォーマットへの変換
- 出力: テーブル定義書(Markdown形式)
- テンプレート: table-definition-template.md(テーブル名、カラム定義、インデックス、制約の記述フォーマット)
5. DDLスクリプトの生成
- 入力: テーブル定義、対象データベース製品
- 処理: データベース製品別のDDL生成
- 出力: CREATE TABLE文、制約定義
悪い例:
【抽出された機能】
1. データベースを作る
2. 便利にする
3. 良くする
フェーズ4: 要素分類
抽出した機能を、エージェント・スキル・コマンドに分類する。
実施内容:
- 責任範囲の広い機能をエージェント候補として分類する
- 具体的な作業手順をスキル候補として分類する
- エージェントとスキルの組み合わせをコマンド候補として分類する
- 規約やガイドラインをコンベンションスキル候補として分類する
- 必要なテンプレートファイルと対応するスキルの関係を特定する
- 要素間の依存関係を整理する
分類基準:
- エージェント: 特定フェーズや領域全体に対する責任を持つ
- スキル(ワークフロー): 具体的な作業手順を定義する
- スキル(コンベンション): 規約やガイドラインを定義する
- コマンド: エージェントとスキルを組み合わせて実行可能にする
良い例:
【分類結果】
エージェント候補:
- database-design-agent: データベース設計全体に対する責任を持つ
ワークフロースキル候補:
- entity-definition-collector: エンティティ定義を収集する
- normalization-processor: 正規化を実施する
- er-diagram-generator: ER図を生成する
- table-definition-writer: テーブル定義書を作成する
- ddl-script-generator: DDLスクリプトを生成する
コンベンションスキル候補:
- database-naming-conventions: データベース命名規則
- normalization-rules: 正規化ルール
コマンド候補:
- design-database: データベース設計全体を実行(全スキルを順次実行)
- generate-schema: スキーマ定義のみを生成(一部スキルを実行)
悪い例:
【分類結果】
エージェント: データベース
スキル: いろいろ
コマンド: 実行
フェーズ5: 推奨提示
分類結果を基に、推奨されるプラグイン構成をユーザーに提示する。
実施内容:
- 推奨されるエージェント構成を提示する
- 推奨されるスキル構成を提示する
- 推奨されるコマンド構成を提示する
- 実装の優先順位を提案する
- 次のステップ(各要素の詳細設計)を案内する
提示形式:
【推奨プラグイン構成】
プラグイン名: database-design-plugin
エージェント (1個):
- database-design-agent: データベース設計全体に対する責任を持つ
スキル (7個):
ワークフロースキル:
- entity-definition-collector: エンティティ定義を収集する
- normalization-processor: 正規化を実施する
- er-diagram-generator: ER図を生成する
- table-definition-writer: テーブル定義書を作成する
- ddl-script-generator: DDLスクリプトを生成する
コンベンションスキル:
- database-naming-conventions: データベース命名規則
- normalization-rules: 正規化ルール
コマンド (2個):
- design-database: データベース設計全体を実行
- generate-schema: スキーマ定義のみを生成
【実装優先順位】
優先度1(必須):
- database-design-agent
- entity-definition-collector
- normalization-processor
- database-naming-conventions
- normalization-rules
優先度2(推奨):
- er-diagram-generator
- table-definition-writer
- design-database コマンド
優先度3(オプション):
- ddl-script-generator
- generate-schema コマンド
良い例:
推奨構成が明確で、各要素の役割が説明されており、優先順位が付けられている。
悪い例:
【推奨プラグイン構成】
いろいろ作る
アウトプット
このスキルは以下を生成する:
- 必要な機能リスト: 抽出された機能の一覧(入力・処理・出力を含む)
- 推奨エージェント/スキル/コマンド候補: プラグイン要素の推奨構成
- テンプレートファイルリスト: ドキュメント生成機能で使用するテンプレートファイルの一覧(配置先を含む)
- 業務領域分析レポート: 業務の特徴、制約、前提条件をまとめたドキュメント
想定されるエラーと対処法
エラー1: 業務領域が曖昧
検出例:
業務領域: いろいろなこと
対処法:
- 具体的な業務名や作業内容を確認する
- 既存の業務プロセスやドキュメントを参照する
- ユーザーに具体例を尋ねる
エラー2: 機能の粒度が不適切
検出例:
機能: データベース全体を作成する
対処法:
- 機能を小さなステップに分解する
- 各ステップの入力と出力を明確にする
- 1つの機能は1つの明確な目的を持つようにする
エラー3: 要素分類が不明確
検出例:
エージェントとスキルの区別が曖昧で、どちらに分類すべきか不明確。
対処法:
- エージェントは「責任範囲」、スキルは「具体的な作業手順」と区別する
- 複数のスキルをまとめる役割はエージェントにする
- 1つの明確な作業フローを持つものはスキルにする
ベストプラクティス
- 業務領域の理解には十分な時間をかける(急がず丁寧に)
- ユーザーとの対話を重視し、推測や仮定を避ける
- 機能は小さく分解し、単一責任の原則に従う
- 要素分類は明確な基準に基づいて行う
- 推奨構成は実装の優先順位を明示する
- 業務領域分析レポートは後続フェーズで参照できるようにする
チェックリスト
情報収集完了時
- 業務領域の概要が明確になっている
- プラグイン化の目的が明確になっている
- 対象ユーザーが特定されている
- 現在の課題や問題点が把握されている
- 期待される効果や成果が確認されている
領域分析完了時
- 業務の特徴が整理されている
- 技術的制約が特定されている
- ビジネス的制約が特定されている
- 前提条件や依存関係が把握されている
- 既存ツールやプロセスとの関係が確認されている
機能抽出完了時
- 業務の各ステップが分解されている
- 自動化可能な作業が特定されている
- 手作業が必要な部分が明確になっている
- 各機能の入力と出力が定義されている
- ドキュメント生成機能で使用するテンプレートファイルが特定されている
- 機能間の依存関係が整理されている
- 機能の粒度が適切である(単一責任の原則)
要素分類完了時
- エージェント候補が特定されている
- ワークフロースキル候補が特定されている
- コンベンションスキル候補が特定されている
- コマンド候補が特定されている
- 要素間の依存関係が整理されている
- 分類基準が明確である
推奨提示完了時
- 推奨プラグイン構成が明確に提示されている
- 各要素の役割が説明されている
- 実装の優先順位が付けられている
- 次のステップが案内されている
- ユーザーの承認を得ている
最終確認
- 必要な機能リストが作成されている
- 推奨エージェント/スキル/コマンド候補が提示されている
- 業務領域分析レポートが作成されている
- すべてのアウトプットが明確で理解しやすい
- ユーザーが次のステップに進める状態になっている