Skip to main content
Glama
marvkr

Better Design

Read the Feature Map

read-feature-map
Read-onlyIdempotent

Read the feature map to identify every flow, screen, route, component, and data file a change touches before planning edits, so you update all affected areas and nothing else.

Instructions

Find the flows a change touches, with the screen, route, components and data files of every step. Use the map whenever a request names a user flow or a product area ("the cancel account flow", "checkout", "onboarding"). Read .better-design/feature-map.json and pass it to read-feature-map before you plan the change, so you edit every screen, component and route the flow touches and nothing else. If the file does not exist, call build-feature-map first.

Pass flow ("cancel account"), feature ("billing") or file (a path you are about to edit) to narrow it. With no query it lists every flow, and the Main Quest when the map has one: each initiative with what serves it, and what serves none.

Before you build a new feature, screen or marketing page, pass its route, file or name in planned. When the answer names a Zapier action, API request or MCP tool that already makes it, or says it serves no initiative, tell the user before you build it.

Input Schema

NameRequiredDescriptionDefault
mapYesThe exact contents of .better-design/feature-map.json.
fileNoA file path or route; returns every flow that uses it.
flowNoA flow id or part of its name.
contextNoOptional. One sentence on WHY you are calling this and what the user asked for (e.g. 'adding nav icons for the fintech dashboard'). Used only for usage analytics; does not change the result.
featureNoA feature id or part of its name.
plannedNoRoutes, file paths or names of work you are about to build; checks each against what the product already makes and the Main Quest.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/closed-world, and the description adds genuinely non-redundant behavior: it requires reading .better-design/feature-map.json and passing its contents as `map`, documents the prerequisite ordering against build-feature-map, and specifies that no query yields a full listing including the Main Quest. It even discloses that `context` is analytics-only and does not alter results.

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-loaded with the core capability and the routing advice before the parameter detail, which is the right order. It runs three paragraphs and includes a policy reminder about telling the user when an existing Zapier action already serves the need — useful, but the longest stretch relative to its value.

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?

With 6 params, no output schema, and a required large `map` blob, the description carries real burden and mostly meets it: it explains the prerequisite read-and-pass step and sketches the no-query return shape (flows plus Main Quest initiatives). The per-query return shape is left implicit, which is the main remaining gap.

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 100%, so baseline is 3, but the description adds real meaning: concrete query examples ('cancel account', 'billing'), the fact that `file` accepts a path you are about to edit, that queries are name-substring based, and the multi-value semantics of `planned` in the pre-build workflow. It stops short of explaining precedence when several narrowers are combined.

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?

Opens with a specific verb+resource and scope: 'Find the flows a change touches, with the screen, route, components and data files of every step.' That precisely distinguishes it from the sibling build-feature-map and update-feature-map, which write the map rather than read it.

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?

States triggering conditions ('whenever a request names a user flow or a product area'), names the alternative and its condition ('If the file does not exist, call build-feature-map first'), and adds a second workflow mode for `planned` before building new work. This is close to ideal when/when-not guidance with named alternatives.

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