Skip to main content
Glama

Save skin family

texel_save_family
Idempotent

Expands a skin family and writes each member's PNG and skin JSON to a specified workspace directory, along with a lineup image. Rejects invalid families.

Instructions

Expand a family and write /.png and .skin.json for every member, plus /lineup.png, into the workspace (/app). Refuses families with errors.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
familyYesA skin family ({ kind: "family", base, variants?, matrix? }) as a JSON object or JSON text. Format: texel://docs/families
directoryYesOutput directory relative to the workspace, e.g. "skins/guild".

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
filesYes
membersYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.8.1

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare non-readOnly, idempotent, non-destructive, closed-world behavior. The description adds genuinely new context: the exact files written, that output lands in the /app workspace, and that malformed families are rejected. It does not contradict any annotation. It stops short of stating permissions or overwrite semantics, keeping it from a 5.

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

Conciseness5/5

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

Two tightly packed sentences with zero filler, front-loaded with the core action and file outputs before the failure-behavior note. Every clause earns its place.

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?

An output schema exists, so return-value documentation is unnecessary, and the description covers the created files and workspace location adequately. What remains missing is guidance for choosing this tool over texel_save/texel_render_family, but the operational picture is otherwise complete.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents both parameters (family format reference, directory example). The description reuses the <directory> placeholder but adds no syntax or format detail beyond the schema. Baseline 3 applies when the schema carries the parameter burden.

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 gives a concrete verb ("Expand a family and write") and enumerates the exact artifacts produced (<member-id>.png, .skin.json, lineup.png). This clearly distinguishes it from the single-file sibling texel_save. However, it never disambiguates against the potentially overlapping texel_render_family sibling, which an agent could easily confuse with this save tool.

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

Usage Guidelines2/5

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

The note "Refuses families with errors" hints that input should be validated first (texel_validate), but no explicit when-to-use or when-not-to-use guidance is offered. With 13 siblings including texel_render_family and texel_save, the absence of routing guidance is a real gap.

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