agentleFS
XGENT-aiXGENT-ai/skills/skills/security-audit/SKILL.md

security-audit

Skill1 starsChanged 17 days agoMITView on GitHub

Use for code security audits or checks before commits/deployments. Trace data flows to find injection, auth, secrets, dependency, cryptography and business logic vulnerabilities.

  • Reads credentials

192 other projects use a version of this, 1 of them edited.

Adopted by

Most recently taken up by

Used with

Projects with it also use create-stories, story-done and 10 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • lilangMaxSkill

    create-stories

    Break a single epic into implementable story files. Reads the epic, its GDD, governing ADRs, and control manifest. Each story embeds its GDD requirement TR-ID, ADR guidance, acceptance criteria, story type, and test evidence path. Run after /create-epics for each epic.

    Also in 11 projects that use this

  • lilangMaxSkill

    story-done

    End-of-story completion review. Reads the story file, verifies each acceptance criterion against the implementation, checks for GDD/ADR deviations, prompts code review, updates story status to Complete, and surfaces the next ready story from the sprint.

    Also in 11 projects that use this

  • nicepkgSkill

    community-led-growth

    Expert in community-led growth (CLG) - leveraging user communities to drive acquisition, retention, and expansion. Covers building developer communities, user groups, ambassador programs, and turning customers into advocates. Knows the difference between community as a feature vs community as a growth engine, and how to measure community ROI. Use when "community-led, CLG, ambassador program, champion program, user community, developer community, word of mouth, user group, " mentioned.

    Also in 5 projects that use this

  • nicepkgSkill

    ph-community-outreach

    Engage Reddit, Indie Hackers, Hacker News and other communities for Product Hunt launches. Use this skill to identify relevant communities, craft appropriate posts, and drive cross-platform engagement without appearing spammy.

    Also in 5 projects that use this

  • +7 more from lilangMax
  • +1 more from nicepkg

The file

Show its rules and text

We split this skill into the rules it gives an agent

