Skip to main content
Glama

Resolve Mechanics

resolve_mechanic
Destructive

Resolve uncertain Fate, Ironsworn, Forged, and ruleset table actions; persist audited rolls and state changes to the Novel so uncommitted rolls are flagged.

Instructions

Resolve uncertain actions across the host's base mechanics: Fate Fudge dice, aspects, Fate points, and stress; Ironsworn momentum, moves, and progress; Forged action rolls, stress, trauma, and downtime; and generic ruleset table rolls. Rolls and state changes persist to the Novel and are audited; a roll with no following write is flagged as an uncommitted roll. Revert the most recent mutation with manage_history (action: undo). fate_roll uses dF, ironsworn_move compares an action die against two challenge dice, and forged_action_roll takes the highest of a d6 pool. Use when: resolving a Fate, Ironsworn, or Forged mechanic, or rolling on a ruleset generation table. Do NOT use when: resolving a ruleset skill check — use the bound ruleset's roll tools; managing vows — use manage_vow (action: set).

Input Schema

NameRequiredDescriptionDefault
opNoSub-operation for aspect, fate_point, stress, momentum, progress, or downtime.
addsNoStat and bonuses added to the action die (ironsworn_move).
burnNoBurn momentum to replace the action score (ironsworn_move).
costNoStress cost to resist (forged_stress); defaults to 2.
diceNoFudge dice notation (fate_roll) or dice pool size (forged_action_roll).
nameNoAspect name, progress-track name, move name, action name, or consequence label.
rankNoProgress-track rank (ironsworn_progress).
seedNoDeterministic seed (fate_roll, ironsworn_move, ironsworn_progress, forged_action_roll, roll).
slugNoRuleset slug for a Novel-independent roll (roll).
skillNoSkill name for the roll label (fate_roll).
tableNoGeneration table to roll on (roll).
ticksNoProgress to mark (ironsworn_progress); defaults to 1.
trackNoStress track to mark or clear (fate_stress).
actionYesroll (ruleset table), fate_* (Fate), ironsworn_* (Ironsworn), or forged_* (Forged in the Dark).
amountNoFate points (fate_point), stress (fate_stress, forged_stress, forged_downtime), or momentum (ironsworn_momentum); defaults to 1.
effectNoEffect (forged_action_roll); defaults to standard.
shiftsNoShifts to mark on a stress track (fate_stress); defaults to 1.
targetNoAspect target: 'scene' or an entity/NPC id (fate_aspect); defaults to 'scene'.
modifierNoSkill rating added to the roll (fate_roll).
positionNoPosition (forged_action_roll); defaults to risky.
entity_idNoEntity or NPC id (fate_aspect, fate_point, fate_stress, ironsworn_momentum, ironsworn_move, forged_stress, forged_downtime).
difficultyNoOpposition to beat (fate_roll); defaults to 0.
consequenceNoConsequence to record or clear (fate_stress).

Output Schema

NameRequiredDescriptionDefault
textNoHuman-readable text envelope mirroring the structured result (REQ-001, REQ-548a).
statusYesMachine-readable result status: OK, NEED_INPUT, WARNING, PARTIAL, or an error category (REQ-002, REQ-548c).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv2026.10.15
    • removedInput schema / properties / dice / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "number"
      -  }
      -]
    • addedInput schema / properties / dice / type
      Added value: +[
      +  "string",
      +  "number"
      +]
  2. Added

TDQS

A4.7/5.0
Behavior5/5

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

Despite the annotations only giving a generic destructive/non-idempotent profile, the description discloses the concrete behavioral contract: rolls and state changes persist to the Novel, are audited, and a roll with no following write is flagged as an uncommitted roll. It also supplies the recovery path (revert the most recent mutation via manage_history with action: undo), which is exactly the context an agent needs before making an irreversible mutation.

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?

Purpose, persistence/audit behavior, undo path, dice mechanics, and use/exclusion guidance are all front-loaded with no filler sentences. The paragraph is dense — a single block packing four distinct concerns — but every sentence carries information an agent needs.

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

Completeness4/5

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

For an 11-action, 23-parameter mutation tool the description covers the family taxonomy, the audit/undo contract, and the notable roll mechanics; an output schema exists so return values need no explanation. It stops short of explaining the 'op' sub-operation axis or what each of the state-mutating actions (fate_aspect, ironsworn_momentum, forged_downtime) does, leaving that to the schema.

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, but the description adds real meaning at the dispatch level: it explains that fate_roll uses dF, ironsworn_move compares an action die against two challenge dice, and forged_action_roll takes the highest of a d6 pool. It does not add per-parameter guidance (e.g., how 'op' sub-operations interact with 'action'), which caps this below 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?

The opening sentence names a specific verb ('Resolve') and enumerates the exact resources covered: Fate Fudge dice/aspects/Fate points/stress, Ironsworn momentum/moves/progress, Forged action rolls/stress/trauma/downtime, and generic table rolls. It explicitly distinguishes itself from the sibling ruleset roll tools and manage_vow, so an agent can route correctly without opening any schema.

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?

It contains an explicit 'Use when' clause (resolving a Fate, Ironsworn, or Forged mechanic, or rolling on a ruleset generation table) and an explicit 'Do NOT use when' clause naming two alternatives with the sibling and action to use instead (ruleset roll tools; manage_vow action: set). Nothing is left to inference.

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