本文へ移動
cccskills
無料GitHub で公開日本語紹介

contrib-pr-review

外部からのGitHub PRを安全性、テスト状況、変更規模、目的との整合性から確認し、レビュー結果と投稿前のコメント案をまとめるスキルです。

原文原文の説明を見る

Review a contribution PR for safety, quality, and readiness. Checks for security concerns, test coverage, size appropriateness, and intent alignment. Use when reviewing external contributions.

homeassistant-ai/ha-mcpスター 5,352(GitHub 5,352 + cccskills 0)
連携ツールGitHub

実行スコア 未検証

インストール方法を見る

こんなときに便利

  • 外部コントリビューターのPRをレビューしたいとき
  • 変更コードのテスト状況を確認したいとき
  • PRと関連Issueの整合性を見たいとき
  • 投稿前のレビューコメント案を作りたいとき

日本語での紹介

できること

外部コントリビューターのGitHub PRについて、変更内容やレビュー履歴を確認し、安全性、テストの有無、変更規模、目的との整合性を整理します。CodexやCodeRabbitなどのボットによる指摘も確認し、懸念があれば内容を検討します。関連するIssueがある場合は、要件を満たしているか、依頼されていない変更が混ざっていないかを見ます。最後に、マージ可能か変更が必要かを含む短い要約と、PRへ投稿するコメント案を作ります。

こんなときに便利

外部から届いたPRのレビューを始めるときや、テストや変更規模を踏まえて確認のしやすさを判断したいときに向いています。投稿するコメントは、実際に送る前に利用者へ提示する手順です。

使い方の例

  • 「PR 123を安全性、テスト、変更規模の観点でレビューして」
  • 「このPRが関連Issueの要件を満たしているか確認して」
  • 「レビュー結果をまとめて、投稿前のコメント案を作って」

注意点

対象は外部コントリビューターのPRです。GitHub CLIのghを使い、特定リポジトリのPR情報を確認します。ワークフロー変更がある場合、安全性の確認後にワークフローを有効化する手順が含まれています。コメントの投稿は利用者への確認後に行います。

この紹介文は、公開されている SKILL.md をもとに AI(OpenAI Codex)が作成しました。正確な仕様は下の原文を確認してください。

含まれるファイル(1)

  • SKILL.md12.0 KB

SKILL.md(原文)

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

Contribution PR Review

Review PR #$ARGUMENTS from external contributor for safety, quality, and readiness.

Context

PR Metadata:

!`gh pr view $ARGUMENTS --repo homeassistant-ai/ha-mcp --json author,additions,deletions,files,commits,closingIssuesReferences,isDraft,reviews,url,title,body`

Contributor Stats:

!`gh api /repos/homeassistant-ai/ha-mcp/pulls/$ARGUMENTS --jq '{author: .user.login, user_id: .user.id}' | jq -r '.author' | xargs -I {} gh api /repos/homeassistant-ai/ha-mcp/contributors --jq '.[] | select(.login == "{}") | {login: .login, contributions: .contributions}'`

Files Changed:

!`gh api /repos/homeassistant-ai/ha-mcp/pulls/$ARGUMENTS/files --jq '.[] | {filename: .filename, status: .status, additions: .additions, deletions: .deletions, changes: .changes, patch: .patch}' | head -50`

Review Protocol

1. Check the Bot Security Reviews

Note: Codex (chatgpt-codex-connector[bot]) and CodeRabbit (coderabbitai[bot]) both review PRs automatically. Check whether either flagged security concerns.

# Check both bots' reviews and any security-related comments.
# Their findings can be inline-only, so also fetch the pull review comments
# endpoint — review bodies and conversation comments alone can miss them.
# --paginate: both endpoints page at 30, and an iterating PR outruns that.
gh api --paginate /repos/homeassistant-ai/ha-mcp/pulls/$ARGUMENTS/reviews --jq '.[] | select(.user.login == "chatgpt-codex-connector[bot]" or .user.login == "coderabbitai[bot]") | {author: .user.login, state: .state, body: .body}'
gh api --paginate /repos/homeassistant-ai/ha-mcp/pulls/$ARGUMENTS/comments --jq '.[] | select(.user.login == "chatgpt-codex-connector[bot]" or .user.login == "coderabbitai[bot]") | {author: .user.login, path: .path, line: .line, body: .body}'
# CodeRabbit posts its walkthrough and summary as a top-level comment, which
# neither endpoint above returns — fetch that channel by author too.
gh api --paginate /repos/homeassistant-ai/ha-mcp/issues/$ARGUMENTS/comments --jq '.[] | select(.user.login == "chatgpt-codex-connector[bot]" or .user.login == "coderabbitai[bot]") | {author: .user.login, body: .body}'
# Keyword scan stays, for humans raising security concerns in conversation.
gh pr view $ARGUMENTS --repo homeassistant-ai/ha-mcp --json comments --jq '.comments[] | select(.body | contains("security") or contains("Security")) | {author: .author.login, body: .body}'