25 rules. 0 are common, 12 are distinctive, and 13 are very specific to this project.

  • 0

    Common

    Most of the 173 edited versions we read keep these.

  • 12

    Distinctive

    This author's own choices. Worth a look.

  • 13

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Use this skill when the request involves:

    line 15
  2. Distinctive:

    Follow these steps in order every time:

    line 42
  3. Very specific:

    If a path was provided (/security-review src/auth/), scan only that scope

    line 46
  4. Distinctive:

    If the request is about changes (a diff, staged files, a pre-commit or pre-deploy check), scope to the changed files (git diff, git diff …

    line 47
  5. Distinctive:

    If no path given, scan the entire project starting from the root

    line 51
  6. Very specific:

    Read references/language-patterns.md to load language-specific vulnerability patterns

    line 54
  7. Distinctive:

    Before scanning source code, audit dependencies first (fast wins):

    line 57
  8. Very specific:

    Node.js: Check package.json + package-lock.json for known vulnerable packages

    line 58
  9. Very specific:

    Python: Check requirements.txt / pyproject.toml / Pipfile

    line 59
  10. Very specific:

    Java: Check pom.xml / build.gradle

    line 60
  11. Very specific:

    If available, run the ecosystem's audit tool (npm audit, pip-audit, or equivalent) — it reflects current advisories.

    line 64
  12. Very specific:

    Read references/vulnerable-packages.md for a curated watchlist

    line 68
  13. Very specific:

    Read references/secret-patterns.md for regex patterns and entropy heuristics to apply

    line 77
  14. Very specific:

    Read references/vuln-categories.md for full details on each category.

    line 81
  15. Distinctive:

    Use of MD5, SHA1, DES for security purposes

    line 109
  16. Distinctive:

    After the per-file scan, perform a holistic review:

    line 127
  17. Distinctive:

    Check for insecure trust boundaries between services or modules

    line 131
  18. Distinctive:

    Ask: "Is this actually exploitable, or is there sanitization I missed?"

    line 136
  19. Distinctive:

    Check if a framework or middleware already handles this upstream

    line 137
  20. Distinctive:

    Add a comment explaining the fix inline

    line 152
  21. Distinctive:

    If the codebase is clean, say so clearly: "No vulnerabilities found" with what was scanned

    line 174
  22. Very specific:

    Search patterns: SQL injection, XSS, command injection, SSRF, BOLA, IDOR, JWT, CSRF, secrets, cryptography, race condition, path traversal

    line 181
  23. Very specific:

    Search patterns: API key, token, private key, connection string, entropy, .env, GitHub Actions, Docker, Terraform

    line 183
  24. Very specific:

    Search patterns: Express, React, Next.js, Django, Flask, FastAPI, Spring Boot, PHP, Go, Rails, Rust

    line 185
  25. Very specific:

    Search patterns: lodash, axios, jsonwebtoken, Pillow, log4j, nokogiri, CVE

    line 187

“Common” is measured: kept by at least 6 in 10 of the 173 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Security Review

An AI-powered security scanner that reasons about your codebase the way a human security researcher would — tracing data flows, understanding component interactions, and catching vulnerabilities that pattern-matching tools miss.

When to Use This Skill

Use this skill when the request involves:

  • Scanning a codebase or file for security vulnerabilities
  • Running a security review or vulnerability check
  • Checking changed code before a commit or deployment — especially auth, API, database, dependency, or config changes
  • Checking for SQL injection, XSS, command injection, or other injection flaws
  • Finding exposed API keys, hardcoded secrets, or credentials in code
  • Auditing dependencies for known CVEs
  • Reviewing authentication, authorization, or access control logic
  • Detecting insecure cryptography or weak randomness
  • Performing a data flow analysis to trace user input to dangerous sinks
  • Any request phrasing like "is my code secure?", "scan this file", or "check my repo for vulnerabilities"
  • Running /security-review or /security-review <path>

How This Skill Works

Unlike traditional static analysis tools that match patterns, this skill:

  1. Reads code like a security researcher — understanding context, intent, and data flow
  2. Traces across files — following how user input moves through your application
  3. Self-verifies findings — re-examines each result to filter false positives
  4. Assigns severity ratings — CRITICAL / HIGH / MEDIUM / LOW / INFO
  5. Proposes targeted patches — every finding includes a concrete fix
  6. Requires human approval — nothing is auto-applied; you always review first

Execution Workflow

Follow these steps in order every time:

Step 1 — Scope Resolution

Determine what to scan:

  • If a path was provided (/security-review src/auth/), scan only that scope
  • If the request is about changes (a diff, staged files, a pre-commit or pre-deploy check), scope to the changed files (git diff, git diff --staged). Still read the surrounding code they call into or are called from — a change is often only exploitable in context. Run Step 2 only if a dependency manifest or lock file changed
  • If no path given, scan the entire project starting from the root
  • Identify the language(s) and framework(s) in use (check package.json, requirements.txt, go.mod, Cargo.toml, pom.xml, Gemfile, composer.json, etc.)
  • Read references/language-patterns.md to load language-specific vulnerability patterns

Step 2 — Dependency Audit

Before scanning source code, audit dependencies first (fast wins):

  • Node.js: Check package.json + package-lock.json for known vulnerable packages
  • Python: Check requirements.txt / pyproject.toml / Pipfile
  • Java: Check pom.xml / build.gradle
  • Ruby: Check Gemfile.lock
  • Rust: Check Cargo.toml
  • Go: Check go.sum
  • If available, run the ecosystem's audit tool (npm audit, pip-audit, or equivalent) — it reflects current advisories. These tools need network access to the package registry; if it's unavailable, fall back to the watchlist below and say the audit was offline
  • Flag packages with known CVEs, deprecated crypto libs, or suspiciously old pinned versions
  • Read references/vulnerable-packages.md for a curated watchlist

Step 3 — Secrets & Exposure Scan

Scan ALL files in scope (including config, env, CI/CD, Dockerfiles, IaC) for:

  • Hardcoded API keys, tokens, passwords, private keys
  • .env files accidentally committed
  • Secrets in comments or debug logs
  • Cloud credentials (AWS, GCP, Azure, Stripe, Twilio, etc.)
  • Database connection strings with credentials embedded
  • Read references/secret-patterns.md for regex patterns and entropy heuristics to apply

Step 4 — Vulnerability Deep Scan

This is the core scan. Reason about the code — don't just pattern-match. Read references/vuln-categories.md for full details on each category.

Injection Flaws

  • SQL Injection: raw queries with string interpolation, ORM misuse, second-order SQLi
  • XSS: unescaped output, dangerouslySetInnerHTML, innerHTML, template injection
  • Command Injection: exec/spawn/system with user input
  • LDAP, XPath, Header, Log injection

Authentication & Access Control

  • Missing authentication on sensitive endpoints
  • Broken object-level authorization (BOLA/IDOR)
  • JWT weaknesses (alg:none, weak secrets, no expiry validation)
  • Session fixation, missing CSRF protection
  • Session cookies missing Secure / HttpOnly / SameSite
  • Passwords stored in plaintext or with a fast hash; weak password policy; no MFA on privileged accounts
  • Privilege escalation paths
  • Mass assignment / parameter pollution

Data Handling

  • Sensitive data in logs, error messages, or API responses
  • Missing encryption at rest or in transit
  • Insecure deserialization
  • Path traversal / directory traversal
  • XXE (XML External Entity) processing
  • SSRF (Server-Side Request Forgery)

Cryptography

  • Use of MD5, SHA1, DES for security purposes
  • Hardcoded IVs or salts
  • Weak random number generation (Math.random() for tokens)
  • Missing TLS certificate validation

Security Misconfiguration & Logging

  • Permissive CORS, debug mode in production, missing security headers (framework specifics in references/language-patterns.md)
  • Security events (failed logins, access-control denials, privilege changes) not logged, leaving attacks undetectable

Business Logic

  • Race conditions (TOCTOU)
  • Integer overflow in financial calculations
  • Missing rate limiting on sensitive endpoints
  • Predictable resource identifiers

Step 5 — Cross-File Data Flow Analysis

After the per-file scan, perform a holistic review:

  • Trace user-controlled input from entry points (HTTP params, headers, body, file uploads) all the way to sinks (DB queries, exec calls, HTML output, file writes)
  • Identify vulnerabilities that only appear when looking at multiple files together
  • Check for insecure trust boundaries between services or modules

Step 6 — Self-Verification Pass

For EACH finding:

  1. Re-read the relevant code with fresh eyes
  2. Ask: "Is this actually exploitable, or is there sanitization I missed?"
  3. Check if a framework or middleware already handles this upstream
  4. Downgrade or discard findings that aren't genuine vulnerabilities
  5. Assign final severity: CRITICAL / HIGH / MEDIUM / LOW / INFO

Step 7 — Generate Security Report

Output the full report in the format defined in references/report-format.md. For a snippet or diff scope, drop sections that don't apply (e.g. the dependency audit when no manifest changed) rather than filling them with zeros.

Step 8 — Propose Patches

For every CRITICAL and HIGH finding, generate a concrete patch:

  • Show the vulnerable code (before)
  • Show the fixed code (after)
  • Explain what changed and why
  • Preserve the original code style, variable names, and structure
  • Add a comment explaining the fix inline

Explicitly state: "Review each patch before applying. Nothing has been changed yet."

Severity Guide

SeverityMeaningExample
🔴 CRITICALImmediate exploitation risk, data breach likelySQLi, RCE, auth bypass
🟠 HIGHSerious vulnerability, exploit path existsXSS, IDOR, hardcoded secrets
🟡 MEDIUMExploitable with conditions or chainingCSRF, open redirect, weak crypto
🔵 LOWBest practice violation, low direct riskVerbose errors, missing headers
⚪ INFOObservation worth noting, not a vulnerabilityOutdated dependency (no CVE)

Output Rules

  • Always produce a findings summary table first (counts by severity)
  • Never auto-apply any patch — present patches for human review only
  • Always include a confidence rating per finding (High / Medium / Low)
  • Group findings by category, not by file
  • Be specific — include file path, line number, and the exact vulnerable code snippet
  • Explain the risk in plain English — what could an attacker do with this?
  • If the codebase is clean, say so clearly: "No vulnerabilities found" with what was scanned

Reference Files

For detailed detection guidance, load the following reference files as needed:

  • references/vuln-categories.md — Deep reference for every vulnerability category with detection signals, safe patterns, and escalation checkers
    • Search patterns: SQL injection, XSS, command injection, SSRF, BOLA, IDOR, JWT, CSRF, secrets, cryptography, race condition, path traversal
  • references/secret-patterns.md — Regex patterns, entropy-based detection, and CI/CD secret risks
    • Search patterns: API key, token, private key, connection string, entropy, .env, GitHub Actions, Docker, Terraform
  • references/language-patterns.md — Framework-specific vulnerability patterns for JavaScript, Python, Java, PHP, Go, Ruby, and Rust
    • Search patterns: Express, React, Next.js, Django, Flask, FastAPI, Spring Boot, PHP, Go, Rails, Rust
  • references/vulnerable-packages.md — Curated CVE watchlist for npm, pip, Maven, Rubygems, Cargo, and Go modules
    • Search patterns: lodash, axios, jsonwebtoken, Pillow, log4j, nokogiri, CVE
  • references/report-format.md — Structured output template for security reports with finding cards, dependency audit, secrets scan, and patch proposal formatting
    • Search patterns: report, format, template, finding, patch, summary, confidence

External references for each finding's Reference line: OWASP Top 10, CWE Top 25

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.