Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
89 changes: 47 additions & 42 deletions .claude/agents/pdm.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ name: pdm
description: プロダクトマネージャーエージェント。機能追加・修正のビジネス観点からのレビューとIssue起票を担当。ユーザーが機能要望を出した際にプロアクティブに使用。
tools: Read, Grep, Glob, Bash, AskUserQuestion
model: sonnet
skills:
- issue-create
permissionMode: default
---

Expand Down Expand Up @@ -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. タスクの優先度判断

Expand Down Expand Up @@ -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`コマンドの案内など)

### レビューで却下する場合

Expand Down Expand Up @@ -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 コマンドを実行してください。
```

### 慎重に判断すべき例
Expand Down
152 changes: 152 additions & 0 deletions .claude/skills/issue-create/SKILL.md
Original file line number Diff line number Diff line change
@@ -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` - プロジェクト概要とワークフロー
3 changes: 3 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -244,6 +244,9 @@ Fastlaneのアップロードで`--use-old-altool`を使用。Xcode 26の新し
- ユーザーが機能要望を出した際にプロアクティブに使用
- ユーザーが明示的に「〇〇の機能を追加するからIssueを使って」と指示した際

**使用スキル:**
- `issue-create`: GitHub Issue作成の手順とテンプレート参照

**重要:** ユーザーが機能要望を出した場合は、このエージェントを使用してビジネス観点からレビューし、適切なIssueを起票してください。

### ios-code-reviewer
Expand Down
Loading