.cursor/skills/security-reviewer/SKILL.md
Parent security skill (workspace-wide): OWASP-oriented controls, secrets, deps, CI/Docker, auth, logging. Child skill: owasp-checklist (Spring/Java depth). Load this first whenever security-review rule or /cmd-review-project-security applies.
npx skillsauth add BhumitThakkar/cursor-kit security-reviewerInstall 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.
| Layer | Skill | Role |
| --- | --- | --- |
| L0 — Root | This file (security-reviewer) | Scope, principles, secrets/Git/AI, deps, Docker/CI, cross-cutting OWASP list, output shape for /cmd-review-project-security. Always load first when any security pass runs. |
| L1 — Spring/Java specialization | owasp-checklist | Concrete Spring Boot / Thymeleaf patterns, A01–A10 tables, file-level checks. Auto-load in the same session when the task or workspace touches Java/Spring (see triggers below). |
Resolution: L1 never overrides L0 on secrets, supply chain, or “do not paste credentials”. L0 does not duplicate L1’s Spring code patterns — delegate detail to L1. If a finding fits both, cite L0 category in summary and L1 checklist id (e.g. A03) in detail.
owasp-checklist after this skillTreat as automatic (same turn / same review) if any of:
pom.xml, build.gradle, *.java, or Spring application*.properties / application*.yml / application*.yamlsecurity-auditorIf none apply (e.g. pure Node or static site), finish the pass with L0 only and note “Spring checklist N/A”.
/cmd-review-project-security or asks for security review, hardening, OWASP, pen-test prep, or compliance-oriented checks.Pantheon: After L0, apply L1 owasp-checklist when triggers above match. For gate-style verdict tables, align with security-auditor output format when Zeus delegates.
spring-boot-patterns for Log4j2 hygiene).* with credentials.dangerouslySetInnerHTML / raw HTML from untrusted input.The security reviewer does not magically hide files from Git or from the AI. If a secret is in the workspace and indexed, models can see it when those paths are in context. Your job is to detect, recommend migration, and never reproduce secret values in outputs.
spring.datasource.password=${DB_PASSWORD} (and similar) with values supplied only via environment, SPRING_APPLICATION_JSON, Docker/K8s secrets, or a gitignored application-local.properties / application-{profile}.properties that is never committed..pem, .key), OAuth client secrets, Google service account JSON.application.properties.example or *.env.example with empty or placeholder values and comments; real files stay local or in a vault..gitignore: .env, .env.*, application-local.properties, *.pem, secrets/, downloaded credential JSON.gitleaks, trufflehog, or GitHub secret scanning + push protection; fail builds on detected secrets.git filter-repo or platform tools to purge history—ignoring the file going forward is not enough..cursorignore (project root): list paths that must stay out of default indexing/context (e.g. **/application-local.properties, .env, **/secrets/**). This reduces accidental inclusion in chat/composer; it is not a substitute for removing secrets from disk or Git.security-review/improvements-pending.md and code review tables: write “DB password in application.properties (rotate; move to env)” — never the actual password.*.properties, *.yml, docker-compose*.yml, shell scripts, or frontend env..gitignore (and optionally .cursorignore) cover local secret files.admin / dev-only Basic Auth), they are not acceptable for production without documented exception.When reviewing code, list findings with: severity (critical/high/medium/low), location, exploitability, and concrete fix. Call out assumptions when context is missing.
This file is static. Periodically align with:
development
Read-only checklist for Jakarta Bean Validation on Spring API models (DTOs, request bodies). Produces a markdown report with PASS/FAIL; does not modify source files.
data-ai
Thymeleaf + Spring Boot UI conventions, fragment patterns, form handling, and accessibility standards for this project.
development
QA-oriented playbook for verifying test coverage on new or changed code (JaCoCo / Maven Gradle) against project quality gate expectations. Read-only analysis instructions unless user authorizes runs.
testing
Maintain AGENTS.md roster and disabled.txt without deleting agent files without explicit approval.