From epic
Maps trust boundaries, enumerates threat actors, and generates threat scenarios for attack surface analysis. Outputs a structured THREAT_MODEL.md with prioritized remediation.
How this skill is triggered — by the user, by Claude, or both
Slash command
/epic:threat-modelThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Every system has an attack surface. If you haven't identified it, you haven't secured it.
Every system has an attack surface. If you haven't identified it, you haven't secured it.
Check for .harness/engagement.md in the project root. If present, load the scope (in-scope/out-of-scope) and constraints. Skip threat modeling for explicitly out-of-scope components.
Without engagement context, proceed with full-surface analysis.
Map every boundary where data crosses a trust level:
For each boundary, document:
| Actor | Motivation | Capability | Target |
|---|---|---|---|
| Anonymous user | Exploration | Low | Public endpoints |
| Authenticated user | Data access | Medium | Own data + IDOR targets |
| Malicious insider | Data exfiltration | High | All internal systems |
| Compromised dependency | Supply chain | Variable | Build/deploy pipeline |
For each trust boundary × threat actor combination, generate:
Write THREAT_MODEL.md:
# Threat Model — {project}
## Scope
- In-scope: {from engagement.md or full codebase}
- Out-of-scope: {from engagement.md or none}
- Date: {ISO date}
## Trust Boundaries
| # | Boundary | Direction | Validation | Auth | Encryption |
|---|----------|-----------|------------|------|------------|
| 1 | ... | ... | ... | ... | ... |
## Threat Scenarios
| ID | Boundary | Actor | Vector | Impact | Likelihood | Mitigated | Gap |
|----|----------|-------|--------|--------|------------|-----------|-----|
| T1 | ... | ... | ... | ... | ... | Partial | ... |
## Priority Remediation
1. [CRITICAL] {highest risk gap}
2. [HIGH] {next gap}
3. [MEDIUM] {remaining gaps}
## Assumptions
- {list all assumptions made during analysis}
After producing the threat model, suggest:
"Run /vuln-scan to validate threat scenarios against the codebase."
| Excuse | Rebuttal | What to do instead |
|---|---|---|
| "We don't have any external-facing components" | Internal trust boundaries are attack surfaces too. Lateral movement starts inside. | Model internal boundaries with the same rigor. |
| "Threat modeling is overkill for a small project" | Small projects get breached too. The model is proportional to the codebase. | Run the process. It takes 10 minutes. A breach takes months. |
| "We already have a threat model" | Threat models expire. Every code change can invalidate assumptions. | Update the model when significant changes land. |
| "The framework handles security" | Frameworks don't model YOUR business logic threats. | Add application-layer threat scenarios on top of framework defaults. |
npx claudepluginhub epicsagas/epic-harness --plugin epic-harnessGuides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.