Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsCommunityBlog
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Authors
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

Review

ASecurity

Use before pushing, opening a PR, or when the user asks to review code, review a diff, or review a pull request. Also trigger on "/foreman:review" or "/review".

2 stars
0 votes
0 copies
0 views
Added 9/22/2026
developmentrustgosqlapisecurityperformance

Works with

api

Security Analysis

A100/100

Scanned 9/24/2026

Install to Claude Code

$npx -y skills add JustinK33/foreman --skill review --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Review?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Review
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/justink33-review/badge)](https://www.skillsdirectory.com/skills/justink33-review)

More formats (shields.io, HTML) on the badges page.

Download with Pro
Files
SKILL.md
---
name: review
description: Use before pushing, opening a PR, or when the user asks to review code, review a diff, or review a pull request. Also trigger on "/foreman:review" or "/review".
argument-hint: "[PR number, branch, or path]"
---

# Code Review

Review like the senior engineer whose approval actually means something, not the one who rubber-stamps to clear their queue.

## What to review

`$ARGUMENTS`, when that is not empty. A bare number is a PR number, so fetch it with `gh pr view` and
`gh pr diff`. Anything with a slash or a dot is a path. Otherwise treat it as a branch or a ref and diff
it against the default branch.

With no argument, review the uncommitted diff, and if the tree is clean, the most recent commit.

## Order of operations

Review in this order; each layer is cheaper to fix than the next, so catch it first:

1. **Correctness** - Does it do what it claims? Walk the logic against the stated requirement, not just against itself. Check edge cases: empty input, nulls, concurrent access, the boundary conditions.
2. **Tests** - Do tests exist for the change? Do they test behavior, not implementation? Would they actually fail if the logic were wrong (mentally break the code and check)?
3. **Security** - Any of: unvalidated input crossing a trust boundary, secrets or credentials in code, injection vectors (SQL, command, template), broken auth/authz checks, unsafe deserialization. If found, this blocks the review regardless of everything else.
4. **API/interface design** - Is the public surface (function signatures, endpoints, schemas) something you'd be comfortable maintaining in a year? Breaking changes called out explicitly?
5. **Readability & maintainability** - Naming, function length, whether a future reader (including future-you) can follow the intent without re-deriving it.
6. **Performance** - Only flag if there's a real cost: N+1 queries, unbounded loops over user-controlled input, obvious algorithmic complexity issues. Don't nitpick micro-optimizations with no measured impact.
7. **Style/nits** - Last, and lightest touch. If a linter/formatter should catch it, say so once and move on; don't relitigate style in prose.

## Cuts that are never acceptable

A change can be small and still be wrong to accept. Block on these regardless of how tidy the diff looks:

- Input validation dropped at a trust boundary (anything from a user, network, or file).
- No error handling on an operation that can fail: I/O, network calls, parsing.
- A security check thinned out or removed: auth, authorization, escaping, sanitization.
- Accessibility stripped from user-facing code: semantic elements, labels, keyboard paths.

Brevity is a property of the solution, not a license to skip the parts that prevent data loss.
If a diff got shorter by deleting one of the above, that is not simplification.

## How to write the actual comments

- Lead with what's good, briefly, then get specific. No padding.
- Every comment on a real issue includes: what's wrong, why it matters, and a concrete suggested fix, not just "this could be better."
- Separate **blocking** issues from **suggestions** explicitly. Reviewers who don't do this either block on nits or let real issues slide because everything reads the same.
- Ask questions when intent is unclear rather than assuming malice or incompetence: "What happens if `items` is empty here?" beats "This will break."
- Reference specific lines/files, not vague summaries.

## For a full PR (not just a diff)

Also check: does the PR do one thing (or is it three PRs wearing a trenchcoat)? Does the description explain *why*, not just *what*? Is the diff reviewable in one sitting, or should it be split?

## Self-review mode

When the user wants to review their own code before pushing: be at least as strict as you'd be reviewing someone else's. The most common failure mode here is going easy because there's no external reviewer to disappoint.

## Output format

A short summary verdict first (ship it / ship with fixes / blocking issues), then the issues grouped by severity, each with file:line, the problem, and the fix. Skip the sections above that had nothing to flag, don't force filler into them.

Attribution

JustinK33JustinK33
View sourceMore from JustinK33 →
SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Related Skills

Browser Extension Developer

Use this skill when developing or maintaining browser extension code in the `browser/` directory, including Chrome/Firefox/Edge compatibility, content scripts, background scripts, or i18n updates.

284722 votes

Seo Optimizer

SEO optimization with keyword analysis, readability assessment, technical validation, content quality. Use for search rankings, blog posts, content audits, or encountering keyword density, readability scores, meta tags, schema markup errors.

2192 votes

Google Official Seo Guide

Official Google SEO guide covering search optimization, best practices, Search Console, crawling, indexing, and improving website search visibility based on official Google documentation

1862 votes

Tanstack Start

Build a full-stack TanStack Start app on Cloudflare Workers from scratch — SSR, file-based routing, server functions, D1+Drizzle, better-auth, Tailwind v4+shadcn/ui. Use whenever the user mentions TanStack Start, asks to scaffold a full-stack Cloudflare app with SSR, wants an SSR dashboard, or asks for a React 19 + Cloudflare Workers app with file-based routing and server functions — even if they don't name TanStack Start specifically. No template repo — Claude generates every file fresh per ...

9881 votes

Pentest

PTES-aligned adversarial security audit for backend, frontend, and mobile applications. Produces a CVSS-scored Hacker Report with verified PoCs and phased remediation.

5491 votes
View all in development →