Source profileQuality 87/100

martinholovsky/SOTA-skills/skills/sota-threat-modeling/SKILL.md

sota-threat-modeling

State-of-the-art threat modeling for both designing new systems and auditing existing ones. Use when designing a feature, service, integration, or architecture that touches untrusted input, new trust boundaries, sensitive data, or third-party dependencies (BUILD mode), and when reviewing, auditing, or pen-test-scoping an existing codebase to reconstruct its implicit threat model and find gaps (AUDIT mode). Not for code-level vulnerability review — use sota-code-security. Trigger keywords: threat

Source repository stars
10
Declared platforms
0
Static risk flags
0
Last source update
2026-08-05
Source checked
2026-08-05

Decision brief

What it does—and where it fits

State-of-the-art threat modeling for both designing new systems and auditing existing ones. Not for code-level vulnerability review — use sota-code-security.

Best for

  • What are we working on? (decompose: DFD, trust boundaries, assets, actors)
  • What can go wrong? (enumerate: STRIDE/LINDDUN per element, catalogs, attack trees)
  • What are we going to do about it? (treat: mitigate/accept/transfer/avoid, map to requirements and tests)

Not for

  • Tasks that require unconfirmed production actions or broad system permissions.
  • Environments where the pinned source and install steps cannot be inspected.

Compatibility matrix

Platform support, with evidence labels

PlatformStatusEvidenceWhat to check
CodexNot declaredNo explicit evidencePortability before use
Claude CodeNot declaredNo explicit evidencePortability before use
CursorNot declaredNo explicit evidencePortability before use
Gemini CLINot declaredNo explicit evidencePortability before use
Open the compatibility checker

Installation

Inspect first. Install second.

The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.

Source-detected install commandSource
npx skills add https://github.com/martinholovsky/SOTA-skills --skill "skills/sota-threat-modeling"
Safe inspection promptEditorial

Inspect the Agent Skill "sota-threat-modeling" from https://github.com/martinholovsky/SOTA-skills/blob/7c8ae3e03ba5c8ec3292c581d92d458035240f4c/skills/sota-threat-modeling/SKILL.md at commit 7c8ae3e03ba5c8ec3292c581d92d458035240f4c. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.

Workflow

What the source asks the agent to do

  1. 01

    Workflow

    1. Scope the delta. Model what is new or changed, not the whole system. List new entry points, new data classes, new dependencies, new actors. 2. Draw the DFD as text/mermaid (see rules/02). Mark trust boundaries explicitly. If you cannot draw a boundary, you do not understand t…

    Scope the delta. Model what is new or changed, not the whole system.Draw the DFD as text/mermaid (see rules/02). Mark trust boundariesPick the methodology (see rules/01): STRIDE-per-interaction by
  2. 02

    Purpose

    Threat modeling answers Shostack's four questions with engineering rigor: 1. What are we working on? (decompose: DFD, trust boundaries, assets, actors) 2. What can go wrong? (enumerate: STRIDE/LINDDUN per element, catalogs, attack trees) 3. What are we going to do about it? (tre…

    What are we working on? (decompose: DFD, trust boundaries, assets, actors)What can go wrong? (enumerate: STRIDE/LINDDUN per element, catalogs, attack trees)What are we going to do about it? (treat: mitigate/accept/transfer/avoid, map to requirements and tests)
  3. 03

    BUILD Mode — Threat-Model-While-Designing

    Run this workflow whenever designing anything that crosses a trust boundary. Scale effort to risk: a 15-minute "four questions" pass for a small feature; a full STRIDE-per-interaction model for a new service or auth flow.

    Scope the delta. Model what is new or changed, not the whole system.Draw the DFD as text/mermaid (see rules/02). Mark trust boundariesPick the methodology (see rules/01): STRIDE-per-interaction by
  4. 04

    Continuous / incremental (agile, PR reviews)

    Threat model the story, not the sprint. Add a "Security notes" section to

    Threat model the story, not the sprint. Add a "Security notes" section toIn PR review, run a micro-STRIDE on the diff only: what new input enters?- Threat model the story, not the sprint. Add a "Security notes" section to design docs and PR descriptions for any change matching a re-model trigger: new dependency, new endpoint/route/queue/cron/webhook, new trust bo…
  5. 05

    AUDIT Mode — Reconstructing a Threat Model from Code

    Use when handed an existing system with no (trustworthy) threat model. Goal: rebuild the implicit model from artifacts, then diff intended vs. actual controls. Full procedure in rules/06.

    Inventory entry points from code (see rules/02 §extraction): routes,Reconstruct the DFD from the inventory: processes, stores, externalIdentify assets and actors from schemas, secrets handling, and config.

Permission review

Static risk signals and limitations

No configured static risk pattern was detected

This is not proof of safety. Runtime behavior, indirect dependencies, and hidden external systems are outside the static scan.

Evidence record

