jerelvelarde/chalk-skills

create-threat-model

Perform STRIDE threat modeling for a system or component when the user asks to threat model, analyze security risks, or identify attack vectors

First seen Mar 18, 2026

Installation

$ npx skills add jerelvelarde/chalk-skills --skill create-threat-model

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from jerelvelarde/chalk-skills · top by installs.

npx skills add jerelvelarde/chalk-skills

Browse all from jerelvelarde/chalk-skills

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 6
License LICENSE
Default branch main
Open issues 1
Status Active

Skill metadata

Parsed from SKILL.md frontmatter.

Version1.0.0
Allowed toolsRead, Glob, Grep, Write

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 3,970 B
  • docs SUMMARY.md 170 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 7 installs

SKILL.md

Create Threat Model

Overview

Generate a STRIDE-based threat model (Microsoft) for a system or component. Identifies trust boundaries from architecture docs, analyzes each boundary for Spoofing, Tampering, Repudiation, Information Disclosure, Denial of Service, and Elevation of Privilege threats, and recommends mitigations for each identified threat.

Workflow

  1. Read architecture context -- Scan .chalk/docs/engineering/ for architecture docs, API designs, data models, and infrastructure descriptions. Check .chalk/docs/product/ for PRDs that describe the feature's intended behavior. You need to understand the system before modeling threats against it.
  1. Parse the target system -- Extract from $ARGUMENTS the system, service, or component to threat model. If unspecified, ask the user to name the scope -- threat modeling the entire system at once is too broad to be useful.
  1. Determine the next file number -- Read filenames in .chalk/docs/engineering/ to find the highest numbered file. The next number is highest + 1.
  1. Identify trust boundaries -- Map the boundaries where data or control crosses between different trust levels: client/server, service/service, internal/external, user/admin, authenticated/unauthenticated. Each boundary is a potential attack surface.
  1. Apply STRIDE at each boundary -- For each trust boundary, analyze:

- Spoofing: Can an attacker impersonate a legitimate entity? - Tampering: Can data be modified in transit or at rest? - Repudiation: Can a user deny performing an action without detection? - Information Disclosure: Can sensitive data leak to unauthorized parties? - Denial of Service: Can the system be made unavailable? - Elevation of Privilege: Can a user gain unauthorized access levels?

  1. Rate and prioritize -- For each threat, assess likelihood (low/medium/high) and impact (low/medium/high). Prioritize by risk = likelihood x impact.
  1. Recommend mitigations -- For each threat rated medium or higher, provide a specific, actionable mitigation. Reference existing controls from the architecture docs where applicable.
  1. Write the file -- Save to .chalk/docs/engineering/<n>threatmodel_<system-slug>.md.
  1. Confirm -- Share the file path and highlight the top 3 highest-risk threats that need immediate attention.

Output

  • File: .chalk/docs/engineering/<n>threatmodel_<system-slug>.md
  • Format: Plain markdown with trust boundary diagram (text-based), STRIDE analysis table, and prioritized mitigations
  • First line: # Threat Model: <System Name>

Anti-patterns

  • Boilerplate threats without system context -- "SQL injection is a risk" is generic. Tie every threat to a specific trust boundary and data flow in the actual system.
  • No mitigations -- A list of threats without mitigations is an anxiety generator, not a security tool. Every medium+ threat needs an actionable mitigation.
  • Scope too broad -- Threat modeling "the application" produces shallow results. Scope to a specific component, service, or data flow for actionable depth.
  • Missing trust boundaries -- If you only analyze the client-server boundary, you miss service-to-service, database access, third-party integrations, and admin interfaces. Map all boundaries.
  • One-time artifact -- Note that threat models should be updated when the architecture changes. Flag sections that are most likely to become stale.