mcpField
P
pr-checks

pr-checks

github.com/massgenテスト・品質1.1k88 回インストール20 週間前に更新
リポジトリ

pr-checks について

pr-checksは、既存のプルリクエストのレビュー対応と各種チェックを体系的に進めるスキルです。PR情報、CodeRabbitのコメント、フォーマット用フック、テスト、任意のレビュー用ツールを扱います。

主な機能

  1. 01PRの状態と説明を確認
  2. 02承認を得てCodeRabbitの指摘に対応
  3. 03pre-commitフックとテストを実行
  4. 04設定を検証して修正を準備
  5. 05PRチェック結果の要約を作成

活用シーン

  1. 01オープン中のPRの指摘に対応
  2. 02最終レビュー依頼前に変更を確認
  3. 03レビュー修正後にテストとフォーマットを実行
  4. 04PRの検証結果を要約

インストール

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

$npx skills add https://github.com/massgen/massgen --skill pr-checks

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

詳細

PR チェックのスキル

このスキルは、既存のプルリクエストに対して包括的な PR チェックを実行し、コード品質を確保してレビューのフィードバックに対応します。

使用するタイミング

次の場合にこのスキルを実行します:

  • PR が作成され、CodeRabbit がレビューコメントを投稿したとき
  • 既存のレビューのフィードバックに体系的に対応したいとき
  • PR の最終レビューまたはマージを依頼する前

使用方法

/pr-checks

ワークフロー

1. 現在の状態を分析する

まず、レビュー対象を把握します。

# Check current branch and status
git branch --show-current
git status --short

# Show diff summary vs main
git diff --stat main...HEAD

# Get the PR number for this branch
gh pr view --json number,title,state
2. PR の説明を確認して修正する

コードコメントに対応する前に、PR に適切な説明があることを確認します。

# View current PR description
gh pr view --json body,title

適切な PR の説明には、次の内容を含めます:

  • 概要:PR の内容を説明する 1~3 個の箇条書き
  • テスト計画:変更が正しく動作することを確認する方法
  • 関連する課題:Linear/GitHub の課題へのリンク(例:Closes MAS-XXX)

説明がない、または不十分な場合:

# Update the PR description
gh pr edit --body "$(cat <<'EOF'
## Summary
<1-2 sentence overview of what this PR accomplishes>

### Changes
- <change 1: what was added/modified/removed>
- <change 2>
- <change 3>
- ...

### Technical details (if applicable)
<Brief explanation of implementation approach, architectural decisions, or non-obvious changes>

## Test plan
- [ ] <verification step 1>
- [ ] <verification step 2>
- [ ] <edge case or error scenario tested>

## Related issues
Closes MAS-XXX

## Screenshots/recordings (if applicable)
<Add screenshots for UI changes, terminal output for CLI changes>

🤖 Generated with [Claude Code](https://claude.com/claude-code)
EOF
)"

必要に応じてタイトルを修正します(Conventional Commits 形式に従います)。

# Update PR title
gh pr edit --title "feat: descriptive title here"
3. 既存の CodeRabbit コメントを確認する

これが主なワークフローです。 CodeRabbit は PR を自動的にレビューし、コメントを投稿します。/pr-comments を使ってコメントを取得し、対応します。

/pr-comments

これにより、PR のすべてのレビューコメントが取得されます。CodeRabbit の各コメントについて、次の手順を実行します。

  1. コメントを読む — CodeRabbit の提案内容を理解します
  2. 妥当性を評価する — このコードベースにおいて有効な懸念事項でしょうか?
  3. 対応を決める — 次のいずれかを選びます:
    • ✅ 実装する — 提案は妥当で、修正する価値があります
    • ❌ スキップする — 提案は当てはまらないか、重要度が低すぎます
    • ❓ 確認する — 判断する前にユーザーから追加の情報を得る必要があります

コメントを一つずつユーザーと確認します:

## CodeRabbit Comment #1 of 5

**File:** `massgen/backend/foo.py:45`

**Original code:**
```python
response = client.api_call(params)
return response.data

CodeRabbit の提案:

API 呼び出しにエラー処理を追加することを検討してください。ネットワークの問題や API エラーによりリクエストが失敗し、未処理の例外が発生する可能性があります。メインのオーケストレーションループから呼び出されるため、失敗すると実行全体がクラッシュするおそれがあり、特に重要です。 [truncated - 8 more lines]

変更案:

try:
    response = client.api_call(params)
    return response.data
except APIError as e:
    logger.error(f"API call failed: {e}")
    raise

私の評価: 妥当な懸念です。この API 呼び出しは失敗する可能性があり、エラー処理もありません。

推奨事項: ✅ 実装する

次のどれを実行しますか?

  1. この修正を実装する
  2. このコメントをスキップする
  3. 追加情報が必要

**After user decides, resolve the comment on GitHub:**

```bash
# If implemented or intentionally skipped, resolve the comment thread
gh api graphql -f query='
  mutation {
    resolveReviewThread(input: {threadId: "THREAD_ID"}) {
      thread { isResolved }
    }
  }
