Skip to main content
Glama

stl_assert_explain

Read-onlyIdempotent

Explain why an assertion or assumption matters, identify dependent code paths, and get remediation steps for failures.

Instructions

One assumption in full: why it matters, which code path depends on it, and how to remediate a failure. Call this on anything stl_assert_run reports as failing, before deciding what to do about it.

Args: assumption_id: an id from stl_assert_list, e.g. 'stop_code_unique' or 'rt_join_rate'.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
assumption_idYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already provide the read-only, idempotent, non-destructive safety profile, lowering the burden on the description. The description adds value by explaining what the output captures (why it matters, code path, remediation), but it does not disclose error-handling behavior, prerequisites beyond the ID provenance, or limits. This is adequate given the annotation coverage, but not exceptional.

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?

The description is compact and front-loaded: the core purpose is stated first, then usage, then parameter details. The phrasing 'One assumption in full' is slightly telegraphic but economical. No extra words or unnecessary detail.

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 tool with a single parameter, a presence of output schema, and rich safety annotations, the description covers the essential context. It explains the source and examples for the parameter, states the primary use case (failed assertions), and is sufficient for an agent to invoke correctly. It doesn't discuss invalid IDs or empty results, but those are minor and often left to the output 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?

The single parameter assumption_id receives meaningful guidance: it must be 'an id from stl_assert_list' and concrete examples are given ('stop_code_unique', 'rt_join_rate'). This compensates for the 0% schema description coverage and clarifies both the provenance and format of the expected value.

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

Purpose4/5

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

The description conveys the tool's purpose by framing it as 'One assumption in full: why it matters, which code path depends on it, and how to remediate a failure.' This clearly identifies that the tool explains a single assumption, and the relationship to stl_assert_run distinguishes it from the related siblings stl_assert_list and stl_assert_run, though the verb 'explain' is implicit rather than stated upfront.

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

Usage Guidelines4/5

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

The description explicitly instructs when to use the tool: 'Call this on anything stl_assert_run reports as failing, before deciding what to do about it.' This gives a clear triggering condition and rationale. It does not explicitly mention alternative tools, but the context against stl_assert_run and stl_assert_list is sufficient for an agent to route correctly.

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