Create Proposal
create_proposalRaise a proposal to change a threat model's scope or design, including components, attacker positions, assets, or assumptions. It records the change for review instead of editing the model directly.
Instructions
Raise a proposal to change a model's scope or design. Call this when the code or your analysis says the model should gain or lose a component, or that an attacker position or asset should be removed by design; do not edit the model directly for those changes. Mutating: persists a proposal record.
A proposal is a change of scope or design. Raising one is not deciding
it: a person (or an agent under a delegation rule that names the
decision) decides it with decide_proposal. Design changes are never
applied automatically. Poll list_proposals for the outcome.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | One of ``add_component`` (payload ``{name, repo_url?, path?, trust_boundary_ids?}``), ``remove_component`` (payload ``{component_id}``), ``design_change`` (payload ``{target_kind: "attacker"|"asset", target_id, design_move}``; take ``design_move`` from ``get_design_leverage``), ``assumption`` (payload ``{co_id, group_id, precondition, assumption_id?, gap?}``: a precondition about the environment that only something outside this system can meet, one declarative sentence; ``assumption_id`` names an existing assumption that states it). A precondition a person already rejected for that objective is refused. | |
| payload | Yes | JSON object string with the fields for ``kind``. | |
| evidence | No | Optional JSON object string, e.g. ``{paths: [], symbols: [], note: ""}``, pointing at what you saw. | |
| model_id | Yes | ID of the threat model. | |
| rationale | Yes | Why this change is right (what in the code or design supports it). | |
| server_version | Yes |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||