diff --git a/.claude/agents/pdm.md b/.claude/agents/pdm.md index 23fce72a..599fc9ce 100644 --- a/.claude/agents/pdm.md +++ b/.claude/agents/pdm.md @@ -3,6 +3,8 @@ name: pdm description: プロダクトマネージャーエージェント。機能追加・修正のビジネス観点からのレビューとIssue起票を担当。ユーザーが機能要望を出した際にプロアクティブに使用。 tools: Read, Grep, Glob, Bash, AskUserQuestion model: sonnet +skills: + - issue-create permissionMode: default --- @@ -46,42 +48,41 @@ permissionMode: default - 通知設計(誰に何を通知するか) - エッジケースの扱い -### 2. タスク起票 - -レビューの結果、実装が妥当と判断した場合: - -1. **Issueの作成** - - `gh issue create`でGitHub Issueを作成 - - タイトル: 簡潔で分かりやすく(例: `Feature: 〇〇機能の追加`) - - 本文: 以下の構成 - ```markdown - ## 概要 - [機能の簡潔な説明] - - ## 要件 - - **UI配置**: [配置場所] - - **権限**: [誰が操作可能か] - - **通知**: [通知設計] - - **その他**: [追加の要件] - - ## 実装対象 - - [ ] [タスク1] - - [ ] [タスク2] - - [ ] [タスク3] - - ## 補足 - [背景情報や参考情報] - ``` - -2. **適切なメタデータ設定** - - **ラベル**: 機能タイプに応じて選択 - - `feature`: 新機能 - - `enhancement`: 既存機能の改善 - - `bug`: バグ修正 - - `UI`: UI関連 - - `backend`: バックエンド関連 - - **マイルストーン**: 必要に応じて設定 - - **担当者**: 適切な開発者にアサイン +### 2. タスク起票の観点 + +レビューの結果、実装が妥当と判断した場合、issue-createスキルを使用してIssueを起票します。 + +**Issue起票時に含めるべき観点:** + +1. **概要・背景** + - 機能・修正の簡潔な説明 + - なぜ必要なのか(ビジネス価値) + - 解決する課題 + +2. **要件定義** + - **UI配置**: どの画面のどこに配置するか + - **権限**: 誰が操作可能か(全ユーザー、担当者のみなど) + - **通知**: 誰に何を通知するか、通知のタイミング + - **その他**: 追加の要件や制約条件 + +3. **実装タスク** + - 具体的な実装内容をチェックボックス形式でリスト化 + - 各タスクは独立してチェック可能な単位に分割 + - View、Store、Service、テストなど、層ごとに整理 + +4. **補足情報** + - 関連するIssueやPRへのリンク + - 参考資料やスクリーンショット + - 技術的な制約や考慮事項 + +**Issueタイプの判断:** +- **機能リクエスト**: 新機能追加、既存機能の改善 +- **バグ報告**: バグ修正 +- **メンテナンスリクエスト**: リファクタリング、技術的負債解消 + +**ラベルと優先度:** +- 基本ラベル(enhancement/bug/mentenance)+ 対象領域(UI/backend) +- 優先度(P0/P1/P2)を必ず設定 ### 3. タスクの優先度判断 @@ -127,15 +128,17 @@ permissionMode: default - ユーザー価値とコストのバランス - 実装の妥当性 -5. **Issue作成**(妥当と判断した場合) - - `gh issue create`で起票 - - 詳細な要件とタスクリストを記載 - - 適切なラベルと担当者を設定 +5. **Issue起票**(妥当と判断した場合) + - `issue-create`スキルの知識を参照 + - 適切なIssueテンプレートを選択(feature_request/bug_report/mentenance_request) + - Issue起票の観点(上記2.参照)に基づいて内容を整理 + - `gh issue create`でIssueを作成 6. **ユーザーへの報告** - 作成したIssueのURL - 判断の理由(なぜこの機能が重要か) - - 次のステップ + - 設定した優先度とラベル + - 次のステップ(`/issue-start`コマンドの案内など) ### レビューで却下する場合 @@ -195,10 +198,12 @@ Pdm: では、詳細を確認させてください... [AskUserQuestionで要件確認] ... -[Issue作成] +[issue-createスキルの知識に基づいてIssue作成] Issue #61を作成しました! https://github.com/stotic-dev/homete_iOS/issues/61 + +このIssueの実装を開始する場合は、/issue-start 61 コマンドを実行してください。 ``` ### 慎重に判断すべき例 diff --git a/.claude/skills/issue-create/SKILL.md b/.claude/skills/issue-create/SKILL.md new file mode 100644 index 00000000..6e3fc188 --- /dev/null +++ b/.claude/skills/issue-create/SKILL.md @@ -0,0 +1,152 @@ +--- +name: issue-create +description: GitHub Issueを作成するスキル。機能追加・修正の要件を整理してGitHub Issueとして起票する。pdmエージェントから起票が決定された際に使用。 +--- + +# GitHub Issue作成 + +機能追加・修正の要件を整理し、GitHub Issueとして起票するスキル。 + +## Issueテンプレート + +プロジェクトには以下のIssueテンプレートが定義されています: + +- `.github/ISSUE_TEMPLATE/feature_request.yml` - 機能リクエスト +- `.github/ISSUE_TEMPLATE/bug_report.yml` - バグ報告 +- `.github/ISSUE_TEMPLATE/mentenance_request.yml` - メンテナンスリクエスト + +**重要:** Issue作成前に、必ず対応するテンプレートファイルを読み取り、フィールド構造を確認してください。 + +## ワークフロー + +### 1. テンプレートの選択と確認 + +要件に基づいて適切なテンプレートを選択し、内容を確認: + +```bash +# 機能リクエストテンプレートの確認例 +cat .github/ISSUE_TEMPLATE/feature_request.yml +``` + +**テンプレートの選択基準:** +- **feature_request.yml**: 新機能追加、既存機能の改善 +- **bug_report.yml**: バグ修正 +- **mentenance_request.yml**: リファクタリング、技術的負債解消 + +### 2. テンプレートに準拠したIssue本文の作成 + +選択したテンプレートのフィールド構造に従って、Issue本文を作成します。 + +**基本フォーマット:** +```markdown +### [フィールド名1] +[内容1] + +### [フィールド名2] +[内容2] + +... +``` + +各テンプレートの必須フィールド(`required: true`)は必ず記入してください。 + +### 3. Issueの作成 + +`gh issue create`コマンドでIssueを作成: + +```bash +gh issue create \ + --title "タイトル" \ + --label "ラベル" \ + --body "$(cat <<'EOF' +[テンプレートに準拠した本文] +EOF +)" +``` + +**タイトルのガイドライン:** +- 簡潔に(50文字以内推奨) +- プレフィックスを付ける + - `Feature:` - 新機能 + - `Enhancement:` - 既存機能の改善 + - `Bug:` - バグ修正 + - `Refactor:` - リファクタリング + +### 4. ラベルの設定 + +**基本ラベル(テンプレートのデフォルト):** +- `enhancement` - 機能リクエスト +- `bug` - バグ報告 +- `mentenance` - メンテナンスリクエスト + +**追加ラベル:** +- **対象領域**: `UI`, `backend`, `test` +- **優先度**: `P0`(高), `P1`(中), `P2`(低) + +**複数ラベルの指定:** +```bash +--label "enhancement,UI,P1" +``` + +### 5. オプション設定 + +必要に応じて以下のオプションを使用: + +```bash +--assignee @username # 担当者の設定 +--milestone "マイルストーン名" # マイルストーンの設定 +--project "プロジェクト名" # プロジェクトへの追加 +``` + +### 6. ユーザーへの報告 + +Issue作成後、以下の情報をユーザーに報告: + +``` +Issue #XXを作成しました! + +タイトル: [タイトル] +URL: https://github.com/stotic-dev/homete_iOS/issues/XX +ラベル: [ラベル一覧] + +このIssueの実装を開始する場合は、/issue-start XX コマンドを実行してください。 +``` + +## 使用タイミング + +### このスキルを使用する場合 + +- pdmエージェントが機能要求をレビューし、実装が妥当と判断した後 +- ユーザーが明示的に「Issueを作成して」と依頼した時 +- 機能要件が十分に具体化された時 + +### このスキルを使用しない場合 + +- 要件が曖昧で、さらなるヒアリングが必要な場合 +- pdmエージェントによるビジネス価値の評価が完了していない場合 +- Issue作成が不要な軽微なタスク(タイポ修正など) + +## 注意事項 + +1. **テンプレートを必ず確認** + - Issue作成前にテンプレートファイルを読み取る + - フィールド構造と必須項目を把握する + - テンプレートが更新されている可能性を考慮 + +2. **適切なラベル付け** + - テンプレートのデフォルトラベルを使用 + - 優先度ラベルも可能な限り設定 + +3. **実装タスクの明確化** + - チェックボックス形式でタスクリストを記載 + - 各タスクは具体的かつ実行可能な単位に + +4. **コマンドの実行確認** + - `gh issue create`コマンドの実行結果を確認 + - エラーが発生した場合は適切に対処 + +## リファレンス + +- `.github/ISSUE_TEMPLATE/` - Issueテンプレートディレクトリ +- `.claude/agents/pdm.md` - Issue起票の観点と判断基準 +- `CLAUDE.md` - プロジェクト概要とワークフロー diff --git a/CLAUDE.md b/CLAUDE.md index 11398c9c..7a5115ce 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -244,6 +244,9 @@ Fastlaneのアップロードで`--use-old-altool`を使用。Xcode 26の新し - ユーザーが機能要望を出した際にプロアクティブに使用 - ユーザーが明示的に「〇〇の機能を追加するからIssueを使って」と指示した際 +**使用スキル:** +- `issue-create`: GitHub Issue作成の手順とテンプレート参照 + **重要:** ユーザーが機能要望を出した場合は、このエージェントを使用してビジネス観点からレビューし、適切なIssueを起票してください。 ### ios-code-reviewer