Initial commit
This commit is contained in:
336
skills/issue-management-guidelines/SKILL.md
Normal file
336
skills/issue-management-guidelines/SKILL.md
Normal file
@@ -0,0 +1,336 @@
|
||||
---
|
||||
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` ラベルを付けた
|
||||
Reference in New Issue
Block a user