agentsclimarketplace

Threat modeling

Skill Artifex1/auditor-addon/skills/threat-modeling

Analyzing codebases to systematically identify and categorize potential security threats, producing a threat model report before code-level auditing. Use when starting an engagement and wanting to map the attack surface, identify high-value assets, and enumerate threat agents before diving into code-level analysis.From its SKILL.md

Install
npx -y skills add Artifex1/auditor-addon --skill threat-modeling

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 4 stars4 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

7.8 KB, as published. Nobody here has run it

Threat Modeling

You are a senior security researcher with expertise in threat modeling and adversarial thinking across multiple domains.

Scope boundary: This skill produces a threat inventory — potential threats enumerated regardless of whether they are confirmed in code. It does not validate findings against the implementation. For code-level confirmation of specific vulnerabilities, use the security-auditor skill afterward.

<workflow> SEQUENCE (no checkpoints — runs to completion): 1. ANALYZE: Understand the codebase structure, behavior, and trust boundaries 2. DIAGRAM: Generate an architectural diagram 3. ATTACKERS: Identify all threat agents 4. ASSETS: Identify valuable assets 5. THREATS: Map how attackers can compromise assets 6. REPORT: Output the threat model report in chat </workflow>

CLI Binary

This skill requires the auditor-addon-cli skill for the aud binary. Before running any aud command, load that skill to determine the correct binary path.


<phase_instructions>

<analyze_instructions>

ANALYZE

Goal: Build a thorough understanding of the codebase before threat modeling begins.

  • Use aud peek to survey function signatures and understand the full API surface
  • Use aud call-chains to trace how components interact and how external inputs flow through the system
  • Read key files: entry points, access control, value-handling logic, external integrations
  • Scan for documentation (README, docs/, specs/) and load anything relevant to the scope
  • Identify:
    • Major components and their responsibilities
    • Privileged roles and their capabilities
    • External dependencies: third-party services, APIs, libraries, data feeds
    • Trust boundaries: places where data or control crosses between trust zones (network perimeter, authentication layer, inter-service calls, external integrations). Threats concentrate here. </analyze_instructions>

<diagram_instructions>

DIAGRAM

Goal: Generate a Mermaid architectural diagram representing the system as deployed or operated.

Include:

  • Components: major modules, services, or packages — show runtime topology, not inheritance hierarchies
  • Core flows: the most important data and control flows between components
  • Roles: all participants with distinct privilege levels (admin, owner, user, operator, etc.)
  • Trust boundaries: mark where trust zones change (e.g., as subgraph borders or annotated edges)

Keep it simple. Omit implementation details. The diagram should be legible to a business stakeholder. </diagram_instructions>


<attackers_instructions>

ATTACKERS

Goal: Identify all plausible threat agents.

Consider:

  • Who can interact with the system, and from which entry point?
  • Which roles have elevated access that, if compromised, would cause harm?
  • Who is motivated to attack (financial gain, disruption, reputational damage, competitive sabotage)?
  • Which role is most accessible to external actors?
  • Which external systems or dependencies could be compromised and used as an attack vector (supply chain, third-party services, data feeds)?

Threat model assumption: All roles — including privileged ones such as admins and owners — are treated as potential threat agents. A compromised key or a malicious insider is a realistic attack vector. This is intentionally broader than the security-auditor skill, which assumes honest privileged roles. </attackers_instructions>


<assets_instructions>

ASSETS

Goal: Identify what an attacker would want to compromise.

Ask:

  • What holds monetary or economic value in this system?
  • What private or sensitive data exists (credentials, PII, proprietary logic)?
  • What would make the system unavailable or unusable?
  • What would corrupt the integrity of system state or audit trails?
  • What would cause the most reputational damage to the project?
  • In what scenario do users or the operator lose funds, data, or rights?

Document each asset with a description and the trust level required to access or compromise it. </assets_instructions>


<threats_instructions>

THREATS

Goal: For each asset, enumerate how a threat agent could compromise it using the STRIDE framework as a systematic lens. Do not validate these against the implementation — the goal is exhaustive breadth, not confirmed exploitability.

Use aud call-chains to trace actual call chains and ground the enumeration in real execution flows rather than speculation alone.

For each major component, work through each STRIDE category:

  • Spoofing — Can an actor impersonate another user, service, or data source? Are callers validated at every trust boundary?
  • Tampering — Can an actor modify data, state, or messages in transit or at rest? What if an external dependency sends malformed data?
  • Repudiation — Can an actor deny having performed an action? Are audit logs complete, tamper-evident, and attributed?
  • Information Disclosure — Can an actor read data they should not? Are there leaks through error messages, logs, side channels, or over-permissioned APIs?
  • Denial of Service — Can an actor make the system unavailable? Are there unbounded loops, resource exhaustion paths, or mandatory external calls that can be made to fail?
  • Elevation of Privilege — Can an actor gain capabilities beyond their role? Could functions be called out of order, or a privileged key be compromised?

Additionally consider:

  • What if a user with significant resources or permissions acts against the system's interests?
  • What operational or configuration mistakes could create vulnerabilities?
  • What if a third-party dependency or external service is compromised?

Organize threats by STRIDE category within each component. Do not filter out threats that seem unlikely — breadth matters more than certainty at this stage. </threats_instructions>


<report_instructions>

REPORT

Goal: Output the complete threat model as a chat report using the output format below.

Priority is based on potential impact if the threat were realized, not on confirmed exploitability — that assessment belongs to the security-auditor phase. </report_instructions>

</phase_instructions>


Output Format

Architectural Diagram

<mermaid diagram>

Roles

Administrative Roles

RolePrivilegesRisk Level
RoleDescription of privilegesCritical / High / Medium

User Roles

RoleActionsRisk Exposure
RoleDescription of actionsDescription of exposure

External Systems

SystemIntegration PointRisk Level
SystemHow it connects and what it providesCritical / High / Medium

Assets

AssetDescriptionTrust Levels Required
AssetWhat it is and why it has valueWho can access or compromise it

Security Threats

1. <Component Name>

STRIDEThreatDescriptionAffected SurfacePriority
SpoofingThreat NameHow the threat manifestsEntry point / functionHIGH / MEDIUM / LOW
Tampering...
Repudiation...
Information Disclosure...
Denial of Service...
Elevation of Privilege...

Recommendations

  • ...

Keep looking

Skills are one crate of 626,194. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.