with one click
security-review
Run a security audit covering OWASP Top 10, deps, secrets, RLS
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
Run a security audit covering OWASP Top 10, deps, secrets, RLS
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
Manage the project backlog — add, list, filter, update, prioritize, and suggest work items
Daily session wrapper — start with backlog, work, commit, retro
End-of-session retrospective — summarize work, update backlog statuses, update MEMORY.md
Commit, branch, PR, self-review, fix — then stop for human approval before merge
Pre-flight for parallel work — pick items, check file overlap, set statuses, generate terminal commands
Manage project backlog — add, list, filter, update, prioritize, suggest
| name | security-review |
| description | Run a security audit covering OWASP Top 10, deps, secrets, RLS |
| user-invocable | true |
Run a security audit of the current codebase or a specific PR. Covers OWASP Top 10, dependency vulnerabilities, secret exposure, and Supabase RLS policy.
Run the following checks in order. Report findings with severity: CRITICAL, HIGH, MEDIUM, LOW, INFO.
Check git history and working tree for accidentally committed secrets:
git diff HEAD | grep -iE "(api_key|secret|password|token|supabase_service|SUPABASE_SERVICE)" | grep -v ".example"
git ls-files .env.local
grep -E "\.env" .gitignore
npm audit --json | python3 -c "
import json, sys
data = json.load(sys.stdin)
vulns = data.get('vulnerabilities', {})
critical = [k for k,v in vulns.items() if v.get('severity') in ('critical','high')]
print(f'Critical/High: {len(critical)}')
for c in critical[:10]: print(f' - {c}: {vulns[c][\"severity\"]}')
"
Read all migrations and verify:
ALTER TABLE <name> ENABLE ROW LEVEL SECURITYuser_cards and review_logs policies filter by auth.uid()# Should find exactly 1 createClient call
grep -r "createClient" src/ --include="*.ts" --include="*.tsx"
# No service role key usage in frontend
grep -r "SERVICE" src/ --include="*.ts" --include="*.tsx"
grep -r "dangerouslySetInnerHTML" src/ --include="*.tsx"
grep -r "innerHTML" src/ --include="*.ts" --include="*.tsx"
grep -rE "(eval\(|new Function)" src/ --include="*.ts" --include="*.tsx"
grep -r "import.meta.env" src/ --include="*.ts" --include="*.tsx"
Flag any VITE_ prefixed variable that appears to be a secret.
## Security Review — DanskPrep
Date: <today>
Scope: <PR #X / full codebase>
### CRITICAL
(none)
### HIGH
- [H1] <finding>: <location> — <remediation>
### MEDIUM
- [M1] <finding>: <location> — <remediation>
### LOW / INFO
- [L1] ...
### Summary
X critical, X high, X medium, X low
Overall: Approved / Fix before merge / Block — security issue