Skip to main content
Glama

Contest Verdict

contest_verdict

Dispute a final cross-review outcome to launch a new deliberation session, recording the reason and preserving append-only chain of custody.

Instructions

v2.14.0 — formally contest a final verdict and open a new deliberation cycle. The reason accepts at most 4,000 characters. Requires the verified capability token of the persisted session petitioner, or the dedicated operator token. Petitioner READY (acata) → notify the human operator so the dedicated console can finalize; petitioner NOT_READY (contesta) → contest_verdict. Stamps the original session's meta with a contestation record (timestamp + reason + original_outcome + new_session_id) and initializes a NEW session whose contests_session_id points back to the contested session, preserving the chain of custody append-only across sessions. The original session must be in a final state (converged/aborted/max-rounds); contesting an in-flight session throws cannot_contest_in_flight_session. Once contested, a session cannot be contested again (chain-of-custody invariant) — contest the LATEST session in the chain.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
callerNooperator
reasonYes
new_taskYes
new_callerNo
session_idYes
response_formatNojson
new_initial_draftNo

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Addedv4.4.12
  2. Removedv4.4.11
  3. First observedv4.4.8

TDQS

A4.7/5.0
Behavior5/5

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

Annotations only indicate not read-only, not destructive, not idempotent. The description goes far beyond: it details side effects (stamps a contestation record, initializes a new session, links via contests_session_id), auth requirements (capability token or operator token), and error conditions (cannot_contest_in_flight_session). This is thorough disclosure of behavioral traits, fully compensating for the sparse annotations.

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?

The description is dense but every sentence adds critical information: purpose, constraints, auth, conditional logic, side effects, preconditions, and invariants. It is front-loaded with the core purpose and follows a logical flow, making it efficient without 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 (7 params, 3 required, no output schema, rich invariants), the description covers all essential aspects: prerequisites, side effects on the original and new sessions, chain-of-custody rules, and error cases. There is no mention of return value, but without an output schema and given the action-oriented nature, this is acceptable; the agent has enough to call it correctly.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate. It explains the primary parameters—session_id (the contested session), reason (max 4000 chars, though this repeats schema), and new_task (implied as the task for the new session)—and mentions new_initial_draft implicitly by context. However, it does not explain new_caller, response_format, or caller, leaving those to inference from defaults and enums. Partial compensation, but gaps remain.

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 opens with 'formally contest a final verdict and open a new deliberation cycle,' a specific verb and resource that clearly distinguishes it from siblings like session_finalize or session_init. It unambiguously states the tool's function and scope, making its purpose immediately understandable.

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?

Provides explicit conditions: 'Petitioner READY (acata) → notify the human operator ...; petitioner NOT_READY (contesta) → contest_verdict.' It also states preconditions ('original session must be in a final state') and exclusions ('once contested, a session cannot be contested again'), and instructs to 'contest the LATEST session in the chain.' This gives clear when-to-use and when-not-to-use guidance relative to alternatives.

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

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/LCV-Ideas-Software/cross-review'

If you have feedback or need assistance with the MCP directory API, please join our Discord server