Skip to main content
Glama
tribeunal

Tribeunal Decision-Making Platform

Official

Revoke vote

tribeunal_revoke_vote
Destructive

Revoke your own vote on a case to remove it entirely, even after voting has closed, for a flat 5-token penalty.

Instructions

Revoke your own vote on a case, removing it entirely. Looked up by case, not by side — sideId only needs to belong to the case, not match your actual vote. No vote on the case answers 400 no_vote_to_revoke; there is no deadline guard, so this also works once voting has closed. Costs a flat 5-token penalty (capped at your balance). Returns {trial_id, side_id}. To change your mind instead of withdrawing, call tribeunal_cast_vote again with a different side — no need to revoke first.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
caseIdYesCase UUID.
sideIdYesMust belong to this case; the API resolves your actual vote by case and caller alone, so this need not equal the side you voted for.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv2.0.0
    • changedInput schema / properties / caseId / description
      Previous value: -"Case UUID"New value: +"Case UUID."
    • changedInput schema / properties / sideId / description
      Previous value: -"Side UUID whose vote to revoke (the API resolves the caller's vote by user+case)"New value: +"Must belong to this case; the API resolves your actual vote by case and caller alone, so this need not equal the side you voted for."
  2. First observedv1.13.0

TDQS

A5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses multiple behavioral traits beyond the annotations: it removes the vote entirely, resolves by case not side, returns 400 no_vote_to_revoke when absent, has no deadline guard, costs a flat 5-token penalty capped at balance, and returns {trial_id, side_id}. Annotations already declare destructiveHint=true and readOnlyHint=false, which align perfectly; no contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Every sentence adds value: purpose, lookup semantics, error handling, no-deadline note, cost, return format, and the alternative path. The description is front-loaded with the core purpose and then efficiently covers edge cases. No fluff or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (destructive, with cost, error condition, specific lookup logic, and no output schema), the description covers all necessary information: when to use, error handling, cost, return, and the alternative. It is fully complete for an agent to call correctly without additional context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides basic UUID descriptions, but the description adds crucial semantic nuance: 'sideId only needs to belong to the case, not match your actual vote.' This is a key behavioral detail that prevents misuse. It also explains the token cost and return format, adding meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear, specific purpose: 'Revoke your own vote on a case, removing it entirely.' It identifies the resource (vote) and action (revoke), and distinguishes itself from tribeunal_cast_vote (changing mind) and other vote-related tools like rate_evidence. It explicitly clarifies the lookup semantics (by case, not side), which is a critical distinction from sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly provides the alternative: 'To change your mind instead of withdrawing, call tribeunal_cast_vote again with a different side — no need to revoke first.' It also states a precondition (no vote yields 400 error) and a boundary condition (works after voting closed). This gives clear guidance on when to use this tool versus alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.