Skip to main content
Glama

plan_shading

Validate and store a shading plan that locks light direction and hard-shadow rules before painting shadows on pixel characters.

Instructions

RECOMMENDED after flat outfit paint: lock where hard shadows go.

YOU (the agent) author the plan — this tool validates and stores it. Soft gate: compose_character does NOT refuse without shading, but MCP SOP expects plan_shading → paint shadows → compose (or re-compose).

Required plan keys:

  • light_direction: e.g. "top-front / +X-up"

  • rules: must include "one_step_darker" and "no_gradients"

  • layers: object with ALL 10 EXPORT_LAYER_NAMES, each {skip: bool, shade_notes: str, strokes?: [{region?, intent, color_role?}]} Optional overall_notes. Alternate: flat strokes list with layer + intent.

Style: one darker step of local color (see get_shade_palette); hard 1–2px bands; shade design layers only; never rewrite base; do not strip eyes.

Saves design/shading_plan.json. Returns plan_id + user_facing_summary — SHOW the summary and wait for OK before painting shadows with paint_*.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameYes
planYes
briefYes
output_dirNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.9/5.0
Behavior5/5

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

With no annotations, the description provides the full behavioral burden: it saves to design/shading_plan.json, returns plan_id and user_facing_summary, validates the plan, and requires waiting for user confirmation before painting. It also communicates style constraints that affect the plan's content ('never rewrite base; do not strip eyes').

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 long but each section earns its place: the mandatory order, required plan schema, style rules, and post-call behavior are all essential. Bulleted structure and front-loaded recommendation make it easy to scan.

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

Completeness5/5

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

For a complex tool with a sparse schema and no annotations, the description covers the necessary input format, behavioral contract, output, and interaction protocol. It even mentions where to find color guidance (get_shade_palette). Nothing needed to call the tool correctly is missing.

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%, so the description must compensate. It does so thoroughly for the core 'plan' parameter, specifying required keys, allowed values, and an alternate structure. However, it does not explicitly explain the top-level 'name', 'brief', or 'output_dir' parameters, though these are simpler and partially inferable.

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 states a specific action ('author the plan') and resource ('shading_plan.json'), and makes clear this tool 'validates and stores' rather than paints. It also anchors its position in the pipeline ('after flat outfit paint', before painting shadows), which distinguishes it from sibling tools like paint_pixels, compose_character, and get_shading_plan.

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?

It explicitly says when to use it ('RECOMMENDED after flat outfit paint'), when it is not strictly required ('Soft gate: compose_character does NOT refuse without shading'), and the expected sequence ('plan_shading → paint shadows → compose'). It also instructs the agent to wait for user OK before using paint_*, leaving no ambiguity about follow-up steps.

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