agentleFS
kynn-devkynn-dev/agent-skills/.agents/skills/security-review/SKILL.md

security-review

Skill1 starsChanged 46 days agoMITView on GitHub

Use when conducting an evidence-backed security review of an application, change, service boundary, or deployment path, including authentication, authorization, tenant isolation, secrets, input/output handling, SSRF, XSS, injection, logging, dependencies, and deployment boundaries. Separate static evidence from runtime and production evidence; never recommend bypasses.

192 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use linkerd-patterns, dependency-cve-sweep 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.
  • xfstudioSkill

    linkerd-patterns

    Implement Linkerd service mesh patterns for lightweight, security-focused service mesh deployments. Use when setting up Linkerd, configuring traffic policies, or implementing zero-trust networking with minimal overhead.

    Also in 5 projects that use this

  • berntpoppSkill

    dependency-cve-sweep

    Use when handling Dependabot PRs, CodeQL/Trivy alerts, or doing a routine dependency/CVE sweep for this repo.

    Also in 12 projects that use this

  • berntpoppSkill

    fleet-standard-adoption

    Use when bringing this repo into compliance with a GeneFoundry fleet standard (tool-naming, response-envelope, container-hardening, versioning, MCP transport, or logging) or closing its tracking issue.

    Also in 12 projects that use this

  • HABUBUSSSkill

    project-guidelines-example

    Also in 16 projects that use this

  • niloykumarbarmanSkill

    agent-sort

    Build an evidence-backed ECC install plan for a specific repo by sorting skills, commands, rules, hooks, and extras into DAILY vs LIBRARY buckets using parallel repo-aware review passes. Use when ECC should be trimmed to what a project actually needs instead of loading the full bundle.

    Also in 13 projects that use this

  • royaluniondesign-sysSkill

    configure-ecc

    Interactive installer for Everything Claude Code — guides users through selecting and installing skills and rules to user-level or project-level directories, verifies paths, and optionally optimizes installed files.

    Also in 11 projects that use this

  • +2 more from berntpopp

The file

Show its rules and text

We split this skill into the rules it gives an agent

16 rules. 0 are common, 14 are distinctive, and 2 are very specific to this project.

  • 0

    Common

    Most of the 167 edited versions we read keep these.

  • 14

    Distinctive

    This author's own choices. Worth a look.

  • 2

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Use this skill to identify security-relevant trust boundaries, abuse paths, and control gaps without weakening the controls under review.

    line 8
  2. Distinctive:

    Do not use as permission to exploit third-party systems, access data outside the authorized scope, rotate or reveal secrets, or modify …

    line 42
  3. Distinctive:

    Before reviewing individual lines, establish:

    line 46
  4. Very specific:

    Check the server-side identity boundary, not just the client: credentials/tokens/sessions, expiration and revocation, transport, protected …

    line 73
  5. Distinctive:

    Do not suggest disabling a check, accepting an unsigned token, trusting a client claim, or using a privileged credential to “test” …

    line 75
  6. Distinctive:

    Verify authorization at the server or policy boundary for every sensitive operation:

    line 79
  7. Distinctive:

    Use dedicated test identities and synthetic records for cross-tenant negative checks.

    line 94
  8. Distinctive:

    Search for exposure in source, authorized history, configuration, logs, error payloads, client bundles, artifacts, screenshots, fixtures, …

    line 98
  9. Distinctive:

    Do not “fix” SSRF by allowing every URL, disabling certificate validation, routing through a privileged proxy, or accepting arbitrary …

    line 110
  10. Distinctive:

    Do not deploy, change production policy, widen network access, disable protections, or apply a migration as part of a review unless that …

    line 124
  11. Very specific:

    Use PASS, FAIL, NOT_RUN, or BLOCKED_EXTERNAL for validation status.

    line 137
  12. Distinctive:

    use synthetic data and dedicated accounts for runtime checks.

    line 141
  13. Distinctive:

    test both allowed and denied paths without bypassing the control being reviewed.

    line 142
  14. Distinctive:

    prefer read-only, reversible, rate-bounded probes in an authorized environment.

    line 143
  15. Distinctive:

    stop before destructive actions, privilege changes, cross-tenant data access, exploit payloads against third parties, or production …

    line 144
  16. Distinctive:

    if a required session, provider, network, permission, or deployment artifact is unavailable, classify the gap honestly.

    line 146

“Common” is measured: kept by at least 6 in 10 of the 167 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

Use this skill to identify security-relevant trust boundaries, abuse paths, and control gaps without weakening the controls under review. The result is a bounded threat model and evidence-backed findings, not a generic checklist, exploit exercise, or production change.

Operational contract

Objective

