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.
Runs the same actions as
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
A client that honours annotations asks a person before running it.
Arguments
finding_id*stringUUID of the council finding.
verdict*stringaccept to take the finding up, dismiss to set it aside for good.
acceptdismissWhat 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_FAILEDa verdict other than accept or dismiss, a finding already decided, or a sitting that is not ready.
RESOURCE_NOT_FOUNDunknown finding_id, or a finding outside the token's scope or the person's visibility.
FORBIDDENthe token is a client guest's, or the holder's role on the project does not carry import:update.
TOKEN_MISSING_ABILITYtoken lacks import:update.
How is this guide?
Last updated on