Skip to content
Security
Skill

/threat-model-dfd

Draw a Data Flow Diagram with trust boundaries for threat modeling: external entities, processes, data stores, data flows, and the boundaries between them. Use when starting a STRIDE/PASTA threat model or documenting how data moves through a system.

From plugin
awesome-claude-security
7111 skills17 agents13 commands1 MCP
Install
$ npx -y skills add jassics/awesome-claude-security --skill threat-model-dfd --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/threat-model-dfd

Context preview

The summary Claude sees to decide when to auto-load this skill.

Draw a Data Flow Diagram with trust boundaries for threat modeling: external entities, processes, data stores, data flows, and the boundaries between them. Use when starting a STRIDE/PASTA threat model or documenting how data moves through a system.

SKILL.md

threat-model-dfd.SKILL.md
name: threat-model-dfd
description: >-
  Draw a Data Flow Diagram with trust boundaries for threat modeling: external
  entities, processes, data stores, data flows, and the boundaries between them.
  Use when starting a STRIDE/PASTA threat model or documenting how data moves
  through a system.

Goal

A DFD that a threat model can be built on: every element typed correctly and every trust boundary drawn, so STRIDE can be applied per element/flow.

Elements (use standard DFD notation)

  • **External entity** — rectangle. Actors/systems outside your control.
  • **Process** — circle/rounded box. Code that transforms data.
  • **Data store** — open-ended/parallel lines. Databases, queues, files, caches.
  • **Data flow** — arrow. Label with what data moves and the protocol.
  • **Trust boundary** — dashed box/line. Where privilege or trust level changes

(internet↔DMZ, app↔DB, tenant↔tenant, user↔kernel).

Steps

1. List actors, processes, stores, and the data that flows between them (ask the user for the architecture if not supplied). 2. Place trust boundaries wherever data crosses a privilege/trust change — these are where threats concentrate. 3. Label every flow with **data + protocol + auth** (e.g. "PII over TLS, JWT"). 4. Render: prefer the Excalidraw MCP; otherwise emit Mermaid `flowchart LR` with `subgraph` blocks for trust boundaries, plus an element/flow inventory table.

Output

  • The DFD (rendered or importable).
  • An inventory table: element · type · trust zone · sensitive data handled.
  • A list of trust-boundary crossings (the prime spots to enumerate threats next).

Notes

This pairs directly with `threat-modeling:stride` — produce the DFD first, then walk STRIDE per element and per boundary crossing.

Read more
Ships withawesome-claude-security

A Claude Code plugin marketplace for the full cybersecurity & GenAI-security lifecycle — from recon and threat modeling to detection engineering, GRC, and CISO-level strategy. A pentester knows which OWASP test bends a broken-access-control endpoint.

Get the whole plugin

Other skills on awesome-claude-security.