Why each signal appears

EvidenceSourceComputedTestedEditorial
SignalValueEvidence typeMeaning
Quality score87/100ComputedDocumentation, specificity, maintenance, and trust rules
Repository stars10SourceRepository attention, not individual Skill quality
Compatibility0 platformsSourceDeclared in the catalog source record
Usage guideautomated source guideEditorialGenerated or reviewed according to the visible evidence level

Pinned source

Provenance and original SKILL.md

Repository
martinholovsky/SOTA-skills
Skill path
skills/sota-threat-modeling/SKILL.md
Commit
7c8ae3e03ba5c8ec3292c581d92d458035240f4c
License
CC-BY-4.0
Collected
2026-08-05
Default branch
main
View the original SKILL.md

SOTA Threat Modeling

Purpose

Threat modeling answers Shostack's four questions with engineering rigor:

  1. What are we working on? (decompose: DFD, trust boundaries, assets, actors)
  2. What can go wrong? (enumerate: STRIDE/LINDDUN per element, catalogs, attack trees)
  3. What are we going to do about it? (treat: mitigate/accept/transfer/avoid, map to requirements and tests)
  4. Did we do a good job? (verify: abuse-case tests, residual risk review, re-model triggers)

This skill operationalizes those questions in two modes. Never produce a threat model that is only prose — every threat must land as a tracked requirement, a test, or an explicitly accepted risk with an owner.

BUILD Mode — Threat-Model-While-Designing

Run this workflow whenever designing anything that crosses a trust boundary. Scale effort to risk: a 15-minute "four questions" pass for a small feature; a full STRIDE-per-interaction model for a new service or auth flow.

Workflow

  1. Scope the delta. Model what is new or changed, not the whole system. List new entry points, new data classes, new dependencies, new actors.
  2. Draw the DFD as text/mermaid (see rules/02). Mark trust boundaries explicitly. If you cannot draw a boundary, you do not understand the design yet — stop and ask.
  3. Pick the methodology (see rules/01): STRIDE-per-interaction by default; add LINDDUN if personal data flows; attack trees for a single high-value asset; four-questions-only for low-risk deltas.
  4. Enumerate threats crossing each boundary using the per-component catalogs in rules/03. Write each threat as: actor → action → asset → impact. No vague entries ("hacking", "data breach").
  5. Rate and treat each threat (see rules/04): likelihood × impact matrix, then accept / mitigate / transfer / avoid. Every mitigation becomes a security requirement with an ID.
  6. Emit artifacts (see rules/05): threat model doc, security requirements backlog entries, abuse cases as test stubs, and re-modeling triggers.
  7. Wire into delivery. Reference requirement IDs in the design doc, tickets, and PR descriptions. A threat without a tracked artifact does not exist.

Continuous / incremental (agile, PR reviews)

  • Threat model the story, not the sprint. Add a "Security notes" section to design docs and PR descriptions for any change matching a re-model trigger: new dependency, new endpoint/route/queue/cron/webhook, new trust boundary, new data class, auth/authz change, file/deserialization handling.
  • In PR review, run a micro-STRIDE on the diff only: what new input enters? whose privilege executes it? what does it write or call? Takes 5 minutes; catches the majority of design-level regressions.

AUDIT Mode — Reconstructing a Threat Model from Code

Use when handed an existing system with no (trustworthy) threat model. Goal: rebuild the implicit model from artifacts, then diff intended vs. actual controls. Full procedure in rules/06.

Workflow

  1. Inventory entry points from code (see rules/02 §extraction): routes, queue consumers, cron jobs, webhooks, third-party callbacks, CLI/admin tools, file uploads, IaC-exposed ports.
  2. Reconstruct the DFD from the inventory: processes, stores, external entities, flows; infer trust boundaries from network topology, authn checkpoints, and IAM policies.
  3. Identify assets and actors from schemas, secrets handling, and config.
  4. Run the catalogs (rules/03) against each component; for every catalog item record: control present / absent / partial, with file:line evidence.
  5. Gap analysis: rank absent/partial controls by exploitability × blast radius; distinguish "missing control" from "missing defense-in-depth".
  6. Report findings in the standard format below.

Severity conventions

SeverityDefinition
CriticalRemotely exploitable now, by an unauthenticated or low-priv actor, leading to full compromise of a key asset (RCE, auth bypass, mass data exfil). Fix before anything else ships.
HighExploitable with realistic preconditions (one valid account, one misconfig, MitM position) compromising a key asset; or a Critical with a single weak mitigating layer. Fix this sprint.
MediumRequires chaining, elevated access, or unusual conditions; or impacts a secondary asset; or defense-in-depth gap on a Critical path. Schedule.
LowHardening, hygiene, info disclosure of low-value data, theoretical with strong existing controls. Backlog.

Severity = exploitability × impact in this deployment context — never copy a CVE/CVSS base score without environmental adjustment (see rules/04).

