https://github.com/semgrep/skills
A collection of skills for AI coding agents from Semgrep
https://github.com/semgrep/skills
agents claude-code security skills
Last synced: 4 months ago
JSON representation
A collection of skills for AI coding agents from Semgrep
- Host: GitHub
- URL: https://github.com/semgrep/skills
- Owner: semgrep
- Created: 2026-01-15T04:50:25.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2026-01-24T08:52:26.000Z (5 months ago)
- Last Synced: 2026-02-04T08:53:22.487Z (5 months ago)
- Topics: agents, claude-code, security, skills
- Language: JavaScript
- Homepage: https://semgrep.dev
- Size: 2.12 MB
- Stars: 8
- Watchers: 2
- Forks: 2
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- Agents: AGENTS.md
Awesome Lists containing this project
- awesome-ai-security - Semgrep Skills - _Official Semgrep skills for Claude Code and other AI coding assistants. Provides security scanning, code analysis, and vulnerability detection capabilities directly in your AI-assisted development workflow._ (Agentic AI Security Skills / Data & Supply Chain Security)
README
# Agent Skills [Beta]
A collection of skills for AI coding agents. Skills are packaged instructions and scripts that extend agent capabilities. This should be considered beta-level software; it's primarily generated by transforming open-source Semgrep rules into skill format.
Skills follow the [Agent Skills](https://agentskills.io/) format.
## Installation
```bash
npx skills add semgrep/skills
```
## Available Skills
### code-security
Comprehensive code security guidelines from Semgrep Engineering covering OWASP Top 10, infrastructure security, and secure coding best practices across 15+ languages.
**Use when:**
- Writing new code
- Reviewing code for security vulnerabilities
- Asking about secure coding practices
- Configuring cloud infrastructure (Terraform, Kubernetes, Docker)
**Categories covered:**
| Impact | Category | Description |
|--------|----------|-------------|
| **Critical** | SQL Injection | Parameterized queries, ORM safety |
| **Critical** | Command Injection | Shell command safety, input validation |
| **Critical** | Cross-Site Scripting (XSS) | Output encoding, DOM safety |
| **Critical** | XML External Entity (XXE) | XML parser configuration |
| **Critical** | Path Traversal | File path validation |
| **Critical** | Insecure Deserialization | Safe deserialization patterns |
| **Critical** | Code Injection | Eval safety, template injection |
| **Critical** | Hardcoded Secrets | Environment variables, secret management |
| **Critical** | Memory Safety | Buffer overflows, use-after-free (C/C++) |
| **High** | Insecure Cryptography | Strong hashing (SHA-256+), encryption (AES) |
| **High** | Insecure Transport | HTTPS, certificate validation, TLS |
| **High** | Server-Side Request Forgery | URL validation, allowlists |
| **High** | JWT Authentication | Signature verification, algorithm safety |
| **High** | Cross-Site Request Forgery | CSRF tokens, SameSite cookies |
| **High** | Prototype Pollution | Object key validation (JavaScript) |
| **High** | Unsafe Functions | Dangerous function alternatives |
| **High** | Terraform AWS | S3, IAM, EC2, RDS security |
| **High** | Terraform Azure | Storage, App Service, Key Vault |
| **High** | Terraform GCP | GCS, GCE, GKE, IAM |
| **High** | Kubernetes | Pod security, RBAC, secrets |
| **High** | Docker | Non-root containers, image pinning |
| **High** | GitHub Actions | Script injection, action pinning |
| **Medium** | Regex DoS | Catastrophic backtracking prevention |
| **Medium** | Race Conditions | TOCTOU, secure temp files |
| **Medium** | Code Correctness | Common bugs, type errors |
| **Low** | Best Practices | Code quality patterns |
| **Low** | Performance | Efficiency anti-patterns |
| **Low** | Maintainability | Code organization |
**Languages:** Python, JavaScript/TypeScript, Java, Go, Ruby, PHP, C/C++, C#, Scala, Kotlin, Rust, HCL (Terraform), YAML (Kubernetes)
---
### llm-security
Security guidelines for LLM applications based on the OWASP Top 10 for Large Language Model Applications 2025.
**Use when:**
- Building LLM-powered applications
- Implementing RAG systems
- Securing AI/ML pipelines
- Reviewing code that interacts with language models
**Categories covered:**
| Impact | Category | Description |
|--------|----------|-------------|
| **Critical** | Prompt Injection | Input validation, content segregation, output filtering |
| **Critical** | Sensitive Information Disclosure | PII detection, permission-aware RAG |
| **Critical** | Supply Chain | Model verification, safetensors, ML-BOM |
| **Critical** | Data and Model Poisoning | Training data validation, anomaly detection |
| **Critical** | Improper Output Handling | Context-aware encoding, parameterized queries |
| **High** | Excessive Agency | Least privilege, human-in-the-loop |
| **High** | System Prompt Leakage | External guardrails, no secrets in prompts |
| **High** | Vector and Embedding Weaknesses | Permission-aware retrieval, tenant isolation |
| **High** | Misinformation | RAG, fact verification, confidence scoring |
| **High** | Unbounded Consumption | Rate limiting, budget controls |
**Frameworks:** OWASP LLM Top 10, MITRE ATLAS, NIST AI RMF
---
### semgrep
Run Semgrep static analysis scans and create custom detection rules for security vulnerabilities and bug patterns.
**Use when:**
- Running security scans with Semgrep
- Creating custom Semgrep rules
- Detecting specific vulnerability patterns
- Setting up Semgrep in CI/CD pipelines
**Capabilities:**
| Feature | Description |
|---------|-------------|
| **Quick Scans** | Run `semgrep --config auto` or use curated rulesets |
| **Rulesets** | security-audit, owasp-top-ten, cwe-top-25, trailofbits |
| **Custom Rules** | Pattern matching and taint mode for data flow analysis |
| **Test-Driven** | Write test cases first with `ruleid:` and `ok:` annotations |
| **CI/CD** | GitHub Actions integration with diff-aware scanning |
**Rule Creation Workflow:**
1. Analyze the vulnerability pattern
2. Create test cases first (test-driven development)
3. Analyze AST structure with `semgrep --dump-ast`
4. Write the rule (taint mode for injection, pattern matching for syntax)
5. Iterate until 100% tests pass
6. Optimize patterns
**When to use taint mode:** SQL injection, command injection, XSS, path traversal, SSRF - any vulnerability where untrusted data flows to a dangerous sink.
---
## Usage
Skills are automatically available once installed. The agent will use them when relevant tasks are detected.
**Examples:**
```
Review this React component for security issues
```
```
Help me implement input validation for my LLM chat endpoint
```
```
Create a Semgrep rule to detect hardcoded API keys in Python
```
## Development
### Building Skills
```bash
make install # Install dependencies
make validate # Validate all skills
make build # Build AGENTS.md for all skills
make zip # Create distribution packages
make # All of the above
```
### Single Skill Operations
```bash
make validate-skill SKILL=code-security
make build-skill SKILL=llm-security
```
## Skill Structure
Each skill contains:
- `SKILL.md` - Instructions for the agent
- `rules/` - Individual rule files (for skills with rules)
- `scripts/` - Helper scripts for automation (optional)
- `references/` - Supporting documentation (optional)
## Acknowledgments
Originally created by [@DrewDennison](https://x.com/drewdennison) at [Semgrep](https://semgrep.dev). This work was heavily inspired by Vercel's [React Best Practices](https://vercel.com/blog/introducing-react-best-practices).