Files
2025-11-30 08:51:41 +08:00

492 lines
17 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
name: workflow-analyzer
description: 作業フローや手順を分析し、自動化可能な要素を特定する。ワークフロー分析時、自動化検討時、業務プロセス改善時、またはユーザーが作業フロー分析、自動化要素、業務手順、プロセス最適化に言及した際に使用する。
---
# Workflow Analyzer
## 概要
このSkillは、ユーザーが提供する作業フローや業務手順の情報を基に、自動化可能な要素を分析・特定する。ユーザーとの対話を通じて作業の詳細を理解し、プラグイン化すべきスキルや作業の依存関係を明確にする。
## 責任範囲
このSkillは以下の範囲をカバーする:
- 作業フローや業務手順の収集
- 作業ステップの分解と詳細化
- 自動化可能な要素の特定と評価
- ワークフロースキルとコンベンションスキルの分類
- 推奨スキル構成の提案
- 作業フロー分析レポートの作成
## ワークフロー
### フェーズ1: フロー収集
ユーザーとの対話を通じて、作業フローや業務手順に関する情報を収集する。
**実施内容:**
1. 作業フローの概要を確認する
2. 作業の開始条件(トリガー)を特定する
3. 作業の終了条件(完了基準)を確認する
4. 作業に関わる人やシステムを把握する
5. 既存の手順書やドキュメントを確認する
**質問例:**
```markdown
【作業フローの確認】
分析したい作業フローを教えてください。
1. 作業名: [作業の名称]
2. 目的: [この作業で達成したいこと]
3. 頻度: [どのくらいの頻度で実施するか]
4. 所要時間: [1回あたりの作業時間]
5. 担当者: [誰が実施するか]
```
**良い例:**
```markdown
作業名: コードレビュー実施
目的: コード品質を確保し、バグやセキュリティ問題を早期発見する
頻度: プルリクエストごと1日5〜10回
所要時間: 1回あたり30分〜1時間
担当者: シニアエンジニア、テックリード
開始条件:
- プルリクエストが作成される
- CI/CDパイプラインが成功する
終了条件:
- レビューコメントが全て解決される
- 承認者が2名以上Approveする
- マージ可能な状態になる
```
**悪い例:**
```markdown
作業名: レビュー
目的: 確認する
頻度: たまに
所要時間: 適当
担当者: 誰か
```
### フェーズ2: ステップ分解
作業フローを具体的なステップに分解し、各ステップの詳細を明確にする。
**実施内容:**
1. 作業を順序通りのステップに分解する
2. 各ステップの入力と出力を定義する
3. ステップ間のデータ受け渡しを確認する
4. 条件分岐や繰り返しを特定する
5. 各ステップの判断基準やルールを明確にする
6. 各ステップで使用するテンプレートファイルやフォーマットを特定する
**分解基準:**
- 1ステップは1つの明確な目的を持つ
- ステップの粒度は適切である(細かすぎず、粗すぎず)
- ステップ間の依存関係が明確である
- 各ステップの完了条件が定義できる
**良い例:**
```markdown
【コードレビュー実施フロー】
ステップ1: プルリクエスト確認
- 入力: プルリクエストURL
- 処理: PR内容、変更ファイル、コミットメッセージを確認
- 出力: レビュー対象の特定、優先度判断
- 判断基準: 変更規模、影響範囲、緊急度
ステップ2: 静的解析結果確認
- 入力: CI/CDパイプライン結果
- 処理: linter、型チェック、セキュリティスキャン結果を確認
- 出力: 自動検出された問題リスト
- 判断基準: エラーがゼロであること
ステップ3: コード品質チェック
- 入力: 変更されたコード
- 処理: コーディング規約、設計原則、ベストプラクティスに照らしてチェック
- 出力: 品質問題リスト、改善提案
- 判断基準: コーディング規約、SOLID原則、セキュリティガイドライン
ステップ4: テストカバレッジ確認
- 入力: テスト実行結果、カバレッジレポート
- 処理: テストの網羅性、テストの品質を確認
- 出力: テスト改善提案
- 判断基準: カバレッジ80%以上、エッジケースのテストが含まれる
ステップ5: レビューコメント作成
- 入力: 品質問題リスト、改善提案
- 処理: コメントの優先度付け、具体的な修正案の作成
- 出力: レビューコメント
- 判断基準: 建設的、具体的、実行可能
ステップ6: 承認判断
- 入力: 全てのチェック結果、レビューコメント
- 処理: 承認可否を判断
- 出力: Approve or Request Changes
- 判断基準: 重大な問題がゼロ、軽微な問題は許容範囲内
```
**悪い例:**
```markdown
ステップ1: 確認する
ステップ2: チェックする
ステップ3: 終わり
```
### フェーズ3: 自動化分析
各ステップを分析し、自動化可能性を評価する。
**実施内容:**
1. 各ステップの自動化可能性を評価する
2. 自動化の難易度を判定する
3. 自動化による効果を見積もる
4. 手作業が必要な部分を特定する
5. 自動化の優先順位を付ける
**評価基準:**
- **自動化可能性**: 高/中/低
- 高: 明確なルールがあり、判断が機械的
- 中: ある程度のルールがあるが、一部判断が必要
- 低: 人間の経験や直感が必要
- **自動化難易度**: 容易/中程度/困難
- 容易: 既存ツールやAPIで実現可能
- 中程度: カスタム実装が必要だが実現可能
- 困難: 技術的制約があり実現が難しい
- **自動化効果**: 高/中/低
- 高: 時間削減が大きい、ミス削減効果が高い
- 中: 一定の効果がある
- 低: 効果が限定的
**良い例:**
```markdown
【自動化分析結果】
ステップ1: プルリクエスト確認
- 自動化可能性: 高
- 自動化難易度: 容易
- 自動化効果: 中
- 理由: GitHub APIで情報取得可能、基本的な分析は自動化できる
- 手作業部分: 優先度の最終判断(レビュー者の経験に基づく)
ステップ2: 静的解析結果確認
- 自動化可能性: 高
- 自動化難易度: 容易
- 自動化効果: 高
- 理由: CI/CD結果の取得と解析は完全自動化可能
- 手作業部分: なし
ステップ3: コード品質チェック
- 自動化可能性: 中
- 自動化難易度: 中程度
- 自動化効果: 高
- 理由: コーディング規約チェックは自動化可能だが、設計原則の評価は難しい
- 手作業部分: アーキテクチャレビュー、設計の妥当性判断
ステップ4: テストカバレッジ確認
- 自動化可能性: 高
- 自動化難易度: 容易
- 自動化効果: 高
- 理由: カバレッジレポートの解析は完全自動化可能
- 手作業部分: テストの品質評価(テストが適切かどうか)
ステップ5: レビューコメント作成
- 自動化可能性: 中
- 自動化難易度: 中程度
- 自動化効果: 中
- 理由: 定型的なコメントは自動生成可能、建設的なコメントは難しい
- 手作業部分: 具体的な修正提案、コンテキストに応じたアドバイス
ステップ6: 承認判断
- 自動化可能性: 中
- 自動化難易度: 中程度
- 自動化効果: 低
- 理由: ルールベースの判断は可能だが、最終承認は人間が行うべき
- 手作業部分: 最終的な承認判断
```
**悪い例:**
```markdown
全部自動化できる
```
### フェーズ4: スキル分類
自動化可能な要素をワークフロースキルとコンベンションスキルに分類する。
**実施内容:**
1. 作業手順をワークフロースキル候補として分類する
2. 規約やガイドラインをコンベンションスキル候補として分類する
3. 各スキルの責任範囲を定義する
4. スキル間の依存関係を整理する
5. 必要なテンプレートファイルと対応するスキルの関係を特定する
6. スキルの粒度を調整する
**分類基準:**
- **ワークフロースキル**: 具体的な作業手順を定義する
- 入力、処理、出力が明確
- ステップが順序立てられている
- チェックリストや検証項目がある
- **コンベンションスキル**: 規約やガイドラインを定義する
- ルールや基準が明確
- 良い例/悪い例が示せる
- チェックリストで検証可能
**良い例:**
```markdown
【スキル分類結果】
ワークフロースキル候補:
1. pull-request-analyzer
- 責任範囲: プルリクエストの内容を分析し、レビュー対象を特定する
- 入力: プルリクエストURL
- 出力: レビュー対象の特定、優先度判断、変更サマリー
- 依存: なし
2. static-analysis-checker
- 責任範囲: CI/CD静的解析結果を確認し、問題を抽出する
- 入力: CI/CDパイプライン結果
- 出力: 問題リスト、重要度分類
- 依存: なし
3. code-quality-reviewer
- 責任範囲: コード品質をチェックし、改善提案を作成する
- 入力: 変更されたコード、コーディング規約
- 出力: 品質問題リスト、改善提案
- 依存: coding-conventions
4. test-coverage-analyzer
- 責任範囲: テストカバレッジを確認し、テスト改善提案を作成する
- 入力: テスト実行結果、カバレッジレポート
- 出力: カバレッジ分析結果、テスト改善提案
- 依存: なし
5. review-comment-generator
- 責任範囲: レビューコメントを生成し、優先度付けを行う
- 入力: 品質問題リスト、改善提案
- 出力: レビューコメント
- 依存: review-comment-guidelines
コンベンションスキル候補:
1. coding-conventions
- 責任範囲: コーディング規約(命名規則、フォーマット、ベストプラクティス)を定義
- カテゴリ: 命名規則、コードレイアウト、設計原則
- 良い例/悪い例: あり
2. review-comment-guidelines
- 責任範囲: レビューコメントのガイドライン(建設的、具体的、実行可能)を定義
- カテゴリ: コメントの書き方、優先度付け、フィードバックの伝え方
- 良い例/悪い例: あり
```
**悪い例:**
```markdown
スキル: レビュー全部
```
### フェーズ5: 推奨提示
分類結果を基に、推奨されるスキル構成をユーザーに提示する。
**実施内容:**
1. 推奨されるワークフロースキル構成を提示する
2. 推奨されるコンベンションスキル構成を提示する
3. スキルの実行順序を明示する
4. 実装の優先順位を提案する
5. 次のステップ(各スキルの詳細設計)を案内する
**提示形式:**
```markdown
【推奨スキル構成】
ワークフロースキル (5個):
- pull-request-analyzer: プルリクエストの内容を分析し、レビュー対象を特定する
- static-analysis-checker: CI/CD静的解析結果を確認し、問題を抽出する
- code-quality-reviewer: コード品質をチェックし、改善提案を作成する
- test-coverage-analyzer: テストカバレッジを確認し、テスト改善提案を作成する
- review-comment-generator: レビューコメントを生成し、優先度付けを行う
コンベンションスキル (2個):
- coding-conventions: コーディング規約を定義
- review-comment-guidelines: レビューコメントのガイドラインを定義
【実行順序】
1. pull-request-analyzer (並列実行可能)
2. static-analysis-checker (並列実行可能)
3. code-quality-reviewer (coding-conventionsに依存)
4. test-coverage-analyzer (並列実行可能)
5. review-comment-generator (review-comment-guidelinesに依存)
【実装優先順位】
優先度1必須:
- coding-conventions
- pull-request-analyzer
- static-analysis-checker
- code-quality-reviewer
優先度2推奨:
- test-coverage-analyzer
- review-comment-guidelines
- review-comment-generator
【自動化効果見積もり】
現状: 1回あたり30分〜1時間手作業
自動化後: 1回あたり10分〜15分自動+人間の最終判断)
削減効果: 約60%〜75%の時間削減
```
**良い例:**
推奨構成が明確で、各スキルの役割、実行順序、優先順位が説明されており、自動化効果も示されている。
**悪い例:**
```markdown
スキルをいくつか作る
```
## アウトプット
このスキルは以下を生成する:
- **自動化可能な要素リスト**: 各ステップの自動化可能性評価(自動化可能性、難易度、効果)
- **推奨スキル構成**: ワークフロースキルとコンベンションスキルの推奨構成
- **テンプレートファイルリスト**: 各ステップで使用するテンプレートファイルの一覧(配置先を含む)
- **作業フロー分析レポート**: 作業フローの特徴、ボトルネック、自動化効果をまとめたドキュメント
## 想定されるエラーと対処法
### エラー1: ステップ分解が粗すぎる
**検出例:**
```markdown
ステップ1: レビューする
ステップ2: 終わり
```
**対処法:**
- 各ステップをさらに細かく分解する
- 1ステップは1つの明確な目的を持つようにする
- 入力と出力を明確にする
### エラー2: 自動化可能性の評価が不明確
**検出例:**
```markdown
自動化可能性: たぶんできる
```
**対処法:**
- 明確な評価基準(高/中/低)を使用する
- 評価の理由を具体的に記述する
- 手作業が必要な部分を明示する
### エラー3: スキルの粒度が不適切
**検出例:**
スキルが大きすぎる、または小さすぎる。
**対処法:**
- 1スキルは1つの明確な責任を持つようにする
- スキルが大きすぎる場合は分割する
- スキルが小さすぎる場合は統合する
- スキル粒度規約に従う
## ベストプラクティス
- 作業フローは実際の作業者にヒアリングして収集する
- ステップ分解は細かすぎず、粗すぎず適切な粒度にする
- 自動化分析は客観的な基準で評価する
- スキル分類は明確な基準に基づいて行う
- 推奨構成は実装の優先順位を明示する
- 自動化効果を定量的に示す(時間削減率など)
## チェックリスト
### フロー収集完了時
- [ ] 作業フローの概要が明確になっている
- [ ] 作業の開始条件(トリガー)が特定されている
- [ ] 作業の終了条件(完了基準)が確認されている
- [ ] 作業に関わる人やシステムが把握されている
- [ ] 既存の手順書やドキュメントが確認されている
### ステップ分解完了時
- [ ] 作業が順序通りのステップに分解されている
- [ ] 各ステップの入力と出力が定義されている
- [ ] ステップ間のデータ受け渡しが確認されている
- [ ] 条件分岐や繰り返しが特定されている
- [ ] 各ステップの判断基準やルールが明確になっている
- [ ] 各ステップで使用するテンプレートファイルやフォーマットが特定されている
- [ ] ステップの粒度が適切である
### 自動化分析完了時
- [ ] 各ステップの自動化可能性が評価されている
- [ ] 自動化の難易度が判定されている
- [ ] 自動化による効果が見積もられている
- [ ] 手作業が必要な部分が特定されている
- [ ] 自動化の優先順位が付けられている
- [ ] 評価基準が明確である
### スキル分類完了時
- [ ] ワークフロースキル候補が特定されている
- [ ] コンベンションスキル候補が特定されている
- [ ] 各スキルの責任範囲が定義されている
- [ ] スキル間の依存関係が整理されている
- [ ] 必要なテンプレートファイルと対応するスキルの関係が特定されている
- [ ] スキルの粒度が適切である
### 推奨提示完了時
- [ ] 推奨スキル構成が明確に提示されている
- [ ] スキルの実行順序が明示されている
- [ ] 実装の優先順位が提案されている
- [ ] 自動化効果が定量的に示されている
- [ ] 次のステップが案内されている
- [ ] ユーザーの承認を得ている
### 最終確認
- [ ] 自動化可能な要素リストが作成されている
- [ ] 推奨スキル構成が提示されている
- [ ] 作業フロー分析レポートが作成されている
- [ ] すべてのアウトプットが明確で理解しやすい
- [ ] ユーザーが次のステップに進める状態になっている