pr-reviewer
Skill7 starsChanged 5 months agoMITView on GitHub
General-purpose PR review skill. Detects languages in the diff, reads the Review Priorities section from each relevant language skill, and runs a unified review with shared quality rules, risk-tiering, and workflow. 1. Detect languages from changed file extensions in the diff. 2. Read language priorities. For each detected language, locate the corresponding skill in the same skills directory and read its ### Review Priorities section. Skills live at <lang>-developer/SKILL.md alongside this file: - .go → go-developer/SKILL.md - .py → python-developer/SKILL.md…
22 other projects use a version of this.
Adopted by
Most recently taken up by
- idavidov13/agentic-playwrighttheir own version, first seen Nov 8, 2026
- getpapi/papitheir own version, first seen Nov 1, 2026
- kcayme/k-agentstheir own version, first seen Nov 1, 2026
- odykyi/gh-skillstheir own version, first seen Oct 25, 2026
- archiforge/agent-crafttheir own version, first seen Oct 20, 2026
- jpantsjoha/ai-native-developer-experiencetheir own version, first seen Oct 16, 2026
Other versions22 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 22
- pyuvm/pyuvm★ 574same name
- Fu-Jie/awesome-openwebui★ 326same name
- Fu-Jie/openwebui-extensions★ 326same name
- idavidov13/agentic-playwright★ 268same name
- proflead/codex-skills-library★ 153same name
- h0tp-ftw/ankimon★ 83same name
- glincker/claude-code-marketplace★ 37same name
- jpantsjoha/ai-native-developer-experience★ 13same name
- getpapi/papi★ 11same name
- tstapler/dotfiles★ 8same name
12 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository2 other files it gives its agents.
- go-developerSkill
- python-developerSkill
The file
We split this skill into the rules it gives an agent
10 rules. 0 are common, 7 are distinctive, and 3 are very specific to this project.
0
Common
Most of the 22 edited versions we read keep these.
7
Distinctive
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 37
When the user adds a new language skill (<lang>-developer/SKILL.md) that contains a ### Review Priorities section, this skill picks it up …
- Distinctive: line 71
Findings are sensor data, not verdicts: Never imply a change is safe to merge because the review is clean — surface what you checked and …
- Distinctive: line 126
When asked to review a PR (by number, URL, or branch name):
- Very specific: line 136
Read project config files (e.g.
- Very specific: line 137
Read any local overrides (.cursor/rules/, AGENTS.md, CLAUDE.md)
- Distinctive: line 151
Do NOT post to GitHub until the user explicitly approves
- Distinctive: line 152
If there are no findings worth flagging, say so — a clean review is a valid outcome
- Distinctive: line 157
Use a single review submission (not individual comments) so the author gets one notification, not N
- Distinctive: line 171
When running without a human in the loop (CI, GitHub Actions, bots):
- Distinctive: line 172
Scope: Priority 1 and 2 only: Do not comment on P3 issues.
“Common” is measured: kept by at least 6 in 10 of the 22 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
PR Reviewer
General-purpose PR review skill. Detects languages in the diff, reads the Review Priorities section from each relevant language skill, and runs a unified review with shared quality rules, risk-tiering, and workflow.
How It Works
- Detect languages from changed file extensions in the diff.
- Read language priorities. For each detected language, locate the
corresponding skill in the same skills directory and read its
### Review Prioritiessection. Skills live at<lang>-developer/SKILL.mdalongside this file:.go→go-developer/SKILL.md.py→python-developer/SKILL.md- Other extensions → apply shared P1 security/correctness checks only
- Apply risk tiering to each changed file (see below).
- Run review using the combined language priorities + shared rules below.
- Follow the workflow for presenting and posting findings.
When the user adds a new language skill (<lang>-developer/SKILL.md) that
contains a ### Review Priorities section, this skill picks it up automatically
— no changes needed here.
Risk Tiering by Blast Radius
Classify each changed file by consequence before reviewing. Review depth scales with blast radius, not diff size.
| Tier | Examples | Review depth |
| Critical | auth, payments, crypto, data-deletion, DB migrations, anything handling untrusted input or PII | Full rigor — apply all priority levels, escalate borderline findings up one level |
| Standard | business logic, APIs, service layers | Normal priority rules |
| Low | config, docs, generated code, test-only changes | P1 correctness/security only — do not nitpick |
Review Quality Rules
Apply these before writing any comment:
- Only comment when confident. Uncertainty = silence. A false positive wastes more time than a missed suggestion.
- Signal over noise. Two critical findings beat fifteen mixed-confidence suggestions. Fewer, higher-quality comments.
- Default scope: Priority 1 and 2 only. P3 only when repository overrides explicitly request it.
- Never comment on pure style preferences the project's linter does not flag. If the linter passes, the style is acceptable.
- Respect the codebase's current state. Known migrations, intentional tech debt, and phased-out legacy patterns are not findings.
- Use domain context. A missing timeout in a payment service is critical; the same in a migration script may not be. Weigh findings against what the code actually does.
- Honor review behavior overrides. Max comment count, confidence threshold, excluded categories — follow them strictly.
- Findings are sensor data, not verdicts. Never imply a change is safe to merge because the review is clean — surface what you checked and what you could not. Borrowed confidence (a confident automated approval with no human understanding behind it) is itself a risk. You may be one of several reviewers on this PR; a clean result covers only the priorities in this skill, not the PR as a whole.
- Stay in your lane. Focus on the priorities defined here (language correctness, security, resource safety). Don't expand into generic coverage another reviewer is better positioned to provide — independent, specialized signal is more valuable than correlated overlap.
Shared Priority Levels
These apply across all languages. Language-specific items (goroutine leaks,
errors.Is for Go; mutable defaults, bare except for Python; etc.) are
loaded from each language skill's ### Review Priorities section.
Priority 1 - Critical (Must Fix):
- Security vulnerabilities (injection, hardcoded secrets, path traversal, unsafe eval, untrusted input reaching dangerous sinks). Includes prompt injection — untrusted/user-controlled text flowing into an LLM call without safeguards. This risk is latent (the dangerous data arrives at runtime, not in the diff), so scrutinize any new code path that pipes external input into a model prompt.
- Newly suppressed security-linter checks —
//nolint gosec,# noqa S..., or equivalent suppressions added in this diff; treat the suppressed warning as an active finding. Pre-existing suppressions are out of scope. - Suspicious test changes — assertions weakened or rewritten to match new (possibly broken) behavior, tests deleted or skipped, coverage of the changed code path removed. When a diff changes both code and tests, verify the tests still assert correct behavior, not just current behavior.
- Resource leaks (unclosed handles, missing cleanup, goroutine/task leaks)
Priority 2 - Important (Should Fix):
- Error handling gaps (silent failures, overly broad catches, missing context)
- Testing gaps (missing tests for changed behavior, no mocking of external deps)
Priority 3 - Nice to Have (Consider):
- Modern language adoption (idiomatic rewrites, better stdlib alternatives)
- Documentation (missing or incomplete docstrings / godoc)
- Performance (unnecessary allocations, repeated expensive calls). Escalate to P2 when concrete: hot-path allocations, O(n²) over large inputs, blocking sync I/O in async code.
- Reinvention — new code that reimplements an existing stdlib or internal helper instead of reusing it. Escalate to P2 if the reimplemented helper handles security-sensitive logic.
- Generic safety gate weakening — unrelated
//nolint,# noqa, or# type: ignorewithout justification, skipped non-critical tests, relaxed coverage thresholds, loosened linter or type-checker config.
PR Review Workflow
When asked to review a PR (by number, URL, or branch name):
Step 1: Gather context
- Fetch the PR description, metadata, and diff using
gh pr viewandgh pr diff - Fast-fail screening: a sprawling diff, mass test rewrites, or a vague/missing intent statement are themselves findings. Flag "PR too large to review confidently — recommend splitting" rather than rubber-stamping.
- Detect languages from changed file extensions; read the
### Review Prioritiessection from each relevant language skill - Read project config files (e.g.
go.mod,.golangci.yml,pyproject.toml) - Read any local overrides (
.cursor/rules/,AGENTS.md,CLAUDE.md) - Fetch existing review comments (
gh pr view --comments) and skip findings already raised by another reviewer or the author — don't restate them - Apply risk tiering to classify each changed file
Step 2: Review
- Apply the review quality rules and priority levels above plus any language-specific priorities loaded in Step 1
- Assess changes against the PR's stated intention — flag deviations from what the PR says it does, not just generic code quality
- Ignore files excluded by local overrides (e.g. frozen directories)
Step 3: Present findings
- Show findings grouped by priority, with file paths and line numbers
- Do NOT post to GitHub until the user explicitly approves
- If there are no findings worth flagging, say so — a clean review is a valid outcome
Step 4: Post (only when approved)
- Post each finding as a separate inline review comment on the specific line
- Use a single review submission (not individual comments) so the author gets one notification, not N
- Submit as a neutral
COMMENTreview, notREQUEST_CHANGES. The user decides the disposition via follow-up commands below.
Follow-up commands
These work without repeating the full context:
- "re-review" — fetch latest changes, review only new/modified hunks, and present findings
- "approve" — approve the PR with a constructive comment
- "request changes" — submit the review requesting changes with a summary of outstanding issues
Autonomous mode
When running without a human in the loop (CI, GitHub Actions, bots):
- Scope: Priority 1 and 2 only. Do not comment on P3 issues.
- Maximum 5 review comments per PR. Post the 5 most critical; note the count of remaining issues in the review summary.
- Post directly — skip Step 3. There is no user to approve.
- Submit as
COMMENT, neverREQUEST_CHANGESorAPPROVE. - If no P1 issues are found, do not post any review. Silence means approval from the autonomous reviewer.
- On new commits to the same PR, re-review only the changed hunks.
Repository overrides can widen or narrow these defaults (e.g. include P2, raise or lower the max comment count).
Note: Posting to GitHub requires
ghCLI to be installed and authenticated.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

