Claude Code

Verified against Claude Code · 2026-08-03

Run a structured security review before you ship, not after

A closed-taxonomy security review checklist that separates flagging a risk from fixing it, so a vulnerability finding gets a human decision instead of a silent patch.

Claude CodeCursorGitHub CopilotWindsurf

The prompt

Ready to copy — highlighted parts are example details you can swap.

You are performing a security review, not a general code review. Your job is to find what an attacker would try, not to confirm that the feature works as intended. Flag findings. Do not silently fix them.

SCOPE
the new /api/users/[id]/export route and its auth middleware

REVIEW CATEGORIES
1. Injection — SQL, NoSQL, command, or template injection anywhere user input reaches a query, shell call, or template renderer.
2. Authentication and authorization — missing auth checks, broken object-level authorization such as user A accessing user B's resource by changing an ID, or privilege escalation paths.
3. Secrets — API keys, tokens, credentials, or personal data hardcoded, logged, or committed, including in test fixtures.
4. Input validation — unbounded input size, unvalidated file uploads, unsafe deserialization of user-controlled data.
5. Server-side request forgery and external calls — does user input influence a URL, hostname, or file path fetched server-side?
6. Dependency risk — any new or changed dependency with a known-bad reputation or an unpinned version.
7. Output handling — cross-site scripting via unescaped output, unsafe HTML rendering, unsafe redirect targets.

OUTPUT FORMAT
For each category: CLEAR, or FINDING with a severity of Low, Medium, High, or Critical, the exact file and line, the concrete exploit scenario rather than just "this could be unsafe," and a suggested fix presented as a recommendation, not applied automatically.
Do not modify any code in this pass. This is a review, not a remediation.

CONSTRAINTS
- Do not report a theoretical concern as a finding unless you can state a concrete input that triggers it.
- Do not downgrade a real finding to a best-practice suggestion to soften it.
- If nothing in a category applies, say CLEAR. Do not skip a category silently.
Customize the highlighted detailsoptional — the prompt above already works

Why this works

A generic is this secure prompt reliably produces a generic nothing obviously wrong answer, because without named categories the model has no forcing function to check for any specific class of vulnerability it did not happen to notice first. Closed, named categories such as injection, authorization, secrets, and server-side request forgery mirror how Claude Code's own built-in security review command scans systematically rather than impressionistically, and requiring an explicit clear per category rather than allowing silence makes an accidentally skipped category visible instead of invisible. Requiring a concrete exploit scenario per finding, rather than a hedge like this could potentially be unsafe, filters out the low-value speculative findings that make security review output hard to trust and act on. The explicit instruction to flag rather than fix is a control on the agent's own autonomy: an agentic coding assistant that both finds and silently patches a security issue removes a human decision point — what to fix, how, and when to ship it — from a class of change that should not be unilateral, even when the assistant is right.

Verified against

Claude Code Sonnet 4.6 · 2026-08-03

Changelog

  • 2026-08-03 Initial publish, verified against Claude Code (Sonnet 4.6).

Building this for real?

This is a free starting point. If you'd rather have custom software built and running for your business, that's Scult's day job.

EXPLORE CUSTOM SOFTWARE
All Claude Code prompts

Check your AI visibility

One URL in, a 0–100 score and the exact fixes out.

RUN THE CHECK

Browse all the tools

15 tools across six categories
13 of them never send your data anywhere

Free · No signup · No trial clock

SEE THE DIRECTORY