Install any skill in seconds. Free to start, no credit card required.
Get Started Free →AI DevKit · Review code, skills, and prompts for security vulnerabilities — OWASP Top 10, prompt injection, business logic flaws, and insecure defaults. Use when reviewing PRs, auditing modules, reviewing AI skills/prompts, or preparing for release.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-09 | ✗→✓ | ▲ Improved | 139% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 104% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 186% | 0% |
| case-12 | ✗→✓ | ▲ Improved | 119% | 0% |
| case-13 | ✗→✓ | ▲ Improved | 88% | 0% |
Security is not a feature — it's a property of the entire system. Review security boundaries systematically, not ad-hoc.
Work through these for every security-relevant code change:
A01 - Broken Access Control
grep -r 'router\.\|app\.\(get\|post\|put\|delete\|patch\)' --include='*.js' --include='*.ts' | grep -v 'auth\|authorize\|permission\|role'grep -rn 'req\.params\.id\|req\.query\.id' --include='*.js' --include='*.ts' — verify each result checks ownershipgrep -rn 'admin' --include='*.js' --include='*.ts' | grep -v 'isAdmin\|requireAdmin\|role.*admin\|admin.*role'A02 - Cryptographic Failures
grep -rn 'password\s*=\s*["\x27][^"\x27]\|api_key\s*=\s*["\x27][^"\x27]\|secret\s*=\s*["\x27][^"\x27]' --include='*.js' --include='*.py' --include='*.ts'grep -r 'password' --include='*.js' --include='*.ts' --include='*.py' | grep -v 'bcrypt\|argon2\|hash'grep -rn 'md5\|sha1\|sha256' --include='*.js' --include='*.ts' --include='*.py' | grep -i 'password'grep -rn 'http://' --include='*.js' --include='*.ts' --include='*.py' | grep -v 'localhost\|127\.0\.0\.1\|test\|spec\|comment'grep -rn 'console\.log\|logger\.' --include='*.js' --include='*.ts' | grep -i 'password\|token\|secret\|key\|ssn\|credit'A03 - Injection
grep -rn 'query\s*[+\].\(req\.\|user\.\|input\|params\)' --include='.js' --include='.ts' --include='.py'grep -rn '"SELECT\|"INSERT\|"UPDATE\|"DELETE' --include='*.js' --include='*.ts' | grep '\+'eval with user input)grep -rn 'eval(\|exec(\|system(\|spawn(' --include='*.js' --include='*.ts' --include='*.py'grep -rn 'innerHTML\s*=' --include='*.js' --include='*.ts' | grep -v '//.*innerHTML'A04 - Insecure Design
grep -rn 'login\|signin\|auth' --include='*.js' --include='*.ts' | grep -v 'rateLimit\|rate_limit\|throttle'grep -rn '"User not found"\|"Invalid username"\|"No account"' --include='*.js' --include='*.ts' --include='*.py'A05 - Security Misconfiguration
grep -rn 'debug\s*=\s*true\|DEBUG\s*=\s*True\|NODE_ENV.*development' --include='*.js' --include='*.ts' --include='*.py' --include='*.env'grep -rn 'admin.*admin\|root.*root\|password.*password\|default.*password' --include='*.js' --include='*.ts' --include='*.py'grep -rn 'err\.stack\|error\.stack\|traceback' --include='*.js' --include='*.ts' --include='*.py' | grep -v 'log\|console\|logger'A06 - Vulnerable and Outdated Components
npm audit or pip-audit or snyk testnpm audit --audit-level=high (exits non-zero if high/critical found)git ls-files | grep -E 'package-lock\.json|yarn\.lock|poetry\.lock|Pipfile\.lock|Gemfile\.lock'grep -E '"\^|"~|">=|">' package.json — each result is a non-pinned dependencyA07 - Authentication Failures
grep -rn 'logout\|signout\|sign_out' --include='*.js' --include='*.ts' --include='*.py' | grep -v 'destroy\|invalidate\|clear\|delete\|revoke'grep -rn 'reset.*token\|token.*reset' --include='*.js' --include='*.ts' --include='*.py' — verify expiry and single-use enforcementgrep -rn 'login\|signin' --include='*.js' --include='*.ts' | grep -v 'attempts\|lockout\|rateLimit\|throttle'A08 - Software and Data Integrity
grep -rn 'eval(' --include='*.js' --include='*.ts' --include='*.py'grep -rn 'new Function(' --include='*.js' --include='*.ts'A09 - Logging and Monitoring
grep -rn 'login\|signin\|authenticate' --include='*.js' --include='*.ts' --include='*.py' | grep -v 'log\|audit\|event\|monitor'grep -rn 'log\.' --include='*.js' --include='*.ts' | grep -i 'password\|token\|secret\|ssn\|credit_card\|cvv'| Vulnerability | Check | |---------------|-------| | SQL Injection | All queries parameterized? | | XSS | All user content escaped before rendering? | | CSRF | State-changing requests have CSRF protection? | | Path traversal | File paths sanitized and validated? | | Secret exposure | No hardcoded keys/tokens in code? | | Mass assignment | Only allowed fields accepted from user input? |
These patterns require immediate review:
eval(), exec(), system() with any user-influenced input"SELECT * FROM users WHERE id = " + userIdinnerHTML = userContent (XSS)require(userInput) or dynamic imports with user data.env files committed to gitFor each finding, document:
If no vulnerabilities found: output "Security Review: PASS. No issues found in scope]. Reviewed: list of OWASP categories checked]. Verified: date and reviewer]."
Other measured skills in the registry, with their headline benchmark lift.