claude-pr-review
Installation
SKILL.md
Claude PR Review
The Hexsis method for automated Claude pull-request review. The pull request is untrusted input steering an agent that holds a model token and a GitHub token, so the setup is review-only: Claude reads, judges, and posts one formal review, and can do nothing else. Every control in the templates closes a path that has failed in practice. Keep them all unless the user decides otherwise with the trade-off in front of them.
What the setup does:
- Automatic review of ready, same-repository pull requests. A workflow step writes the diff as line-oriented files. Read-only
diff-reviewersub-agents read every source chunk in parallel, arules-reviewerchecks the change against the repository's rules, and a freshfinding-validatorconfirms each candidate finding. Claude then submits exactly one formal review on the head commit. @claudementions on pull requests from users with write access, answered inline, on public and private repositories. Mentions cannot submit a verdict.- Tracking comments. Each automatic review posts a
github-actionscomment that says Claude is reviewing, and a later job edits it to say the review finished, failed, was cancelled, or was skipped, with a link to the review job. A mention gets the action's ownclaude[bot]tracking comment. If a mention fails or is cancelled while that comment still says "working", agithub-actionsnote links the failed job. - An informational job summary of turns, denied tool calls, sub-agents, the diff lines and files read, and the review the run left. It never fails the job or dismisses a review: coverage is reported, not enforced, and the verdict is advisory.
Files
| File | Becomes | Role |
|---|---|---|
templates/claude-review.yml |
.github/workflows/claude-review.yml |
The review workflow |
templates/claude-review-gate.mjs |
scripts/claude-review-gate.mjs |
Builds the diff manifest and the job summary |
templates/check-workflow-policy.mjs |
scripts/check-workflow-policy.mjs |
Enforces the secret and permission boundary in CI |
templates/*.test.mjs |
scripts/*.test.mjs |
node:test suites for both scripts |