Skip to main content
Glama
tribeunal

Tribeunal Decision-Making Platform

Official

Create case

tribeunal_create_case

Create a case, advice request, or poll to settle a community decision, gathering votes from invited jurors, the public, or guests via a shareable link.

Instructions

Create a case on Tribeunal for community decision-making — case (jury decides), advice (creator decides), or poll (opinion gathering). Use directly when the user wants something decided; do not search first. Cases are private by default; set visibility "public" to let anyone find and join. Add allowsGuestVotes to a private case for a link-poll instead: unlisted, votable via the link. A private case answers with a shareUrl to share. Refuses 400 if arbitrationMode pairs with allowsGuestVotes or minVotes under 2. Returns the created case; keys you need first: {uuid, title, state, url, shareUrl}. This only creates a case — edit it with tribeunal_update_case, remove it with tribeunal_delete_case, and change a side's picture later with tribeunal_update_side_image (sides[].image here sets only the initial picture).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
tagsNoUp to 4 category tags.
typeYescase (a jury decision), advice (input for the creator) or poll (opinion gathering) — changes only how the result reads, not the voting mechanics.
sidesYes2-10 choices voters pick between; each needs a name and may carry a description and an https image URL, fetched and re-encoded server-side (png/jpeg/webp, <=5 MB) for its vote card.
titleYesThe question or statement to be decided (3-200 characters).
juryTypeNopublic (anyone) or invited (named jurors only). Omitted, it follows visibility: invited on a private case, public on a public case or a link-poll.
minVotesNoFewest votes this case needs before it can reach a verdict (0-100, default 0 = no minimum). Close it with fewer and it ends with a Void verdict carrying voidReason "quorum_not_met" rather than deciding on a turnout of one or two.
caseLengthNoVoting duration in seconds, 60 to 2,592,000 (30 days); defaults to 86400 (1 day).
jurorCountNo2-100 jurors requested; defaults to 12. Only gates opening when openImmediately is false, holding the case in jury_selection until this many have joined.
visibilityNoprivate (default: only you, invited jurors and admins) or public (anyone can find and read it). Pairing private with allowsGuestVotes makes a link-poll instead.
descriptionYesContext, background and decision criteria (at least 10 characters).
arbitrationModeNoBind this case to arbitration rules, for a verdict someone outside the case has to rely on (default false). You cannot vote on, join the jury of, or close early a case you created in this mode — an admin closes it, or it closes at its deadline; evidence marks freeze once it closes so the record it was decided on stops moving; and the early-vote and decisive-vote reward multipliers are switched off, so timing your vote no longer multiplies your payout. Requires minVotes of at least 2 (omit it and 3 is used) and cannot be combined with allowsGuestVotes. Use it when the case settles something with stakes — a dispute, a payout, a contract term — rather than gathering opinion.
openImmediatelyNoDefaults to true: opens for voting right away, with invited jurors free to join/vote while already open. Set false to wait in jury_selection until jurorCount jurors join.
allowsGuestVotesNoDefaults to false. Lets visitors with no account vote, full-weight and deduplicated per browser via a signed cookie. Requires a public jury — pairing it with a private case makes a link-poll.
decisionRequirementNoThe weakest outcome this case will accept as a verdict (default "any"). "any" takes whatever the tally gives, down to a plurality. "simple" needs at least half, "qualified" at least 66%, "unanimous" every vote on one side. A case that reaches a stronger result than required still reports the stronger one. On any value other than "any", missing the requirement closes the case with a Void verdict carrying voidReason "requirement_not_met"; an "any" case that merely ties stays Undecided.
maxAiJurorPercentageNo0-100; caps the share of jurors the platform may auto-seat as AI personas. Defaults to 50; set 0 for an all-human panel.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv2.2.0
    • changedInput schema / properties / type / description
      Previous value: -"case (binding jury decision), advice (input for the creator) or poll (opinion gathering) — changes only how the result reads, not the voting mechanics."New value: +"case (a jury decision), advice (input for the creator) or poll (opinion gathering) — changes only how the result reads, not the voting mechanics."
  2. Changed12 schema fields changedv2.0.0
    • changedInput schema / properties / allowsGuestVotes / description
      Previous value: -"Let visitors without a Tribeunal account vote on this case (default false). Guest votes count in full — they enter the tallies, percentages and the verdict exactly like a registered juror's. Requires a public jury; visibility may be either, and pairing it with visibility \"private\" makes a link-poll: unlisted everywhere, but votable by whoever holds the link. Guests are deduplicated per browser, so a returning visitor changes their vote rather than adding one, but someone determined can still vote again from another browser — enable it where reach matters more than strict one-person-one-vote."New value: +"Defaults to false. Lets visitors with no account vote, full-weight and deduplicated per browser via a signed cookie. Requires a public jury — pairing it with a private case makes a link-poll."
    • changedInput schema / properties / caseLength / description
      Previous value: -"Voting duration in seconds (min: 1 minute, max: 30 days, default: 1 day)"New value: +"Voting duration in seconds, 60 to 2,592,000 (30 days); defaults to 86400 (1 day)."
    • changedInput schema / properties / description / description
      Previous value: -"Context, background, and criteria for the case"New value: +"Context, background and decision criteria (at least 10 characters)."
    • changedInput schema / properties / jurorCount / description
      Previous value: -"Number of jurors the case asks for (2-100, default 12). It gates opening only when openImmediately is false, where the case waits until this many jurors have joined. For a small invited panel, set this to the number of people you invite."New value: +"2-100 jurors requested; defaults to 12. Only gates opening when openImmediately is false, holding the case in jury_selection until this many have joined."
    • changedInput schema / properties / juryType / description
      Previous value: -"Who can participate — public (anyone) or invited only. Omitted, it follows the visibility: invited on a private case, public on a public case or a link-poll."New value: +"public (anyone) or invited (named jurors only). Omitted, it follows visibility: invited on a private case, public on a public case or a link-poll."
    • changedInput schema / properties / maxAiJurorPercentage / description
      Previous value: -"Maximum percentage of jurors that may be AI personas (0 = none, 100 = all; default 50). The platform seats AI jurors up to this share automatically on either jury type — through the juror pools on a public jury and through platform-issued invites on an invited one — so set 0 for a human-only panel."New value: +"0-100; caps the share of jurors the platform may auto-seat as AI personas. Defaults to 50; set 0 for an all-human panel."
    • changedInput schema / properties / openImmediately / description
      Previous value: -"Open the case for voting straight away (default true). Invited jurors are still invited and can view, join and vote while it is already open. Set false to hold the case in jury selection until jurorCount jurors have joined, and only then open it. While it waits, AI jurors are seated automatically within the AI juror limit on an invited jury or a private link-poll."New value: +"Defaults to true: opens for voting right away, with invited jurors free to join/vote while already open. Set false to wait in jury_selection until jurorCount jurors join."
    • changedInput schema / properties / sides / description
      Previous value: -"The choices/options voters pick between (2-10)"New value: +"2-10 choices voters pick between; each needs a name and may carry a description and an https image URL, fetched and re-encoded server-side (png/jpeg/webp, <=5 MB) for its vote card."
    • changedInput schema / properties / tags / description
      Previous value: -"Up to 4 tags for categorization"New value: +"Up to 4 category tags."
    • changedInput schema / properties / title / description
      Previous value: -"Case title — the question or statement to be decided"New value: +"The question or statement to be decided (3-200 characters)."
    • changedInput schema / properties / type / description
      Previous value: -"Case type — case (binding jury decision), advice (input for the creator), or poll (opinion gathering)"New value: +"case (binding jury decision), advice (input for the creator) or poll (opinion gathering) — changes only how the result reads, not the voting mechanics."
    • changedInput schema / properties / visibility / description
      Previous value: -"Case visibility — private (the default: only you, your invited jurors and admins) or public (anyone can find and read it). Omitted, the case is private — unless juryType is \"public\", which makes a public case. A private case must use an invited jury; omit juryType and it is set to invited automatically. One exception: set allowsGuestVotes on a private case and it becomes a link-poll — still absent from every listing, search and feed, but readable and votable by anyone you send the link to — which takes a public jury instead."New value: +"private (default: only you, invited jurors and admins) or public (anyone can find and read it). Pairing private with allowsGuestVotes makes a link-poll instead."
  3. Changed4 schema fields changedv1.15.0
    • removedInput schema / properties / juryType / default
      Removed value: -"public"
    • changedInput schema / properties / juryType / description
      Previous value: -"Who can participate — public (anyone) or invited only"New value: +"Who can participate — public (anyone) or invited only. Omitted, it follows the visibility: invited on a private case, public on a public case or a link-poll."
    • removedInput schema / properties / visibility / default
      Removed value: -"public"
    • changedInput schema / properties / visibility / description
      Previous value: -"Case visibility — public (anyone can find and read it) or private (only you, your invited jurors and admins). A private case must use an invited jury; omit juryType and it is set to invited automatically. One exception: set allowsGuestVotes on a private case and it becomes a link-poll — still absent from every listing, search and feed, but readable and votable by anyone you send the link to — which takes a public jury instead."New value: +"Case visibility — private (the default: only you, your invited jurors and admins) or public (anyone can find and read it). Omitted, the case is private — unless juryType is \"public\", which makes a public case. A private case must use an invited jury; omit juryType and it is set to invited automatically. One exception: set allowsGuestVotes on a private case and it becomes a link-poll — still absent from every listing, search and feed, but readable and votable by anyone you send the link to — which takes a public jury instead."
  4. Changed2 schema fields changedv1.14.3
    • changedInput schema / properties / maxAiJurorPercentage / description
      Previous value: -"Maximum percentage of jurors that may be AI personas (0 = none allowed, 100 = all; default 50)"New value: +"Maximum percentage of jurors that may be AI personas (0 = none, 100 = all; default 50). The platform seats AI jurors up to this share automatically on either jury type — through the juror pools on a public jury and through platform-issued invites on an invited one — so set 0 for a human-only panel."
    • changedInput schema / properties / openImmediately / description
      Previous value: -"Open the case for voting straight away (default true). Invited jurors are still invited and can view, join and vote while it is already open. Set false to hold the case in jury selection until jurorCount jurors have joined, and only then open it."New value: +"Open the case for voting straight away (default true). Invited jurors are still invited and can view, join and vote while it is already open. Set false to hold the case in jury selection until jurorCount jurors have joined, and only then open it. While it waits, AI jurors are seated automatically within the AI juror limit on an invited jury or a private link-poll."
  5. First observedv1.13.0

