337 lines
10 KiB
Markdown
337 lines
10 KiB
Markdown
---
|
||
name: issue-management-guidelines
|
||
description: Issue作成・分類・管理のガイドライン、テンプレート、ラベル運用、ライフサイクル管理を定義する。Issue作成時、バグ報告時、タスク管理時、またはユーザーがIssue、バグレポート、タスク管理、ラベル運用、Issueテンプレートに言及した際に使用する。
|
||
---
|
||
|
||
# Issue Management Guidelines
|
||
|
||
## 概要
|
||
|
||
このSkillは、Issueの作成、分類、管理に関するガイドラインを定義する。適切なIssue管理により、タスクの可視化、優先順位付け、進捗管理を効率的に行うことを目的とする。
|
||
|
||
## 責任範囲
|
||
|
||
このSkillは以下の範囲をカバーする:
|
||
|
||
- Issue作成時の記述ガイドライン(タイトル、本文、再現手順)
|
||
- Issueテンプレートの定義と使用方法
|
||
- Issueの分類とラベル運用ルール
|
||
- Issueのライフサイクル管理(作成、割り当て、進捗更新、クローズ)
|
||
- Issueのクローズ基準と完了条件
|
||
- IssueとPull Requestの関連付け方法
|
||
|
||
## 基本方針
|
||
|
||
- タイトルは簡潔で具体的にする
|
||
- 本文には必要十分な情報を記載する
|
||
- AI自動生成署名を記述しない
|
||
- 原則として英語で記述する(チームの主要言語が英語以外の場合はその言語の使用を許可)
|
||
- プロジェクトにテンプレートがある場合はそちらを優先的に使用する
|
||
- 適切なラベルを付けて分類する
|
||
- 担当者とマイルストーンを明確にする
|
||
- Issueの状態を最新に保つ
|
||
- 完了条件を明確にする
|
||
- 関連するIssueやPRを相互に参照する
|
||
|
||
## Issue作成ガイドライン
|
||
|
||
### タイトルの書き方
|
||
|
||
- 簡潔で具体的にする(50文字以内を推奨)
|
||
- 実装内容や問題の本質を端的に表現する
|
||
- プレフィックスを付けて種類を明示する(任意)
|
||
|
||
良い例:
|
||
|
||
```text
|
||
Implement user authentication feature
|
||
Improve product search performance
|
||
Fix email input issue on login screen
|
||
```
|
||
|
||
悪い例:
|
||
|
||
```text
|
||
修正
|
||
バグ
|
||
機能追加してほしい
|
||
エラーが出る
|
||
🤖 Generated with [Claude Code](https://claude.com/claude-code)
|
||
```
|
||
|
||
### プレフィックスの使用(任意)
|
||
|
||
- プロジェクトで統一する場合は、以下のようなプレフィックスを使用する
|
||
|
||
```text
|
||
feat: 新機能の追加
|
||
fix: バグ修正
|
||
docs: ドキュメント更新
|
||
refactor: リファクタリング
|
||
test: テスト追加・修正
|
||
perf: パフォーマンス改善
|
||
chore: ビルドプロセス、ツール設定など
|
||
```
|
||
|
||
良い例:
|
||
|
||
```text
|
||
feat: ユーザープロフィール編集機能を追加
|
||
fix: ログイン時のセッションタイムアウト問題を修正
|
||
docs: API仕様書にエンドポイント説明を追加
|
||
```
|
||
|
||
### 本文の書き方
|
||
|
||
- 背景、目的、詳細を明確にする
|
||
- 再現手順(バグの場合)を記載する
|
||
- 期待する動作と実際の動作を記載する
|
||
- スクリーンショットやログを添付する
|
||
|
||
良い例:
|
||
|
||
```markdown
|
||
## 背景
|
||
ユーザーから商品検索が遅いという報告が複数件寄せられている。
|
||
|
||
## 現状の問題
|
||
商品検索に平均3秒かかっており、ユーザー体験を損なっている。
|
||
|
||
## 目的
|
||
検索クエリの最適化により、応答時間を1秒以内に短縮する。
|
||
|
||
## 詳細
|
||
- 検索対象: 商品名、カテゴリ、タグ
|
||
- データ件数: 約10万件
|
||
- 現在のクエリ: 全文検索をループ処理で実施
|
||
|
||
## 期待する改善内容
|
||
- データベースインデックスの追加
|
||
- クエリの最適化
|
||
- キャッシュの導入
|
||
```
|
||
|
||
バグ報告の場合:
|
||
|
||
```markdown
|
||
## 概要
|
||
ログイン画面でメールアドレスが入力できない。
|
||
|
||
## 再現手順
|
||
1. ログイン画面を開く
|
||
2. メールアドレス入力欄をクリックする
|
||
3. キーボードで入力を試みる
|
||
|
||
## 期待する動作
|
||
メールアドレスが入力できる。
|
||
|
||
## 実際の動作
|
||
入力欄がフォーカスされず、キーボード入力が反映されない。
|
||
|
||
## 環境
|
||
- OS: Windows 11
|
||
- ブラウザ: Chrome 120.0
|
||
- デバイス: PC
|
||
|
||
## スクリーンショット
|
||
(添付)
|
||
```
|
||
|
||
### 完了条件の明記
|
||
|
||
- Issueをクローズする条件を明確にする
|
||
- 受け入れ基準(Acceptance Criteria)を記載する
|
||
|
||
良い例:
|
||
|
||
```markdown
|
||
## 完了条件
|
||
- [ ] 商品検索の応答時間が1秒以内になる
|
||
- [ ] 既存の検索機能が正常に動作する
|
||
- [ ] テストケースが追加される
|
||
- [ ] パフォーマンステストに合格する
|
||
```
|
||
|
||
## Issueテンプレート
|
||
|
||
### テンプレートの種類
|
||
|
||
プロジェクトで以下のテンプレートを用意する:
|
||
|
||
- **Bug Report(バグ報告)**: バグや不具合を報告する際に使用
|
||
- **Feature Request(機能要望)**: 新機能の提案や機能改善を要望する際に使用
|
||
- **Task(タスク)**: 開発タスクや作業項目を記録する際に使用
|
||
|
||
### テンプレートの配置
|
||
|
||
- GitHubの場合: `.github/ISSUE_TEMPLATE/` ディレクトリに配置
|
||
- GitLabの場合: `.gitlab/issue_templates/` ディレクトリに配置
|
||
- このSkillの `templates/` ディレクトリにマスターテンプレートを保管
|
||
|
||
### テンプレートの使用方法
|
||
|
||
- Issue作成時に適切なテンプレートを選択する
|
||
- テンプレートの各項目を埋める
|
||
- 不要な項目は削除するか、N/Aと記載する
|
||
|
||
## Issueの分類とラベル
|
||
|
||
### ラベルの種類
|
||
|
||
以下のカテゴリでラベルを付与する:
|
||
|
||
**タイプ(Type)**:
|
||
|
||
- `bug`: バグ、不具合
|
||
- `enhancement`: 機能改善
|
||
- `feature`: 新機能
|
||
- `documentation`: ドキュメント関連
|
||
- `refactoring`: リファクタリング
|
||
- `test`: テスト関連
|
||
- `chore`: 雑務、ビルド設定など
|
||
|
||
**優先度(Priority)**:
|
||
|
||
- `priority: critical`: 緊急対応が必要
|
||
- `priority: high`: 高優先度
|
||
- `priority: medium`: 中優先度
|
||
- `priority: low`: 低優先度
|
||
|
||
**ステータス(Status)**:
|
||
|
||
- `status: blocked`: ブロックされている
|
||
- `status: in progress`: 作業中
|
||
- `status: review`: レビュー待ち
|
||
- `status: ready`: 着手可能
|
||
|
||
**その他**:
|
||
|
||
- `good first issue`: 初心者向けのIssue
|
||
- `help wanted`: 協力者を募集
|
||
- `duplicate`: 重複
|
||
- `wontfix`: 対応しない
|
||
- `invalid`: 無効
|
||
|
||
### ラベルの付け方
|
||
|
||
- 必ず1つ以上のタイプラベルを付ける
|
||
- 優先度ラベルを付ける(必須ではないが推奨)
|
||
- 必要に応じてステータスラベルを付ける
|
||
|
||
良い例:
|
||
|
||
```text
|
||
ラベル: bug, priority: high, status: in progress
|
||
```
|
||
|
||
## Issueのライフサイクル管理
|
||
|
||
### Issueの作成
|
||
|
||
- 適切なテンプレートを選択する
|
||
- タイトルと本文を記載する
|
||
- ラベルを付ける
|
||
- 担当者を割り当てる(決まっている場合)
|
||
- マイルストーンを設定する(該当する場合)
|
||
|
||
### Issueの割り当て
|
||
|
||
- 担当者が決まったら、Assigneeに設定する
|
||
- 複数人で作業する場合は、全員をAssigneeに追加する
|
||
- 担当者が決まっていない場合は、ラベル `help wanted` を付ける
|
||
|
||
### Issueの進捗更新
|
||
|
||
- 作業開始時に `status: in progress` ラベルを付ける
|
||
- ブロックされている場合は `status: blocked` ラベルを付け、コメントで理由を説明する
|
||
- 進捗があればコメントで報告する
|
||
- 関連するPRを作成したら、IssueとPRを相互に参照する
|
||
|
||
### IssueとPull Requestの関連付け
|
||
|
||
- PR作成時に、Issue番号を参照する
|
||
- PRの説明欄に `Closes #123` や `Fixes #123` と記載すると、PRマージ時に自動的にIssueがクローズされる
|
||
|
||
良い例:
|
||
|
||
```markdown
|
||
## 概要
|
||
ユーザー認証機能を実装しました。
|
||
|
||
Closes #45
|
||
```
|
||
|
||
### Issueのクローズ
|
||
|
||
- 完了条件をすべて満たしたらIssueをクローズする
|
||
- クローズ時にコメントで完了内容を簡潔に記載する
|
||
- 対応しない場合は、理由をコメントで説明し、`wontfix` ラベルを付けてクローズする
|
||
|
||
良い例:
|
||
|
||
```markdown
|
||
すべての完了条件を満たしたため、クローズします。
|
||
|
||
- 商品検索の応答時間: 0.8秒
|
||
- 既存機能のテスト: 合格
|
||
- パフォーマンステスト: 合格
|
||
```
|
||
|
||
対応しない場合:
|
||
|
||
```markdown
|
||
この機能は現在のスコープ外であり、将来的な検討課題とします。
|
||
|
||
`wontfix` ラベルを付けてクローズします。
|
||
```
|
||
|
||
## Issueのクローズ基準
|
||
|
||
### バグ修正の場合
|
||
|
||
- [ ] バグが修正され、再現しなくなった
|
||
- [ ] 修正内容がテストされた
|
||
- [ ] 関連するテストケースが追加された
|
||
- [ ] PRがマージされた
|
||
|
||
### 機能追加の場合
|
||
|
||
- [ ] 機能が実装され、動作確認された
|
||
- [ ] テストケースが追加された
|
||
- [ ] ドキュメントが更新された
|
||
- [ ] PRがマージされた
|
||
|
||
### タスクの場合
|
||
|
||
- [ ] タスクが完了した
|
||
- [ ] 成果物が確認された
|
||
- [ ] 関連する作業がすべて完了した
|
||
|
||
## チェックリスト
|
||
|
||
### Issue作成時
|
||
|
||
- [ ] タイトルが簡潔で具体的である
|
||
- [ ] 本文に必要十分な情報が記載されている
|
||
- [ ] 英語で記述している(チームの主要言語が英語以外の場合はその言語でOK)
|
||
- [ ] AI自動生成署名を含めていない
|
||
- [ ] 適切なテンプレートを使用している(プロジェクトにテンプレートがある場合はそちらを優先)
|
||
- [ ] ラベルが付けられている(最低1つ)
|
||
- [ ] 完了条件が明記されている
|
||
- [ ] 担当者が割り当てられている(決まっている場合)
|
||
- [ ] マイルストーンが設定されている(該当する場合)
|
||
|
||
### Issue作業中
|
||
|
||
- [ ] 作業開始時に `status: in progress` ラベルを付けた
|
||
- [ ] ブロックされている場合は `status: blocked` ラベルを付け、理由をコメントした
|
||
- [ ] 進捗があればコメントで報告した
|
||
- [ ] 関連するPRを作成し、IssueとPRを相互に参照した
|
||
|
||
### Issueクローズ時
|
||
|
||
- [ ] 完了条件がすべて満たされている
|
||
- [ ] クローズ時にコメントで完了内容を記載した
|
||
- [ ] 対応しない場合は、理由を説明し `wontfix` ラベルを付けた
|
||
- [ ] 重複の場合は、元のIssueを参照し `duplicate` ラベルを付けた
|