Issue 37 · 11 Oct 2026 · Medium · Free
Vibe-code Security Checker
The model shipped a feature in one shot. It runs. You still need someone to ask where the password is stored and who is allowed to delete the row.
A review prompt for vibe-coded diffs. It hunts secrets, missing auth, injection, and insecure defaults, then names the fix.
- Category
- Coding & Vibe Coding
- Runs in
- Cursor
- Claude
- ChatGPT
What you put in and what you get out
You put in
Save the prompt where you write code. In Cursor, add the prompt as a project rule or paste it at the start of a review chat. In Claude or ChatGPT, save it as a project instruction. The rubric JSON can sit beside it.
Agent
Vibe-code Security Checker
You get out
What it will not do. It will not hand you a working exploit. The sample key is fake. The output is the safer handler, not a payload.
Sample you can paste
Stack: Next.js route handler, TypeScript, Postgres via a query string.
Diff:
```ts
export async function DELETE(request: Request) {
const { id } = await request.json();
const key = "sk_live_51HabcExampleNotReal";
await db.query("delete from notes where id = " + id);
return Response.json({ ok: true, key });
}
```Share this agent
Vibe-code Security Checker — You put in Stack: Next.js route handler, TypeScript, Postgres via a query string.. You get out What it will not do. Free from One Agent a Day.
30-second demo
0:00
The diff that 'works'
A Next.js DELETE handler reads an id from JSON, concatenates it into SQL, and returns a live-looking secret key in the response.
How it works
Vibe-coding gets a feature on screen and leaves the boring failures in the diff: a key in the file, a query built with string concatenation, a delete route that trusts the body's userId, a price checked only in the browser.
This agent walks a fixed rubric and reports findings against the diff you paste. It is a review, not an attack tool. The prompt tells the model to describe the impact and show a safer version of *your* code. It refuses exploit steps, payloads, and proof-of-concept attacks.
Use it on the diff you are about to merge
Paste the prompt once as a standing instruction. Each review is then: stack in one line, diff in a fence, done. If you use Cursor, a project rule means you can say "review this diff with the security checker" and the rubric is already there.
The JSON file is the same rubric in an order a script can read later. The prompt stands alone if you only want to paste one thing.
A finding without a file and a quoted line is a feeling. The output format rejects those.
Use it
Step 1
Save the prompt where you write code
In Cursor, add the prompt as a project rule or paste it at the start of a review chat. In Claude or ChatGPT, save it as a project instruction. The rubric JSON can sit beside it.
Step 2
Paste a diff, not the whole repo
Include the files that changed and one line about the stack: framework, database, and whether the route is public. A 200-line diff reviews better than a zip file.
Step 3
Read findings before fixes
The agent lists issues first, with severity and the line that triggered them. It shows a safer version of your code. It does not write an exploit.
Step 4
Treat it as a first pass
This does not replace a human review, a dependency audit, or a pentest. It catches the class of mistake vibe-coding produces on a Tuesday night.
Prompt
vibe-code-security-checker.prompt.txt
You review AI-generated or hastily written code for security issues. You are a careful reviewer, not an attacker. You never provide exploit steps, payloads, proof-of-concept attacks, or instructions for breaking a system you were not given. You only inspect the code the user pasted.
INPUT
- One line on the stack: language, framework, datastore, and how a user authenticates, if they said.
- A diff or a file. If they paste a whole repo with no question, review the routes, queries, and auth checks first.
- If they did not include auth context, say what you had to assume.
RUBRIC, in this order
1. Secrets: keys, passwords, tokens, or connection strings in source, logs, or client responses.
2. Authorization: can a caller read or change someone else's data by changing an id? Is the user id taken from the client?
3. Injection: SQL, shell, HTML, path, or header values built by concatenation.
4. Browser trust: prices, roles, or feature flags decided only on the client.
5. SSRF and open fetches: user-controlled URLs requested by the server.
6. Auth defaults: missing rate limits on login or reset, cookies without sensible flags, debug routes left on.
7. LLM calls: untrusted text concatenated into a tool-using prompt, with no boundary between instructions and data.
RULES
- Quote the line you are talking about. No finding without evidence from the paste.
- Severity is only: high, medium, low.
- For each finding, say the impact in one sentence and show a safer version of their code. Do not show attack traffic.
- If the paste includes a live-looking secret, tell them to rotate it. Do not repeat the full secret in your answer; redact the middle.
- Do not claim a clean bill of health. End with what you could not see (dependencies, infra, data migrations).
- If the user asks for an exploit, refuse that part and continue the review.
OUTPUT
## Findings
A list. Each item: severity, title, quoted evidence, impact, safer code.
If there are none, write "No findings in the pasted code" and still complete the next section.
## Not visible from this diff
Bullets of what you could not check.
## Do these first
The high findings, in order, as actions. If there are no high findings, say so.Config
security-review.rubric.json
{
"version": 1,
"refuses": [
"exploit steps",
"payloads",
"proof of concept attacks"
],
"order": [
"secrets",
"authorization",
"injection",
"client-trusted decisions",
"server-side requests",
"auth defaults",
"prompt boundaries"
],
"severities": [
"high",
"medium",
"low"
],
"requiresEvidenceQuote": true
}
Related agents
Tomorrow's drop
Get the next agent in your inbox
One email when the drop goes up. No digest, no course. Unsubscribe whenever the provider lets you.
Pro and custom
€9/month when Pro opens
Early look at the next drop, a better archive, and the occasional agent that does not fit the public mix. The daily agent stays free. A custom build is €49–199. Nothing is charged from this form.
Join the Pro waitlist