一键导入
pr-tidy-classifier
GitHub PR を Tidy First? の T1〜T15 / NG1〜NG7 パターンに照らして分類し、人間レビューが不要な「構造的なリファクタリング」かどうかを判定するスキル。/pr-tidy-classify コマンドで起動する。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
GitHub PR を Tidy First? の T1〜T15 / NG1〜NG7 パターンに照らして分類し、人間レビューが不要な「構造的なリファクタリング」かどうかを判定するスキル。/pr-tidy-classify コマンドで起動する。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
GitHub PRのレビューコメントのうち、Hide・解決済みでないものだけを抽出して対応する。
Commit, push, and create or update a PR
GitHub Actions の CI 失敗を、失敗ジョブの特定 → ログからの原因抽出 → 原因分類 → ローカル再現 → 修正 → 検証まで体系的に進めるスキル。特に、失敗ログのノイズに埋もれて原因が見えないとき、環境依存でフレーキーに落ちているときに役立つ。修正に人の判断が必要な場合は、対話モードでは確認して中断し、--non-interactive 指定時はPRにコメントを投稿して中断する。
`bundle exec erblint app` の既存違反をファイル単位で無効化する todo ファイル群 (`.erb_lint_todo.yml` / `.erb-lint-rubocop-todo.yml`)を生成・初期化する手順。手動起動専用 (`/erblint-todo-init`)。todo を作り直したいときなど、一回性のセットアップ作業でのみ使う。 rubocop 単体・haml-lint・herb-lint の運用には使わない。
プランモードで作成したプランファイル(Markdown)の内容に沿って実装を行う。実装フェーズを軽量なsonnetモデルで実行し、コスト・速度を最適化する。引数でプランファイルのパスを指定できる。省略時は直近のセッションログから対象プランを自動特定してユーザーに確認する。コミット・push・PR作成は、プランに明記されている場合のみ実施する。
APM パッケージ由来ルール(.claude/rules/*.md)と重複するプロジェクト固有ローカルルール (.apm/instructions/*.local.instructions.md)を検出し、ローカル側を削除・縮小する。未管理ルールの 新規移行は行わない(それは migrate-rules-to-apm の役割)。手動実行専用(自動トリガーしない)。
| name | pr-tidy-classifier |
| description | GitHub PR を Tidy First? の T1〜T15 / NG1〜NG7 パターンに照らして分類し、人間レビューが不要な「構造的なリファクタリング」かどうかを判定するスキル。/pr-tidy-classify コマンドで起動する。 |
| disable-model-invocation | true |
| allowed-tools | Bash(gh pr diff:*), Bash(gh pr view:*), Bash(gh pr review:*), Bash(gh pr comment:*), Bash(git diff:*), Bash(git log:*), Bash(git rev-parse:*), Bash(git remote:*), Read |
| license | MIT |
| context | fork |
このスキルは、GitHub PR (またはローカルブランチの差分) を読み、Kent Beck の Tidy First? で言うところの 「整頓 (Tidy)」 にあたる構造的リファクタリングか、それとも 振る舞いを変える変更 (NG) かを分類する。
目的は、PRレビューのうち「レビューする価値がないことを確認するためだけの儀式」を肩代わりすることにある。整頓と判定したPRは、人間が個別にdiffを目で追わなくても安全にApproveできる、というスタンス。
参考: AIによるプルリクエスト分類器 (Findy Tech Blog, 2026)
/pr-tidy-classify コマンド経由で呼ばれる。引数のパターンは以下の3通り:
/pr-tidy-classify <PR番号> — 指定PRを分類して会話に報告するのみ (GitHubに何も投稿しない、デフォルト動作)/pr-tidy-classify (引数なし) — 現在のローカルブランチ vs base ブランチの差分を分類/pr-tidy-classify <PR番号> --comment — 分類した上で、結果をGitHubに投稿する (Approve可ならApprove、それ以外はコメントのみ)--comment フラグがない限り、gh pr review や gh pr comment は絶対に呼ばないこと。誤って勝手にApproveすると整頓判定の信頼性そのものが崩れる。
判定は次の手順で進める。references/patterns.md と references/large-pr-sampling.md を必ず先に読み込んでから本作業に入ること。
PR番号が指定されている場合:
gh pr view <PR番号> --json title,body,files,baseRefName,headRefName,changedFiles
gh pr diff <PR番号>
引数なし (ローカルブランチ) の場合、base を自動判定する:
# AI: base ブランチは main → master → release-candidate の優先順で存在するものを使う
git remote show origin | grep 'HEAD branch' # 推奨: HEAD branch を見る
git diff <base>...HEAD --stat # 変更ファイル数の把握
git diff <base>...HEAD # 実際のdiff
references/patterns.md を参照しながら、全diffを精査するreferences/large-pr-sampling.md のサンプリング手順に従う (波及先をセットで見る、を厳守)diff の各ハンクを、references/patterns.md の T1〜T15 / NG1〜NG7 のどれに該当するか分類する。
判定の原則:
NeedsReview — 整頓と本質的変更が混在するPRは、人間レビューに回す (記事の主旨「TidyとNGが共存するPRは粒度を分けるべき」を尊重)Approve可判定不能 — 誤って Approve可 に倒すと信頼を損なうので、安全側 (人間レビュー) に倒すのが原則「振る舞いが変わらないか」をdiffから読み取れない場合 (テストカバレッジが薄い領域でのリファクタリングを含む) も、判定不能 に倒してよい。
会話への出力は次のテンプレートを厳守する。読み手はPR作者・レビュワー双方を想定しており、根拠が見えることが重要。
## PR分類結果: <Approve可 | NeedsReview | 判定不能>
- **PR**: #<番号> 「<タイトル>」 (引数なし時は `<base>...HEAD` のように記載)
- **変更ファイル数**: <N>
- **サンプリング**: <不要 | 実施 (確認したファイル: ...)>
### 該当パターン
- **T5 (リネーム)**: `app/foo.rb`, `spec/foo_spec.rb` ほか N ファイル
- **T1 (ファイル移動)**: `lib/old/path.rb` → `lib/new/path.rb`
- ...
### 根拠
- <なぜこの判定になったかの説明。NGがあった場合はどのファイルのどの変更がNGに該当するか具体的に書く>
- <サンプリング実施時は、波及元と波及先の対応をどう確認したかも書く>
### 注意事項 (任意)
- <テストカバレッジが薄い等、Approve可でも人間が念のため見たほうがよい点>
--comment 指定時の GitHub 投稿--comment フラグが指定されているときのみ、判定結果に応じて以下のどちらかを実行する:
Approve可 の場合:
gh pr review <PR番号> --approve --body "<上記の報告フォーマットそのまま>"
NeedsReview または 判定不能 の場合:
gh pr comment <PR番号> --body "<報告フォーマット + 「人間によるレビューを推奨します」の一文>"
Approveしないコメント投稿のみ。gh pr review --request-changes は使わない (整頓判定の対象外であって、品質に問題があると断定しているわけではないため)。
投稿bodyには分類根拠 (該当パターン、対象ファイル、サンプリング有無) を必ず含める。将来「この自動Approveは妥当だったか」を振り返るためのログとして残すのが目的。
投稿bodyには余計なフッター (参考URLやボット署名など) を追加しないこと。報告フォーマットのみを投稿する。
code-review) を使う判定不能 か、Approve可 にしつつ注意事項に明記するか、状況に応じて判断する判定不能 に倒して人間に判断を委ねる