Create Proposal
create_proposalRaise a proposal to change a threat model's scope or design for review instead of editing it directly. Persists the change for approval, then poll for the outcome.
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. ``drift_intent`` (payload ``{finding_id, intent: "intended" | "defect", control_id?, head_commit?}``): whether a description-drift finding was intended (the description is behind the product) or a defect of the code, naming for a defect the control whose passing assertion closes it. ``description_revision`` (payload ``{description, commit_sha?, finding_ids?}``): the whole description revised to what the code at that commit does, addressing those drift findings; accepting it writes the new text and extracts the behavioural model again over it, billed to whoever accepts. A revision that changes the sentence of a finding decided a defect is accepted only by a person. Propose one where ``get_behavioural_model``'s ``drift.revision_suggested`` is true. | |
| 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 | |||