A Claude Code skill that ensures consistent, professional GitHub pull request reviews using the gh CLI with pending reviews and code suggestions.
This skill teaches Claude to:
- Always use pending reviews to batch comments (even under time pressure)
- Create code suggestions using the ```suggestion syntax
- Choose the right event type (COMMENT, APPROVE, or REQUEST_CHANGES)
- Use correct
gh apisyntax with proper quoting and flags
Install directly from the marketplace using Claude Code:
# Add this marketplace
/plugin marketplace add aidankinzett/claude-git-pr-skill
# Install the plugin
/plugin install github-pr-review
# Verify installation
/plugin listFor team-wide installation, add to .claude/settings.json:
{
"extraKnownMarketplaces": [
{
"name": "github-pr-skills",
"source": {
"source": "github",
"repo": "aidankinzett/claude-git-pr-skill"
}
}
],
"plugins": {
"github-pr-review": {
"enabled": true
}
}
}Copy the skill directly to your skills directory:
# Personal (all projects)
cp -r github-pr-review/skills/github-pr-review ~/.claude/skills/
# Project-specific
cp -r github-pr-review/skills/github-pr-review .claude/skills/Once installed, Claude will automatically use this skill when you ask it to review pull requests. For example:
You: "Review PR #123 and suggest improvements"
Claude: *Uses github-pr-review skill to create pending review with batched comments*
Without this skill, Claude might:
- Post comments immediately without showing you first
- Skip pending reviews under time pressure
- Use incorrect
gh apisyntax - Choose the wrong event type
- Post comments you didn't approve
With this skill, Claude will:
- ✅ Show you exactly what will be posted before posting
- ✅ Ask for explicit approval using yes/no questions
- ✅ Always create pending reviews first
- ✅ Batch all comments together
- ✅ Use code suggestions with ```suggestion blocks
- ✅ Choose appropriate event types (APPROVE for minor suggestions, REQUEST_CHANGES for blocking issues)
- ✅ Use correct syntax (single quotes around
comments[][]parameters)
The skill enforces this workflow:
1. Draft → 2. Show & Approve → 3. Post
Claude analyzes the PR and prepares comments with code suggestions.
Claude shows you EXACTLY what will be posted:
- Each comment with file and line number
- Code suggestions formatted
- Event type (APPROVE/REQUEST_CHANGES/COMMENT)
- Overall review message
You review and approve (or request changes).
After your approval, Claude posts using this pattern:
# Step 1: Create PENDING review with all comments
gh api repos/:owner/:repo/pulls/123/reviews \
-X POST \
-f commit_id="<SHA>" \
-f 'comments[][path]=file.ts' \
-F 'comments[][line]=42' \
-f 'comments[][side]=RIGHT' \
-f 'comments[][body]=Comment with ```suggestion block...' \
--jq '{id, state}'
# Step 2: Submit when ready
gh api repos/:owner/:repo/pulls/123/reviews/<REVIEW_ID>/events \
-X POST \
-f event="APPROVE" \
-f body="Overall review message"- Consistent workflow across all PR reviews
- Professional batched comments instead of scattered notifications
- Correct syntax every time
- Better decision making on event types
- Time-tested pattern that works under pressure
- Claude Code
- GitHub CLI (
gh) installed and authenticated
MIT (or specify your license)
.claude-plugin/
marketplace.json # Plugin marketplace definition
github-pr-review/ # Plugin root
skills/ # Skills directory
github-pr-review/ # The skill
SKILL.md # Skill definition
CHANGELOG.md # Version history and changes
This skill follows Semantic Versioning:
- Current version: 1.0.0
- Version location:
.claude-plugin/marketplace.json - Change history: See CHANGELOG.md
When making changes:
- Update CHANGELOG.md - Add entries under
[Unreleased] - When releasing:
- Move unreleased items to new version section in CHANGELOG.md
- Update
versionin.claude-plugin/marketplace.json - Create git tag:
git tag -a v1.0.1 -m "Release v1.0.1" - Push with tags:
git push --tags
Version numbers:
- PATCH (1.0.1) - Bug fixes, typos, small improvements
- MINOR (1.1.0) - New features, backwards compatible
- MAJOR (2.0.0) - Breaking changes to skill behavior
This skill was created using Test-Driven Development for skills:
- Baseline tests identified violations (posting immediately under time pressure, no user approval)
- Skill was written to address those violations
- Tests verified the skill works correctly
- Edge cases were tested and handled
- Approval workflow added after user feedback
If you find edge cases where the skill doesn't work correctly, please open an issue!
To test changes locally:
# Symlink for testing
ln -s $(pwd)/github-pr-review/skills/github-pr-review ~/.claude/skills/github-pr-review
# Or use the plugin marketplace locally
/plugin marketplace add file://$(pwd)
/plugin install github-pr-review