claude/skills/security-review/SKILL.md
--- name: security-review description: Security-focused code review for identifying high-confidence vulnerabilities in code changes. Use when working with: (1) Reviewing PR or branch changes for security issues, (2) Identifying injection, auth bypass, crypto, and data exposure vulnerabilities, (3) Conducting SAST-style analysis with false positive filtering, (4) Pre-merge security audits on any codebase. --- # Security Review Comprehensive security-focused code review methodology for identifyi
npx skillsauth add dededecline/dotfiles claude/skills/security-reviewInstall 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.
Comprehensive security-focused code review methodology for identifying high-confidence vulnerabilities in code changes. Implements multi-phase analysis with rigorous false positive filtering.
Before beginning analysis, collect the following information:
Run these commands to understand the scope of changes:
# Current status
git status
# Files modified on this branch vs origin
git diff --name-only origin/HEAD...
# Commit history for this branch
git log --no-decorate origin/HEAD...
# Full diff content (the primary input for review)
git diff --merge-base origin/HEAD
If the branch has no remote tracking or origin/HEAD is not set, adapt accordingly (e.g., diff against main or master).
Use file search and reading tools to:
Perform a security-focused code review to identify HIGH-CONFIDENCE security vulnerabilities that could have real exploitation potential. This is not a general code review -- focus ONLY on security implications newly added by the changes under review. Do not comment on existing security concerns.
Input Validation Vulnerabilities:
Authentication & Authorization Issues:
Crypto & Secrets Management:
Injection & Code Execution:
Data Exposure:
Use file search and reading tools to:
Execute the analysis in 3 discrete steps:
Sub-task: Vulnerability Identification - Use repository exploration tools to understand the codebase context, then analyze the changes for security implications. Apply all security categories, methodology phases, and severity/confidence guidelines described in this skill.
Sub-tasks: False Positive Filtering (parallel) - For each vulnerability identified in step 1, create a separate sub-task to evaluate it against the false positive filtering rules below. Launch these sub-tasks in parallel.
Confidence Threshold - Filter out any vulnerabilities where the false-positive filtering sub-task reported a confidence score less than 8.
Output findings in markdown. Each finding must contain the file, line number, severity, category (e.g., sql_injection or xss), description, exploit scenario, and fix recommendation.
Example:
# Vuln 1: XSS: `foo.py:42`
* Severity: High
* Description: User input from `username` parameter is directly interpolated into HTML without escaping, allowing reflected XSS attacks
* Exploit Scenario: Attacker crafts URL like /bar?q=<script>alert(document.cookie)</script> to execute JavaScript in victim's browser, enabling session hijacking or data theft
* Recommendation: Use Flask's escape() function or Jinja2 templates with auto-escaping enabled for all user inputs rendered in HTML
Focus on HIGH and MEDIUM findings only. Better to miss some theoretical issues than flood the report with false positives. Each finding should be something a security engineer would confidently raise in a PR review.
These rules are applied during step 2 (per-finding sub-tasks). Do not use bash to reproduce vulnerabilities -- read the code to determine if it is a real vulnerability. Do not write to any files.
Automatically exclude findings matching these patterns:
For remaining findings, assess:
For each finding, assign a confidence score from 1-10:
The final reply must contain only the markdown report with findings that passed all filtering (confidence >= 8). If no vulnerabilities meet the threshold, state that the review found no high-confidence security issues.
development
Use when building Python 3.11+ applications requiring type safety, async programming, or robust error handling. Generates type-annotated Python code, configures mypy in strict mode, writes pytest test suites with fixtures and mocking, and validates code with black and ruff. Invoke for type hints, async/await patterns, dataclasses, dependency injection, logging configuration, and structured error handling.
development
Generate PDFs from Markdown on macOS using pandoc + BasicTeX (xelatex). Use when the user asks to convert a markdown file to PDF, "export to PDF", "make a PDF of this doc", render markdown as a printable/shareable document, or any markdown→PDF conversion. Handles Unicode characters (arrows ↔, →, em-dashes —), GitHub-style lists without preceding blank lines, and ensures bullets render correctly.
tools
--- name: gh-cli description: GitHub CLI (gh) for debugging GitHub Actions and viewing releases. Use when working with: (1) GitHub Actions - view runs, check failures, download logs, re-run workflows, watch builds, (2) Releases - view, list, and download release assets. Supports JSON output for scripting and automation. --- # GitHub CLI (gh) Skill Focused guide to using GitHub CLI for debugging GitHub Actions and accessing release information. ## Authentication ```bash # Login with browser g
tools
--- name: 1password description: Complete 1Password CLI (op) for managing secrets, credentials, and secure storage. Use when working with: (1) Retrieving passwords, API keys, and secrets from vaults, (2) Managing items, documents, and secure notes, (3) Injecting secrets into environment variables and config files, (4) Automating credential rotation and management, (5) Accessing SSH keys and certificates, (6) Vault and item CRUD operations, (7) Secret references for CI/CD pipelines, (8) User and