pr-reviewlisted
Install: claude install-skill alunduil/alunduil-chezmoi
# PR review
The repo's sensors already assert what a machine can. This review is
the residue: whether the change is *right*, not whether it is clean.
Read the diff — the tree is context, not the subject. `/code-review`
hunts bugs and cleanups in the same diff; this is the judgment pass
beside it.
## Input
```bash
# REST reads — see ~/.claude/CLAUDE.md "GitHub API budget".
gh api repos/:owner/:repo/pulls/<N> \
--jq '{title, draft, body, base: .base.ref, user: .user.login}'
gh pr diff <N>
gh api repos/:owner/:repo/pulls/<N>/commits --jq '.[].commit.message'
```
No PR open yet → `git log --patch main..HEAD` reviews the same change.
## Discover
Find what the repo already enforces before reading a line of the diff.
```bash
ls .pre-commit-config.yaml .vale.ini Justfile justfile Makefile 2>/dev/null
ls .github/workflows/
cat CLAUDE.md CONTRIBUTING.md 2>/dev/null
gh api repos/:owner/:repo/commits/<head-sha>/check-runs \
--jq '.check_runs[] | select(.conclusion != "success") | {name, conclusion}'
```
Red CI is the finding. Report it and stop — restating a sensor's output
as review prose tells the author nothing new.
## Scope
What the discovered sensors assert draws the review's boundary, in both
directions:
- A sensor covers it → it drops out. `shellcheck` owns quoting, the
type checker owns annotations, `detect-private-key` owns anything
key-shaped.
- The repo lacks that sensor → it moves in. An unformatted repo needs a
human to notice the formatting.
## The bar