thorough-pr-review
Skill3 starsChanged 3 months agoMITView on GitHub
Use when the user asks to review a pull request, evaluate diff-level merge-readiness, or audit the current branch before opening a PR. Triggers include "review this PR", "review my branch", "code review", or a GitHub PR URL paired with review intent. For pure security reviews, prefer `security-review` instead.
In this repository9 other files it gives its agents.
- AGENTS.mdAGENTS.md
- agentfolio-operatorSkill
- branch-portSkill
- code-commentsSkill
- code-namingSkill
- cognitive-refactorSkill
- memory-palaceSkill
- natural-copy-editingSkill
- testing-business-rulesSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
15 rules. About 0 are common, 10 are distinctive, and 5 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈10
Distinctive · estimate
This author's own choices. Worth a look.
5
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 18
Mid-conflict PRs: If the branch is being rebased or has unresolved conflicts, wait.
- Distinctive: line 19
Re-reviewing unchanged code: If the PR has not changed since a prior review, say so and stop.
- Very specific: line 20
Pure security audit: Use security-review instead.
- Distinctive: line 26
If the change is small, correct, and follows convention, say so and stop.
- Distinctive: line 27
Do not pad the output with nitpicks.
- Distinctive: line 28
When uncertain, label the finding as a hypothesis.
- Very specific: line 34
If given a PR URL or number, extract the number from /pull/<N> and run:
- Distinctive: line 43
If no PR is given, review the local branch:
- Distinctive: line 54
Read the PR title and body.
- Distinctive: line 68
CI signal: If checks fail, report the failure.
- Very specific: line 69
Tests: Do new paths have coverage?
- Distinctive: line 80
Do not inflate severity. Style preference is not High.
- Very specific: line 84
Use the templates in references/output-format.md:
- Distinctive: line 96
If the user asks you to post the review on the PR, ask before any write.
- Very specific: line 98
When approved, post one pending review, not per-line pulls/comments calls.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Thorough PR Review
Review a code change for correctness, reliability, and scope alignment. Back each finding with evidence.
When NOT to use
- Tiny changes. A one-line typo or doc fix does not need the full template. One sentence is the right answer.
- Mid-conflict PRs. If the branch is being rebased or has unresolved conflicts, wait.
- Re-reviewing unchanged code. If the PR has not changed since a prior review, say so and stop.
- Pure security audit. Use
security-reviewinstead.
Anti-hallucination rule
Review framing biases agents toward finding problems. Resist it.
- If the change is small, correct, and follows convention, say so and stop. A three-line PR deserves a three-line review.
- Do not pad the output with nitpicks. Each Low item must be useful.
- When uncertain, label the finding as a hypothesis. Say what would confirm or refute it.
Workflow
1. Determine scope
If given a PR URL or number, extract the number from /pull/<N> and run:
gh pr view <number-or-url> --json title,body,url,number,files,commits,baseRefName,headRefName,reviews,comments
gh pr checks <number-or-url>reviews and comments show whether someone already reviewed. Do not repeat their findings. checks shows what CI already caught.
If no PR is given, review the local branch:
git status
git branch --show-current
git log --oneline <base-branch>..HEAD
git diff <base-branch>...HEAD2. Gather intent
Read the PR title and body. If a linked issue or ticket is mentioned, fetch it. You review against stated intent. If intent is missing or unclear, ask the user before you continue.
3. Read in context
For each changed file, read the modified sections with their surroundings: adjacent functions, callers, tests, configs. A line can look wrong in isolation and be correct in context, or the reverse.
4. Evaluate
Walk the change through the heuristics in references/heuristics.md. Each heuristic is a concrete check ("flag a new abstraction with only one caller"), not a principle ("apply SRP"). Apply the checks that fit the change type. Do not scan all ten on a 20-line PR.
Also verify:
- Alignment. Does the implementation match the PR description?
- Scope. Does it do more than claimed (scope creep) or less (missing work)?
- CI signal. If checks fail, report the failure. Do not re-derive it.
- Tests. Do new paths have coverage? Are failing tests marked
@skiporxfailto hide problems?
5. Classify findings
| Severity | Meaning | Examples |
| Critical | Must fix before merge | Data loss, security hole, broken core flow, unsafe migration |
| High | Strongly recommended before merge | Real logic bug, missing error handling on a live path, test gap on risky behavior |
| Medium | Address for code health | Brittle design, notable readability or perf issue, meaningful coverage gap |
| Low | Nits, polish, suggestions | Naming, minor consistency, doc clarity |
Do not inflate severity. Style preference is not High. Uncertainty is not Critical.
6. Write output
Use the templates in references/output-format.md:
- Short form for Low severity: one line per issue with
file:line. - Long form for Critical and High: issue, why it matters, suggested fix.
- Medium: choose the form that fits the depth needed.
Note what was done well. This is signal, not politeness. The author learns which parts to leave alone in revision.
End with one recommendation: Approve, Request changes, or Needs discussion. If not approving, list the top 1 to 3 blockers.
7. Post inline comments (halt)
If the user asks you to post the review on the PR, ask before any write. Posting notifies the author and is hard to undo.
When approved, post one pending review, not per-line pulls/comments calls. Shape and safety rules are in references/posting-comments.md.
References
references/heuristics.md: concrete, checkable heuristics by category.references/output-format.md: short-form and long-form templates.references/posting-comments.md: safeghAPI shape for posting the review.
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.

