Skip to main content
Glama

Project Resolve Manifest

project_resolve_manifest
Destructive

Resolve item references in a project to actual CAD file components and write a merge-ready manifest, keeping assembly definitions valid when files are renamed or moved.

Instructions

Resolve a project's item-ref components to file components and write a merge- ready manifest (issue #143 / D1, the deferred #140 seam). Each component naming an item (items.json identity, not a bare path) is lowered to a {file} component with the CAD artifact resolved from the registry, so merge_assembly consumes the result unchanged — renaming/moving a file updates the item's files[] in one place without breaking any reference.

project: path to the project.json container. out: output manifest path (defaults to .resolved.json next to it).

Returns {path, lowered} — the written path and the lowered manifest object; a dangling item-ref fails loudly.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
outNo
projectYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, so the write operation is known. The description adds valuable context: the resolution process, the lowering to {file} components, and that dangling refs fail loudly. It also explains the benefit of maintaining item references. No contradiction with annotations.

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?

The description is detailed but each sentence adds value: purpose, mechanism, parameters, and return value. It is front-loaded with the main action and then provides supporting context. Slightly dense due to issue references and explanatory clauses, but not wasteful.

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 tool of this complexity (transforming references, writing a file, integrating with merge_assembly), the description covers the purpose, inputs, output format, failure behavior, and the rationale for the transformation. No output schema exists, but the return structure is explicitly stated. Everything an agent needs to call it correctly is present.

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 coverage is 0%, so the description entirely carries the burden. It explains 'project' as the path to the project.json container and 'out' with its default behavior. This fully compensates for the schema's lack of descriptions.

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: resolve item-ref components to file components and write a merge-ready manifest. It clearly distinguishes from siblings like merge_assembly and items_resolve by describing the transformation and its downstream consumer. The purpose is unambiguous.

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?

The description explains that the output is consumed by merge_assembly, implicitly defining when to use this tool (before assembly merging). It also mentions the failure mode for dangling refs, but does not explicitly state when not to use it or name alternative tools. The context is clear enough for an agent to infer usage, so a 4 is appropriate.

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

Deploy Server

Other Tools