mit einem Klick
mit einem Klick
Check a PR for review comments, evaluate them, and address valid ones
Create a GitHub PR review with inline comments, preview before posting
Review changes or PRs against project guidelines
Execute an implementation plan, making changes and committing properly
Create an implementation plan from PR review feedback
Resolve a GitHub issue end-to-end using sequential subagents
| name | post-review |
| description | Post a written review file to GitHub as a proper PR review |
| argument-hint | <PR number or review file path> [additional instructions] |
| allowed-tools | Read, Glob, Grep, Bash, mcp__github__get_pull_request, mcp__github__get_pull_request_files, mcp__github__create_pull_request_review |
Post a previously written review file to GitHub as a proper PR review with inline comments. Supports both /pr-review and /code-review output formats.
/post-review <target> [additional instructions]
<target> — required, one of:
92, #92) — finds the most recent review file for that PR.ai/pr-92/review-pr92-980cb92.md)Extract the target from $ARGUMENTS:
# prefix): treat as PR number/ or ends in .md: treat as a file pathIf target is a PR number:
.ai/pr-<number>/pr-review-*.md (pr-review format with frontmatter).ai/pr-<number>/review-pr<number>-*.md (code-review format).ai/issue-*-*/pr-review-*.md matching the PR number in frontmatter.ai/issue-*-*/review-pr<number>-*.mdIf target is a file path:
The skill handles two review file formats:
Format A: /pr-review output (has YAML frontmatter)
---
pr: <number>
event: <APPROVE|COMMENT|REQUEST_CHANGES>
---
<summary text>
**Must Fix**
- ...
**Should Fix**
- ...
**Nit**
- ...
## Inline Comments
### `<file>:<line>`
<comment body>
Parse:
pr and event from frontmatter--- and the ## Inline Comments heading (or end of file if no inline comments section)### \:`block under## Inline Comments`Format B: /code-review output (no frontmatter)
# Code Review: PR #<number> - <title>
## Summary
- PR: #<number> - <title>
...
## Checklist Results
### Passed
- ...
### Must Fix
- [ ] **<title>** - `<file>:<line>` - <description>
### Should Fix
- [ ] **<title>** - `<file>:<line>` - <description>
### Nits
- ...
## Recommendations
1. ...
Parse:
# Code Review: PR #<number> heading or - PR: #<number> in SummaryREQUEST_CHANGES if any "Must Fix" items existCOMMENT if "Should Fix" items exist but no "Must Fix"APPROVE if only "Passed" and optionally "Nit" itemsfile:lineFetch the PR diff to map file:line references to actual diff positions:
gh pr diff <number>
Also fetch the PR metadata:
gh pr view <number> --json headRefOid,number,baseRefName --jq '{headRefOid: .headRefOid, number: .number, baseRefName: .baseRefName}'
For each inline comment, verify the referenced line is visible in the diff. If a line is not in the diff, move that finding into the review body summary instead.
If the user provided additional instructions, apply them now. Common patterns:
COMMENT regardless of findingsAPPROVEUse judgement to interpret the instructions. The goal is to give the user control over exactly what gets posted.
Review body (the body parameter):
For Format A (pr-review): use the parsed review body text directly (between frontmatter and inline comments), after applying any filtering from step 5.
For Format B (code-review): compose a concise review body:
For both formats: end the body with a blank line, then the attribution line:
🤖 Review generated with [Claude Code](https://claude.ai/claude-code)
Inline comments (the comments array):
For each inline comment that maps to a valid diff line:
path: the file path (relative to repo root)line: the line number in the new version of the filebody: the comment textImportant: Only include inline comments for lines that appear in the diff. The GitHub API will reject comments on lines not visible in the diff.
Before posting, show the user a preview:
**PR #<number> — Review Preview**
Event: <APPROVE|COMMENT|REQUEST_CHANGES>
Body:
<first 5 lines of body>...
Inline comments: <count>
<list each as "- `file:line` — first 50 chars of comment...">
Then ask: "Post this review?"
Wait for the user's confirmation before proceeding. If they say no or want changes, adjust accordingly.
Determine repo owner and name:
gh repo view --json owner,name --jq '"\(.owner.login) \(.name)"'
Post using mcp__github__create_pull_request_review with:
owner: repo ownerrepo: repo namepull_number: PR numberbody: composed review bodyevent: determined event typecommit_id: the head SHA of the PRcomments: array of inline comments (may be empty)After posting:
https://github.com/<owner>/<repo>/pull/<number>