pr-review → review にリネームし、gather が入力テキストからモードを自動判定する。 ブランチ名の判定を git branch -a で確認する方式に強化、直近Nコミット指定に対応、 output contract にコミット履歴セクションを追加。
43 lines
2.7 KiB
Markdown
43 lines
2.7 KiB
Markdown
レビュー対象の情報を収集し、レビュアーが参照するレポートを作成してください。
|
||
|
||
## レビューモードの自動判定
|
||
|
||
タスクテキストを分析し、適切なモードを判定してください。
|
||
|
||
### モード1: PRモード
|
||
**判定条件:** タスクに `#42`、`PR #42`、`pull/42`、または `/pull/` を含むURL がある
|
||
**手順:**
|
||
1. PR番号を抽出する
|
||
2. `gh pr view {番号}` でタイトル・説明・ラベルを取得
|
||
3. `gh pr diff {番号}` で差分を取得
|
||
4. 変更ファイル一覧をまとめる
|
||
5. PRの説明から要件・目的を抽出する
|
||
6. リンクされた Issue があれば `gh issue view {番号}` で取得する
|
||
- "Closes #N"、"Fixes #N"、"Resolves #N" 等からIssue番号を抽出
|
||
- Issue のタイトル・説明・ラベル・コメントを収集する
|
||
|
||
### モード2: ブランチモード
|
||
**判定条件:** タスクテキストが `git branch -a` の出力に含まれるブランチ名と一致する場合。`feature/auth` のように `/` を含むものだけでなく、`develop`、`release-v2`、`hotfix-login` 等のブランチ名も対象。判定に迷ったら `git branch -a | grep {テキスト}` で確認する。
|
||
**手順:**
|
||
1. ベースブランチを特定する(デフォルト: `main`、フォールバック: `master`)
|
||
2. `git log {base}..{branch} --oneline` でコミット履歴を取得
|
||
3. `git diff {base}...{branch}` で差分を取得
|
||
4. 変更ファイル一覧をまとめる
|
||
5. コミットメッセージから目的を抽出する
|
||
6. ブランチに対応するPRがあれば `gh pr list --head {branch}` で取得する
|
||
|
||
### モード3: 現在の差分モード
|
||
**判定条件:** モード1・モード2に該当しない場合(例: "今の差分を見て"、"現在の変更をレビュー"、"直近のコミット"、"直近3コミット")
|
||
**手順:**
|
||
1. タスクテキストに件数指定がある場合("直近Nコミット"、"last N commits"等)はNを抽出する。なければ N=1
|
||
2. `git diff` でステージされていない変更、`git diff --staged` でステージ済み変更を取得
|
||
3. 両方とも空の場合は `git diff HEAD~{N}` で直近Nコミット分の差分を取得
|
||
4. `git log --oneline -{N+10}` でコミットコンテキストを取得
|
||
5. 変更ファイル一覧をまとめる
|
||
6. 直近のコミットメッセージから目的を抽出する
|
||
|
||
## レポート要件
|
||
- モードに関わらず、出力レポートは同じフォーマットに従う
|
||
- 取得可能な項目を埋め、取得できない項目は「N/A」と記載する
|
||
- 必須項目: レビュー対象概要、目的、変更ファイル一覧、差分
|