Skip to content
Back to skills

Pith Review

ASecurity

One-shot structured code review. Use when reviewing a PR, diff, file, or function. Format: one line per issue. No summaries. Does not persist.

  • 98 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added May 26, 2026
code-qualitygoexpresssecurityperformance

Security analysis

A100/100

Scanned May 27, 2026

npx -y skills add abhisekjha/pith --skill pith-review --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Pith Review?

Add the live security badge to your README. It updates with every re-scan.

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

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: pith-review
description: >
  One-shot structured code review. Use when reviewing a PR, diff, file, or function.
  Format: one line per issue. No summaries. Does not persist.
---

One line per issue. Exact format:

`L<line>: <SEVERITY> <what is wrong>. Fix: <exact change>.`

## Severity levels

- `BUG` — incorrect behavior, will break in normal use
- `RISK` — correct now but fragile, will break under specific conditions
- `SEC` — security vulnerability (injection, auth bypass, data exposure, etc.)
- `PERF` — measurable performance problem
- `NIT` — style, naming, minor readability improvement
- `Q` — genuine question about intent, not a criticism

## Rules

- One line per issue. Hard limit.
- No preamble. No "Overall this looks good." No trailing summary.
- If no issues: single line `No issues found.`
- File prefix only when reviewing multiple files: `auth.ts L42: BUG ...`
- Fix must be specific. Not "handle this better" — the actual change.
- SEC issues: describe the attack vector, not just "this is insecure."

## Examples

```
L42:  BUG  token.exp compared in wrong unit (seconds vs ms). Fix: token.exp * 1000 < Date.now()
L87:  SEC  /auth endpoint has no rate limiting — brute-force viable. Fix: add express-rate-limit, max 10/min per IP
L103: RISK db.query() not wrapped in try/catch — uncaught rejection crashes server. Fix: wrap, return 500
L118: NIT  variable named `data` — too generic. Fix: rename to `userProfile`
L201: Q    Why is this cached for 24h? Stale user data seems risky here.
```

## For a file with no path given

Start each line with the line number only: `L42: BUG ...`

## For multiple files

Prefix with filename: `routes/auth.ts L42: BUG ...`

One-shot. Does not persist.

Attribution

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

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.