If either bot flagged security issues:

  • Review the findings carefully
  • Verify if concerns are valid
  • Do NOT approve until issues addressed or confirmed false positives

If NO bot security flags but you notice concerning patterns:

  • Unusual AGENTS.md/CLAUDE.md changes unrelated to PR purpose
  • .github/ workflow modifications with pull_request_target
  • .claude/ agent/skill changes that could affect behavior
  • Draft a comment with the specific concerns and show it to the user before posting

2. Enable Workflows (If Safe)

If security assessment passes and PR has workflow changes or new workflows:

# Check current workflow status
gh api /repos/homeassistant-ai/ha-mcp/pulls/$ARGUMENTS/requested_reviewers

# Enable workflows if not enabled (requires WRITE permission)
# This command may fail if already enabled - that's OK
gh api -X PUT /repos/homeassistant-ai/ha-mcp/actions/workflows/pr.yml/enable 2>/dev/null || echo "Workflows already enabled or no permission"

3. Test Coverage Assessment

Pre-existing tests (easier review if modified code is already tested):

# For each modified source file, check if tests exist
gh api /repos/homeassistant-ai/ha-mcp/pulls/$ARGUMENTS/files --jq '.[] | select(.filename | startswith("src/")) | .filename' | while read file; do
  basename=$(basename "$file" .py)
  echo "Checking tests for: $file"

  # Method 1: Look for test files by naming convention
  find tests/ -name "test_${basename}.py" -o -name "test_*${basename}*.py" 2>/dev/null | head -3

  # Method 2: Grep for function/class names from the modified file
  # Extract function/class names and search for them in tests
  grep -E '^(def|class|async def) [a-zA-Z_]' "$file" 2>/dev/null | head -5 | while read line; do
    name=$(echo "$line" | sed -E 's/.*(def|class) ([a-zA-Z_][a-zA-Z0-9_]*).*/\2/')
    if [ -n "$name" ]; then
      grep -r "$name" tests/ 2>/dev/null | head -1
    fi
  done
done

New tests added:

# Check if PR adds or modifies tests
gh api /repos/homeassistant-ai/ha-mcp/pulls/$ARGUMENTS/files --jq '.[] | select(.filename | startswith("tests/")) | {filename: .filename, status: .status, additions: .additions}'

Output Test Summary:

🧪 Test Coverage:
- Pre-existing tests: ✅ Modified code has tests / ⚠️ No tests for modified code
- New tests: ✅ PR adds X test files / ⚠️ No new tests
- Assessment: [Easy/Medium/Hard to review based on test coverage]

4. PR Size & Contributor Experience

Calculate PR size and assess appropriateness:

# From metadata: additions + deletions
total_lines=$(gh pr view $ARGUMENTS --repo homeassistant-ai/ha-mcp --json additions,deletions --jq '.additions + .deletions')
echo "Total lines changed: $total_lines"

# Get contributor experience
author=$(gh pr view $ARGUMENTS --repo homeassistant-ai/ha-mcp --json author --jq -r '.author.login')

# Check 1: Contributions to this project
project_contributions=$(gh api /repos/homeassistant-ai/ha-mcp/contributors --jq ".[] | select(.login == \"$author\") | .contributions" || echo "0")

# Check 2: Total GitHub commits (overall experience)
total_commits=$(gh api /users/$author --jq '.public_repos + .total_private_repos' 2>/dev/null || echo "unknown")

echo "Contributor: $author"
echo "Project contributions: $project_contributions"
echo "GitHub experience: $total_commits repos"