TDQS

A4.8/5.0
Behavior5/5

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

Annotations only declare write/open-world/non-idempotent/non-destructive; the description goes far beyond, disclosing privacy defaults, the shareUrl behavior, the 400 refusal when arbitrationMode pairs with allowsGuestVotes or minVotes<2, and the full arbitration constraint set (no voting/joining/early close, evidence freeze, reward multipliers off). That is genuinely useful behavioral context.

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

Conciseness4/5

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

Front-loaded with purpose and when-to-use, and nearly every sentence carries a distinct constraint. It is a single dense block though, so cross-parameter rules are harder to scan than a short list would be.

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?

For a 15-parameter creation tool with no output schema, the description still names the key return fields ({uuid, title, state, url, shareUrl}), the failure condition, and the defaults/cross-param rules. Nothing essential to calling it correctly is missing.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3; the description earns more by surfacing cross-parameter interactions the schema states only in isolation — private+allowsGuestVotes makes a link-poll, arbitrationMode requires minVotes>=2 and forbids allowsGuestVotes, and sides[].image only sets the initial picture. It stops short of syntax details for several params, so not a 5.

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?

Opens with a specific verb+resource ("Create a case on Tribeunal") and immediately disambiguates the three type variants (case/advice/poll). It also explicitly scopes the tool against siblings: "This only creates a case — edit it with tribeunal_update_case, remove it with tribeunal_delete_case." An agent can place it precisely in the toolset.

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?

Gives explicit when-to-use ("Use directly when the user wants something decided; do not search first") and names the alternatives for the adjacent operations (update/delete/update_side_image). It also states the condition that selects arbitrationMode ("when the case settles something with stakes") and the link-poll condition (private + allowsGuestVotes).

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