DESTRUCTIVE

decide_council_finding

Decides one finding of a council sitting on the person's word, after they confirm; accepting takes it up, dismissing sets it aside for good.

Decide a council finding: finding_id and verdict (accept or dismiss) are required. Accepting a finding that drafts a record writes it as a draft through the ordinary action, stamped as the council's and accepted by the person; accepting one that only names a gap keeps it on the review queue for the project to read; dismissing remembers the idea so no voice raises it again. The decision goes through the same actions the Council tab runs.

The council advises and a person decides, so the tool is destructive in the MCP sense: a Heimdall turn pauses for the person's confirmation and an MCP client asks before sending. Never decide a finding the person did not ask you to. A staff token with import:update on the project is needed.

Requires ability

The token behind the MCP session must hold it, or the call is refused with TOKEN_MISSING_ABILITY.

The REST endpoint and this tool share one action, so validation, permissions and events are identical.

Delivered to every endpoint subscribed to it once the change is made.

Annotations

Destructive

A client that honours annotations asks a person before running it.

Arguments

finding_id*string

UUID of the council finding.

verdict*string

accept to take the finding up, dismiss to set it aside for good.

acceptdismiss

What it returns

{  "data": {    "id": "f8a9b0c1-d2e3-4f4a-8b5c-6d7e8f9a0b1c",    "session_id": "a9b0c1d2-e3f4-4a5b-8c6d-7e8f9a0b1c2d",    "turn_id": "b0c1d2e3-f4a5-4b6c-8d7e-8f9a0b1c2d3e",    "voice": "loki",    "voice_name": "Loki",    "round": 1,    "position": 1,    "title": "Keep order references out of the public tracking URL",    "claim": "A guessable order reference in the URL lets anyone read another customer's order status.",    "evidence": "Story SCL-8: 'the status page shows the current stage' with no mention of who may open it.",    "suggestion": "Issue a signed tracking token per order and put the reference behind it.",    "severity": "high",    "confidence": 0.86,    "kind": "non_functional_requirement",    "payload": {      "title": "Tracking pages are not enumerable",      "category": "security"    },    "status": "accepted",    "suggestion_id": "c1d2e3f4-a5b6-4c7d-8e9f-0a1b2c3d4e5f",    "decided_by": "5b6c7d8e-9f0a-4b1c-8d2e-3f4a5b6c7d8e",    "decider_name": "Bea Analyst",    "decided_at": "2026-10-28T12:30:00+00:00",    "created_at": "2026-10-28T12:10:00+00:00"  }}

How it fails

VALIDATION_FAILED

a verdict other than accept or dismiss, a finding already decided, or a sitting that is not ready.

RESOURCE_NOT_FOUND

unknown finding_id, or a finding outside the token's scope or the person's visibility.

FORBIDDEN

the token is a client guest's, or the holder's role on the project does not carry import:update.

TOKEN_MISSING_ABILITY

token lacks import:update.

How is this guide?

Last updated on