agentleFS
moses607moses607/skillforge/skills/pr-review-guardian/SKILL.md

pr-review-guardian

Skill0 starsChanged 4 months agoMITView on GitHub

Review a pull request or code diff for correctness, security, and performance, returning a structured verdict with severity-tagged findings. Use this whenever the user shares a diff, PR link, or code change and asks for review, feedback, "is this safe to merge", "look this over before I ship", or mentions code review, even if they don't say the words "pull request".

The file

We split this skill into the rules it gives an agent

5 rules. About 0 are common, 5 are distinctive, and 0 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈5

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 0

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    ALWAYS use this exact structure:

    line 48
  2. Distinctive:

    If a section is empty, write "None." Do not omit sections — an empty Blockers section is itself information.

    line 71
  3. Distinctive:

    Every BLOCKER/MAJOR must include *why* it fails, not just *what* to change.

    line 76
  4. Distinctive:

    If you can't tell whether something is a bug without running it, say so explicitly rather than guessing.

    line 77
  5. Distinctive:

    Do not comment on formatting a linter would catch — assume CI handles it.

    line 78

≈ “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.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

PR Review Guardian

Review code changes the way a careful senior engineer does: find what actually matters, rank it, and give a clear merge verdict. Do not rewrite the author's code unless asked — the job is judgment, not authorship.

Workflow

  1. Establish intent. State in one line what the change is trying to do. If the diff has no description and intent is unclear, ask before reviewing — reviewing without intent produces noise.
  2. Pass over each hunk against the checklist below. Note file + line for every finding.
  3. Tag each finding by severity (see scale). Never inflate severity to seem thorough.
  4. Emit the verdict block using the exact template.

Severity scale

  • BLOCKER — will break prod, corrupt data, or expose a vulnerability. Merge must not happen.
  • MAJOR — real bug, missing error path, or perf cliff under realistic load. Fix before merge.
  • MINOR — correctness-adjacent: unclear naming, missing test, brittle assumption. Fix soon.
  • NIT — style/taste. Non-blocking. Cap nits at 5; beyond that you're bikeshedding.

Review checklist

Correctness

  • Off-by-one, boundary conditions, empty-collection and null/undefined paths.
  • Error handling: are failures caught, logged, and surfaced — or swallowed?
  • Concurrency: shared mutable state, race conditions, missing locks/atomicity.
  • Does the change do what its description claims, and only that?

Security

  • Injection (SQL/command/template), unsanitised user input reaching a sink.
  • Secrets in code/logs; auth/authorization checks on new endpoints.
  • Unsafe deserialization, path traversal, SSRF on new fetch calls.

Performance

  • N+1 queries, unbounded loops over network calls, missing pagination.
  • Allocation in hot paths, sync I/O on a request thread.

Maintainability

  • New abstraction used exactly once (premature).
  • Dead code, commented-out blocks, TODOs without owner.
  • Tests: does the change add tests for the new behavior and its failure modes?

Output template

ALWAYS use this exact structure:

## Review: <one-line summary of the change>

**Verdict:** APPROVE / APPROVE-WITH-NITS / REQUEST-CHANGES / BLOCK

### Blockers
- [file:line] <finding> — <why it breaks> — <suggested fix>

### Major
- [file:line] ...

### Minor
- [file:line] ...

### Nits
- [file:line] ...

### What's good
- <1-2 genuine positives — reviewers who only criticize get ignored>

If a section is empty, write "None." Do not omit sections — an empty Blockers section is itself information.

Rules

  • One finding per line. Group by severity, not by file.
  • Every BLOCKER/MAJOR must include why it fails, not just what to change.
  • If you can't tell whether something is a bug without running it, say so explicitly rather than guessing.
  • Do not comment on formatting a linter would catch — assume CI handles it.

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.