mcpField
P
pr-validate

pr-validate

github.com/boshu2テスト・品質450720 回インストール今日更新
リポジトリ

pr-validate について

pr-validateは、プルリクエスト用ブランチが提出可能か確認するスキルです。上流との整合性、貢献ガイドライン、変更の分離と範囲、品質ゲートを評価し、結果と対処方法を報告します。

主な機能

  1. 01ブランチと上流の整合性を確認
  2. 02CONTRIBUTING.mdへの準拠を確認
  3. 03コミット種別の混在と無関係なファイルを検出
  4. 04変更内容と想定範囲を照合
  5. 05品質ゲートと合否を報告

活用シーン

  1. 01PR準備前のブランチ検証
  2. 02実装後の範囲逸脱の確認
  3. 03提出前の上流との乖離の特定

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/boshu2/agentops --skill pr-validate

インストール後、Claude Code で/pr-validateを入力して読み込まれたか確認します。

同梱ファイルreferences/pr-validate.featurescripts/validate.sh

詳細

PR 検証スキル

変更が整理され、焦点が定まり、提出準備が整っていることを確認する、PR 専用の検証です。

概要

分離状態、上流との整合性、スコープの範囲、品質ゲートを確認し、PR ブランチの提出準備が整っているかを検証します。

入力:ブランチ名(デフォルト:現在のブランチ)

使用するタイミング:

  • $pr-prep の実行前
  • $pr-implement の完了後
  • スコープクリープが疑われるとき

ワークフロー

1.  Branch Discovery     -> Identify branch and upstream
2.  Upstream Alignment   -> FIRST: Check rebase status (BLOCKING)
3.  CONTRIBUTING.md      -> Verify compliance (BLOCKING)
4.  Isolation Check      -> Single type, thematic files
5.  Scope Check          -> Verify changes match intended scope
6.  Quality Gate         -> Tests, linting (non-blocking)
7.  Report Generation    -> Summary with pass/fail

フェーズ 2:上流との整合性(ブロッキング — 最初に確認)

# Fetch latest upstream
git fetch origin main

# How many commits behind?
BEHIND=$(git rev-list --count HEAD..origin/main)
echo "Behind upstream: $BEHIND commits"
チェック合格基準
差分が最小限遅れが 20 コミット未満
コンフリクトなしマージ/リベースが成功する

フェーズ 4:分離チェック(ブロッキング)

# Commit type analysis
git log --oneline main..HEAD | sed 's/^[^ ]* //' | grep -oE '^[a-z]+(\([^)]+\))?:' | sort -u

# File theme analysis
git diff --name-only main..HEAD | cut -d'/' -f1-2 | sort -u
チェック合格基準
コミットタイプが単一すべてのコミットが同じプレフィックスを持つ
関連するファイル変更されたファイルがすべて PR のスコープに関連している
スコープが独立1 文で説明できる

フェーズ 5:スコープチェック

# Infer scope from commit messages
SCOPE=$(git log --format="%s" main..HEAD | grep -oE '\([^)]+\)' | sort -u | head -1)

# All files should be within expected scope
git diff --name-only main..HEAD | grep -v "$SCOPE"

レポート生成

合格時の出力
PR Validation: PASS

Branch: feature/suggest-validation (5 commits)
Upstream: main (in sync)

Checks:
  [OK] Isolation: Single type (refactor)
  [OK] Upstream: 0 commits behind
  [OK] Scope: 100% in internal/suggest/
  [OK] Quality: Tests pass

Ready for $pr-prep
不合格時の出力
PR Validation: BLOCKED

Checks:
  [FAIL] Isolation: Mixed types (refactor, fix, docs)
  [WARN] Upstream: 15 commits behind

Resolutions:
1. ISOLATION: Split branch by commit type
   git checkout main && git checkout -b refactor/suggest
   git cherry-pick <refactor-commits>

Run $pr-validate again after resolution.

解決策

コミットタイプの混在
# Cherry-pick to clean branch
git checkout main
git checkout -b ${BRANCH}-clean
git cherry-pick <relevant-commits-only>
上流との差分
# Rebase on latest upstream
git fetch origin main
git rebase origin/main

アンチパターン

してはいけないこと代わりに行うこと
古いブランチを分析するまず上流を確認する
検証を省略する$pr-prep の前に実行する
スコープクリープを無視する無関係な変更を切り分ける
修正とリファクタリングを混在させるタイプごとに PR を分ける

例

提出前に PR を検証する

ユーザーの発言:「この PR ブランチの分離状態とスコープクリープを検証してください。」

実行内容:

  1. 上流との整合性とブランチの最新状態を確認します。
  2. スコープクリープと無関係なファイル変更を検出します。
  3. 対処手順と合否ステータスを出力します。
準備前のゲート

ユーザーの発言:「$pr-prep を実行する前に PR の検証をしてください。」

実行内容:

  1. 分離チェックとスコープチェックを実行します。
  2. 品質ゲートを通過できる状態か確認します。
  3. 実行可否の推奨を返します。

トラブルシューティング

問題原因解決策
検証でブランチが古いと報告される上流が進んでいる上流からリベース/マージしてから再実行します
スコープクリープが検出される余分なファイルまたは目的の混在無関係な変更を後続の PR に分割します
整合性チェックに失敗するブランチが想定されたターゲットから分岐しているベースブランチと受け入れ基準を調整します
出力がわかりにくい検出事項の優先順位が付けられていない検出事項をブロッカーと非ブロッカーの重大度で並べ替えます

参考ドキュメント

  • references/pr-validate.feature — 実行可能な仕様:分離、上流との整合性、スコープの包含、品質ゲートのチェック → 提出準備状況の判定(soc-qk4b)

コメント