security-audit — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited security-audit (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
This is a defensive audit: the goal is to find weaknesses in your own app so you can fix them before launch, not to attack anyone. The highest-value findings for a Supabase + Stripe + Next.js booking app cluster in four places — leaked secrets, RLS gaps, broken object-level authorization (IDOR), and webhook trust. Those four are where real incidents on this stack actually happen, so weight the audit there.
python3 ${CLAUDE_PLUGIN_ROOT}/scripts/security/scan_secrets.py <project-dir>It flags: Supabase service-role keys / JWT secrets in client-reachable code, Stripe secret keys (sk_live/sk_test) outside server-only files, generic API keys and private keys, .env files that look committed, and use of the NEXT_PUBLIC_ prefix on values that must stay server-side (this prefix ships the value to the browser — a service-role key behind it is a full database breach).
references/threat-model.md,which walks each one with what to grep for and what "good" looks like:
that scope rows to the owner. RLS disabled = the anon key reads everything.
resource (/api/bookings/[id] must verify the booking belongs to the user), not just that they're logged in.
and dedupes on event id; amounts are taken from Stripe, never trusted from the client.
npm audit --omit=dev || trueReport high/critical advisories with the upgrade path; don't drown the user in transitive low-severity noise.
concrete location, why it's exploitable (the scenario), and the fix. Be precise about severity — a sk_live key in client code is Critical; a missing security header is Low.
ALWAYS use this template so findings are scannable and actionable:
# Security Audit — <app>
## Summary
<one-paragraph posture: what's solid, what's urgent>
## Critical
- [finding] — location · scenario · fix
## High
## Medium
## Low / Hardening
## Verified-safe
<things checked that were fine — so the user knows coverage>This skill only inspects code and configuration the user owns and runs read-only checks. It does not exploit, exfiltrate, or attack live systems, and it will not produce attack tooling. If a check needs to hit a running endpoint (e.g. probing an IDOR), do it against the user's own dev/staging environment with their go-ahead.
For a full standing audit, delegate to the security-auditor agent — it runs the scanners, works through the threat model against the codebase, checks dependencies, and returns the severity-ranked report.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.