# 実装計画から 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(コンポーネント/ユーティリティ) - 移行 Issue(Phase 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 # サブ Issue(Tasklist) - [ ] 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 経由でアクセスします。 ### 実装 Issue(Feature) 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:*` ### 移行 Issue(Migration) 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` ### 品質 Issue(Test/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 < - 出力: <型/結果> # タスク - [ ] 型定義の作成/更新 - [ ] 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. 進捗バーが自動更新される この方法により、手動で `関連: #` を記述する必要がなくなります。 ## 注意事項 - **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`: ラベル作成スクリプト