Refine Threat Model
refine_threat_modelUpdate an existing threat model by applying an instruction, revising assets, attackers, trust boundaries, and controls while preserving semantic integrity and creating a new version.
Instructions
Refine an existing threat model based on an instruction.
Updates the model's assets, attackers, trust boundaries, and control objectives based on the instruction. Creates a new version. Progress is reported automatically.
Refine CANNOT silently replace an entity's identity under a stable ID or silently drop an entity. Behavior:
Preserved entities where the LLM proposed an identity- bearing rewrite (name / description / security_properties on assets; capability / archetype / position on attackers) run through a semantic-preservation guard. Rewrites classified as
replaceorambiguous(orunavailableif the gate LLM is down) have their identity fields REVERTED to the pre-refine values. Each rejection shows up as an entry in thesemantic_rejectionsarray in this tool's return value — surface these to the operator.Entities the LLM drops from the refined output are re- appended to the model unchanged. The only sanctioned removal path is
remove_entity (entity_type="asset")/remove_entity (entity_type="attacker")(soft-delete).CO IDs are stable across refinements; pairs (asset, attacker) that disappear come back as tombstones with
removed=True(not renumbered). Controls that only mapped to tombstoned COs become orphaned at read time.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| model_id | Yes | ID of the threat model to refine. | |
| instruction | Yes | What to change, e.g. "Add CSRF attack vectors". | |
| server_version | Yes |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||