Skip to content
Back to skills

Threat Model

ASecurity

Produces a threat model — purpose, deployment, trusted inputs, untrusted inputs — for a new feature or component before it's implemented. Use when writing an implementation plan for a new API endpoint, data pipeline, agent loop, or system component. Also invoke when a plan introduces new trust boundaries, handles user-supplied data, adds authentication flows, or integrates external services.

  • 20 stars
  • 0 votes
  • 0 copies
  • 5 views
  • Added September 9, 2026
securityrustgoapi

Works with

  • api

Security analysis

A100/100

Scanned September 9, 2026

npx -y skills add thejefflarson/soundcheck --skill threat-model --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Threat Model?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Threat Model
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/thejefflarson-threat-model/badge)](https://www.skillsdirectory.com/skills/thejefflarson-threat-model)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: threat-model
description: Produces a threat model — purpose, deployment, trusted inputs, untrusted inputs — for a new feature or component before it's implemented. Use when writing an implementation plan for a new API endpoint, data pipeline, agent loop, or system component. Also invoke when a plan introduces new trust boundaries, handles user-supplied data, adds authentication flows, or integrates external services.
---

# Threat Model (A06:2025)

## What this checks

This skill produces the threat-model context a developer needs
before writing the code: what is this thing, where will it run, what
inputs do we trust, what inputs do we not. It does **not** emit
findings or apply a checklist of "missing controls" — that's the
developer's job once they have the context.

Single source of truth: this skill delegates to the
`threat-modeling` subagent in `.claude/agents/threat-modeling.md`. The
subagent's JSON output is the canonical threat-model shape.

## Vulnerable patterns

This is an orchestrator skill. The agent it dispatches has no
vulnerable-pattern catalog of its own — it produces context, and
later auditors (`vulnerability-audit`, `design-review`,
`contract-audit`) use that context to find code-level issues.

## Procedure

Use the **Agent** tool to dispatch one `threat-modeling` subagent.
Pass it the plan, spec, or codebase under discussion. The subagent
returns a JSON object describing purpose, deployment, trusted
inputs, and untrusted inputs.

**Render that JSON as a Markdown report for the developer.** Do
not show the raw JSON. The report shape:

```
## Threat Model — <one-line summary derived from purpose>

**Purpose.** <purpose>

**Deployment.** <deployment>

**Trusted inputs** (the maintainer controls these; auditors should
not flag content originating here):

- <category 1>
- <category 2>
- ...

**Untrusted inputs** (cross a trust boundary; every one needs an
explicit handling step in the plan — validation, rate limit,
authentication, etc.):

- <category 1>
- <category 2>
- ...

---

*Use this as the design checklist for what your plan must address.
The skill produced context; deciding which controls to add is
yours.*
```

The closing line is intentional — this skill does not enforce
specific controls or emit findings. It surfaces the trust-boundary
picture; the developer decides what to add (auth on new endpoints,
rate limits on user-facing surface, validation on external-service
responses, …).

## Verification

- [ ] Output is a Markdown report (not raw JSON) with a `## Threat
      Model` heading
- [ ] **Purpose**, **Deployment**, **Trusted inputs**, and
      **Untrusted inputs** are each present as labeled sections
- [ ] Trusted-input and untrusted-input categories are listed
      explicitly (one bullet per category)
- [ ] The report describes the system; it does NOT list "missing
      controls", recommend specific mitigations, or emit findings —
      that work belongs to `design-review` or to the developer's
      own follow-up

## References

- CWE-693 ([Protection Mechanism Failure](https://cwe.mitre.org/data/definitions/693.html))
- CWE-657 ([Violation of Secure Design Principles](https://cwe.mitre.org/data/definitions/657.html))
- [OWASP A06:2025 Insecure Design](https://owasp.org/Top10/A06_2021-Insecure_Design/)

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.