本文へ移動
cccskills
無料GitHub で公開

pr-review

Review a GitHub pull request from multiple perspectives in parallel, output only findings, then let the user pick which to fix in the same session. Use when the user asks to review a PR by number, mentions "PRレビュー" / "PR review" with a number, or invokes `/pr-review <number>`. Fans out subagents for absolute-rules, stop-slop, security, architecture, code-quality, testing, and ai-antipattern.

インストール方法を見る

含まれるファイル(8)

  • SKILL.md8.5 KB
  • policies/absolute-rules.md2.8 KB
  • policies/ai-antipattern.md4.4 KB
  • policies/architecture.md3.9 KB
  • policies/code-quality.md6.5 KB
  • policies/security.md4.3 KB
  • policies/stop-slop.md3.4 KB
  • policies/testing.md4.4 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

PR Review

引数として渡されたPR番号のコードレビューを、複数観点のサブエージェントに並列実行させ、結果を統合して指摘だけを出力する。出力後、どの指摘に対応するかをユーザーにチェックボックスで選ばせ、選ばれたものを同じセッションで修正する。

引数

  • $1: PR番号
    • 必須
    • 渡されない場合
      • ユーザーに確認する

手順

1. PR情報の収集

以下を並列で取得する。

gh pr view <PR番号> --json number,title,body,headRefName,baseRefName,author,files,additions,deletions
gh pr diff <PR番号>

diffは大きくても全部をレビュー対象にする。

2. 並列レビューの実行

Agentツールを同一メッセージ内で7個並列に呼び出す。各サブエージェントに以下を渡す。

  • PRタイトル
  • PR本文
  • 完全なdiff
  • 担当観点
  • ポリシーファイルの絶対パス
  • 出力フォーマット指定

サブエージェントの subagent_type は general-purpose を使う。

観点とポリシーファイル対応表

すべて ~/.claude/skills/pr-review/policies/ 配下のファイルをReadで開かせる。

観点ポリシーファイル
absolute-rulesabsolute-rules.md
stop-slopstop-slop.md
securitysecurity.md
architecturearchitecture.md
code-qualitycode-quality.md
testingtesting.md
ai-antipatternai-antipattern.md

サブエージェントへのプロンプトテンプレート

あなたはPRレビュアーである。担当観点は「<観点名>」。

# 参照すべきポリシー
以下をReadで読んでから判定する。読まずに判定しない。
<ポリシーファイルの絶対パス>

# レビュー対象
## PRタイトル
<title>

## PR本文
<body>

## 差分
<full diff>

# 出力ルール
- 良い点や要約は書かない。指摘のみ。
- 各指摘は以下の形式で列挙する。指摘がなければ空の配列 `[]` だけを返す。

```json
[
  {
    "severity": "REJECT" | "Warning",
    "file": "<repo-relative path>",
    "line": <行番号または範囲 "12-18">,
    "category": "<ポリシー内の該当項目番号または節名>",
    "problem": "<何が問題か1-2文>",
    "fix": "<どう直すか1-2文>"
  }
]
  • ファイルと行番号はdiffから実在する箇所を必ず示す。
  • 推測ではなく、diffの実コードで確認できた事実だけを指摘する。
  • 担当観点の外の問題は指摘しない。
  • 3件以上の同種指摘は代表1件にまとめて他該当行を列挙する。

### 3. 結果の統合

7つのサブエージェントから返ったfindingsをマージする。

- 同一の file, line, problem をもつ重複
    - 1件に統合する
    - `perspectives` に元の観点名を列挙する
- 重複していない指摘
    - どの観点から出たかをタグ付けする
- 並び順
    - severity
        - REJECT
        - Warning
    - ファイルパス昇順
    - 行番号昇順
- 各指摘に `F1`, `F2` のような通し番号を付ける
    - 以降の選択と修正フェーズでこの番号を使う
- 各指摘に対応要否の所見を付ける
    - 「対応すべき」
    - 「対応不要」
    - 「判断保留」
    - 理由と対応方針を1-2文で書く
    - 必要なら該当ファイルをReadで開いて現状を確認してから判断する
    - 自分で妥当性を検証した結果を書く

### 4. 出力フォーマット

Markdownで以下の形式で出力する。指摘が0件なら「指摘なし」とだけ書いて終了する。前置きは書かない。

```markdown
## REJECT

### F1. <file>:<line> [観点1, 観点2]
**問題**: <problem>
**修正**: <fix>
**カテゴリ**: <category>
**所見**: <対応すべき/対応不要/判断保留: 理由と対応方針>

<以降同様>

## Warning

<以降同様>

REJECTが1件でもあれば末尾に 判定: REJECT を追記する。すべてWarningのみなら 判定: Warning、指摘なしなら 判定: APPROVE。

5. 対応する指摘の選択

所見を付けたステップ4の出力を提示したあと、AskUserQuestion をmultiSelect: trueで呼び出し、対応する指摘をユーザーに選ばせる。

  • 1問あたり options は最大4件
  • 1回の呼び出しで questions は最大4問
    • 1画面に最大16件並べられる
  • findingsを番号順に4件ずつのグループに分割し、各グループを1問として並べる
    • question の例
      • グループ1: 対応する指摘を選択してください
    • header は「対応対象」で統一する
    • 16件に収まらない分
      • 続きを番号順にAskUserQuestionでもう一度出す
  • 各optionに入れる値
    • label: F<番号>: <file>:<line>
    • description: [severity][所見: 対応すべき/不要/保留] <problemの要約>
  • 所見を番号順に列挙する