'

または、実施した対応を説明する返信をコメントに投稿します。

# Reply to the comment
gh pr comment <PR_NUMBER> --body "Addressed in <commit-sha>: <brief description of fix>"

コメントを表示するときは、次の内容を含めます:

  • 対象の元のコード
  • 提案の全文(15 行を超える場合は「[truncated - N more lines]」を付けて省略)
  • CodeRabbit が提示した場合は変更案
  • 文脈がわかるように行番号

修正を実装する前に、ユーザーの承認を待ちます。これにより、次のことを確実にできます:

  • どの変更を行うかをユーザーが管理できます
  • 不要な変更が加わりません
  • 文脈に応じた判断ができます
4. プリコミットフックを実行する

修正後、コードスタイルを確認するためにプリコミットを実行します。

uv run pre-commit run --all-files

問題が見つかった場合は修正してコミットします。

5. テストを実行する
# Run tests (skip expensive API tests)
uv run pytest massgen/tests/ -v -m "not expensive and not docker" -x --tb=short
6. 設定を検証する(変更した場合)
uv run python scripts/validate_all_configs.py
7. 修正をコミットしてプッシュする
# Stage fixes
git add -u .

# Commit with descriptive message
git commit -m "fix: address CodeRabbit review comments

- Fix error handling in foo.py
- Add missing type hints in bar.py

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>"

# Push to trigger CodeRabbit re-review
git push
8. PR レビューツールキットを実行する(任意)

CodeRabbit 以外の追加分析を行う場合:

/pr-review-toolkit:review-pr

次のタスクを実行する専門エージェントが起動します:

  • プロジェクトのガイドラインに照らしたコードレビュー
  • サイレント障害の検出
  • 型設計の分析
  • テストカバレッジの分析
9. (任意)ローカルで CodeRabbit のレビューを実行する

GitHub の PR コメントとは別に、新たにローカルレビューを実行する場合:

coderabbit --prompt-only --type committed

注: これは CodeRabbit 独自の分析をローカルで実行するもので、自動 PR レビューとは結果が異なる場合があります。ステップ 3 の GitHub PR コメントは、PR 全体のコンテキストを踏まえているため、通常はより詳細です。

10. サマリーを作成する

すべてのチェック後、サマリーを出力します。

## PR Checks Summary

### Branch: feature/my-feature
- PR #123: "feat: add new feature"
- Commits ahead of main: 3
- Files changed: 5

### PR Description
✅ Has summary, test plan, and issue links

### CodeRabbit Comments Addressed

| Comment | File | Action |
|---------|------|--------|
| Add error handling | foo.py:45 | ✅ Implemented |
| Consider caching | bar.py:12 | ❌ Skipped (not applicable) |
| Missing type hint | baz.py:78 | ✅ Implemented |

### Check Results

| Check | Status |
|-------|--------|
| Pre-commit | ✅ Passed |
| Tests | ✅ 47 passed |
| Config Validation | ✅ Valid |

### Ready for Merge?
✅ All critical issues addressed, ready for final review

参考資料

PR の説明テンプレート
## Summary
<1-2 sentence overview of what this PR accomplishes>

### Changes
- <change 1: what was added/modified/removed>
- <change 2>
- <change 3>

### Technical details (if applicable)
<Implementation approach, architectural decisions, or non-obvious changes>

## Test plan
- [ ] Step to verify functionality
- [ ] Edge cases tested
- [ ] Error scenarios handled

## Related issues
Closes MAS-XXX

## Screenshots/recordings (if applicable)
<For UI/CLI changes>

## Breaking changes (if applicable)
<What breaks and migration steps>
PR タイトルの形式

Conventional Commits の形式を使用します:

  • feat: - 新機能
  • fix: - バグ修正
  • docs: - ドキュメントのみの変更
  • refactor: - バグ修正や機能追加を伴わないコード変更
  • perf: - パフォーマンスの改善
  • test: - テストの追加または更新
  • chore: - メンテナンスタスク
コミット前フック
  • black - Python フォーマッター(1 行 200 文字)
  • isort - インポートの整理
  • flake8 - スタイルチェッカー
  • autoflake - 未使用のインポートの削除
テストマーカー
  • @pytest.mark.expensive - 簡易チェックではスキップします
  • @pytest.mark.docker - Docker に依存します
CodeRabbit の設定

パスごとのレビュー指示と除外設定については、.coderabbit.yaml を参照してください。

コメント