現在ブランチのPRに対して Copilot レビューを起動し、レビュー到着を待ち、指摘を反映し、コミットして push する。必要なら同じ流れを繰り返す。
前提条件
- Codex CLI から実行できること。
- Codex 起動時に
codex --sandbox danger-full-accessを指定して、サンドボックスを解除しておくこと。 - または、このスキル実行に必要なフルアクセス権限が付与されていること。
ghコマンドがインストールされていること。gh auth loginなどで GitHub にログイン済みであること。
実行ポリシー(Codex環境)
ghはprサブコマンドを基本とする。Copilotのインライン指摘取得時のみgh api graphql(読み取り専用)を使ってよい。- このスキルは サンドボックス解除時のみ 実行する。
sandbox_permissions=require_escalatedやprefix_ruleを使った昇格実行は行わない。 - サンドボックス有効のセッションでは
このスキルはサンドボックス解除時のみ実行可能ですと報告して停止する。 - 既存のステージ状態は尊重する。
git restore --stagedやgit resetでインデックスを巻き戻さない。 - コミットと
git pushはこのスキル内で行う。 - 対象外ファイルは編集しない。既存変更が混在している場合も、不要な巻き戻しは行わない。
手順
- 現在ブランチに紐づくPRを特定する。
gh pr list -R <owner/repo> --head "$(git branch --show-current)" --state open --json number,url --jq '.[0]'
- PRが取れない場合は
このブランチに紐づくPRがありませんと報告して停止する。
- Copilotレビューのベース時刻を取得する。
gh pr view -R <owner/repo> <PR番号> --json reviews --jq '
[.reviews[]
| select(.author.login=="copilot-pull-request-reviewer")
| .submittedAt]
| max // ""'
- Copilotレビューを起動する。
gh pr edit -R <owner/repo> <PR番号> --add-reviewer "copilot-pull-request-reviewer"
- 既に過去レビューがあっても再実行してよい。
- 新着Copilotレビューを待機する。
gh pr view -R <owner/repo> <PR番号> --json reviews --jq '
[.reviews[]
| select(.author.login=="copilot-pull-request-reviewer")
| .submittedAt]
| max // ""'
submittedAt > BASE_SUBMITTED_ATの新着レビューが出るまで30秒間隔で待機する。- 最大20分待っても来なければ
copilotレビューがタイムアウトしました: <PR URL>と報告して停止する。
- Copilotレビュー本文とインライン指摘を取得する。
gh pr view -R <owner/repo> <PR番号> --json reviews --jq '
[.reviews[]
| select(.author.login=="copilot-pull-request-reviewer")
| {submittedAt, body}]
| sort_by(.submittedAt)
| last'
gh api graphql -f query='
query($owner:String!, $name:String!, $number:Int!){
repository(owner:$owner,name:$name){
pullRequest(number:$number){
reviewThreads(first:50){
nodes{
isResolved
comments(first:20){
nodes{
author{login}
body
path
outdated
createdAt
}
}
}
}
}
}
}' -f owner="<owner>" -f name="<repo>" -F number=<PR番号>
author.login=="copilot-pull-request-reviewer"のコメントだけを対象にする。createdAt >= BASE_SUBMITTED_ATのコメントを今回実行ぶんとして優先する。[must]/[ask]/[nits]を優先度として扱い、まずmustを潰す。
- 指摘を修正し、必要な検証を行う。
- 影響範囲に応じて
npm run typecheck、npm run testなどを実行する。 - コマンド失敗時は代替手段を試し、代替不能なら失敗理由を報告して停止する。
修正内容をコミットして
git pushする。追加レビューが必要なら 2 に戻る。
結果報告
- 取得したCopilotレビュー要点
- 実施した修正概要
- 変更したファイル一覧
- 実行した検証
- 未対応項目(あれば)
注意
- レビュー本文の適用は盲従しない。破壊的変更や仕様変更は除外する。
- 同一ブランチで複数回実行する場合、既存レビューと新着レビューを
submittedAtとcreatedAtで区別する。 - 既にステージ済みの変更があっても、その状態は保持する。