Agent Skills [Beta]

February 5, 2026 ยท View on GitHub

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 format.

Installation

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:

ImpactCategoryDescription
CriticalSQL InjectionParameterized queries, ORM safety
CriticalCommand InjectionShell command safety, input validation
CriticalCross-Site Scripting (XSS)Output encoding, DOM safety
CriticalXML External Entity (XXE)XML parser configuration
CriticalPath TraversalFile path validation
CriticalInsecure DeserializationSafe deserialization patterns
CriticalCode InjectionEval safety, template injection
CriticalHardcoded SecretsEnvironment variables, secret management
CriticalMemory SafetyBuffer overflows, use-after-free (C/C++)
HighInsecure CryptographyStrong hashing (SHA-256+), encryption (AES)
HighInsecure TransportHTTPS, certificate validation, TLS
HighServer-Side Request ForgeryURL validation, allowlists
HighJWT AuthenticationSignature verification, algorithm safety
HighCross-Site Request ForgeryCSRF tokens, SameSite cookies
HighPrototype PollutionObject key validation (JavaScript)
HighUnsafe FunctionsDangerous function alternatives
HighTerraform AWSS3, IAM, EC2, RDS security
HighTerraform AzureStorage, App Service, Key Vault
HighTerraform GCPGCS, GCE, GKE, IAM
HighKubernetesPod security, RBAC, secrets
HighDockerNon-root containers, image pinning
HighGitHub ActionsScript injection, action pinning
MediumRegex DoSCatastrophic backtracking prevention
MediumRace ConditionsTOCTOU, secure temp files
MediumCode CorrectnessCommon bugs, type errors
LowBest PracticesCode quality patterns
LowPerformanceEfficiency anti-patterns
LowMaintainabilityCode 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:

ImpactCategoryDescription
CriticalPrompt InjectionInput validation, content segregation, output filtering
CriticalSensitive Information DisclosurePII detection, permission-aware RAG
CriticalSupply ChainModel verification, safetensors, ML-BOM
CriticalData and Model PoisoningTraining data validation, anomaly detection
CriticalImproper Output HandlingContext-aware encoding, parameterized queries
HighExcessive AgencyLeast privilege, human-in-the-loop
HighSystem Prompt LeakageExternal guardrails, no secrets in prompts
HighVector and Embedding WeaknessesPermission-aware retrieval, tenant isolation
HighMisinformationRAG, fact verification, confidence scoring
HighUnbounded ConsumptionRate 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:

FeatureDescription
Quick ScansRun semgrep --config auto or use curated rulesets
Rulesetssecurity-audit, owasp-top-ten, cwe-top-25, trailofbits
Custom RulesPattern matching and taint mode for data flow analysis
Test-DrivenWrite test cases first with ruleid: and ok: annotations
CI/CDGitHub 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

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

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 at Semgrep. This work was heavily inspired by Vercel's React Best Practices.