skills/secure/SKILL.md
Security audit. STRIDE + OWASP Top 10 + 4 red-team personas. Code evidence required.
npx skillsauth add arbazkhan971/godmode secureInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
/godmode:secure, "security audit", "vulnerabilities"# Dependency audit
npm audit 2>/dev/null || pip audit 2>/dev/null \
|| cargo audit 2>/dev/null
# Scan for hardcoded secrets
grep -rn 'SECRET\|API_KEY\|PASSWORD\|PRIVATE_KEY' \
--include="*.ts" --include="*.py" --include="*.go" \
--include="*.env" src/ 2>/dev/null | head -20
# List all public routes
grep -rn "router\.\(get\|post\|put\|delete\)" \
--include="*.ts" --include="*.js" -l 2>/dev/null
List each: DB (type+version), auth mechanism
(JWT/session/OAuth + expiry), external APIs,
all <input>/<form> elements, public routes.
Draw: client<->server, public<->auth, user<->admin, svc<->svc, CI<->prod, internal<->external. Each boundary = attack surface.
For each boundary: Spoofing, Tampering, Repudiation, Info Disclosure, DoS, Elevation.
categories = OWASP_TOP_10 + STRIDE # 16 total
current_iteration = 0
WHILE untested categories remain:
current_iteration += 1
Pick untested category.
Priority: Injection > Broken Auth > XSS
> SSRF > IDOR > remaining.
Test as 4 personas:
P1: External (no auth)
P2: Insider (valid session)
P3: Supply Chain (malicious dep)
P4: Infrastructure (server access)
Each finding: file:line + exploit steps
+ severity + fix (code snippet).
Every 5 iters: print progress.
IF finding has code evidence from 1+ personas: KEEP
IF no code evidence from any persona: DISCARD
FOR each finding:
Each persona rates: EXPLOITABLE (1) or NOT (0)
Score = sum (0-4):
4/4 = CRITICAL (unanimous)
3/4 = HIGH (likely exploitable)
2/4 = MEDIUM (conditional)
1/4 = LOW (edge case)
0/4 = DISCARD (theoretical)
Print: OWASP {N}/10, STRIDE {N}/6. {C}C {H}H {M}M {L}L.
PASS if 0 critical + 0 high. Else FAIL.
--fix)For Critical/High: fix -> commit -> run full test suite -> revert if ANY test breaks.
Every finding MUST use:
SEVERITY|FILE:LINE|DESCRIPTION|FIX
Examples:
CRITICAL|src/api/auth.ts:42|SQL injection via
unsanitized email|Use parameterized query
HIGH|src/middleware/cors.ts:8|CORS wildcard|
Set explicit allowed origins
MEDIUM|src/utils/crypto.ts:15|Math.random() for
session token|Use crypto.randomBytes(32)
Log to .godmode/security-findings.tsv:
iteration\tcategory\tpersona\tseverity\tfile_line\tdescription\tfix\tstatus\tvotes
SKILL.md §14. Principles prelude, pre-commit audit, terse/stdio/tokens, DispatchContext validation, Progressive Disclosure routing, discard cost hierarchy all fire by default.KEEP if: file:line evidence AND 1+ persona
rates EXPLOITABLE AND steps reproducible
DISCARD if: no code evidence OR 0/4 votes
OR duplicates existing finding
Every discard logged with reason.
Every finding must be exploitable in the general case, not only in this specific commit state. If the finding depends on a transient condition → classify as noise.
STOP when FIRST of:
- All OWASP + STRIDE categories tested
- max_iterations reached
- 3 consecutive boundaries produce 0 findings
AND coverage >80%
- >5 discards with no actionable replacements
IF category produces no findings after analysis:
log NO_FINDING with justification, move on
IF scanning tool fails:
retry once, then fall back to manual review
IF finding cannot be reproduced:
downgrade to INFO, tag UNVERIFIED
Max 2 re-verification attempts
Print: Secure: OWASP {N}/10, STRIDE {N}/6. {findings} findings. {kept} kept, {discarded} discarded. Status: {DONE|PARTIAL}.
development
Web performance optimization. Lighthouse, bundle analysis, code splitting, image optimization, critical CSS, fonts, service workers, CDN.
development
Webhook design, delivery, retry, HMAC verification, event subscriptions, dead letter queues.
development
Vue.js mastery. Composition API, Pinia, Vue Router, Nuxt SSR/SSG, Vite optimization, testing.
development
Evidence gate. Run command, read full output, confirm or deny claim. No trust, only proof.