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

550 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: task-decomposer
description: 複雑な作業を単一目的の小さなタスクに分解する。タスク分解時、作業細分化時、スキル設計時、またはユーザーがタスク分解、作業分割、細分化、単一目的、タスク粒度に言及した際に使用する。
---
# Task Decomposer
## 概要
このSkillは、ユーザーが提供する複雑な作業や大きなタスクを、単一目的の小さなタスクに分解する。ユーザーとの対話を通じてタスクの詳細を理解し、適切な粒度のタスクに分解して、スキルやコマンドの設計を支援する。
## 責任範囲
このSkillは以下の範囲をカバーする:
- 複雑なタスクや大きな作業の収集
- タスクの複雑度と依存関係の評価
- タスクの分解と小タスクへの変換
- タスク粒度の調整と最適化
- 分解されたタスクリストの提供
- タスク実行順序の提案
## ワークフロー
### フェーズ1: タスク収集
ユーザーとの対話を通じて、分解対象となる複雑なタスクや大きな作業を収集する。
**実施内容:**
1. 分解対象のタスクを確認する
2. タスクの目的と期待される成果を把握する
3. タスクの制約条件を確認する
4. タスクに必要なリソースを特定する
5. タスクの完了基準を明確にする
**質問例:**
```markdown
【タスクの確認】
分解したい複雑なタスクを教えてください。
1. タスク名: [タスクの名称]
2. 目的: [このタスクで達成したいこと]
3. 期待される成果: [タスク完了後の成果物や状態]
4. 制約条件: [時間、リソース、技術的制約など]
5. 完了基準: [どうなったら完了とするか]
```
**良い例:**
```markdown
タスク名: コードレビュープロセスの自動化
目的: コードレビューの効率化と品質向上
期待される成果:
- 静的解析結果の自動確認
- コーディング規約違反の自動検出
- レビューコメントの自動生成
- レビューレポートの自動作成
制約条件:
- 既存のCI/CDパイプラインと統合する
- GitHub APIを使用する
- レビュー時間を50%削減する
完了基準:
- 全ての成果物が実装されている
- CI/CDパイプラインと統合されている
- レビュー時間が50%削減されている
```
**悪い例:**
```markdown
タスク名: レビュー
目的: 良くする
期待される成果: 何か
制約条件: 特になし
完了基準: 終わったら
```
### フェーズ2: 複雑度評価
収集したタスクの複雑度を評価し、分解の必要性と方針を決定する。
**実施内容:**
1. タスクの規模を評価する(工数、影響範囲)
2. タスクの複雑度を評価する(技術的難易度、依存関係)
3. タスクの依存関係を特定する
4. 分解の必要性を判断する
5. 分解の方針を決定する
**評価基準:**
- **規模**: 小/中/大
- 小: 1〜2時間で完了
- 中: 半日〜1日で完了
- 大: 2日以上必要
- **複雑度**: 低/中/高
- 低: 明確な手順があり、判断が不要
- 中: 一部判断が必要だが、手順は明確
- 高: 複雑な判断や技術的課題がある
- **依存関係**: 独立/一部依存/強依存
- 独立: 他のタスクに依存しない
- 一部依存: 一部のタスクに依存する
- 強依存: 多くのタスクに依存する
**良い例:**
```markdown
【複雑度評価結果】
タスク: コードレビュープロセスの自動化
規模: 大
- 工数: 5〜7日程度
- 影響範囲: CI/CDパイプライン、レビュープロセス全体
複雑度: 高
- 技術的課題: GitHub API連携、静的解析ツール統合、自然言語処理
- 判断の必要性: レビューコメントの適切性、優先度判断
依存関係: 一部依存
- CI/CDパイプラインの整備前提条件
- GitHub リポジトリへのアクセス権限(前提条件)
- 静的解析ツールの導入(並行作業可能)
分解の必要性: 必要
- 理由: 規模が大きく、複雑度が高いため、小さなタスクに分解すべき
分解の方針:
- 機能別に分解する(静的解析確認、規約違反検出、コメント生成など)
- 各機能を独立したタスクとして実装する
- 依存関係を明確にして実装順序を決定する
```
**悪い例:**
```markdown
【複雑度評価結果】
規模: 大きい
複雑度: 難しい
依存関係: ある
分解の必要性: たぶん必要
```
### フェーズ3: タスク分解
複雑なタスクを、単一目的の小さなタスクに分解する。
**実施内容:**
1. タスクを機能別に分解する
2. 各小タスクの目的を明確にする
3. 各小タスクの入力と出力を定義する
4. 小タスク間の依存関係を整理する
5. 小タスクの実行順序を決定する
**分解基準:**
- 1タスクは1つの明確な目的を持つ
- タスクの完了基準が明確である
- タスクの入力と出力が明確である
- タスクは半日〜1日で完了できる粒度である
**良い例:**
```markdown
【タスク分解結果】
元のタスク: コードレビュープロセスの自動化
分解されたタスク:
タスク1: プルリクエスト情報取得
- 目的: GitHub APIからプルリクエスト情報を取得する
- 入力: プルリクエストURL
- 出力: PR情報タイトル、説明、変更ファイル、コミットリスト
- 依存関係: なし
- 工数: 半日
タスク2: 静的解析結果確認
- 目的: CI/CDパイプラインの静的解析結果を確認する
- 入力: CI/CDパイプライン結果
- 出力: 静的解析問題リストlinter、型チェック、セキュリティスキャン
- 依存関係: なし
- 工数: 半日
タスク3: コーディング規約違反検出
- 目的: コード変更がコーディング規約に違反していないか確認する
- 入力: 変更されたコード、コーディング規約定義
- 出力: 規約違反リスト(違反箇所、違反内容、重要度)
- 依存関係: タスク1変更ファイル情報が必要
- 工数: 1日
タスク4: テストカバレッジ確認
- 目的: テストカバレッジを確認し、不足箇所を特定する
- 入力: テスト実行結果、カバレッジレポート
- 出力: カバレッジ分析結果(カバレッジ率、未カバー箇所)
- 依存関係: なし
- 工数: 半日
タスク5: レビューコメント生成
- 目的: 検出された問題からレビューコメントを生成する
- 入力: 静的解析問題リスト、規約違反リスト、カバレッジ分析結果
- 出力: レビューコメント(問題箇所、修正提案、優先度)
- 依存関係: タスク2、タスク3、タスク4
- 工数: 1日
タスク6: レビューレポート作成
- 目的: レビュー結果をまとめたレポートを作成する
- 入力: レビューコメント、PR情報
- 出力: レビューレポートMarkdown形式
- 依存関係: タスク1、タスク5
- 工数: 半日
タスク7: CI/CDパイプライン統合
- 目的: 自動化されたレビュープロセスをCI/CDパイプラインに統合する
- 入力: 全タスクの成果物
- 出力: CI/CD設定ファイル、統合ドキュメント
- 依存関係: タスク1〜6全タスク完了後
- 工数: 1日
合計工数: 5.5日
```
**悪い例:**
```markdown
【タスク分解結果】
タスク1: 準備する
タスク2: 実装する
タスク3: 終わらせる
```
### フェーズ4: 粒度調整
分解されたタスクの粒度を確認し、必要に応じて調整する。
**実施内容:**
1. 各タスクの粒度を確認する
2. 大きすぎるタスクをさらに分解する
3. 小さすぎるタスクを統合する
4. タスクの完了基準を明確にする
5. タスクの優先順位を付ける
**調整基準:**
- **適切な粒度**: 半日〜1日で完了できる
- **大きすぎる**: 2日以上かかる場合は分解を検討
- **小さすぎる**: 1〜2時間で完了する場合は統合を検討
- **単一責任**: 1タスクは1つの明確な目的を持つ
**良い例:**
```markdown
【粒度調整結果】
調整対象: タスク3コーディング規約違反検出
調整前:
- 工数: 1日
- 粒度評価: 適切
調整内容: なし(粒度は適切)
調整対象: タスク5レビューコメント生成
調整前:
- 工数: 1日
- 粒度評価: やや大きい
調整後:
タスク5-1: 問題の優先度付け
- 目的: 検出された問題に優先度を付ける
- 入力: 静的解析問題リスト、規約違反リスト、カバレッジ分析結果
- 出力: 優先度付き問題リスト
- 工数: 半日
タスク5-2: レビューコメント生成
- 目的: 優先度付き問題からレビューコメントを生成する
- 入力: 優先度付き問題リスト
- 出力: レビューコメント
- 工数: 半日
調整理由: 優先度付けとコメント生成を分離することで、責任が明確になり、実装しやすくなる
【最終タスクリスト】
1. プルリクエスト情報取得(半日)
2. 静的解析結果確認(半日)
3. コーディング規約違反検出1日
4. テストカバレッジ確認(半日)
5-1. 問題の優先度付け(半日)
5-2. レビューコメント生成(半日)
6. レビューレポート作成(半日)
7. CI/CDパイプライン統合1日
合計工数: 5.5日
【優先順位】
優先度1必須:
- タスク1: プルリクエスト情報取得
- タスク2: 静的解析結果確認
- タスク3: コーディング規約違反検出
優先度2推奨:
- タスク4: テストカバレッジ確認
- タスク5-1: 問題の優先度付け
- タスク5-2: レビューコメント生成
優先度3オプション:
- タスク6: レビューレポート作成
- タスク7: CI/CDパイプライン統合
```
**悪い例:**
```markdown
【粒度調整結果】
調整なし
```
### フェーズ5: 推奨提示
分解されたタスクリストをユーザーに提示し、実装の指針を提供する。
**実施内容:**
1. 最終タスクリストを提示する
2. タスクの実行順序を明示する
3. タスク間の依存関係を図示する
4. 実装の優先順位を提案する
5. 次のステップを案内する
**提示形式:**
```markdown
【分解されたタスクリスト】
合計タスク数: 8個
合計工数: 5.5日
タスク一覧:
1. プルリクエスト情報取得(半日)
- GitHub APIからプルリクエスト情報を取得する
- 依存: なし
2. 静的解析結果確認(半日)
- CI/CDパイプラインの静的解析結果を確認する
- 依存: なし
3. コーディング規約違反検出1日
- コード変更がコーディング規約に違反していないか確認する
- 依存: タスク1
4. テストカバレッジ確認(半日)
- テストカバレッジを確認し、不足箇所を特定する
- 依存: なし
5-1. 問題の優先度付け(半日)
- 検出された問題に優先度を付ける
- 依存: タスク2、タスク3、タスク4
5-2. レビューコメント生成(半日)
- 優先度付き問題からレビューコメントを生成する
- 依存: タスク5-1
6. レビューレポート作成(半日)
- レビュー結果をまとめたレポートを作成する
- 依存: タスク1、タスク5-2
7. CI/CDパイプライン統合1日
- 自動化されたレビュープロセスをCI/CDパイプラインに統合する
- 依存: タスク1〜6
【実行順序】
フェーズ1並列実行可能:
- タスク1: プルリクエスト情報取得
- タスク2: 静的解析結果確認
- タスク4: テストカバレッジ確認
フェーズ2:
- タスク3: コーディング規約違反検出タスク1完了後
フェーズ3:
- タスク5-1: 問題の優先度付けタスク2、3、4完了後
フェーズ4:
- タスク5-2: レビューコメント生成タスク5-1完了後
フェーズ5:
- タスク6: レビューレポート作成タスク1、5-2完了後
フェーズ6:
- タスク7: CI/CDパイプライン統合全タスク完了後
【スキル・コマンドへのマッピング】
各タスクはワークフロースキルとして実装することを推奨:
- pull-request-analyzerタスク1
- static-analysis-checkerタスク2
- code-quality-reviewerタスク3
- test-coverage-analyzerタスク4
- issue-prioritizerタスク5-1
- review-comment-generatorタスク5-2
- review-report-writerタスク6
- cicd-integratorタスク7
【次のステップ】
1. 各タスクをワークフロースキルとして設計workflow-analyzer スキルを使用)
2. 必要なコンベンションスキルを特定coding-conventionsなど
3. エージェントを設計responsibility-mapper スキルを使用)
4. コマンドを設計command-generator スキルを使用)
```
**良い例:**
タスクリストが明確で、実行順序、依存関係、スキルへのマッピングが示されており、次のステップが案内されている。
**悪い例:**
```markdown
タスクをいくつか作った
```
## アウトプット
このスキルは以下を生成する:
- **分解されたタスクリスト**: 単一目的の小さなタスクのリスト(目的、入力、出力、工数を含む)
- **タスク実行順序**: タスクの依存関係と実行順序を明示したドキュメント
- **スキル・コマンドへのマッピング**: 各タスクをスキルやコマンドにマッピングした推奨案
## 想定されるエラーと対処法
### エラー1: タスクが大きすぎる
**検出例:**
```markdown
タスク: システム全体を実装する10日
```
**対処法:**
- タスクを機能別に分解する
- 1タスクは半日〜1日で完了できる粒度にする
- タスクの完了基準を明確にする
### エラー2: タスクが小さすぎる
**検出例:**
```markdown
タスク: 変数名を変更する10分
```
**対処法:**
- 小さなタスクを統合する
- 関連するタスクをまとめて1つのタスクにする
- タスクの粒度を調整する
### エラー3: タスクの依存関係が不明確
**検出例:**
```markdown
タスク間の依存関係: よくわからない
```
**対処法:**
- 各タスクの入力と出力を明確にする
- どのタスクの出力がどのタスクの入力になるかを整理する
- 依存関係を図示する
## ベストプラクティス
- タスクは単一目的にする1タスク1目的
- タスクの粒度は半日〜1日で完了できるようにする
- タスクの完了基準を明確にする
- タスクの入力と出力を明示する
- タスク間の依存関係を明確にする
- 実行順序を明示する(並列実行可能なタスクを特定)
- スキルやコマンドへのマッピングを提供する
## チェックリスト
### タスク収集完了時
- [ ] 分解対象のタスクが確認されている
- [ ] タスクの目的と期待される成果が把握されている
- [ ] タスクの制約条件が確認されている
- [ ] タスクに必要なリソースが特定されている
- [ ] タスクの完了基準が明確になっている
### 複雑度評価完了時
- [ ] タスクの規模が評価されている
- [ ] タスクの複雑度が評価されている
- [ ] タスクの依存関係が特定されている
- [ ] 分解の必要性が判断されている
- [ ] 分解の方針が決定されている
### タスク分解完了時
- [ ] タスクが機能別に分解されている
- [ ] 各小タスクの目的が明確になっている
- [ ] 各小タスクの入力と出力が定義されている
- [ ] 小タスク間の依存関係が整理されている
- [ ] 小タスクの実行順序が決定されている
### 粒度調整完了時
- [ ] 各タスクの粒度が確認されている
- [ ] 大きすぎるタスクが分解されている
- [ ] 小さすぎるタスクが統合されている
- [ ] タスクの完了基準が明確になっている
- [ ] タスクの優先順位が付けられている
### 推奨提示完了時
- [ ] 最終タスクリストが提示されている
- [ ] タスクの実行順序が明示されている
- [ ] タスク間の依存関係が図示されている
- [ ] 実装の優先順位が提案されている
- [ ] スキル・コマンドへのマッピングが提供されている
- [ ] 次のステップが案内されている
- [ ] ユーザーの承認を得ている
### 最終確認
- [ ] 分解されたタスクリストが作成されている
- [ ] タスク実行順序が作成されている
- [ ] スキル・コマンドへのマッピングが作成されている
- [ ] すべてのアウトプットが明確で理解しやすい
- [ ] ユーザーが次のステップに進める状態になっている