Install
$ agentstack add skill-akirtok-preflight-security-audit-preflight-security-audit ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ● Environment & secrets Used
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
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:line
and 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-fix after 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. This build always runs all six tracks regardless of stack; stack detection only tunes the specific checks.
- 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-.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 & grant audit | | 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 | | 6. Verification | references/06-verification.md | re-check, reject unprovable, dedupe, calibrate, assemble |
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-.md with this structure:
# Preflight Audit — —
## Summary
- Scope:
- Stack detected:
- Findings: N Critical · N High · N Medium · N Low
- Ship recommendation: BLOCK / FIX-FIRST / GO-WITH-FOLLOWUPS / GO
## Critical findings
### C1. [Track N · ]
- Location: path/to/file.ts:120-134
- What:
- Exploit / failure path:
- Fix:
- Proposed patch:
## High findings
...
## Medium findings
...
## Low findings
...
## Passed / not applicable
-
## Unverified notes (needs human review)
-
---
_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.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: akirtok
- Source: akirtok/preflight-security-audit
- License: MIT
- Homepage: https://kirtok.kit.com/preflight-security-audit
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.