Pre-launch security prompts for vibe-coded apps: Key Leak Pre-Check (free sample)
by PaperChaseWebb
From the pre-launch security prompts: find the three key leaks AI-built apps make most, before launch. An env file git was never told to skip, a secret behind a NEXT_PUBLIC_, VITE_ or EXPO_PUBLIC_ name, and live keys pasted into code, each printed masked. Then a drafted rotation plan, your yes recorded at your own terminal, and a launch gate that needs a clean rescan.
- Price
- Free
- Difficulty
- Beginner
- Setup
- 5 min
- Format
- .md file
key-leak-pre-check-free-sample.md · 38 KB · direct download, no signup
What you end up with
Every exposed key found, rotated and cleaned up before the first stranger opens your app.
What you get
- Env files git tracks, or that .gitignore does not cover, and a .gitignore with no .env rule
- Secrets behind a public prefix: NEXT_PUBLIC_, VITE_, EXPO_PUBLIC_, REACT_APP_, NUXT_PUBLIC_ or PUBLIC_
- Stripe, AWS, GitHub, Slack and AI provider keys in code, and private key blocks, always printed masked
- A drafted rotation plan with one row per finding, and a check that every row is closed and no key was pasted in
- Your yes at your own terminal, refused in agent sessions, and a launch gate that needs an unchanged plan and a clean rescan
- AGENTS.md, CLAUDE.md, a Grok Bot standing order, a Hermes skill and 25 tests
Who it is for
Anyone about to launch an app built with an AI coding tool who has never checked what their repo and browser bundle give away.
Works with
Solid chips: the agent is named in this listing's own tools list. Dashed chip: One Python script, a settings template, a made-up booking app before and after the fixes, and agent rules for each harness. Tested on Linux.
Tools needed
Cost to run: Free. Python is free.
Time to result: About five minutes
How it works
Run the example
Unpack the file and, inside example/, run python3 ../keycheck.py scan app findings.json.
Expected: Six findings, including a service key behind NEXT_PUBLIC_ and a live Stripe key in checkout.js, all masked.
Scan your app
Copy keycheck.py and templates/settings.json into your app folder, put your name in settings.json and run python3 keycheck.py scan . drafts/findings.json.
Expected: Every finding with a file and line.
Rotate, then clean up
Run plan to draft drafts/rotation.md. Make new keys in each provider's dashboard and turn off the old ones; your agent proposes the code fixes as diffs. Fill in each Done line yourself.
Expected: planchk passes.
Approve and launch
Run python3 keycheck.py approve settings.json drafts/rotation.md drafts/findings.json and type rotated, then run gate before you launch.
Expected: gate says GO only with an unchanged plan and a clean rescan.
Sample prompts, free to use
Follow AGENTS.md. Run keycheck.py scan on this folder, then plan to drafts/rotation.md. For each finding, tell me which dashboard to rotate the key in and propose the code fix as a diff. Never print a full key. Show me the plan and the diffs, then stop. Never rotate a key, approve the plan, commit or deploy.
The script and the agent files are in the file.
Free preview of the file
# Key Leak Pre-Check **Most leaked keys in AI-built apps are not clever hacks. They are a .env file git was never told to skip, a service key behind a NEXT_PUBLIC_ name, or a live Stripe key pasted into a file to get checkout working. This free sample finds those three in your source before launch, drafts the rotation list, and holds launch until you confirm every key is rotated.** Version 1.0, 2026-11-04. By PaperChaseWebb Inc. Free sample of Pre-launch security prompts for vibe-coded apps ($19). Works with Grok Bot, Claude Code, Codex and Hermes, or by hand. Python 3.8 or newer, no installs. Any stack: Next.js, Vite, Expo, Create React App, SvelteKit, Python and more. ## What you get out of it - Four read-only checks on your app folder: - env files git tracks (in a git repo), or that .gitignore does not cover - secrets behind a public prefix: NEXT_PUBLIC_, VITE_, EXPO_PUBLIC_, REACT_APP_, NUXT_PUBLIC_ or PUBLIC_ on a name that says SECRET, SERVICE_ROLE, PRIVATE or PASSWORD - secret-shaped strings in code: Stripe, AWS, GitHub, Slack and AI provider keys, and private key blocks - a .gitignore with no rule for .env or .env.local - Every secret printed masked: the first seven characters and the length, never the key. - A drafted rotation plan, one row per finding, with the fix in plain words. - A plan check: every finding has a row, every Done line is filled in, and no key was pasted into the plan. - Your yes, recorded at your own terminal, and a launch gate that sa
Test record
- Date
- Nov 4, 2026
- What was run
- tests/test_keycheck.py (25 tests) unpacked from the sample file and run fresh on Linux, Python 3.8, 3.9, 3.11, 3.12 and 3.13; scan, plan, planchk, approve and gate on the made-up example.
- Result
- 25 passed, 0 failed on all five versions; the example app fails six ways with masked keys and the fixed app scans clean; a tracked env file is caught in a git repo; placeholders in .env.example pass; the plan check catches missing rows, open rows and a pasted key; the yes is refused in agent sessions, without a terminal, for the wrong name, without the typed word and for a plan with open rows; an edit after the yes or a new leak makes the gate say NO-GO.
- Not run
- macOS or Windows. A real production app. A live Grok Bot, Claude Code, Codex or Hermes session.
Copied from this item's dated test notes. What was not run stays in.
Worth knowing
- The sample reads source files. Decoding keys inside a built bundle, the row level security test that logs in as a stranger, storage buckets, webhooks and the 14 prompts are in the full pack.
- Pattern checks can miss a key with an unusual shape and can flag a test string. Deleting a key from code does not remove it from git history; rotating it does.
- On 2026-11-04: 25 tests passed on Python 3.8, 3.9, 3.11, 3.12 and 3.13 on Linux, run from the files unpacked out of the sample. Agent rules guide; they were not loaded inside each harness for this release.
Questions
Does it send my keys anywhere?
No. It reads your source folder on your own machine, prints every secret masked and writes two local files. It never logs in, calls a provider or rotates a key.
Can my agent approve the plan?
No. The yes is refused inside an agent session, without a terminal, for a plan with open rows and for anyone but the owner in settings.json.
What is in the full pack?
14 prompts for keys, row level security, buckets, webhooks, model keys and headers, a read-only rls_check.sql that logs in as the public key and as a second user, and bundle_scan.py for your production build. $19.
Details
Version 1.0 · Updated Nov 4, 2026 · Markdown version of this page
License: Personal and commercial use. Download terms
Related

