Skip to main content
Glama

triz_build_model

Build a typed function model from an interaction table, generate stable ports and wire IDs, validate the result, and report completeness gaps such as unrecorded component pairs and isolation.

Instructions

Build a typed function model from an interaction table: components with stable ids, names and roles, and subject/action/object interactions with explicit carrier descriptors and polarities. Generates readable, stable ports and wire ids: each interaction gets its own input port on its object, in:<carrier>:<subject>:<action>, so no input port is fed by two functions (no fan-in, no extensive-fan-in); each subject gets one output port per carrier it sends, out:<carrier>, shared by its functions on that carrier (fan-out: one shared level when intensive, the sum of the demands when extensive); each function is the wire wire:<subject>:<action>:<object>:<carrier>. Each part is percent-escaped (':' as %3A, '%' as %25), so distinct tuples never share an id. Validates the result, runs lints, and returns a bounded completeness report of unrecorded component pairs, isolation and product reach. Ratings and behavior are never inferred. Optional flows reference component and carrier ids from the table.

Input Schema

NameRequiredDescriptionDefault
draftNo
flowsNo
domainYes
systemNo
hierarchyNo
componentsYes
interactionsYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.5.1

TDQS

A3.6/5.0
Behavior4/5

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

With no annotations supplied, the description carries the full behavioral burden and does substantial work: it discloses the deterministic id/port generation scheme, percent-escaping to guarantee id uniqueness, that the result is validated and linted, that the completeness report is 'bounded', and that 'ratings and behavior are never inferred'. What is missing is whether anything is persisted, whether the call is idempotent, and what happens on validation/lint failure.

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

Conciseness3/5

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

The description is front-loaded correctly with the build action and the model shape, but the middle is a single very long sentence packed with id-scheme and fan-in/fan-out encoding detail that reads more like internal spec than selection guidance. Every clause is technically informative, yet the density and length work against quick scanning for tool selection.

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 7-parameter, deeply nested tool with no annotations and no output schema, the description covers the build pipeline (construct → validate → lint → bounded completeness report) and the id scheme well, but says nothing about domain, hierarchy, system, or draft, and does not sketch the shape of the returned report. Adequate but with clear gaps for a tool of this complexity.

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

Parameters5/5

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

Schema description coverage is reported as 0%, so the description must compensate, and it does: it explains the semantic content of components (stable ids, names, roles), interactions (subject/action/object plus carrier descriptors and polarities), and flows ('Optional flows reference component and carrier ids from the table'). Domain, system, hierarchy and draft are not covered, but the core modeling payload — the parts an agent must get right — is explained in prose.

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 opens with a specific verb+resource: 'Build a typed function model from an interaction table', and enumerates the constituents (components with ids/names/roles, subject/action/object interactions with carrier descriptors and polarities). It is clearly a model-construction tool rather than an analysis/query tool, though it never names a sibling (e.g. triz_function_model, triz_flow, triz_graph) to make the boundary explicit.

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?

There is no statement of when to choose this tool over the many adjacent siblings (triz_function_model, triz_flow, triz_graph, triz_expand_hierarchy) and no prerequisites or exclusions. Usage is only implied by the phrase 'from an interaction table', leaving the agent to infer the routing decision from the catalog alone.

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