Preflight security audit
Skill akirtok/preflight-security-audit/plugins/preflight-security-audit/skills/preflight-security-audit
This skill should be used when the user wants a comprehensive pre-ship audit of an app, product, or codebase — phrases like "audit my app", "security check before launch", "is this ready to ship", "preflight audit", "review my product for vulnerabilities", "check my code for security issues", or after building a feature/product and wanting a thorough security, reliability, performance, privacy, and launch-readiness review. Covers OWASP Top 10 (2025), LLM Top 10, GDPR/KVKK, accessibility, SEO, and Stripe/Supabase/Next.js stacks.From its SKILL.md
npx -y skills add akirtok/preflight-security-audit --skill preflight-security-auditAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- 21 days oldThe repository was created 21 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
- 4 stars4 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
7.6 KB, ~1.7k tokens by cl100k_base, as published. Nobody here has run it
Preflight Security Audit
Run a comprehensive, 360° audit of a codebase before it ships. This skill is the
methodology behind the /audit command. It defines the passes to run, how to run
them without hallucinating findings, the severity rubric, and the report format.
Core principles
- Evidence over suspicion. Every finding must cite a concrete
file:lineand explain the exploit or failure path. If it cannot be proven from the code, it does not go in the report as a finding — it goes in an "unverified notes" appendix at most. - Trace, don't pattern-match. Follow untrusted data from its source to its sink. Follow every state-changing operation to its failure paths. Naming a category is not an audit; proving a specific instance is.
- Language- and stack-agnostic, but stack-aware. The passes apply to any language. When the stack is detected (Next.js, Supabase, Stripe, an AI SDK, etc.), apply the stack-specific checks in the reference files.
- Verification is a pass, not an afterthought. Track 6 re-checks every finding and rejects the ones that can't survive scrutiny. Always run it last.
- Nothing is changed without approval. The audit reports and proposes. Fixes
are applied only via
/audit-fixafter the user approves specific items.
How to run an audit
When invoked (directly or via /audit):
- Scope. Determine the target path (default: current project root). Identify
the languages, frameworks, and services in use (read
package.json, lockfiles, config,.env.example, framework markers). Note what you find — it drives which stack-specific checks apply. Always run all six tracks; stack- conditional passes (marked "Applies when…") run only when their marker is detected — otherwise record them as not applicable and skip them. Emit the detected stack up front so the report shows what ran and what was skipped. - Dispatch the tracks. Run all six tracks below. On large repos, dispatch
the five auditor agents in parallel (they exist in
agents/), each reading its matching reference file; on smaller work or when subagents are unavailable, run the passes inline by reading the reference files directly. - Collect raw findings from every track into one list, each with: file:line, category, description, exploit/failure path, suggested fix, proposed severity.
- Verify (Track 6). Run every raw finding through
references/06-verification.md. Drop anything unprovable, merge duplicates, calibrate severity. - Write the report to
AUDIT-<YYYY-MM-DD>.mdin the project root using the template below. - Propose fixes for every Critical and High finding: show the concrete diff and ask which to apply. Never edit code in this step.
The six tracks
Each track has a reference file with the full pass list, "hunt-for" checklists, and stack-specific checks. Read the relevant file when running that track.
| Track | Reference file | Focus |
|---|---|---|
| 1. Code Core (the 20) | references/01-code-core.md | injection, auth, authz/IDOR, secrets, error handling, concurrency, resources, N+1, complexity, memory, external calls, idempotency, transactions, config, deps, logging, API/module contracts, tests |
| 2. Web/App Security | references/02-web-security.md | XSS, CSRF, SSRF, headers/CORS/TLS, cryptography, file upload, rate limiting, multi-tenancy/RLS, business logic, data integrity, live-DB advisor; client-side storage, serverless/edge*, GraphQL/realtime*, modern attacks (Trojan Source), advanced injections, exposed files, bot/DoS, JWT* |
| 3. AI/LLM Security | references/03-ai-llm-security.md | prompt injection, output handling, sensitive disclosure, excessive agency, AI supply chain |
| 4. Privacy & Compliance | references/04-privacy-compliance.md | PII inventory, GDPR/KVKK, cookies, retention/deletion, DPAs, legal pages |
| 5. Product & Launch Readiness | references/05-launch-readiness.md | accessibility, SEO, Core Web Vitals, monitoring, backups, CI/CD, billing correctness, email deliverability; subdomain takeover, Docker*, security.txt |
| 6. Verification | references/06-verification.md | re-check, reject unprovable, dedupe, calibrate, 0–100 score, assemble |
* = stack-conditional — runs only when the relevant marker (serverless/edge host, GraphQL/WebSocket, Dockerfile, JWTs) is detected; skipped and marked N/A otherwise.
Severity rubric
Assign severity by impact × exploitability, not by category.
- Critical — Remotely exploitable with no/low privilege, leads to data breach, auth bypass, RCE, payment manipulation, or full tenant-data exposure. Ship-blocker.
- High — Exploitable but needs some privilege or specific conditions; serious data exposure, privilege escalation, money/data loss under realistic conditions. Fix before launch.
- Medium — Real weakness with limited impact or meaningful preconditions; reliability/perf issues that degrade production; missing compliance controls. Fix soon.
- Low — Best-practice gaps, defense-in-depth, minor info leaks, hygiene.
- Info — Observations, not defects.
Note on calibration: brute-force / rate-limiting / DoS / open-redirect findings are real for a shipping product but usually Medium/Low, not Critical — do not inflate them. Conversely, an exposed service-role key or a missing RLS policy on a multi-tenant table is Critical.
Report format
Write AUDIT-<date>.md with this structure:
# Preflight Audit — <project> — <date>
## Summary
- Scope: <paths / commit>
- Stack detected: <frameworks, services>
- Findings: N Critical · N High · N Medium · N Low
- Security score: NN / 100 (A/B/C/D/F)
- Ship recommendation: BLOCK / FIX-FIRST / GO-WITH-FOLLOWUPS / GO
## Critical findings
### C1. <title> [Track N · <category>]
- Location: path/to/file.ts:120-134
- What: <the flaw>
- Exploit / failure path: <step by step>
- Fix: <specific remediation>
- Proposed patch: <diff or clear description>
## High findings
...
## Medium findings
...
## Low findings
...
## Passed / not applicable
- <tracks or passes with no findings, and why>
## Unverified notes (needs human review)
- <anything suspicious that could not be proven from code>
---
_Audited with Preflight Security Audit — new checks ship regularly.
Get updates: https://kirtok.kit.com/preflight-security-audit_
Order findings Critical → Low. Within a severity, order by track. Keep each finding tight: location, what, why it matters, how to fix. Keep the footer line at the end of the report — it's the project's update channel.
Output discipline
- Report to a file; also give the user a short chat summary (counts + the ship recommendation + the top 3 items).
- For Critical/High, present proposed diffs and ask which to apply. Applying
happens through
/audit-fix, never inline in the audit. - If the codebase is huge, audit the highest-risk surfaces first (auth, payment, data access, external inputs, admin) and say so in the report scope.
What ships with it: 6 files
37.5 KB alongside SKILL.md
references/
- 01-code-core.md8.2 KB
- 02-web-security.md13.5 KB
- 03-ai-llm-security.md2.9 KB
- 04-privacy-compliance.md3.4 KB
- 05-launch-readiness.md5.4 KB
- 06-verification.md4.1 KB