Skip to main content
Glama

Design lint

design_lint
Read-only

Detect rendered layout issues like off-grid spacing, parent overflow, overlapping siblings, wrapped headings, horizontal scroll, small tap targets, and empty containers; report findings as suggestions.

Instructions

Check rendered geometry for common layout problems: spacing off the grid (grid, default 4 px), children overflowing their parent, overlapping siblings, headings that wrap, horizontal scroll, tap targets smaller than 44 px, empty containers. With id only that element and its descendants are reported. Findings are suggestions: show them to the user (agent_say with id) and only fix what the user wants — do not silently override deliberate design choices.

Input Schema

NameRequiredDescriptionDefault
idNoLimit findings to this element and its descendants.
gridNoSpacing grid in px (default 4).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, so the bar is lower, and the description contributes meaningfully by framing output as 'suggestions' and warning against auto-applying fixes — context that shapes the follow-up mutation step. However it says nothing about the volume or shape of results (how many findings, whether they carry ids or severities), which is the operationally important behavior for a no-output-schema tool.

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?

Front-loads the verb and the enumerated checks in a single dense sentence, then moves to scoping and finally the advisory workflow rule — a sensible order with no filler. The check list is long but every item is a distinct detection case, so it earns its length.

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 read-only two-parameter tool with no output schema, the description should at least gesture at what comes back; it says findings are suggestions but never indicates whether they include element ids, severities, or counts, so an agent cannot anticipate the result set. The behavioral guardrails are strong, but the return-side description is thin.

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 coverage is 100%, so both parameters are already documented, including the grid default of 4 px and the id scoping rule; the description largely restates those facts. Baseline 3 applies because the schema does the heavy lifting and the description adds no syntax or edge-case detail beyond it.

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 ('check rendered geometry') and enumerates the exact classes of problem detected (off-grid spacing, overflow, overlap, wrapping headings, horizontal scroll, small tap targets, empty containers), which makes it clearly a diagnostics pass rather than a mutation. It does not explicitly contrast itself with the adjacent inspect_element or capture_vision siblings, so an agent must infer the boundary.

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?

Gives concrete workflow guidance for acting on results: surface findings to the user via agent_say with the element id, fix only what the user wants, and do not silently override deliberate design choices. It also explains the scoping selector ('with id only that element and its descendants are reported'). It stops short of naming an alternative tool for cases where the agent wants raw element data instead of a lint pass.

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