CodeQL, Semgrep and SARIF static-analysis toolkit from Trail of Bits: taint tracking, fast pattern scans and merged, deduplicated security findings for coding agents.
OpenAI security-threat-modelSkill
Summary
OpenAI's skill for repository-grounded threat modelling: derive trust boundaries, assets and attacker capabilities from the actual code, rank abuse paths by likelihood and impact, and write a reviewable Markdown threat model.
Features
- Anchors every architectural claim to evidence in the repository instead of a generic checklist
- Enumerates trust boundaries with protocol, auth, encryption, validation and rate-limiting noted per edge
- States attacker non-capabilities explicitly so severity does not inflate
- Pauses for your confirmation of exposure, deployment and data-sensitivity assumptions before finalising
- Separates existing mitigations (with evidence) from recommended ones
- Writes a reviewable <repo-name>-threat-model.md following a fixed output contract
Install This Skill
Add this skill to your favorite AI agent in a few steps.
Skill Content
Usage Instructions
Learn how to use this skill with different AI agents.
Example Usage
Threat model the services/ingest directory of this repo — enumerate the trust boundaries and abuse paths, rank them, and write the report to a file.
Description
Most "AI threat model" output is a checklist with your repository's name pasted on top: OWASP categories, generic mitigations, nothing an engineer can act on. security-threat-model is OpenAI's curated skill for producing the other kind — a model whose every architectural claim is anchored to evidence in the repository, and whose priorities come from stated assumptions rather than vibes.
The method it enforces
- Scope and extract the system model — components, data stores, integrations and entrypoints, with runtime behaviour separated from CI/build tooling and from tests and examples. Nothing is claimed without evidence.
- Derive boundaries, assets and entry points — trust boundaries as concrete edges, each annotated with protocol, auth, encryption, validation and rate limiting.
- Calibrate attacker capabilities — including an explicit list of non-capabilities, which is what stops every finding drifting to critical.
- Enumerate threats as abuse paths tied to assets and boundaries, deliberately few and high-quality rather than exhaustive.
- Prioritise with qualitative likelihood × impact and short justifications, adjusted for controls that already exist.
- Stop and ask. The skill pauses to put its load-bearing assumptions to you — owner and environment, scale, deployment model, authn/authz, internet exposure, data sensitivity, multi-tenancy — and waits for an answer before producing the final report. If you decline, it states which assumptions remain and how they moved the ranking.
- Recommend mitigations, separating what already exists (with evidence) from what it proposes, each tied to a concrete component or boundary and a control type.
- Quality-check coverage of entrypoints and boundaries before writing
<repo-name>-threat-model.md.
Why the pause matters
Step 6 is the design decision worth copying. A threat model's ranking is mostly a function of exposure and data sensitivity, and an agent that guesses at those produces a document that reads authoritative and ranks wrong. Making the assumptions explicit — and blocking on them — is what turns the output into something a security reviewer can argue with.
Scope
It triggers only on an explicit request to threat model a codebase or enumerate abuse paths, not on general architecture questions or ordinary code review. Bundled references carry the output contract (references/prompt-template.md) and an optional controls-and-assets list.
From OpenAI's curated public skills collection, shipped alongside security-best-practices and security-ownership-map.
Related Skills
Microsoft's official Playwright skill — drives a real browser from the command line using accessibility snapshots and element refs, and plans, generates and heals Playwright tests.
Google's official agent skill for writing production Maps Platform code — grounded in freshly fetched docs, with a demo key path that needs no billing account.
Railway's official agent skill: create projects, provision databases and buckets, deploy, manage variables and domains, and read build failures back — from the CLI, API or MCP server.