Skip to main content
Glama

Outline

aseprite_outline

Add a 1px outline around or inside opaque pixels on a layer, choosing selective selout or solid color, with adjustable strength and area.

Instructions

Adds a 1px outline around (outside) or on the edge of (inside) everything opaque on a layer, in one undo step. style 'selout' (default) derives each outline pixel from the colour it borders: darker and cooler on the shadow side, lighter on the side facing the top-left light – the classic selective outline. style 'solid' uses one colour. Works on sprites up to 128x128 (or pass rect). Semi-transparent pixels (alpha < 128) count as empty.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
rectNoOnly outline inside [x, y, width, height] or "selection"
colorNosolid only (default #1b1b2a)
frameNoFrame number, 1-based (default: active frame)
layerNoLayer name (default: active layer)
styleNoselout
positionNooutside
strengthNoselout: how much darker than the fill

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.6.0

TDQS

A4/5.0
Behavior4/5

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

With zero annotations, the description carries the full behavioral burden and does it well: it discloses the one-undo-step guarantee, the 128x128 sprite size constraint, the alpha < 128 emptiness rule, and the exact color-derivation behavior for the 'selout' style. It stops short of stating whether the operation overwrites existing pixels or what happens if the layer name is invalid, but these are minor omissions given how much context is already provided.

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?

The description is four sentences tightly packed with necessary information: main effect, style semantics, size/selection workaround, and alpha threshold. It is front-loaded with the core behavior, and every sentence earns its place; there is no redundant or promotional text.

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?

Given that all parameters are optional, there is no output schema, and there are no annotations, the description covers the essential behavioral contract: what it acts on, how style variants behave, size/selection limitations, alpha handling, and undo granularity. It does not address failure modes (e.g., invalid layer, sprite larger than 128x128 without rect), but the provided context is sufficient for an agent to call the tool correctly in the common cases.

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 71%, with style and position lacking descriptions in the schema. The description compensates by explaining that 'style' has two semantic modes ('selout' derives colors from neighboring pixels, 'solid' uses one color) and that 'position' controls outside vs. inside placement. It also clarifies that 'color' is 'solid only' and defines 'strength' as how much darker than the fill, adding meaning well beyond the raw enum/default values.

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 description clearly identifies the operation: 'Adds a 1px outline around (outside) or on the edge of (inside) everything opaque on a layer'. This is a specific verb-resource-effect statement distinct from sibling tools like aseprite_set_pixels or aseprite_draw, which focus on raw pixel manipulation or drawing primitives. The two position variants and the single undo step further pin down exactly what the tool does.

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 description gives no explicit guidance on when to choose this tool over alternatives, nor does it name any sibling tools or conditions that would make another operation preferable. While the behavior is described thoroughly, an agent is left to infer that this is the tool for adding outlines; there is no 'use this when...' or 'for arbitrary pixel editing use aseprite_set_pixels instead' style guidance.

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