Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/joaovicdev/claude-owasp-10/secure-codingnpx skills add joaovicdev/claude-owasp-10 --skill secure-codinggit clone --depth 1 https://github.com/joaovicdev/claude-owasp-10What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00090 | $0.01436 |
| Opus 5 | $0.00045 | $0.00718 |
| Sonnet 5 | $0.00018 | $0.00287 |
| Haiku 4.5 | $0.00009 | $0.00144 |
Grade A, and why
secure-coding scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 81 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Secure coding — OWASP Top 10:2025
These files are the single source of truth for security rules in every project where this skill is installed. Consumers — a review skill, a CI check, a human — read them and cite their ids; they never restate the material. If guidance here conflicts with a memory or a habit, this wins.
The core (owasp/) is language-agnostic on purpose — it is installed in
NestJS, Laravel, Spring Boot and other backends. It uses neutral pseudocode and
neutral vocabulary (route handler, ORM, filter, DI container). Framework idiom
lives only in stacks/.
How to use this
- Detect the stack once per session:
nest-cli.json→stacks/nestjs.md·artisan/composer.json→stacks/laravel.md·pom.xml/build.gradle→stacks/spring-boot.md. No match → use the core alone. That is the design, not a degraded mode. - Read the manifest rows below that match what you are about to touch. Read those files. Do not read all ten.
- If
SECURITY-NOTES.mdexists at the project root, read it — it carries that project's known-open findings and accepted risks. If it does not exist and the project has findings worth tracking,templates/SECURITY-NOTES.mdbeside this file is the blank to copy there.
Every path in this file is relative to this skill's own directory, so the same
bytes work whether the skill was installed as a plugin, committed into a
project's .claude/skills/, or linked into the user's global skills directory.
Manifest
| ID | File | Load when the change touches |
|---|---|---|
| A01:2025 | owasp/A01-broken-access-control.md |
any handler taking an id/slug/key, guards, policies, roles, permissions, tenant scoping, object lookup by user-supplied identifier; an outbound request whose URL/host/port comes from the caller (SSRF); CSRF settings on a cookie-session app |
| A02:2025 | owasp/A02-security-misconfiguration.md |
app bootstrap, CORS, security headers, TLS options, debug flags, API docs exposure, admin/actuator endpoints, default credentials |
| A03:2025 | owasp/A03-software-supply-chain-failures.md |
package*.json, composer.json/.lock, pom.xml, build.gradle, requirements.txt, go.mod, Dockerfile, CI workflow, any new dependency or install script |
| A04:2025 | owasp/A04-cryptographic-failures.md |
password storage, tokens, encryption, hashing, random values, TLS, key management, PII at rest or in transit |
| A05:2025 | owasp/A05-injection.md |
any query, raw SQL, ORM escape hatch, shell/exec, file path from input, LDAP/XPath/NoSQL filters, deserialization of input; template rendering and any unescaped output construct (XSS) |
| A06:2025 | owasp/A06-insecure-design.md |
a new feature's shape: workflows, state machines, limits, quotas, money, invitations, password reset, anything where the design carries the risk |
| A07:2025 | owasp/A07-authentication-failures.md |
login, logout, registration, password reset, MFA, sessions, tokens, refresh, impersonation, API keys |
| A08:2025 | owasp/A08-software-or-data-integrity-failures.md |
deserialization, auto-update, plugin loading, webhook receivers, signed payloads, CI/CD publish steps, cache/CDN keys |
| A09:2025 | owasp/A09-security-logging-and-alerting-failures.md |
loggers, interceptors, audit trails, error reporting, anything that writes request data anywhere |
| A10:2025 | owasp/A10-mishandling-of-exceptional-conditions.md |
exception filters, error handlers, catch blocks, fallback/default branches, timeouts, retries, partial failure |
| NEST | stacks/nestjs.md |
any NestJS project |
| LAR | stacks/laravel.md |
any Laravel project |
| SPR | stacks/spring-boot.md |
any Spring Boot project |
What ships with it
16 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- owasp/A01-broken-access-control.md 8.0 KB
- owasp/A02-security-misconfiguration.md 5.0 KB
- owasp/A03-software-supply-chain-failures.md 4.7 KB
- owasp/A04-cryptographic-failures.md 4.8 KB
- owasp/A05-injection.md 6.8 KB
- owasp/A06-insecure-design.md 4.7 KB
- owasp/A07-authentication-failures.md 5.3 KB
- owasp/A08-software-or-data-integrity-failures.md 5.1 KB
- owasp/A09-security-logging-and-alerting-failures.md 4.8 KB
- owasp/A10-mishandling-of-exceptional-conditions.md 4.8 KB
- stacks/_TEMPLATE.md 2.2 KB
- stacks/laravel.md 6.4 KB
- stacks/nestjs.md 8.7 KB
- stacks/spring-boot.md 6.4 KB
- templates/SECURITY-NOTES.md 1.2 KB
- TRIGGER.md 1.8 KB
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2d ago First seen · 81 lines · 90 tokens per session scan A 98b61d2f287e
secure-coding is a skill published in the GitHub repository joaovicdev/claude-owasp-10 (2 stars, last pushed 7d ago), licensed MIT. It adds 90 tokens to every session and 1,436 once invoked, about $0.0005 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
owasp-security
Implement secure coding practices following OWASP Top 10. Use when preventing security vulnerabilities, implementing authentication, securing APIs, or conducting security reviews. Triggers on OWASP, security, XSS, SQL injection, CSRF, authentication security, secure coding, vulnerability.
migrate-radix-to-base
Migrates React projects and components from Radix UI to Base UI. Use when asked to migrate from radix, move to base-ui, convert radix primitives, or switch a shadcn project's base library. Handles single components ("migrate accordion") and whole projects.
laravel-best-practices
Apply this skill whenever writing, reviewing, or refactoring Laravel PHP code. This includes creating or modifying controllers, models, migrations, form requests, policies, jobs, scheduled commands, service classes, and Eloquent queries. Triggers for N+1 and query performance issues, caching strategies, authorization…
exploiting-excessive-data-exposure-in-api
Tests APIs for excessive data exposure where endpoints return more data than the client application needs, relying on the frontend to filter sensitive fields. The tester intercepts API responses and analyzes them for leaked PII, internal identifiers, debug information, or sensitive business data that the UI does not…
performing-api-inventory-and-discovery
Performs API inventory and discovery to identify all API endpoints in an organization's environment including documented, undocumented, shadow, zombie, and deprecated APIs. The tester uses passive traffic analysis, active scanning, DNS enumeration, JavaScript analysis, and cloud resource inventory to build a…
parse-table
Parse table definition to extract module name, model name, table name, and field definitions. First step of CRUD generation.