Skip to main content
Glama

Run DecisionGATE on a proposal

decisiongate_check

Run a proposal through five gate checks without executing it, returning gate results and refusal codes. Use dry_run to preview without writing ledger entries.

Instructions

Run the named DecisionGATE five sequential gates on a proposal (Freedom without clarity is chaos) without executing a catalog product. Also runs automatically inside fraggate_call before exec. Use this when you want a gate check without executing a catalog product verb. Do not use it for executing a product op or searching the library; use fraggate_call or library_lookup instead. Write: appends an ask/refuse ledger tip (not idempotent). Empty {} still runs the five gates and stamps the ledger. Does not execute domain software. Named wrapper — same DecisionGATE kernel; not the full MASTER-33 hop list; Softwares exec stays fraggate_call. All proposal fields are optional. Missing evidence can fail a gate. accountable identity on this runtime is Aziel Eliab only. Mutation requires confirm=true (runtime gate) or dry_run=true (preview only, no write). confirm and dry_run stay optional on inputSchema.required. dry_run still returns FG-HALLUC-TOOL, FG-STUB, FG-UNKNOWN-OP, or FG-LOCAL-ONLY when a confirm call would refuse. confirm is consent, not tenant auth, and it does not upgrade shared public-demo isolation. Returns gate view, final_state, ledger_tip, and result (code FG-OK on the named module wrapper).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
valuesNoOptional values list.
confirmNoDocumented confirmation flag. Optional in inputSchema.required (connector refresh must not break). tools/call still refuses MCP-CONFIRM-REQUIRED when confirm is missing or false unless dry_run=true. confirm is consent to run the call. It is not tenant auth and it does not upgrade shared public-demo isolation.
dry_runNoOptional preview flag. When true, do not write and do not stamp a ledger tip. Allowlist, hallucination, stub, and local-only checks still run and return the same FragGate refuse code a confirm call would get. MCP-DRY-RUN is returned only when that call would have been allowed to proceed. confirm is consent, not tenant auth, and it does not upgrade shared public-demo isolation.
evidenceNoOptional evidence strings. Missing evidence can fail a gate.
statementNoOptional proposal statement to evaluate.
impact_negNoOptional negative-impact list.
impact_posNoOptional positive-impact list.
accountableNoOptional accountable party string.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
codeNoFragGate or fabric code when present: FG-OK, FG-HALLUC-TOOL, FG-STUB, FG-LOCAL-ONLY, FG-UNKNOWN-OP, FG-GATE-REFUSE, FG-LAMB-REFUSE, or a module refuse such as MESH-* / AKM-*.
doorNoDoor name. The public door is fraggate.
ran_inNoExecution locale (for example aziel-runtime) when present.
resultNoFragGate body: ok, code, door, slug, op, engine_digest, ran_in, provenance, refusal, limitations, receipt, plus the engine result. Unknown names refuse FG-HALLUC-TOOL; stubs refuse FG-STUB.
statusNoHTTP-like status when present on wrappers (200 ok; 400+ error / refuse).
displayNoHuman-facing envelope. Show title and summary, then take the next input.
receiptNoOptional receipt, ledger tip, or TemporalLock/ForgeReceipts exit when the door stamped one.
refusalNoExplicit refuse object, code, or message when the door or engine refused.
engine_opNoResolved engine op when present (often inside result).
ledger_tipNoAsk/refuse ledger tip when the door stamped one.
provenanceNoProvenance / input packet when the pipeline attached one.
session_idNoRaw session id when session plumbing was used. Hidden unless the user asked for the chain.
engine_slugNoResolved engine slug when present (often inside result).
limitationsNoCapability limitations or Remain-OFF notes when present.
engine_digestNo64-hex engine_digest when a true in-process engine ran (often inside result).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv2.0.8
    • changedInput schema / properties / confirm / description
      Previous value: -"Documented confirmation flag. Optional in inputSchema.required (connector refresh must not break). tools/call still refuses MCP-CONFIRM-REQUIRED when confirm is missing or false unless dry_run=true (preview, no write)."New value: +"Documented confirmation flag. Optional in inputSchema.required (connector refresh must not break). tools/call still refuses MCP-CONFIRM-REQUIRED when confirm is missing or false unless dry_run=true. confirm is consent to run the call. It is not tenant auth and it does not upgrade shared public-demo isolation."
    • changedInput schema / properties / dry_run / description
      Previous value: -"Optional preview flag. When true, return a would-mutate preview and do not write. Alternative to confirm=true. Does not mutate."New value: +"Optional preview flag. When true, do not write and do not stamp a ledger tip. Allowlist, hallucination, stub, and local-only checks still run and return the same FragGate refuse code a confirm call would get. MCP-DRY-RUN is returned only when that call would have been allowed to proceed. confirm is consent, not tenant auth, and it does not upgrade shared public-demo isolation."
  2. Changed3 schema fields changedv2.0.2
    • changedInput schema / description
      Previous value: -"All fields optional. Empty proposals still run the five gates and stamp the ledger."New value: +"All schema fields optional. Empty proposals still run the five gates and stamp the ledger. Live stamp still needs confirm=true at tools/call, or dry_run=true for a preview."
    • addedInput schema / properties / confirm
      Added value: +{
      +  "description": "Documented confirmation flag. Optional in inputSchema.required (connector refresh must not break). tools/call still refuses MCP-CONFIRM-REQUIRED when confirm is missing or false unless dry_run=true (preview, no write).",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / dry_run
      Added value: +{
      +  "description": "Optional preview flag. When true, return a would-mutate preview and do not write. Alternative to confirm=true. Does not mutate.",
      +  "type": "boolean"
      +}
  3. Changed8 schema fields changedv1.6.2
    • addedInput schema / description
      Added value: +"All fields optional. Empty proposals still run the five gates and stamp the ledger."
    • addedInput schema / properties / accountable / description
      Added value: +"Optional accountable party string."
    • addedInput schema / properties / evidence / description
      Added value: +"Optional evidence strings. Missing evidence can fail a gate."
    • addedInput schema / properties / impact_neg / description
      Added value: +"Optional negative-impact list."
    • addedInput schema / properties / impact_pos / description
      Added value: +"Optional positive-impact list."
    • addedInput schema / properties / statement / description
      Added value: +"Optional proposal statement to evaluate."
    • addedInput schema / properties / values / description
      Added value: +"Optional values list."
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "additionalProperties": true,
      +  "description": "Display envelope shown to the user (display.title / display.summary) plus the machine result. Extra engine fields may appear.",
      +  "properties": {
      +    "code": {
      +      "description": "FragGate or fabric code when present: FG-OK, FG-HALLUC-TOOL, FG-STUB, FG-LOCAL-ONLY, FG-UNKNOWN-OP, FG-GATE-REFUSE, FG-LAMB-REFUSE, or a module refuse such as MESH-* / AKM-*.",
      +      "type": "string"
      +    },
      +    "display": {
      +      "additionalProperties": true,
      +      "description": "Human-facing envelope. Show title and summary, then take the next input.",
      +      "properties": {
      +        "fields": {
      +          "description": "Optional labeled scalars copied from the result for display.",
      +          "items": {
      +            "additionalProperties": true,
      +            "properties": {
      +              "label": {
      +                "description": "Field label.",
      +                "type": "string"
      +              },
      +              "value": {
      +                "description": "Field value as text.",
      +                "type": "string"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          "type": "array"
      +        },
      +        "next": {
      +          "description": "What the agent should do after showing this output.",
      +          "type": "string"
      +        },
      +        "summary": {
      +          "description": "One-line outcome or refuse reason.",
      +          "type": "string"
      +        },
      +        "title": {
      +          "description": "Short result title for the AI client.",
      +          "type": "string"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "door": {
      +      "description": "Door name. The public door is fraggate.",
      +      "type": "string"
      +    },
      +    "engine_digest": {
      +      "description": "64-hex engine_digest when a true in-process engine ran (often inside result).",
      +      "type": "string"
      +    },
      +    "engine_op": {
      +      "description": "Resolved engine op when present (often inside result).",
      +      "type": "string"
      +    },
      +    "engine_slug": {
      +      "description": "Resolved engine slug when present (often inside result).",
      +      "type": "string"
      +    },
      +    "ledger_tip": {
      +      "description": "Ask/refuse ledger tip when the door stamped one."
      +    },
      +    "limitations": {
      +      "description": "Capability limitations or Remain-OFF notes when present."
      +    },
      +    "provenance": {
      +      "description": "Provenance / input packet when the pipeline attached one."
      +    },
      +    "ran_in": {
      +      "description": "Execution locale (for example aziel-runtime) when present.",
      +      "type": "string"
      +    },
      +    "receipt": {
      +      "description": "Optional receipt, ledger tip, or TemporalLock/ForgeReceipts exit when the door stamped one."
      +    },
      +    "refusal": {
      +      "description": "Explicit refuse object, code, or message when the door or engine refused."
      +    },
      +    "result": {
      +      "description": "FragGate body: ok, code, door, slug, op, engine_digest, ran_in, provenance, refusal, limitations, receipt, plus the engine result. Unknown names refuse FG-HALLUC-TOOL; stubs refuse FG-STUB."
      +    },
      +    "session_id": {
      +      "description": "Raw session id when session plumbing was used. Hidden unless the user asked for the chain.",
      +      "type": "string"
      +    },
      +    "status": {
      +      "description": "HTTP-like status when present on wrappers (200 ok; 400+ error / refuse).",
      +      "type": "integer"
      +    }
      +  },
      +  "type": "object"
      +}
  4. Changed2 schema fields changed
    • removedInput schema / description
      Removed value: -"Pass { statement, evidence, impact_pos, impact_neg, values, accountable }. Freedom without clarity is chaos"
    • addedInput schema / properties
      Added value: +{
      +  "accountable": {
      +    "type": "string"
      +  },
      +  "evidence": {
      +    "items": {
      +      "type": "string"
      +    },
      +    "type": "array"
      +  },
      +  "impact_neg": {
      +    "items": {
      +      "type": "string"
      +    },
      +    "type": "array"
      +  },
      +  "impact_pos": {
      +    "items": {
      +      "type": "string"
      +    },
      +    "type": "array"
      +  },
      +  "statement": {
      +    "type": "string"
      +  },
      +  "values": {
      +    "items": {
      +      "type": "string"
      +    },
      +    "type": "array"
      +  }
      +}
  5. First observedv1.5.0

TDQS

A4.5/5.0
Behavior5/5

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

The description goes well beyond the annotations (readOnlyHint=false, idempotentHint=false, destructiveHint=false): it states that the tool appends a non-idempotent ask/refuse ledger tip, stamps the ledger even on empty input, does not execute domain software, requires confirm=true or dry_run=true for mutation, and names the exact refuse codes returned on dry_run. It also discloses that accountable identity is restricted to Aziel Eliab. This is rich, non-contradictory 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.

Conciseness2/5

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

The description is a dense wall of run-on sentences touching a dozen topics, and it repeats content that already lives in the schema (the confirm-is-consent and public-demo-isolation sentences appear in both the description and the schema param docs). Jargon like 'MASTER-33 hop list' and the slogan '(Freedom without clarity is chaos)' do not earn their place. The first two sentences are efficient, but the rest is over-long and poorly structured.

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 a complex tool with 8 optional parameters, an output schema, and subtle auth/write semantics, the description covers the operational essentials: write behavior, confirmation gating, dry-run preview semantics, error codes, scope exclusions, and identity constraints. The output schema covers return shape, so the return-value note is a bonus. Minor gaps (the five gates are never enumerated) keep it from a 5.

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 description coverage is 100% and the individual param descriptions for confirm and dry_run are already rich, so the baseline is 3. The description adds meaningful cross-parameter semantics beyond the schema: 'All proposal fields are optional', 'Missing evidence can fail a gate', and 'Empty {} still runs the five gates and stamps the ledger'. Some redundancy exists (consent/isolation sentences duplicate the schema), but the cross-cutting guidance earns a slight elevation.

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 first sentence names a specific verb and resource: runs the five DecisionGATE sequential gates on a proposal while explicitly excluding catalog-product execution. It differentiates from siblings by name ('fraggate_call', 'library_lookup') and by behavior (gate check only, no product op). An agent can tell exactly what this tool is for.

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?

Explicit when-to-use: 'Use this when you want a gate check without executing a catalog product verb.' Explicit when-not-to-use with named alternatives: 'Do not use it for executing a product op or searching the library; use fraggate_call or library_lookup instead.' It also discloses that the tool runs automatically inside fraggate_call, which prevents redundant invocations.

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