Produce a bounded threat model and evidence-backed security findings for the authorized scope while preserving the controls being reviewed. The review should explain which assets, actors, entry points, trust boundaries, and invariants matter, then test whether the relevant controls actually protect them without using bypasses as proof.

Expected inputs

The workflow expects the review scope, architecture or repository evidence, affected identities/roles/tenants, assets and data classes, relevant entry points, configuration/deployment boundaries, available test environments, and the user's authorization boundary for runtime checks. Unknown provider or production behavior must remain explicitly unknown until observed.

Required outputs

Return the threat model, prioritized abuse paths, findings with severity and confidence, exact evidence class (STATIC, CONTROLLED_RUNTIME, REMOTE_RUNTIME, PRODUCTION, or UNKNOWN), preconditions/impact/scope, the smallest safe remediation, validation status, and unresolved evidence gaps. Never include secret values or unnecessary personal data in the report.

Definition of done

The review is complete only when the material trust boundaries in scope have been assessed, findings are tied to concrete evidence, runtime claims do not exceed the environment actually exercised, high-impact unknowns are surfaced, and no conclusion depends on weakening authentication, authorization, tenant isolation, validation, TLS, rate limiting, or deployment controls.

Non-negotiable invariant

Never recommend or perform a bypass of authentication, authorization, tenant isolation, validation, encryption, rate limiting, or deployment controls to make a review easier.

An administrator token, disabled row-level security, permissive CORS, arbitrary outbound URL, logged credential, or suppressed validation is not evidence that a regular user flow is safe.

When to use

Use for:

  • a code, configuration, dependency, API, storage, database, or deployment-boundary review with security impact;
  • changes involving identity, sessions, roles, tenant/object access, secrets, untrusted input, output rendering, network fetches, logging, or CI/CD;
  • a request to map threats, review controls, or distinguish static findings from runtime or production results.

Do not use as permission to exploit third-party systems, access data outside the authorized scope, rotate or reveal secrets, or modify production. If the required environment or account is unavailable, record that boundary and stop the affected runtime check.

Start with a threat model

Before reviewing individual lines, establish:

  • assets: credentials, sessions, tenant data, personal data, business records, files, logs, build artifacts, and service credentials;
  • actors: anonymous users, authenticated users, other tenants, privileged operators, maintainers, service accounts, dependencies, and attackers;
  • entry points: HTTP routes, APIs, webhooks, jobs, queues, file uploads, imports, admin tools, scripts, and deployment pipelines;
  • trust boundaries: browser to server, tenant to tenant, user to operator, service to service, application to database, application to provider, and build to deployment;
  • security invariants: who may perform each action, what data each actor may access, what must never leave a boundary, and how failures must behave;
  • assumptions and unknowns: label them explicitly rather than treating architecture, provider behavior, or configuration as fact.

For each high-impact flow, write the abuse path in one sentence: actor, entry point, untrusted input or capability, control that should stop it, and impact if the control fails. Prioritize by impact, exploitability, exposure, and confidence in the evidence.

Evidence classes

Classify every conclusion as one of:

  • STATIC — code, configuration, tests, dependency manifests, lockfiles, generated bundles, or diff evidence;
  • CONTROLLED_RUNTIME — an authorized local, test, or sandbox flow with known identity and data scope;
  • REMOTE_RUNTIME — an authorized staging or remote flow, with environment and identity recorded;
  • PRODUCTION — an explicitly authorized production flow, with the exact path and identity recorded;
  • UNKNOWN — evidence is insufficient; state what would resolve it.

Static evidence can reveal a missing check. It cannot prove production behavior, remote provider health, or that every role and tenant is isolated.

Review workflow

Authentication

Check the server-side identity boundary, not just the client: credentials/tokens/sessions, expiration and revocation, transport, protected entry points, server-side identity derivation, recovery/MFA/CSRF/replay when applicable, service-to-service identity, webhook signatures, and least-privilege credentials.

Do not suggest disabling a check, accepting an unsigned token, trusting a client claim, or using a privileged credential to “test” authentication. If a valid test session is unavailable, the authenticated runtime check is NOT_RUN or BLOCKED_EXTERNAL, not PASS.

Authorization

Verify authorization at the server or policy boundary for every sensitive operation:

  • function-level permission;
  • object-level permission;
  • property-level permission;
  • role and privilege transitions;
  • fail-closed defaults;
  • background jobs, exports, caches, webhooks, direct object URLs, and alternate API versions.

UI hiding, route guards, disabled buttons, and client-side role checks are ergonomics, not authorization.

Tenant and object isolation