Finding format (every finding, no exceptions)

[SEV] TITLE (component, STRIDE/LINDDUN class)
Location: path/to/file.py:123 (and IaC/config refs)
Threat: <actor> can <action> via <vector> because <missing/weak control>,
        impacting <asset> (<C/I/A/privacy impact>).
Evidence: code excerpt or config line proving the gap.
Recommendation: specific control + where it goes; map to requirement ID.
Residual risk if accepted: one sentence.

Rules Index

FileRead this when...
rules/01-methodologies.mdChoosing between STRIDE, LINDDUN, PASTA, attack trees, kill chains; deciding lightweight vs. heavyweight; setting up continuous/PR-level threat modeling.
rules/02-decomposition.mdDrawing DFDs in mermaid, defining trust boundaries, listing entry points/assets/actors/privilege levels; extracting all of these from an existing codebase.
rules/03-threat-catalogs.mdEnumerating threats for a specific component: web frontend, API, database, message queue, file storage, CI/CD, mobile, LLM agent/tool-use, cloud/IAM.
rules/04-risk-rating-treatment.mdRating threats (DREAD pitfalls, CVSS usage, L×I matrices), choosing accept/mitigate/transfer/avoid, mapping mitigations to requirements and tests, documenting residual risk.
rules/05-outputs-operationalization.mdWriting the threat model document, building the security requirements backlog, turning abuse cases into tests, keeping the model alive (re-model triggers).
rules/06-audit-reconstruction.mdAuditing an existing system: reconstructing the model from code, control-presence matrix, gap analysis, severity calibration, reporting.

Load only the files you need; rules/02 + rules/03 cover 80% of day-to-day work.

Top-10 Non-Negotiables

  1. No model without a diagram. Every threat model includes a DFD (mermaid or ASCII) with explicit trust boundaries. Prose-only models hide boundary confusion.
  2. Threats are sentences, not nouns. Actor → action → asset → impact. "SQL injection" is a vector; "anonymous user exfiltrates the orders table via unparameterized search query" is a threat.
  3. Every entry point gets enumerated — including queues, cron, webhooks, callbacks, admin tooling, and CI/CD. HTTP routes are never the whole attack surface.
  4. Trust boundary crossings drive enumeration. Apply STRIDE per interaction at each crossing; data inside one boundary at one privilege level rarely needs the full treatment.
  5. Personal data ⇒ LINDDUN pass. STRIDE does not cover linkability, identifiability, or non-compliance; run a privacy pass whenever PII flows or is stored.
  6. Rate with likelihood × impact in context. Never ship raw DREAD scores or unadjusted CVSS base scores as priorities.
  7. Every threat gets a disposition. Mitigate (→ requirement ID + test), accept (→ named owner + expiry date), transfer, or avoid. "Noted" is not a disposition.
  8. Mitigations become tests. Each mitigated threat yields at least one abuse-case test (unit, integration, or rule-based check) that fails if the control regresses.
  9. LLM/agent components are first-class attack surface. Model prompt injection, tool-call abuse, excessive agency, and data exfil via outputs for any system invoking an LLM with tools or retrieved content.
  10. Models expire. Define re-model triggers (new dependency, new trust boundary, new data class, auth change) in the document itself; an undated, trigger-less threat model is treated as absent in audits.

Alternatives

Compare before choosing

Computed 976

mgiovani/cc-arsenal

team-review

Multi-agent review team: architecture, security, performance, testing, style, docs/UX, plus an adversary that cross-examines the other 6, for security-sensitive, architectural, or large PRs (15+ files) where a single-agent pass risks missing cross-cutting issues. Use for auth/payments/PII changes, schema/pattern changes, compliance sign-off, or when asked to 'get the review team on this' / 'multi-agent review' / 'thorough review before merge'. For a standard PR or a quick pre-merge check, use /r

Computed 9534

OutlineDriven/odin-claude-plugin

browser-testing

Test and debug browser code with Chrome DevTools MCP. Use when building or debugging browser UI, inspecting the DOM, capturing console errors, analyzing network requests, or verifying visual output.

Computed 9381,689

addyosmani/agent-skills

browser-testing-with-devtools

Tests in real browsers via Chrome DevTools MCP. Use when building or debugging anything that runs in a browser. Use when you need to inspect the DOM, capture console errors, analyze network requests, profile performance, or verify visual output with real runtime data. Requires the chrome-devtools MCP server to be configured.

Computed 9239,936

vercel-labs/agent-browser

dogfood

Systematically explore and test a web application to find bugs, UX issues, and other problems. Use when asked to "dogfood", "QA", "exploratory test", "find issues", "bug hunt", "test this app/site/platform", or review the quality of a web application. Produces a structured report with full reproduction evidence -- step-by-step screenshots, repro videos, and detailed repro steps for every issue -- so findings can be handed directly to the responsible teams.