بنقرة واحدة
check-pr
現在のブランチのPRのレビューコメントとCIステータスを確認し、問題があれば修正する
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
現在のブランチのPRのレビューコメントとCIステータスを確認し、問題があれば修正する
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
OpenAI Codex を MCP 経由(mcp__codex__codex)で呼び出し、セカンドオピニオンとしてコードレビュー・調査をさせるスキル。引数がなければ現在のリポジトリの変更(staged/unstaged含む)またはdefault branchとの差分をレビューさせ、引数(テーマ・ファイル・バグの症状など)があればそれについて調査・レビューさせる。観点は保守性・テスト十分性・spec適合・実装の筋の良さなど。ユーザーが「codexでレビューして」「codexに見てもらって」「codexで調べて」「別のモデルの意見も欲しい」「セカンドオピニオン」と言ったとき、あるいは自分のレビューを別視点で裏取りしたいときに使う。トリガー: codex-review, codexレビュー, codexで見て, /codex-review
spec-driven developmentを開始・継続する。新しい開発タスク、specの作成、実装の開始・再開など、開発に関わるあらゆるフェーズで使用せよ。ユーザーが開発タスクについて言及したとき、feature branchでの作業を始めるとき、実装を進めたいときに必ずこのスキルを使うこと。
Claudeセッションのログ(ディレクトリ指定があればそのリポジトリの過去全 worktree、指定がなければ現在実行中のセッション)を分析し、設計・実装中にユーザーから受けた指摘・軌道修正・ダメ出しや、Claude自身のつまずきを「教訓」として蒸留し、行き先を見極めてコーディングルールへ反映するスキル。一般化できる改善点・設計思想・実装技法はグローバルルール(~/.claude の CLAUDE.md / rules)へ、そのプロジェクト固有の事情で寄り道・難航した知見はそのリポジトリの .claude(CLAUDE.md / rules)へと、肥大させずに振り分ける。「この指摘を二度とさせたくない」「さっきの反省をルールに落としたい」「セッションを振り返ってルールにして」「最近の指摘から学習して」「同じミスを繰り返さないようにルール化して」「reflection」「振り返って」と言われたとき、また長いセッションでユーザーが何度も似た修正を入れていたと気づいたときにも積極的に使うこと。コードベースからルールを起こす refine-rules とは入力が違い、こちらは「人間がClaudeに与えたフィードバック」を入力にする。
現在のリポジトリの変更(staged/unstaged含む)またはdefault branch (main/master) との差分とその周辺コードを読み、実装の良し悪しを評価するコードレビュースキル。保守性・テスト十分性・spec適合・実装の筋の良さなどの観点から、プロの視点で良い点と問題点を指摘する。ユーザーが「レビューして」「コードレビューして」「この実装どう?」「変更を見て」「品質チェックして」「マージ前に確認して」と言ったとき、あるいは実装が一段落して評価が欲しそうなときに必ず使うこと。バグ修正だけが目的の場合は別だが、設計・実装の質を評価する文脈では積極的に発動する。
リポジトリのコードベースを分析してClaude Code用のコーディングルール(CLAUDE.md / .claude/rules/)を生成・更新し、併せてコードベース側の不足や問題点も指摘・修正する。「ルールを作りたい」「コーディング規約を整えたい」「CLAUDE.mdを作りたい・見直したい」「.claude/rulesを整備したい」「このリポジトリのルールを書いて」「プロジェクトのコーディングスタイルを整えて」といったリクエストで使うこと。新規リポジトリの初期設定にも、既存ルール・既存コードベースの継続的な見直し・改善にも対応する。
difitコマンドでGitのdiffをブラウザのGitHub風UIで表示する。コードレビューや差分確認時に使用。
| name | check-pr |
| description | 現在のブランチのPRのレビューコメントとCIステータスを確認し、問題があれば修正する |
| allowed-tools | Read, Write, Edit, Bash, Grep, Glob, TodoWrite |
現在のブランチに紐づくPRのレビューコメントとCIの実行結果を確認し、問題があれば修正を行う。
以下のコマンドでPRに紐づくCI (GitHub Actions等) のステータスを確認する。
gh pr checks
失敗しているチェックがある場合、以下のコマンドで詳細ログを取得する。
# 失敗したrunのIDを取得
gh run list --branch $(git branch --show-current) --status failure --limit 5 --json databaseId,name,conclusion
# 失敗したrunの詳細ログを確認
gh run view <run_id> --log-failed
ログから原因を特定し、修正を行う。修正後、CLAUDE.mdに記載されたチェックコマンド(vet, lint, test等)をローカルで実行して修正が正しいことを確認する。
[CRITICAL] 失敗しているCIチェックは、自分の変更が原因かどうかに関わらず、例外なく全て修正すること。
- 「自分のミスではない」「既存の問題」「flakyテストだから」「mainでも壊れている」等の理由で絶対にスキップしてはならない
- 原因がブランチの変更と無関係に見えても、必ず原因を調査し、このブランチ上で修正してマージ可能な状態にする
- 環境問題・インフラ問題でローカル修正が不可能な場合のみ、その根拠を明示してユーザーに判断を仰ぐ。安易に「対象外」と判断しない
- 「赤いCIが1つでも残っている状態」をPR完了とみなさない
CIチェックの結果をTodoWriteで記録する。全て成功している場合はその旨を記録して Part B に進む。
以下のコマンドを実行して、PRの全レビュースレッドを取得する。
OWNER=$(gh repo view --json owner --jq '.owner.login')
REPO=$(gh repo view --json name --jq '.name')
PR_NUMBER=$(gh pr view --json number --jq '.number')
gh api graphql -f query='
query {
repository(owner: "'"$OWNER"'", name: "'"$REPO"'") {
pullRequest(number: '"$PR_NUMBER"') {
title
url
reviewThreads(first: 100) {
nodes {
id
isResolved
path
line
startLine
comments(first: 50) {
nodes {
body
author { login }
createdAt
url
}
}
}
}
}
}
}
' \
--jq '{
pr_number: '"$PR_NUMBER"',
pr_title: .data.repository.pullRequest.title,
pr_url: .data.repository.pullRequest.url,
threads: [.data.repository.pullRequest.reviewThreads.nodes[] | {
thread_id: .id,
is_resolved: .isResolved,
path: .path,
line: .line,
start_line: .startLine,
comments: [.comments.nodes[] | {
body: .body,
author: (.author.login // "unknown"),
created_at: .createdAt,
url: .url
}]
}]
}'
JSONの threads 配列から is_resolved: false のスレッドのみを抽出し、TodoWriteツールでタスクリストを作成する。各スレッドについてファイルパスと行番号をタスク名に含めること。
[CRITICAL] コメントは全文を最後まで注意深く読むこと。冒頭など一部だけ読んで判断するのは厳禁。必ずコメントの全文を読み切ってから妥当性を判断すること。
各unresolvedスレッドについて、以下の手順で処理する:
gh api graphql \
-f id='<thread_id>' \
-f query='
query($id: ID!) {
node(id: $id) {
... on PullRequestReviewThread {
id
isResolved
path
line
startLine
diffSide
comments(first: 100) {
nodes {
body
author { login }
createdAt
url
}
}
}
}
}
' \
--jq '{
thread_id: .data.node.id,
is_resolved: .data.node.isResolved,
path: .data.node.path,
line: .data.node.line,
start_line: .data.node.startLine,
diff_side: .data.node.diffSide,
comments: [.data.node.comments.nodes[] | {
body: .body,
author: (.author.login // "unknown"),
created_at: .createdAt,
url: .url
}]
}'
以下の観点でコメントの妥当性を判断する:
妥当と判断した場合:
修正完了後、以下のコマンドでconversationをresolveする:
gh api graphql \
-f threadId='<thread_id>' \
-f query='
mutation($threadId: ID!) {
resolveReviewThread(input: { threadId: $threadId }) {
thread {
id
isResolved
}
}
}
' \
--jq '.data.resolveReviewThread.thread.isResolved'
<thread_id> はStep B1で取得したスレッドの thread_id フィールドの値を使用する。結果が true であればresolve成功。
注意: GraphQLクエリは必ず複数行フォーマットで実行すること。1行に圧縮するとパースエラーが発生する場合がある。
TodoWriteで現在のタスクを完了にマークし、次のunresolvedスレッドに対してStep B3から繰り返す。
全ての確認・修正が完了したら、以下の形式でサマリーを出力する:
## PR確認結果
### CIステータス
| チェック名 | ステータス | 対応 |
|-----------|----------|------|
| build | pass | - |
| lint | fail | 修正済み |
### レビューコメント
| スレッド | ファイル | 対応 | 理由 |
|---------|---------|------|------|
| #1 | path/to/file:42 | 修正済み・resolved | [修正理由] |
| #2 | path/to/file:88 | スキップ | [スキップ理由] |
スキップしたコメントがある場合は、サマリー出力後にユーザーに確認を取る。ユーザーが「resolveしてよい」と判断したスキップ分についてはStep B6のコマンドを実行してresolveする。