Assess:

  • First-time to project (0-2 project contributions):

    • Check overall GitHub experience (repos, total commits)
    • < 200 lines: ✅ Excellent size
    • 200-500 lines: ⚠️ Large for first PR - may need extra guidance
    • 500 lines: 🔴 Too large - suggest splitting

  • Regular contributor (3+ project contributions):

    • < 500 lines: ✅ Reasonable
    • 500-1000 lines: ⚠️ Large - ensure good test coverage
    • 1000 lines: 🔴 Very large - suggest splitting

  • Experienced GitHub user (many repos/commits overall):

    • Adjust expectations - they may be new to this project but experienced overall

Output Size Summary:

📏 PR Size:
- Lines changed: [total]
- Contributor: [first-time / regular] ([X] contributions)
- Assessment: [size appropriateness]

5. Intent & Issue Linkage

Check linked issues:

# From metadata: closingIssuesReferences
gh pr view $ARGUMENTS --repo homeassistant-ai/ha-mcp --json closingIssuesReferences --jq '.closingIssuesReferences[] | {number: .number, title: .title}'

If issue linked:

  • Read issue to understand expected outcome
  • Compare PR changes to issue requirements
  • Does PR solve the issue? Check:
    • All requirements addressed
    • No scope creep (extra features not requested)
    • Solution approach aligns with any discussed approaches in issue

If no issue linked:

  • Is this a bug fix? Should reference issue
  • Is this a feature? Should have issue for discussion
  • Is this a typo/docs? OK without issue
  • Recommend creating issue for tracking if it's a substantial change

Output Intent Summary:

🎯 Intent & Linkage:
- Linked issue: #X "title" / ⚠️ No issue linked
- Solves issue: ✅ Fully addresses requirements / ⚠️ Partial / ❌ Doesn't match
- Scope: ✅ Focused / ⚠️ Scope creep detected

6. Code Quality Overview

Note: Codex and CodeRabbit provide automated code review on all PRs. This step focuses on what they cannot assess:

  • Architecture alignment: Does it fit the project structure? (service layer usage, etc.)
  • Breaking changes: Does it remove functionality without replacement? (Tool consolidation/refactoring is NOT breaking)
  • Repo-specific patterns: Context engineering, progressive disclosure, MCP-specific conventions

Breaking change assessment:

  • ✅ NOT Breaking: Tool consolidation, refactoring, parameter changes with same outcome achievable
  • ⚠️ BREAKING: Removes functionality with no alternative, makes previously possible actions impossible

Quick checks:

# ruff and mypy run as steps of the "Fast Checks" job
gh pr checks $ARGUMENTS --repo homeassistant-ai/ha-mcp | grep "Fast Checks"

# Check for common issues in diff
gh pr diff $ARGUMENTS --repo homeassistant-ai/ha-mcp | grep -E "(TODO|FIXME|XXX|HACK)"

Output Quality Summary:

✨ Code Quality:
- Architecture fit: [assessment - service layer, context engineering]
- Breaking changes: ✅ None / ⚠️ Detected - [describe what's genuinely lost]
- Bot reviews: [check if Codex or CodeRabbit flagged anything critical]

Final Review Summary

Output to User

After completing all steps, present a short summary of what the PR does and the review findings, then ask: "Should I post this comment to the PR?"

Draft PR Comment

After completing the analysis, draft a comment for the PR following these guidelines:

Comment Length: The contributor should be able to read it in one pass: what works, what must change, and what happens next. A good-to-merge comment is shorter than a changes-needed one.

Style:

  • No emojis
  • Markdown formatting OK (bold, lists, code blocks)
  • Present inline in chat (not in a file)
  • Always ask user before posting

Structure for "Good to Merge":

[Positive opening line about the contribution]

[What works well - focus on functionality, tests, architecture]

[Any minor suggestions or notes - optional, technical only]

[Closing line about readiness to merge]

Note: Do NOT mention security assessment in comment unless issues were found. Security checks are internal.

Structure for "Changes Needed":

[Positive opening line acknowledging the work]

[Brief summary of the issue being solved]

**[Concern 1]:**
[Short explanation + suggestion - focus on: tests, functionality, architecture, breaking changes]

**[Concern 2]:** (if applicable)
[Short explanation + suggestion]

**[Concern 3]:** (if applicable)
[Short explanation + suggestion]

[Closing line about next steps]

Note: Raise security concerns with the user as soon as they are found, not in the final structured comment.

Illustrative example - Good to Merge (match the wording to the PR, not to this text):

Thanks for [feature/fix]. [One specific thing it gets right].

The implementation follows existing patterns and the [specific aspect] is well-designed. [Optional: Minor note about something noticed].

Ready to merge once CI passes.

Illustrative example - Changes Needed (match the wording to the PR, not to this text):

Thanks for tackling [problem]. [Metric/impact] shows this addresses a real need.

**Test coverage:**
Missing tests for the new [feature]. Please add a unit test for its logic, and an E2E test for a new tool or for its wiring or Home Assistant behaviour. Performance tests not required.

**[Second concern if applicable]:**
[Brief explanation and request]

Once [change 1] and [change 2] are addressed, this should be good to merge.

Important Notes

  • Security is checked, not publicized: Always check security (step 1), but only mention in comment if issues found
  • Be constructive: Contributors are donating their time - be welcoming
  • Focus on intent: Code quality can be iterated; intent misalignment is harder to fix
  • Consider contributor experience: Adjust expectations based on contribution history
  • The bots already reviewed code: Don't duplicate detailed code review
  • When in doubt: Err on the side of caution and request maintainer review

レビュー

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

コメント

ログインなしで書き込めます。使ってみた感想、質問、動かなかった環境などを気軽にどうぞ。

まだコメントはありません。最初のコメントを書いてみませんか。

送信するとすぐに公開されます。メールアドレスや電話番号などの個人情報は書かないでください。URL は 2 つまでです。

0 / 1000 文字

このフォームは reCAPTCHA で保護されており、Google のプライバシーポリシーと利用規約が適用されます。

同じリポジトリのスキル

bat-adhoc

無料概要あり

実際のAIエージェントからMCPツールを操作する受け入れテストを組み立て、実行結果や失敗内容を確認し、必要に応じてブランチ間の動作を比較するスキルです。

  • PRのMCPツール変更を検証したいとき
  • エージェント視点で回帰を調べたいとき
  • ClaudeやGeminiで一連の動作を試したいとき
homeassistant-ai/ha-mcp5,3522026年10月29日 更新

bat-story-eval

無料概要あり

MCPツールの変更前後を、既存と独自のストーリーで複数のエージェントから検証し、実行結果やツール選択、コストの差を比較するスキルです。

  • リリース版と変更中の動作を比較したいとき
  • 変更箇所に合うテストストーリーを選びたいとき
  • 未カバーの回帰シナリオを作りたいとき
homeassistant-ai/ha-mcp5,3522026年10月29日 更新

contributors-update

無料概要あり

READMEの貢献者一覧を確認し、更新以降にマージされたPRから未掲載の執筆者を探して、承認後に追加するスキルです。

  • PR執筆者の掲載漏れを探したいとき
  • 貢献者一覧の追加案を作りたいとき
  • READMEの貢献者欄を更新したいとき
homeassistant-ai/ha-mcp5,3522026年10月29日 更新

issue-analysis

無料概要あり

GitHub Issueに関連するコードを調べ、実装の選択肢や難易度、設計上の影響を整理して、ラベルと分析コメント案を作成します。

  • Issueの難易度を実装前に把握したいとき
  • 実装方針の選択肢を比較したいとき
  • Issueの分析コメント案を作成したいとき
homeassistant-ai/ha-mcp5,3522026年10月29日 更新

issue-to-pr-resolver

無料概要あり

GitHubのIssueを起点に、作業ブランチで実装とテストを行い、Draft PRの作成からCI失敗やレビューコメントの解消まで進めます。

  • GitHub Issueを実装からPRまで進めたいとき
  • IssueからDraft PRを作成したいとき
  • CI失敗やレビューコメントを解消したいとき
homeassistant-ai/ha-mcp5,3522026年10月29日 更新

my-pr-checker

無料概要あり

自分が作成したGitHub PRのCI、レビューコメント、未解決スレッドを確認し、指摘の修正から再チェックまで進めるスキルです。

  • 自分のPRのCI状況を確認したいとき
  • レビュー指摘を整理して修正したいとき
  • 修正後にレビュー項目を解決したいとき
homeassistant-ai/ha-mcp5,3522026年10月29日 更新

homeassistant-ai のスキルをすべて見る

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