Pre-launch security prompts for vibe-coded apps: Supabase RLS, leaked keys and open doors, with two checks you can run yourself
14 prompts that make your coding agent find exposed keys, tables without row level security, open buckets and unverified webhooks in your own app, then fix them one commit at a time. Version 1.1 adds two read-only checks you run yourself: rls_check.sql, which logs in as the public key and as a second user to prove a stranger cannot read your rows, and bundle_scan.py, which finds secret keys in your production build, including a service role key grep cannot see. Both were tested on a made-up app with planted problems.

Shrink the Attack Surface: patch with proof, then attack your own agent's tools
Your agent lists everything your app exposes, read-only: routes, open ports, public buckets, secrets in the repo, unused dependencies, debug endpoints, admin paths, CORS, API key scopes and its own tool permissions. You decide keep, remove or lock for each. Every fix gets a proof that fails before the change and passes after it, and the proof stays as a regression test. Then attack drills run against your agent's own tool gate, offline: pressure, impersonation, injected tool output, stale and non-owner approvals and a failing tool. Each is judged by what the tools actually did, and every drill that gets through becomes a test that fails before the fix and passes after. A failing tool stops at a retry budget and asks you, and every approval is yours, typed at your own terminal and tied to a sha256.

AGENTS.md, CLAUDE.md and Cursor rules starter files: Approvals Section Check (free sample)
From the AGENTS.md, CLAUDE.md and Cursor rules starter files: check that your rule files really make every coding agent stop for your yes. Six Approvals parts, an Ask before you list that covers money, deploys, deletes and sending, blanket yeses caught, and CLAUDE.md, your Grok Bot order, Hermes skill and Cursor rules all pointing back to AGENTS.md. Your yes is recorded at your own terminal and the gate stops any file changed after it.
Start free. Buy a file. Or have it built for you.
Free samples
Read and download in full. No signup.
Marketplace
Packs, templates, prompts and bots. One-time checkout, instant download.
Agency AI operations
Built, installed and managed. Growth Fleet starting at $2,500 setup + $750/mo, Managed Ops starting at $2,500 onboarding + $5,000/mo with a 3-month minimum.