Skip to main content
Glama

sumo_qa_load_skill_context

Read-onlyIdempotent

Loads a specific skill slice as JSON (manifest, section, module, full, or bundle) and returns changed=false when a known_hash matches, so AI QA assistants fetch only the context they need.

Instructions

Load one slice of a skill as a JSON string. mode: "manifest" (section and module ids); "section" / "module" (pass section / module); "full" (the whole body, or an oversize pointer to the slices); "bundle" (one call: the body unless include_body=false, comma-separated modules, the entries, standards and rules for comma-separated exact classification ids, and whole catalogues: techniques, principles, classifications, approaches). Slices carry content_hash; passing it as known_hash returns changed=false without the body when unchanged. Bad input returns an error envelope listing the valid choices.

Input Schema

NameRequiredDescriptionDefault
modeNo
moduleNo
modulesNo
sectionNo
cataloguesNo
known_hashNo
skill_nameNo
include_bodyNo
classificationNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.76.0
    • addedInput schema / properties / catalogues
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null
      +}
  2. Changed3 schema fields changedv0.72.1
    • addedInput schema / properties / classification
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null
      +}
    • addedInput schema / properties / include_body
      Added value: +{
      +  "default": true,
      +  "type": "boolean"
      +}
    • addedInput schema / properties / modules
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null
      +}
  3. First observedv0.42.0

TDQS

A3.6/5.0
Behavior4/5

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

Beyond the readOnly/idempotent annotations, it discloses real behavior: slices carry content_hash, passing known_hash short-circuits with changed=false and no body, oversized bodies return an `oversize` pointer, and bad input returns an error envelope listing valid choices. That is genuinely useful context an annotation could not carry; only the return payload shape itself is left thin.

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

Conciseness3/5

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

Dense and largely front-loaded, with mode described first, but the single paragraph with deeply nested parentheticals makes the bundle semantics hard to parse. Every clause carries information, so it earns its length, but the lack of structure works against it.

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

Completeness3/5

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

For a 9-param, zero-coverage tool with no output schema, the description covers modes, hashing, error behavior and failure signaling. But it leaves skill_name unexplained, doesn't say what a 'skill' is or where to get the name, and doesn't note which mode is the default when mode is omitted.

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 0% across 9 params, so the description must carry the load — and it does for most: mode values, section/module singletons vs comma-separated modules/catalogues/classification, include_body=false, and known_hash semantics. The notable omission is skill_name, the primary identifier, whose format and source (presumably from list_skill_manifests) are never explained.

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?

States a specific verb and resource: it loads one slice of a skill, with enumerated modes (manifest, section, module, full, bundle). It implicitly distinguishes itself from sibling loaders (load_rules, load_principles) by operating on skill slices, but never states that distinction outright, and the concept of a 'skill' is never defined.

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

Usage Guidelines3/5

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

The mode breakdown implies usage (use 'bundle' for one call, 'manifest' to discover ids), which is better than nothing. However there is no explicit instruction on when to call this versus sumo_qa_load_rules, sumo_qa_load_catalogue_entry or sumo_qa_load_techniques, nor any stated prerequisite such as a prior manifest call.

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