Files
gh-dio0550-cc-plugin/commands/create-issues-from-plan.md
2025-11-29 18:22:02 +08:00

386 lines
13 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.
# 実装計画から GitHub Issues を作成
Keywords: github-issues, epic, sub-issues, automation, implementation-plan, mcp-prompts, mcp-tools
## 目的
実装計画ドキュメント (`implementation-plan-template.md`) から、Epic および子 Issue を自動生成し、GitHub Issues として起票します。
## 使用する MCP ツール
このコマンドは以下の MCP ツールを使用します:
- **`get_implementation_plan_to_issues`**: Issue 作成ガイドライン (`implementation-plan-to-issues.md`) を取得する専用ツール
## 使用する MCP リソース
以下の MCP prompts も併せて使用できます:
- `implementation-plan-template`: 実装計画のテンプレート構造
- `epic-template`: Epic Issue のテンプレート
- `feature-template`: Feature Issue のテンプレート
- `migration-template`: Migration Issue のテンプレート
- `test-template`: Test Issue のテンプレート
- `docs-template`: Docs Issue のテンプレート
- `chore-template`: Chore Issue のテンプレート
## 前提条件
- `gh` CLI がインストール済み・認証済み
- リポジトリのラベルが設定済み(例: `type:feature`, `type:migration`, `type:test`, `type:docs`, `priority:P1|P2|P3`, `size:S|M|L`
- **MCP サーバーが起動済み**: 以下のテンプレートを MCP prompts から取得します
- `implementation-plan-template`: 実装計画テンプレート
- `epic-template`: Epic Issue テンプレート
- `feature-template`: Feature Issue テンプレート
- `migration-template`: Migration Issue テンプレート
- `test-template`: Test Issue テンプレート
- `docs-template`: Docs Issue テンプレート
- `chore-template`: Chore Issue テンプレート
- 実装計画ドキュメントが存在(またはユーザーが提供)
## 処理フロー
1. **MCP から必要なドキュメントを取得**
- **実装計画テンプレート**: MCP prompts から `implementation-plan-template` を読み込み
- **Issue テンプレート**: MCP prompts から各種テンプレートを読み込み
- `epic-template` (Epic 用)
- `feature-template` (実装 Issue 用)
- `migration-template` (移行 Issue 用)
- `test-template` (テスト Issue 用)
- `docs-template` (ドキュメント Issue 用)
- `chore-template` (Chore Issue 用)
- ユーザーから実装計画ファイルのパスを受け取る場合はそれを使用
2. **実装計画の解析**
- 機能名、設計方針、コンポーネント、移行計画を抽出
- Epic および子 Issue のリストを生成
3. **Epic Issue の作成**
- MCP から取得した `epic-template` をベースに Epic を作成
- タイトル: `[Feature] <機能名>: 実装計画と進行管理`
- サブ Issue のチェックリストを含む
4. **子 Issue の作成候補を提示**
- 実装 Issueコンポーネント/ユーティリティ)
- 移行 IssuePhase 1〜4
- 品質 Issueテスト/パフォーマンス/セキュリティ/ドキュメント)
5. **GitHub Issues として作成**
- `gh issue create` コマンドを使用
- ラベル、マイルストーンを適切に設定
## Prompt Template
以下のタスクを実行してください:
1. **MCP ツール「get_implementation_plan_to_issues」を利用して、Issue 作成ガイドラインを読み込むこと**
2. **MCP prompts から必要なテンプレートを読み込むこと**
- `implementation-plan-template`: 実装計画の構造を理解
- `epic-template`, `feature-template`, `migration-template`, `test-template`, `docs-template`, `chore-template`: 各種 Issue テンプレート
3. **実装計画ドキュメントを解析すること**
- ユーザーが指定した実装計画ファイル(または `implementation-plan-template`)を読み込み
- 機能名、設計方針、コンポーネント、移行計画を抽出
4. **Epic Issue と子 Issue のドラフトを生成すること**
- Epic: 全体の進行管理用
- Feature: 実装タスク(コンポーネント/ユーティリティ)
- Migration: 移行フェーズPhase 1〜4
- Quality: テスト/パフォーマンス/セキュリティ/ドキュメント
5. **GitHub Issues を作成すること**
- `gh issue create` コマンドを使用
- 適切なラベル、マイルストーン、優先度を設定
## 使用方法
### 基本的な使い方
```
@workspace 実装計画から GitHub Issues を作成してください
```
### 実装計画ファイルを指定する場合
```
@workspace <ファイルパス> の実装計画から GitHub Issues を作成してください
```
### オプション指定
```
@workspace 実装計画から GitHub Issues を作成してください
- マイルストーン: Sprint 5
- 優先度: P2
- 担当者: @username
```
## 実行手順
1. **MCP からテンプレートを取得**
- MCP prompts から `implementation-plan-template` を取得し、実装計画の構造を理解
- MCP prompts から各種 Issue テンプレート (`epic-template`, `feature-template` など) を取得
- または、ユーザー指定のファイルを読み込み
2. **実装計画の解析と Issue リストの生成**
- 機能名、コンポーネント、移行計画を抽出
- MCP から取得したテンプレートを使用して Issue タイトルと本文のドラフトを生成
3. **Epic Issue の作成**
```sh
# Epic 本文を生成
cat > /tmp/epic-body.md <<'EOF'
# 背景 / 目的
- 機能名: <機能名>
- 設計方針の要点(抜粋): <抽出した設計方針>
# スコープ
- コンポーネント: <抽出したコンポーネント>
- サービス/ユーティリティ: <抽出したサービス>
- 移行フェーズ: Phase1〜4
# サブ IssueTasklist
- [ ] ComponentA: create/parse を実装
- [ ] ComponentA Utils: validate/transform を実装
- [ ] ComponentB: 型/ファクトリを実装
- [ ] Phase 1: 基本実装
- [ ] Phase 2: 既存コード移行
- [ ] Phase 3: テスト/ドキュメント
- [ ] Phase 4: 最適化/クリーンアップ
- [ ] テスト整備
- [ ] パフォーマンス検討
- [ ] セキュリティ/エラー対策
- [ ] ドキュメント更新
# 受け入れ条件DoD
- 子 Issue が全て Close
- 相互参照が揃っている
- ドキュメント/テストが最新
# 関連
- 設計ドキュメント: <実装計画ファイルへのリンク>
EOF
# Epic Issue を作成
gh issue create \
--title "[Feature] <機能名>: 実装計画と進行管理" \
--body-file /tmp/epic-body.md \
--label "type:feature" \
--label "priority:P2"
```
4. **子 Issue 候補の提示**
- ユーザーに確認を求める
- 必要に応じて調整
5. **実行確認後、一括作成(オプション)**
- ユーザーが承認した場合、`gh issue create` を連続実行
- または、Epic 作成後に UI で「Convert to sub-issues」を使用するよう案内
## Issue 種別とテンプレート
> **注記**: すべてのテンプレートは MCP prompts から取得します。ワークスペースには `general/issue-templates/*.template.md` として保存されていますが、実行時は MCP 経由でアクセスします。
### 実装 IssueFeature
MCP Prompt: `feature-template`
ファイル: `general/issue-templates/feature.template.md`
タイトル例:
- `[Feature][Model] ComponentA: create/parse を実装`
- `[Feature][Util] ComponentA Utils: validate/transform を実装`
- `[Feature][Model] ComponentB: 型とファクトリ実装`
ラベル: `type:feature`, `size:S|M|L`, `area:*`
### 移行 IssueMigration
MCP Prompt: `migration-template`
ファイル: `general/issue-templates/migration.template.md`
タイトル例:
- `[Migration] Phase 1: 基本実装`
- `[Migration] Phase 2: 既存コード移行`
- `[Migration] Phase 3: テストとドキュメント化`
- `[Migration] Phase 4: 最適化とクリーンアップ`
ラベル: `type:migration`, `priority:P1|P2|P3`
### 品質 IssueTest/Docs/Chore
MCP Prompts:
- Test: `test-template` (`general/issue-templates/test.template.md`)
- Docs: `docs-template` (`general/issue-templates/docs.template.md`)
- Chore: `chore-template` (`general/issue-templates/chore.template.md`)
タイトル例:
- `[Test] ComponentA/B の単体・結合テスト整備`
- `[Perf] パフォーマンス考慮点の計測/最適化`
- `[Security] エラーハンドリング/入力検証の整備`
- `[Docs] 使用例/設計ドキュメント更新`
ラベル: `type:test`, `type:docs`, `type:chore`
## 実装例(実際の処理)
### ステップ 1: 実装計画の読み込みと解析
```typescript
// 実装計画ドキュメントから情報を抽出
const plan = {
featureName: "機能名",
designPrinciples: "設計方針の要点",
components: ["ComponentA", "ComponentB"],
phases: ["Phase 1", "Phase 2", "Phase 3", "Phase 4"],
implementationStatus: {
done: ["Task 1"],
todo: ["Task 2", "Task 3"],
},
};
```
### ステップ 2: Epic Issue の作成
```sh
# Epic Issue 番号を取得
EPIC_NUMBER=$(gh issue create \
--title "[Feature] ${FEATURE_NAME}: 実装計画と進行管理" \
--body-file /tmp/epic-body.md \
--label "type:feature" \
--label "priority:P2" \
--json number --jq .number)
echo "Created Epic: #${EPIC_NUMBER}"
```
### ステップ 3: 子 Issue の作成(オプション)
```sh
# ComponentA の実装 Issue
cat > /tmp/component-a-body.md <<EOF
# 目的
- ComponentA の create/parse を実装する
# 仕様
- 入力: <型/前提>
- 出力: <型/結果>
# タスク
- [ ] 型定義の作成/更新
- [ ] create メソッドの実装
- [ ] parse メソッドの実装
- [ ] 単体テスト
- [ ] ドキュメント追加
# 完了条件
- テストがグリーン
- ドキュメントに使用例が掲載
# 関連
- Epic: #${EPIC_NUMBER}
EOF
gh issue create \
--title "[Feature][Model] ComponentA: create/parse を実装" \
--body-file /tmp/component-a-body.md \
--label "type:feature" \
--label "size:M"
```
## UI での推奨運用(サブ Issue 機能)
Epic を作成後、GitHub UI で以下の操作を行うことを推奨します:
1. Epic Issue を開く
2. 本文のチェックリストにカーソルを合わせる
3. 「Convert to sub-issues」ボタンをクリック
4. 自動で子 Issue が作成され、親子リンクが確立
5. 進捗バーが自動更新される
この方法により、手動で `関連: #<epic>` を記述する必要がなくなります。
## 注意事項
- **MCP サーバー**: MCP prompts から各種テンプレートを取得するため、MCP サーバーが起動している必要があります
- テンプレートは `general/issue-templates/*.template.md` に保存されていますが、実行時は MCP 経由でアクセスします
- 利用可能な prompts: `implementation-plan-template`, `epic-template`, `feature-template`, `migration-template`, `test-template`, `docs-template`, `chore-template`
- **ラベル**: リポジトリに存在するラベルのみ指定可能
- **マイルストーン**: 事前に作成しておく必要がある
- **担当者**: GitHub アカウント名で指定(例: `@username`
## トラブルシューティング
### `gh` CLI が認証されていない
```sh
gh auth login
```
### ラベルが存在しない
```sh
# ラベルを作成
gh label create "type:feature" --color "0E8A16" --description "New feature"
gh label create "type:migration" --color "FBCA04" --description "Migration task"
gh label create "type:test" --color "D93F0B" --description "Testing"
gh label create "type:docs" --color "0075CA" --description "Documentation"
```
または、`scripts/create-github-labels.sh` を実行してください。
### MCP サーバーが起動していない
MCP サーバーの起動状態を確認し、必要に応じて再起動してください。
## 完了チェックリスト
- [ ] MCP ツール `get_implementation_plan_to_issues` で Issue 作成ガイドラインを読み込んだ
- [ ] MCP prompts から必要なテンプレートを読み込んだ
- [ ] 実装計画ドキュメントを解析した
- [ ] Epic Issue が作成された
- [ ] サブ Issue のチェックリストが揃っている
- [ ] ラベル/マイルストーンが適切に設定されている
- [ ] (オプション)子 Issue が作成された、または UI での作成手順が案内された
## Notes
- **MCP Tools**: 実行前に MCP サーバーが起動していることを確認してください
- `get_implementation_plan_to_issues`: Issue 作成ガイドラインを取得する専用ツール
- **MCP Prompts**: 各種テンプレートは MCP prompts から取得します
- **GitHub CLI**: `gh auth status` で認証状態を確認してください
- **テンプレート**: ワークスペースの `general/issue-templates/` にテンプレートファイルが存在します
- **推奨運用**: Epic 作成後、GitHub UI で「Convert to sub-issues」を使用すると親子リンクが自動設定されます
## 関連ドキュメント
- `general/implementation-plan-template.md`: 実装計画テンプレート
- `general/implementation-plan-to-issues.md`: Issue 作成の詳細ガイド
- `general/issue-templates/*.template.md`: Issue テンプレート集
- `scripts/create-github-labels.sh`: ラベル作成スクリプト