Where a tenant/workspace model exists, derive tenant context from verified server-side identity and membership. Scope reads, writes, searches, exports, files, caches, jobs, notifications, and realtime subscriptions to the authorized tenant and object. Review alternate lookup paths, bulk operations, storage rules, restore/import flows, errors, counts, logs, backups, and generated artifacts.

Use dedicated test identities and synthetic records for cross-tenant negative checks. Never use another person’s data or an administrator path as proof.

Secrets and sensitive data

Search for exposure in source, authorized history, configuration, logs, error payloads, client bundles, artifacts, screenshots, fixtures, and dependency metadata without printing values. Report the secret type, location, and exposure class — not the value.

Input and output handling

Trace untrusted data from each entry point to storage, queries, commands, templates, redirects, network clients, and responses. Check schema/type/size validation, parameterization, output encoding, file upload boundaries, path traversal, error disclosure, parser differentials, open redirects, and other context-relevant injection surfaces.

Validation is not a substitute for parameterization or contextual output encoding. Escaping is not a substitute for authorization.

SSRF and outbound requests

For user-influenced URLs, callbacks, imports, previews, webhooks, or redirects: use strict scheme/host policy, validate resolved destinations, account for redirects and private/link-local ranges, enforce timeouts/size/content/redirect limits, and prevent credentials or internal headers from crossing to untrusted destinations.

Do not “fix” SSRF by allowing every URL, disabling certificate validation, routing through a privileged proxy, or accepting arbitrary redirects.

Logging and observability

Security events should be attributable and useful without becoming an exfiltration path. Do not log tokens, passwords, session identifiers, private keys, full personal data, or sensitive payloads. Structure user-controlled log fields and keep correlation identifiers from becoming authorization capabilities.

Dependencies and supply chain

Inspect manifests, lockfiles, registries, build scripts, plugins, generated code, update policy, install scripts, artifact provenance, and CI permissions. A clean scanner is not proof of application authorization or runtime safety.

Deployment boundaries

Review environment/project separation, service-account privilege, ingress/egress, CORS, CSRF, security headers, TLS, debug settings, public/server-only config, CI/CD triggers, secret scopes, migrations, storage permissions, queues, caches, workers, previews, staging, and production differences.

Do not deploy, change production policy, widen network access, disable protections, or apply a migration as part of a review unless that exact action is explicitly authorized.

Findings format

For each finding, record:

  • severity and confidence, with the reason for both;
  • asset, actor, entry point, trust boundary, and abuse path;
  • evidence class and exact file/symbol/configuration boundary/test/authorized runtime observation;
  • preconditions, impact, affected scope, and whether exploitability is demonstrated or inferred;
  • smallest safe remediation, preserving existing authorization and privacy boundaries;
  • validation command or test, expected result, actual status, and remaining limits.

Use PASS, FAIL, NOT_RUN, or BLOCKED_EXTERNAL for validation status. Do not call a control effective when its required evidence was unavailable.

Safe verification boundaries

  • use synthetic data and dedicated accounts for runtime checks;
  • test both allowed and denied paths without bypassing the control being reviewed;
  • prefer read-only, reversible, rate-bounded probes in an authorized environment;
  • stop before destructive actions, privilege changes, cross-tenant data access, exploit payloads against third parties, or production mutations;
  • sanitize output and retain only the minimum evidence needed to reproduce the reasoning;
  • if a required session, provider, network, permission, or deployment artifact is unavailable, classify the gap honestly.

Red flags: reject the shortcut

  • “Use an admin token to prove the regular user path.”
  • “Disable RLS, authorization, TLS, validation, or rate limiting temporarily.”
  • “Allow all origins or all URLs for now.”
  • “Log the token or full payload so we can see what happened.”
  • “The UI hides it, so authorization is covered.”
  • “The static scan is clean, so production is secure.”
  • “A local anonymous request proves the authenticated route.”
  • “Upgrade everything” without a bounded dependency finding and regression plan.

Reusable checklist

  • Assets, actors, entry points, trust boundaries, and invariants are explicit.
  • Authentication and server-side authorization were reviewed separately.
  • Object, property, function, and tenant isolation were traced across alternate paths.
  • Secrets and sensitive data were checked without exposing values.
  • Input validation, output encoding, injection, upload, and error paths were reviewed.
  • SSRF and outbound-request restrictions were reviewed where applicable.
  • Logging and observability avoid sensitive data and log injection.
  • Dependencies, lockfiles, build steps, and deployment boundaries were reviewed.
  • Static, controlled runtime, remote, and production evidence are separated.
  • Every required check is PASS, FAIL, NOT_RUN, or BLOCKED_EXTERNAL.
  • No bypass, unauthorized access, production mutation, or secret exposure was recommended.

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.