AGENT
Use when designing a new HTTP/GraphQL API or changing an existing one — modeling resources, defining endpoint contracts, choosing status codes, pagination,…
STRIDE is a threat-classification model created at Microsoft. Each letter names a category of threat defined by the security property it violates. Walking every element of a system against all six categories gives you systematic coverage instead of relying on whatever attacks
$ npx -y skills add vanara-agents/skills --agent claude-codeHow it fires
How this agent gets triggered: by you, by Claude, or both.
Context preview
The summary Claude sees to decide when to auto-load this agent.
STRIDE is a threat-classification model created at Microsoft. Each letter names a category of threat defined by the security property it violates. Walking every element of a system against all six categories gives you systematic coverage instead of relying on whatever attacks
STRIDE is a threat-classification model created at Microsoft. Each letter names a category of threat defined by the security property it violates. Walking every element of a system against all six categories gives you systematic coverage instead of relying on whatever attacks you happen to think of.
| Category | Property violated | The attacker's goal | Example | |---|---|---|---| | **Spoofing** | Authentication | Pretend to be someone/something else | Forged JWT, stolen session, impersonated service identity | | **Tampering** | Integrity | Modify data or code | Altered request body, poisoned cache, modified DB row | | **Repudiation** | Non-repudiation | Deny having done something | No audit trail for a refund; logs are editable | | **Information disclosure** | Confidentiality | Read data they shouldn't | PII in logs, verbose errors, IDOR exposing other users' records | | **Denial of service** | Availability | Make the system unavailable | Connection flood, expensive query amplification, lock exhaustion | | **Elevation of privilege** | Authorization | Gain rights they shouldn't have | Missing server-side authz check, path traversal, sandbox escape |
Not every category applies to every element type. Use this mapping so you don't waste effort (and don't miss the relevant ones):
| Element type | S | T | R | I | D | E | |---|:-:|:-:|:-:|:-:|:-:|:-:| | External entity (user, third party) | ● | | ● | | | | | Process (service, function) | ● | ● | ● | ● | ● | ● | | Data store (DB, cache, queue, files) | | ● | ● | ● | ● | | | Data flow (network call, IPC) | | ● | | ● | ● | |
A *process* is the most exposed element — all six categories apply. A *data store* can't be "spoofed" (it has no identity to forge) but can be tampered with, leak data, be DoS'd, and may need to defend against repudiation if it holds audit records.
For each element on the diagram, ask the questions for its applicable categories:
**Spoofing**
**Tampering**
**Repudiation**
**Information disclosure**
**Denial of service**
**Elevation of privilege**
STRIDE *finds and classifies* threats; it does not rate them. Pair it with a rating scheme — this package uses a lightweight Likelihood × Impact score (see `AGENT.md` → Risk rating). DREAD (Damage, Reproducibility, Exploitability, Affected users, Discoverability) is an alternative; it is more granular but harder to apply consistently. For most design-time models, Likelihood × Impact is enough and more repeatable across reviewers.
🐒 Free agents, skills & packs for Claude Code One subscription. An army of Claude Code agents. 30 production-grade agents, skills, and packs for Claude Code — free, Apache-2.0, install with one command.
Repo: vanara-agents/skills
Use when designing a new HTTP/GraphQL API or changing an existing one — modeling resources, defining endpoint contracts, choosing status codes, pagination,…
This shows how the api-designer agent reviews a flawed draft. Findings are severity-ranked so the implementer fixes the contract-breakers first. Severity…
The contract is the deliverable. Express it as an **OpenAPI 3.1** document so it is human-readable *and* machine-checkable. This reference covers how to…
Run through this before declaring an API contract done. It is ordered the way you should *design*: resources first, cross-cutting rules last. Every box is a…
APIs are forever once published: a consumer you've never met may depend on any field you expose. Design so you can **add without breaking**, and version…
Copy-paste templates for leaving review comments. Keep each comment to one finding: an anchor, the problem, and the fix.