ユーザーが1件も選ばなければ「対応対象なし」と1行だけ返して終了する。

6. PRブランチの準備

  1. git worktree list で、対象PRのブランチをチェックアウトしてあるローカルworktreeを探す。
  • worktreeがある場合
    • そのworktreeの絶対パスを作業ディレクトリとする。
  • worktreeがない場合
    • remoteブランチと同名のworktreeを作る。
  1. 以降のファイル操作はworktree配下の絶対パスで行う。

7. 選択された指摘の修正

同一ファイルへの変更は順番に、依存があれば依存順に処理する。

  • 修正はすべてステップ6で確定したworktree配下の絶対パスで行う
    • Read/Editにも同じパスを使う
  • findingの内容と対象ファイル、行を確認する
    • 必要ならファイルをReadで開き、diffとの整合を取る
  • 潜在的なバグの場合
    • 対象はseverity: REJECTのsecurity / code-quality / testingカテゴリなど
    • まず落ちるテストを書き、失敗することを確認してから修正する
      • t-wada TDD Style
  • それ以外の場合
    • 直接コードを修正する
  • テストを実行する

8. コミットとプッシュ

  • git操作はすべてステップ6の作業ディレクトリに対して行う
    • git -C <worktree絶対パス> を付ける
  • git status と git diff で意図した変更のみが含まれているか確認する
  • git add で対象ファイルを指定してstageする
  • nix develop -c git commit でコミットする
    • メッセージは英語のconventional commitで書く
    • 対応した内容を本文に列挙する
  • コミットメッセージには何を直したかを書く
    • F1 のようなfinding番号は書かない
  • 追加のプッシュは AskUserQuestion でユーザーに確認してから行う

9. まとめの出力

対応済みと未対応のfindingを番号順に列挙する。

## 対応済み
- F1: <one-line summary>
- F3: <one-line summary>

## 未対応
- F2: <理由 or 「ユーザー選択外」>

注意

  • severity の判定はポリシーファイルの表に従わせる
  • ポリシー本文が日本語なので、指摘も日本語で書く
  • 変更ファイル外の既存問題はWarning扱いにする
  • diffに登場しない行の推測指摘は禁止する
    • ファクトチェックが必要な場合は該当ファイルをReadで開いてから指摘する
  • 修正フェーズでは、ファイルの現状をReadしてから、現状に合う最小の変更を実装する
  • 「対応不要」と判断したfinding
    • まとめの「未対応」欄にその理由を1行で書く

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

Use by any agent before writing specs, editing code, or changing workflow files when the change could add compatibility behavior, aliases, silent fallbacks, or default-value fallbacks.

日本語の概要は準備中です。原文の説明を表示しています。

ogadra/dotfiles32026年10月12日 更新

Cascade merge changes through a chain of dependent branches. Use when updating stacked/chained PRs, propagating changes from a parent branch to all downstream branches, or when the user mentions "cascade merge", "propagate changes", "update dependent branches", or "merge to downstream branches".

日本語の概要は準備中です。原文の説明を表示しています。

ogadra/dotfiles32026年10月12日 更新

grill-me

無料

Interview the user in rounds until no branch of the design tree stays open.

日本語の概要は準備中です。原文の説明を表示しています。

ogadra/dotfiles32026年10月12日 更新

import-skill

無料日本語概要

外部のスキルをこのリポジトリにコピーして自分のスキルにする。ユーザーがスキルのURLやリポジトリ名を渡して「入れたい」「導入したい」と言ったとき、「上流を参照せずコピーしたい」と言ったとき、またはユーザーが `/import-skill` と打ったときに使う。Vendors an external Claude skill into this repository.

ogadra/dotfiles32026年10月12日 更新

ponytail

無料

Forces the laziest solution that actually works, simplest, shortest, most minimal. Channels a senior dev who has been paged at 3am for a factory class that wrapped one function: question whether the task needs to exist at all, reach for the standard library before custom code, native platform features before dependencies, one line before fifty. Supports intensity levels: lite, full, ultra. The default is full. Use on ANY coding task: writing, adding, refactoring, fixing, reviewing, or designing code, and choosing libraries or dependencies. Also use whenever the user says "ponytail", "be lazy", "lazy mode", "simplest solution", "minimal solution", "yagni", "do less", or "shortest path", or complains about over-engineering, bloat, boilerplate, or unnecessary dependencies. Do NOT use for non-coding requests such as general knowledge, prose, translation, summaries, recipes.

日本語の概要は準備中です。原文の説明を表示しています。

ogadra/dotfiles32026年10月12日 更新

pr-create

無料日本語概要

PRを作る、または既存PRのbodyを直す。ユーザーが「PRを作る」「PR出して」「PRのbodyを直して」と言ったとき、ユーザーが `/pr-create` と打ったとき、または `gh pr create` や `gh pr edit --body` がhookにブロックされたときに使う。Creates or edits a pull request with a three-line body.

ogadra/dotfiles32026年10月12日 更新

ogadra のスキルをすべて見る

このスキルの問題を報告する