mcp-for-clo3d
This server lets an AI assistant drive CLO3D end to end: inspect the scene, build and edit patterns, simulate cloth, and export the results.
Scene & files: new/open/save projects, import files, get project and garment info, manage checkpoints (save/restore without undo).
See the result: capture the 3D window from multiple views, show strain/stress fit maps, view numbered 2D pattern pieces, export thumbnails and snapshots.
Pattern editing: create/copy/delete/flip/mirror/unfold patterns, rename, move in 2D, inspect geometry, sew lines, add internal shapes, offset lines, convert shapes, delete points/lines, set state (freeze, strengthen, solidify, hide, layer, particle distance).
Sewing & finishing: sew outline/internal lines, add topstitch styles and stitching, seam taping, hems, appliqués, elastic, shrinkage, annotations.
Cloth behavior: simulate with adjustable quality, set fabric physics, assign fabrics, replace/export/import fabrics, set fabric color and metadata.
Collision & hanging: add/remove rods and boxes, import OBJ collision objects, hang panels on rods or make rod pockets.
Production output: nest patterns, set fabric width/spacing, export 1:1 PDF pattern sheets, DXF (AAMA/ASTM/Gerber), OBJ/FBX/GLB/glTF, tech packs, turntable images.
Avatars & colorways: list/import/show avatars, place pieces on arrangement points, list/switch colorways.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-for-clo3dCreate a rectangle pattern 400 × 600 mm"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP for CLO3D
Control CLO3D from an AI assistant such as Claude, Codex or Cursor: ask in plain language and it inspects your project, builds and sews pattern pieces, manages fabrics, runs the simulation, takes pictures of the result and exports models, pattern PDFs and DXF files.
AI assistant <-- MCP --> MCP server (Python) <-- files --> CLO plug-in (native DLL) --> CLO3DCLO stays fully usable while the plug-in listens in the background.
Before you start
You need:
What | How to check or get it |
Windows 10 or 11 (64-bit) | The plug-in is a Windows DLL; macOS is not supported. |
CLO3D 2025.2.236, exactly this version | CLO shows its version at the bottom left of its window (Version: 2025.2.236). The plug-in only works with the CLO build it was made for; for another version, build it yourself. |
An MCP client | Claude Desktop, Claude Code, Codex, Cursor or any other app that supports MCP servers. |
uv (runs the Python server and installs Python for you) | In PowerShell: |
Git (uv uses it to fetch the server) | git-scm.com/download/win, or |
You do not need Visual Studio or CLO's SDK unless you build the plug-in yourself.
Related MCP server: CLO3D MCP Server
Setup
1. Download the plug-in
Download CloMcpPlugin.dll from the
latest release. The release notes
say which CLO version it is for (currently 2025.2.236). GitHub builds every release from this
repository with CLO's official SDK, and each release lists the DLL's SHA-256 checksum.
2. Install it so CLO loads it at startup
Close CLO.
Copy
CloMcpPlugin.dllintoC:\Users\Public\Documents\CLO\Plugins\(create thePluginsfolder if it doesn't exist) and rename the copy toCloLibraryAPI_Plugin.dll. CLO loads a plug-in with exactly that name every time it starts.If you cloned this repository,
cpp_plugin\install_autostart.bat path\to\CloMcpPlugin.dlldoes the copy and rename for you (install_autostart.bat /removeundoes it).If a
CloLibraryAPI_Plugin.dllis already there, it belongs to another plug-in: keep a copy of it, because this replaces it.
Start CLO. Nothing visible changes: the listener starts quietly in the background.
Open Plugins → Plug-in Manager → + ADD, choose a copy of CloMcpPlugin.dll that is outside
the Plugins folder, give it a name and click OK. Plugins → Plug-in → <your name> then
stops or starts the listener and shows its new state. Without the autostart copy, this menu entry
alone also works, but CLO only loads it when you click it, so click it once per CLO session.
3. Check that it is running
Paste %TEMP%\clo3d_mcp into the File Explorer address bar and open status.json. It should say
"state": "listening", and its ticks number should grow each time you reopen the file. If the
folder or file is missing, see Troubleshooting.
4. Connect your AI assistant
Add the server to your MCP client. uvx downloads and runs it; there is nothing else to install.
Claude Code
claude mcp add clo3d -- uvx --from git+https://github.com/ttiimmaacc/mcp-for-clo3d.git mcp-for-clo3dClaude Desktop: open Settings → Developer → Edit Config, add this to
claude_desktop_config.json, then restart Claude Desktop:
{
"mcpServers": {
"clo3d": {
"command": "uvx",
"args": ["--from", "git+https://github.com/ttiimmaacc/mcp-for-clo3d.git", "mcp-for-clo3d"]
}
}
}Codex (~/.codex/config.toml)
[mcp_servers.clo3d]
command = "uvx"
args = ["--from", "git+https://github.com/ttiimmaacc/mcp-for-clo3d.git", "mcp-for-clo3d"]
tool_timeout_sec = 200 # simulations and exports can take up to 180 sConnect only one client to CLO at a time, because they share the same request file.
5. Try it
With CLO open, describe the job the way you would to a colleague. The assistant works through the steps in CLO, looks at the result (it can capture the 3D window and draw the 2D pieces), and reports back. Some examples:
Check a garment
"Simulate this, then show me the front, back and side with the strain map on. Where is it pulling?"
"Check the sewing: are any seams twisted, with one side sewn in the opposite direction?"
Get a style ready for production
"Write 'CUT 1' and the piece name on every piece, nest them on 1400 mm wide fabric with 10 mm spacing, and tell me how long the marker is and how well the fabric is used." (CLO lays out one fabric at a time: switch fabrics in its Print Layout Editor to measure the next.)
"Export that marker as a 1:1 PDF for the plotter and the whole pattern as an AAMA DXF for our CAD system."
Build something from a spec
"Make a two-panel noren curtain, 1050 × 2020 mm finished, with 30 mm side hems, a 70 mm bottom hem and a star appliqué on front and back, hanging from a 32 mm rod." (
examples/noren_curtain.pyis this build as a script.)"Topstitch every appliqué patch 4 mm in from its edge with 0.4 mm thread."
"Build a boxy reversible wool jacket, size M: shoulders 80 cm, chest 54 cm, back 64 cm, sleeves 76 cm from the collar, grey plaid outside and plain charcoal inside, overlocked edges and a split kangaroo pocket." (
examples/workwear_jacket.pyis this build as a script. The dropped shoulders still need a nudge with CLO's Move tool before draping, since the API has no free 3D move.)
Fabrics and presentation
"What fabrics does this project use, and what are their weights and thicknesses? Label them all 60% cotton / 40% linen."
"Export a GLB for the web shop and turntable images of the finished garment."
Good to know:
CLO's API has no undo, so ask the assistant to save a checkpoint before bigger changes.
For nesting, switch CLO to Printing Layout mode once per session (mode dropdown at the top right); the assistant will tell you when it needs this.
Some things CLO's API can't do at all, like folding cloth or placing pins; see Tools for what's covered and what isn't.
Or build the plug-in yourself
Needed for any CLO version other than the one the release was built for.
Install Visual Studio Build Tools with the Desktop development with C++ workload.
Download the CLO SDK that matches your CLO version from developer.clo3d.com/download.html (CLO 2025.2.236 → SDK v9.1.0,
CLO_SDK_v2025.2.236_WIN.zip) and unzip it. CLO's SDK can't be redistributed, so it is not included here.Clone this repository, point
CLO_SDK_DIRat the unzipped folder (the one containingCLOAPIInterface\) and build:set CLO_SDK_DIR=C:\path\to\CLO_SDK_v2025.2.236_WIN cpp_plugin\build.bat python cpp_plugin\check_runtime.pycheck_runtime.pyconfirms that every C++ runtime function the DLL imports exists in the runtime DLLs your CLO install ships, because CLO loads its own copies.Install
cpp_plugin\dist\CloMcpPlugin.dllas in step 2.
Use the SDK for your exact CLO version. The plug-in calls CLO through C++ vtables. Headers from another CLO version put functions at different slots and call the wrong ones.
Tools
Area | Tools |
Scene |
|
See the result |
|
Collision objects |
|
Hems & appliqué |
|
Plotting & PDF |
|
CAD / DXF |
|
Topstitch styles |
|
Fabric details |
|
Hanging on a rod |
|
Checkpoints |
|
CLO's dialogs & restart | Commands no longer hang on CLO's pop-ups. Dialogs that only report something (OK / Close) are answered and returned in the result's |
Geometry |
|
Patterns |
|
Sewing |
|
Lines and shapes |
|
Piece state |
|
Elastic and shrinkage |
|
3D placement |
|
Fabrics |
|
Avatar & pose |
|
Export |
|
Simulation |
|
Colorways |
|
Line-based tools take the line indices that get_pattern_geometry (or the view_patterns picture) shows. Checkpoints are saved next to the request files. CLO saves them like "Save As", so its open file becomes the checkpoint copy; save_checkpoint returns the original path to save back to. Restoring a large scene (avatar plus simulation data) can take a few minutes. The plug-in checks
every pattern and line index before calling CLO, because CLO doesn't check them. Line-creating
tools report how many internal shapes CLO actually created, because CLO creates nothing, without
an error, for requests it can't do.
Not possible through CLO's API (2025.2): creating pins (they can only be removed), folding
cloth or pleats (a fold angle on a line only bends the cloth about 20° even at full strength,
whether set through the API, CLO's Property Editor or its Fold Arrangement tool), free 3D move or rotate of a piece (placement goes through avatar arrangement points),
and editing or removing an existing seam. Two SDK functions exist but did nothing in CLO 2025.2 testing, so they aren't exposed: MovePatternPoint (points never move) and DistribueInternalLinesbetweenSegments (created nothing on any pair of lines). To hold pieces in place, freeze or strengthen them. For
turned-back layers such as hems, use add_hem, which models the fold as a second layer.
How it works
The CLO side is a small C++ plug-in built on CLO's official SDK. It runs a timer on CLO's UI thread, so every request runs on the main thread between UI events, in roughly 50 ms.
The MCP server (
src/clo3d_mcp) writesrequest.jsonto%TEMP%\clo3d_mcp(override withCLO3D_MCP_DIR) and waits up to 180 s forresponse.json. Both sides write to a temp file and rename it into place.The plug-in (
cpp_plugin/CloMcpPlugin.cpp) creates a hidden message-only window with a 50 ms timer. CLO's event loop dispatches the timer, so the plug-in reads the request, calls the CLO API on the main thread and writes the response. It never blocks CLO.The plug-in pins itself in memory, because CLO loads the DLL to read its menu name and unloads it again during registration. Only one listener runs per CLO process.
Native faults inside a command are caught (built with
/EHa) and returned as an error instead of taking CLO down.To stop the listener without the menu, create an empty file named
stopin the request folder.
Development
uv run --with pytest pytest # server tests (mock plug-in)
cpp_plugin\test\build_tests.bat # builds two stand-in hosts that load the real DLL outside CLO
python cpp_plugin\test\smoke_test.py # DLL + stand-in host + MCP client, end to endhost.exe loads the plug-in and runs a Win32 event loop. host_add.exe reproduces the
Plug-in Manager's load → read name → unload sequence. Both use CLO's real CLOAPIInterface.dll
with fake API objects, so you can test the plug-in and the MCP client without CLO.
Releases
.github/workflows/build.yml runs on every push and pull request.
It downloads CLO's SDK from CLO's official link (checksum-pinned, never committed), builds the DLL,
checks its imports against CLO's runtime export lists in cpp_plugin/clo_exports/<version>/, and
runs the tests and smoke test. Pushing a tag publishes a release:
git tag v0.1.0
git push origin v0.1.0To support a new CLO version, update CLO_VERSION, CLO_SDK_URL and CLO_SDK_SHA256 in the
workflow. Then, on a machine with that CLO installed, run
python cpp_plugin\check_runtime.py --write-exports cpp_plugin\clo_exports\<version> and commit
the result.
Troubleshooting
%TEMP%\clo3d_mcp\status.jsonis missing: CLO didn't load the plug-in. Check that the file inC:\Users\Public\Documents\CLO\Plugins\is named exactlyCloLibraryAPI_Plugin.dll, that it matches your CLO version, and that you restarted CLO after copying it.The client times out: check
status.json. Ifticksisn't rising, start the listener from Plugins → Plug-in (with the optional menu entry), or restart CLO (restart_clodoes it for you, saving and reopening the scene).uvxis not recognised: open a new terminal after installing uv, or restart your MCP client so it picks up the new PATH.Rebuilding fails with
LNK1104: cannot open file ...CloMcpPlugin.dll: CLO has the DLL loaded. Close CLO, or rename the loaded DLL (Windows allows renaming a file that's in use) and rebuild. CLO keeps using the old copy until it restarts. With autostart, runinstall_autostart.batagain after rebuilding, with CLO closed, or ask the assistant torestart_clowithinstall_pluginset tocpp_plugin\dist\CloMcpPlugin.dll.CLO crashes when adding the plug-in, or calls do odd things: the SDK doesn't match your CLO version.
Credits and licence
Licensed under MIT; see LICENSE.
The Python MCP server began as Ubani-Studio/clo3d-mcp by Violet Sphinx (MIT). This project has since grown into a separate codebase: its Python CLO plug-in was replaced by a new native C++ plug-in, and most tools were added or rewritten.
CLO's SDK is not included and is not covered by this licence. See NOTICE.
Available Tools
104 toolsadd_appliqueA
Add an appliqué patch on a piece, sewn to it where it sits (a new internal line on the base marks each sewn edge). Optionally the matching patch on the other side ("front and reverse patches"), sharing the same stitch line.
Args: pattern_index: Base piece. points: The patch outline in the base's 2D coordinates (mm), inside the piece. sewn_lines: Sew only the first N edges (points[0]->points[1] is edge 0); edges on the base's outline or a seam can stay free. Default: all edges. layer: Layer for the patch: 1 = the +z side, -1 = the -z side. reverse: Also add the same patch on the opposite layer. fabric_index: Fabric for the patch (default: the base's fabric). name: Name for the patch piece(s); " front"/" reverse" is added with reverse=True. place_flat: Place the patch Flat; set False and place it yourself on an avatar. reverse_layer: Layer for the reverse patch (default: -layer). Put it outside any hem strips it crosses (e.g. 3 over hems on 1 and 2).
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Applique | |
| layer | No | ||
| points | Yes | ||
| reverse | No | ||
| place_flat | No | ||
| sewn_lines | No | ||
| fabric_index | No | ||
| pattern_index | Yes | ||
| reverse_layer | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden. It reveals key side effects such as 'a new internal line on the base marks each sewn edge', explains the optional reverse patch shares the same stitch line, and provides practical layer placement guidance. It does not discuss permissions, idempotency, or failure modes, but the additive behavior is well characterized.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description opens with a clear purpose sentence and then provides a compact, well-organized Args block. Every parameter explanation earns its place, and the extra examples clarify tricky cases like reverse_layer and sewn_lines without padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 9-parameter tool with no output schema and no annotations, the description is nearly complete: it covers defaults, edge cases, and relationships between parameters. The main omissions are the return value/shape and possible error conditions, but the invocation semantics are thoroughly specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, yet the description compensates fully by explaining all nine parameters, including defaults, coordinate meaning, edge indexing for sewn_lines, layer semantics, and the relationship between reverse and reverse_layer. This goes well beyond the schema's bare type information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Add an appliqué patch on a piece' and explains the patch is sewn in place. It also adds distinguishing detail about optional front/reverse patches, so an agent can infer the tool's role, though it does not explicitly differentiate from sibling tools like add_topstitch or add_internal_shape.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is implied by the first sentence: use this when adding an appliqué patch to a piece. However, there is no explicit guidance about when not to use it or how it compares to sibling tools such as add_internal_shape, add_hem, or add_topstitch.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_boxA
Add a box that cloth collides with (a table, shelf, bed or window sill...).
Args: center: [x, y, z] centre in mm. size: [width_x, height_y, depth_z] in mm. replace_avatar: Allow replacing a human avatar in the scene.
| Name | Required | Description | Default |
|---|---|---|---|
| size | Yes | ||
| center | Yes | ||
| replace_avatar | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral disclosure burden. It does explain the key behavior—cloth collision—and the replace_avatar side effect, but it does not mention persistence, return behavior, or whether adding a box has any other scene-level consequences.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured. The main behavior is front-loaded, and the Args section is compact with every line adding useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple additive tool with only three parameters and no output schema, the description covers the required invocation details. It could be more complete by stating what happens after adding the box (e.g., whether it returns an ID and whether multiple boxes are allowed), but the core calling context is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description fully compensates by documenting all three parameters: center coordinates in mm, size dimensions in mm, and replace_avatar's boolean effect. The array shapes are clearly specified, which is essential for correct invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Add a box that cloth collides with.' The examples (table, shelf, bed, window sill) clarify its intended purpose, and the box-vs-rod distinction separates it from sibling tools like add_rod.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when this tool is appropriate by listing example box-like furniture objects. It does not explicitly contrast with add_rod or import_collision_object, but the usage context is sufficiently clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_fabricB
Add a new fabric to the project from a .zfab or .jfab file.
Args: file_path: Absolute path to the fabric file (.zfab or .jfab).
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full disclosure burden. It conveys that a new fabric is created from a file but does not mention side effects such as whether the project must be saved, whether duplicates are allowed, or what happens on file load failure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the primary action and followed by a terse parameter explanation. There is no filler or redundant elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool this is usable, but it omits common prerequisites (e.g., an open project, file accessibility) and any behavioral context such as duplicate handling. It is adequate but not complete, especially with no annotations or output schema to fill the gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema only provides a title 'File Path'; the description adds the crucial requirements that the path must be absolute and must point to a .zfab or .jfab file. This is meaningful semantic information for the single required parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the action ('Add a new fabric') with the exact resource and input format (.zfab/.jfab). It is clear what the tool does, though it does not explicitly name sibling tools such as replace_fabric or apply_fabric_json to differentiate usage.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance or alternative tool recommendations are provided. It does not explain when to choose this over replace_fabric, apply_fabric_json, or import_file, leaving the choice to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_hemA
Hem a straight edge: adds the turned-back layer as a strip covering the hem area on the reverse side, sewn along the edge and along a new hem line (cloth cannot be folded this way: a fold angle only bends it about 20 degrees, even at full strength). Gives the doubled fabric at the edge. The pattern's edge is the finished edge, so draw pieces at their finished size.
Args: pattern_index: Piece to hem. line_index: The straight outline line to hem (from get_pattern_geometry / view_patterns). width: Finished hem width in mm. layer: Layer for the hem strip: -1 = the -z side (towards the back camera), 1 = the +z side. Use the side opposite the garment's face. Where hems cross (a bottom hem and the side hems), put the later ones one layer further out (e.g. -2), like the real corner; on the same layer the overlapping strips crumple. fabric_index: Fabric for the strip (default: the piece's fabric). place_flat: Place the strip Flat, like a piece laid out without an avatar; set False and place it yourself for pieces on an avatar.
| Name | Required | Description | Default |
|---|---|---|---|
| layer | No | ||
| width | Yes | ||
| line_index | Yes | ||
| place_flat | No | ||
| fabric_index | No | ||
| pattern_index | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does most of it well: it discloses that geometry is added on the reverse side, that the cloth cannot be folded (only ~20 degrees), and that overlapping strips on the same layer crumple. It does not state permissions, undo/persistence behavior, or whether the operation is reversible, which keeps it short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded and the Args block is ordered, so it is easy to scan. It is slightly bloated by parenthetical digressions (the fold-angle aside) that delay the argument list, but nearly every sentence carries usable information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a six-parameter mutation tool with no annotations and no output schema, the description covers what is produced ('the doubled fabric at the edge') and how placement works, which is sufficient to call it correctly. It stops short of covering failure modes or undo/persistence, a minor gap given the richness elsewhere.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must fully compensate, and it does: it documents all six parameters, including units for width (mm), the source of line_index (get_pattern_geometry / view_patterns), the default for fabric_index, and the default meaning of place_flat. The layer parameter is explained in unusual depth, including -1/1 axis meaning and the -2 convention for crossing hems.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise verb+resource ('Hem a straight edge') and then explains the mechanism: a turned-back strip sewn along the edge and a new hem line, producing doubled fabric at the edge. This is specific enough to separate it from neighboring construction tools like add_applique or make_rod_pocket without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the use case (hemming a straight outline line) and gives a conditional rule for place_flat ('set False and place it yourself for pieces on an avatar'), but it never names an alternative tool or states explicitly when this should be chosen over them. Usage context is present but inferred rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_internal_shapeA
Draw an internal line or shape on a pattern (fold lines, darts, pocket placement...).
Args: pattern_index: Pattern to draw on. points: [[x, y], ...] or [[x, y, type], ...] in pattern coordinates (mm), inside the piece (CLO also accepts points outside it); type 0 = straight, 2 = spline curve, 3 = bezier curve. Use get_pattern_geometry for the piece's coordinates. closed: Connect the last point back to the first.
| Name | Required | Description | Default |
|---|---|---|---|
| closed | No | ||
| points | Yes | ||
| pattern_index | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden and handles it well: it specifies pattern coordinates in mm, point type semantics (0, 2, 3), closed behavior, and even notes that CLO accepts points outside the piece. It does not discuss reversibility or validation errors, but the draw action and coordinate rules are clearly disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded with the action, and uses an Args list that maps cleanly to the schema. No redundant or filler sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a create-style operation with no output schema and no annotations, the description covers the needed coordinate source, accepted point shapes, closure, and outside-piece behavior. An agent has enough to invoke the tool correctly without additional research.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate, and it does: it explains the points array format including optional type codes, coordinate units, point type meanings, and the closed parameter's behavior. Pattern_index is also given a one-line role.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource, 'Draw an internal line or shape on a pattern', and gives concrete examples that clarify scope (fold lines, darts, pocket placement). This is distinguishable by 'internal' from other adding tools like topstitch or hem.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The examples provide clear context for when the tool is appropriate, and the reference to get_pattern_geometry gives actionable guidance for obtaining coordinates. It does not explicitly name exclusions or alternatives such as add_topstitch, but the internal-shape framing makes selection fairly unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_pattern_annotationA
Write a note on a piece (cut quantity, fabric, size, "place on fold"...) at 2D (x, y) in the piece's coordinates; it prints on pattern sheets with show={"annotations": true}. With annotation_index, replace that note instead.
| Name | Required | Description | Default |
|---|---|---|---|
| x | Yes | ||
| y | Yes | ||
| text | Yes | ||
| pattern_index | Yes | ||
| annotation_index | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral burden. It discloses that the note is a side-effecting write, that it appears on printed sheets only when annotations are shown, and that supplying annotation_index replaces an existing note instead of adding another. It does not cover error cases or return values, but this is adequate for a simple annotation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences deliver the core action, coordinate system, visibility condition, and replacement behavior without waste. The most important verb and object are front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity write tool with no output schema, the description covers the essential context: what the note is, where it is placed, when it becomes visible, and how to replace rather than append. The main gaps are parameter semantics details already penalized in that dimension.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 explains x/y as 2D coordinates in piece space, text as free-form note content, and annotation_index as the replacement flag. However, pattern_index is never explicitly tied to a pattern piece, and units/origin for x/y are not given.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Write a note') and names the resource ('a piece') plus the domain (2D pattern coordinates). It also distinguishes itself from the read-oriented sibling get_pattern_annotations by making clear this is a write/replace operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when the tool is used: to add a note to a pattern piece and optionally replace an existing note. It gives no explicit comparison with alternatives such as get_pattern_annotations, and does not state when to use this vs. other pattern-editing tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_rodA
Add a cylinder (curtain rod, rail, hanger bar...) that cloth collides with.
All rods and boxes form one collision object (CLO keeps a single avatar), placed exactly at the given coordinates. For curtains, make_rod_pocket does the whole job. Tested in CLO 2025.2: cloth passes through a thin rod unless its mesh is finer than the rod, so set the pieces' particle_distance to about a third of the diameter and use >= 30 mm.
Args: center: [x, y, z] centre in mm (see get_cloth_bounds for where the cloth is). length: Length in mm. diameter: Diameter in mm. axis: Direction of the rod: "x" (left-right), "y" (up-down) or "z" (front-back). replace_avatar: Allow replacing a human avatar in the scene.
| Name | Required | Description | Default |
|---|---|---|---|
| axis | No | x | |
| center | Yes | ||
| length | Yes | ||
| diameter | No | ||
| replace_avatar | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full disclosure burden, and it does so thoroughly: it explains that all rods and boxes form one collision object/avatar, that placement is exact, that thin rods can be penetrated unless mesh is finer, and that particle_distance should be about one-third of the diameter with >= 30 mm. This goes far beyond a simple operation summary.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is longer than average, but every segment earns its place: a one-sentence purpose, a concise behavioral note about collision objects, a practical mesh/particle_distance tip, and a cleanly formatted Args list. It is front-loaded with the core action and then layers supporting detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations and no output schema, the description covers the full call context: what the tool does, how collision behaves, how coordinates are interpreted, how to choose parameters, when to prefer a sibling, and a concrete rendering pitfall. Nothing essential for calling it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the Args block must carry all parameter meaning, and it does: center is defined with units and a reference to get_cloth_bounds, axis is explained with directional examples, and length/diameter/replace_avatar all get operational meaning beyond their titles.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Add a cylinder (curtain rod, rail, hanger bar...) that cloth collides with.' It also differentiates itself from the sibling make_rod_pocket by noting that for curtains, make_rod_pocket does the whole job, so an agent can tell which tool fits the task.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives an explicit when-not-to-use condition: 'For curtains, make_rod_pocket does the whole job.' It also references get_cloth_bounds as a coordinate source, which guides correct preparation. It does not explicitly contrast add_rod with add_box or hang_on_rod, but the alternative that matters most is named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_topstitchA
Add topstitching either along a seam or along one pattern line.
Args: style_index: Topstitch style from list_topstitch_styles. seam_index: Topstitch this seam (from get_pattern_geometry). start_ratio: Where along the seam to start (0-1), with seam_index. end_ratio: Where along the seam to end (0-1), with seam_index. pattern_index: Topstitch a line of this pattern instead of a seam. line_index: The line to topstitch, with pattern_index.
| Name | Required | Description | Default |
|---|---|---|---|
| end_ratio | No | ||
| line_index | No | ||
| seam_index | No | ||
| start_ratio | No | ||
| style_index | Yes | ||
| pattern_index | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. It only states the action and parameter semantics, without mentioning side effects, reversibility, prerequisites (e.g., pattern must be loaded), or potential error conditions. It also does not clarify what happens if both seam_index and pattern_index are provided. This is a significant gap for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description opens with a clear one-sentence purpose, then provides a well-organized, front-loaded argument list. Every sentence earns its place; there is no fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of two modes and six parameters, the description is reasonably complete but misses important context: it does not state that seam_index and pattern_index are mutually exclusive, does not mention any prerequisites (e.g., pattern geometry must exist), and does not describe the result or return value. These gaps could lead to incorrect invocations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description carries full responsibility for explaining parameters. It does so thoroughly: style_index references list_topstitch_styles, seam_index references get_pattern_geometry, start_ratio/end_ratio define ranges, and pattern_index/line_index describe the alternative mode. This adds substantial meaning beyond the schema's type/default information, though it does not cover edge cases like mutual exclusivity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (Add topstitching) and the two possible targets (along a seam or along one pattern line). It is specific and distinguishable from sibling tools like list_topstitch_styles or create_topstitch_style, which deal with styles rather than adding topstitch to geometry.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool (when you want to add topstitching) and references where to obtain required indices (list_topstitch_styles and get_pattern_geometry). It does not explicitly state exclusions or alternative tools, but the context makes the usage clear. A slightly higher score would require explicit 'use X instead' guidance, which is absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
answer_clo_dialogA
Click a button on the dialog open in CLO (see get_clo_dialog). If a command was stopped by the dialog, it carries on inside CLO and its result is returned here. Decisions that lose work (e.g. "No" to saving changes) are the user's to make.
| Name | Required | Description | Default |
|---|---|---|---|
| button | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does well: it discloses that a stopped command may continue inside CLO and that its result is returned here. It also warns that decisions losing work are up to the user, which is important for an interaction tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each carrying distinct value: the action, the side effect on stopped commands, and the user-responsibility warning. It is front-loaded and contains no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description provides enough context to call the tool safely: it points to get_clo_dialog for dialog context, states that results are returned, and warns about work-losing decisions. The missing button enumeration is mitigated by that reference, though not fully spelled out.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for the single required 'button' parameter. The description adds only that the button is on the open dialog and gives one example ('No'), but it does not enumerate valid button values or explain how an agent should determine them beyond referring to get_clo_dialog.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: clicking a button on a dialog open in CLO. It explicitly references the sibling get_clo_dialog for discovering the dialog, making the distinction between reading the dialog and acting on it clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear usage context: use after a dialog is open via get_clo_dialog, and note that stopped commands may resume. It does not spell out when not to use this tool or name explicit alternatives, but the prerequisite is obvious enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
apply_fabric_jsonA
Apply a .jfab file (CLO's JSON fabric format, see JFABSpec.json in the CLO SDK) to a fabric. Keys the file leaves out at the top level keep their values (colour, texture, content), but a "mapPhysical" block replaces the whole physical set: its missing keys reset to CLO's defaults, and a missing "qsFabricName" clears the name. set_fabric_physics handles this for you.
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes | ||
| fabric_index | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full disclosure burden, and it does so well. It explicitly explains that top-level omitted keys keep their values, that mapPhysical replaces the entire physical set, that missing physical keys reset to defaults, and that a missing qsFabricName clears the name. This is unusually transparent about potentially destructive side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the main action and then packs important behavioral details into the second sentence. It is not overly long, and nearly every sentence adds value. The final sentence about set_fabric_physics is somewhat ambiguous but not wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The core merge/reset semantics are well covered, which is the most important part for avoiding incorrect calls. However, there is no output schema, no mention of return values, error behavior, prerequisites, or how fabric_index should be obtained. An agent still has to infer some operational details before invoking the tool safely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description never actually names file_path or fabric_index. It implies that the file is the .jfab and the fabric is the target, but it does not explain whether fabric_index is zero-based, what path format is expected, or how the target fabric is identified. The description does too little to compensate for the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence clearly states a specific action and resource: apply a .jfab file to a fabric. It also references the CLO SDK spec, which adds precision. However, it does not explicitly contrast itself with siblings like set_fabric_physics or set_fabric_information, and the closing reference to set_fabric_physics is slightly ambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives helpful context about applying a .jfab file and mentions set_fabric_physics handles part of the process. But it does not explicitly state when to prefer this tool over alternatives, when not to use it, or what prerequisites exist. Usage guidance is implied rather than direct.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
apply_plaidA
Make a plaid (tartan) texture from its stripe sequence and put it on a fabric. The same stripes run both ways; where two colours cross they mix in a twill, as in woven checks.
Args: fabric_index: Fabric to texture. sett: One repeat as [[colour, width_mm], ...], e.g. a grey/black workwear check: [["#1b1b1d", 45], ["#5d5d60", 6], ["#1b1b1d", 6], ["#5d5d60", 35], ["#8e8e90", 3], ["#5d5d60", 35]]. The repeat is the sum of the widths. px_per_mm: Image resolution. twill: Mix crossing colours along diagonals (woven look) instead of averaging them. back_color: For double-faced cloth, a plain back in this colour [r, g, b]. The back is separated before the plaid goes on: separated afterwards, it copies the plaid (tested in CLO 2025.2.236).
| Name | Required | Description | Default |
|---|---|---|---|
| sett | Yes | ||
| twill | No | ||
| px_per_mm | No | ||
| back_color | No | ||
| fabric_index | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose meaningful behavior: twill causes crossing colours to mix along diagonals instead of averaging, and back_color's separation order changes the result (a version-specific quirk). It stops short of stating whether the fabric's existing texture is overwritten or whether the operation is reversible.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded one-sentence purpose followed by a structured Args block; every line carries information. Slightly long but no wasted sentences, and the structured layout aids scanning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-param, no-annotation, no-output-schema mutation tool, the description is nearly self-sufficient on inputs and behaviour. It omits only the effect on any pre-existing fabric texture and the return/confirmation behaviour.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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, and it does: all five params are explained, including a concrete worked example of a 'sett' repeat, the rule that the repeat equals the sum of the widths, and the double-faced meaning of back_color. This adds substantial meaning beyond the bare schema types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: generating a plaid/tartan texture from a stripe sequence and applying it to a fabric. It is clearly distinguishable from generic siblings like set_fabric_texture, set_fabric_color, and apply_fabric_json because it names the specific plaid construction (crossing stripes mixed in a twill).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description never says when to choose this over alternatives such as set_fabric_texture or apply_fabric_json, nor does it state prerequisites (e.g., a fabric must already exist). Usage is only implied by the verb 'put it on a fabric'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
assign_fabric_to_patternA
Assign a fabric to a pattern piece.
Args: fabric_index: Zero-based index of the fabric. pattern_index: Zero-based index of the pattern piece. assign_option: 1=current colorway only, 2=all colorways (unlinked), 3=all colorways (linked).
| Name | Required | Description | Default |
|---|---|---|---|
| fabric_index | Yes | ||
| assign_option | No | ||
| pattern_index | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral disclosure burden. It does explain the three assignment modes, which is useful context beyond the tool name. However, it does not state whether assignment overwrites an existing fabric assignment, whether the operation is reversible, or what 'linked' vs 'unlinked' concretely means.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured: one clear purpose sentence followed by a tight Args block. Every sentence earns its place, and there is no filler or repetition of schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a three-parameter tool with no output schema, the description covers the essential invocation details: required indices, the optional assign_option, and what each option means. It is slightly incomplete because it does not define the linked/unlinked behavior or mention error/precondition cases, but the core call is usable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, but the description fully compensates by documenting all three parameters: zero-based fabric_index, zero-based pattern_index, and the assign_option 1/2/3 meanings. It adds meaningful semantics that the bare schema types and default alone do not provide.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific operation — 'Assign a fabric to a pattern piece' — with a clear verb and resource. It is not a tautology and is understandable on its own. However, it does not explicitly distinguish itself from sibling tools such as get_fabric_for_pattern or set_fabric_color.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit when-to-use or when-not-to-use guidance, and does not name alternatives. It also omits prerequisites such as the fabric and pattern piece needing to exist before assignment. The assign_option explanations are parameter semantics, not usage selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
capture_3dA
Look at the garment: capture CLO's 3D window from one or more camera views.
Use after simulating or editing to check the result (e.g. twisted seams, pieces in the wrong place, fabric through the avatar). Moves CLO's 3D camera.
Args: views: Any of front, back, left, right, three_quarter_left, three_quarter_right, top, bottom, zoom_all, current (default: ["front"]). fit_map: "strain" or "stress" to show CLO's fit map in the capture (red = tight or overstretched), "off" to hide it, or omit to leave the display as it is.
| Name | Required | Description | Default |
|---|---|---|---|
| views | No | ||
| fit_map | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the full burden. It discloses that the tool moves CLO's 3D camera and can change the fit map display. However, it does not specify whether the camera position is restored after capture, whether the capture creates a file or returns data, or any side effects like requiring an open 3D window. These gaps leave the agent uncertain about the tool's full impact.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured with a purpose statement, a usage hint, and a clean 'Args' section. Every sentence adds value; the fit_map explanation is concise but complete. It is front-loaded with the primary purpose and usage, making it easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity and the absence of an output schema, the description covers the essentials: when to use, what it does, and all parameters. However, it omits what the tool returns (e.g., whether it saves an image, returns a path, or is just a UI action) and whether the camera move persists. These are relevant for an agent deciding how to use the result. The lack of an output schema makes this gap more noticeable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description fully compensates. It enumerates all valid views (front, back, left, right, three_quarter_left, three_quarter_right, top, bottom, zoom_all, current) and explains fit_map semantics with 'strain'/'stress'/'off' and the default behavior. This is comprehensive and goes beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'capture' and the resource 'CLO's 3D window', and it explicitly names the camera views it can capture. It distinguishes itself from sibling tools like export_thumbnail and export_snapshot by focusing on the live 3D window rather than file exports, and it gives concrete use cases (checking twisted seams, misplaced pieces, fabric through avatar).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit when-to-use guidance: 'Use after simulating or editing to check the result'. It also explains that it moves the camera and toggles fit map display. However, it does not explicitly state when not to use it or name alternative tools (e.g., export_snapshot) for saving images, so it lacks exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clo_ui_nest_all_fabricsA
Click "Nest All Fabrics" in CLO's Print Layout Editor (through Windows UI Automation), for when the print layout is empty: the API's nesting only works once CLO's own nesting has run. CLO must be in Printing Layout mode (the user switches it; CLO's mode menu cannot be driven this way). Returns the marker it produced.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does disclose important behavior: it uses Windows UI Automation, it cannot change CLO's mode menu, and it returns the marker it produced. It does not describe failure behavior if CLO is not in the required mode, but the core action, prerequisite, and output are clearly stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: it names the exact action first, then gives the use case, prerequisite, and return value. Every sentence adds necessary context and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, no-output-schema tool, the description covers the use case, mode prerequisite, and return value. It is slightly incomplete because it does not state what happens if CLO is not in Printing Layout mode or if the print layout is not empty, but overall an agent has enough to select and call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool accepts zero parameters, and the schema's empty properties object fully captures that. There is no parameter detail for the description to add, so the baseline score applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a concrete UI automation action ('Click Nest All Fabrics'), the target editor (Print Layout Editor), and the specific purpose (enabling API nesting to work). This clearly differentiates it from sibling nesting tools like nest_patterns by describing the UI fallback mechanism.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly identifies the situation where this tool should be used ('for when the print layout is empty') and explains why it is necessary before API nesting can work. It also states the prerequisite that CLO must be in Printing Layout mode and notes that the mode menu cannot be driven through UI automation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
convert_shapeC
Convert an internal shape to a base line ("base") or back ("internal").
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | ||
| pattern_index | Yes | ||
| internal_shape | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full behavioral disclosure burden. It reveals that the tool converts between internal and base line representations, but it does not say whether the operation mutates the existing shape, returns a new shape, requires specific permissions, or has any side effects. This is a meaningful gap for what is likely a modifying operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short and the one sentence directly states the operation, which is front-loaded. However, it is so terse that it omits essential parameter and behavioral context, so the brevity is more under-specification than effective conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations, no output schema, and three completely undocumented parameters, the description is not complete enough for an agent to call it correctly with confidence. The agent still cannot tell what pattern_index refers to, what values 'to' accepts beyond the two quoted examples, or what the result of the conversion is.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain the three parameters. It gives partial meaning to 'to' by naming 'base' and 'internal', and it clarifies that 'internal_shape' is the internal shape to convert, but it leaves 'pattern_index' completely unexplained and does not give precise accepted values or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: converting an internal shape to a base line or back. It also distinguishes the two directions ('base' and 'internal'), which makes the tool's core function understandable. However, 'base line' is not fully defined and the description does not clearly differentiate this from sibling shape-editing tools like add_internal_shape or offset_internal_line.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance is provided about when to choose this tool versus alternatives such as add_internal_shape, offset_internal_line, or mirror_pattern. The phrase 'or back' implies bidirectional conversion, but there is no context about prerequisites, typical workflows, or when conversion would be appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
copy_patternA
Duplicate a pattern piece at a given position.
Args: pattern_index: Zero-based index of the pattern piece to copy. x: X position offset for the copy (mm). y: Y position offset for the copy (mm).
| Name | Required | Description | Default |
|---|---|---|---|
| x | No | ||
| y | No | ||
| pattern_index | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavior. It states the core operation (duplicate at an offset in mm) but does not mention whether the original is unchanged, if a new pattern piece is created, or any error conditions. The description is accurate and not misleading, but lacks depth beyond the obvious.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: a single sentence for purpose followed by a compact argument list. It is well-structured and front-loaded, with no unnecessary content. Slightly more detail could be added, but it is efficient and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with three parameters and no output schema, the description covers purpose and parameters. However, it does not mention return behavior or prerequisites (e.g., pattern_index validity). Given low complexity, it is adequate but could be more complete regarding side effects or success indicators.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has no descriptions (coverage 0%), so the description is the sole source for parameter meaning. It clearly explains pattern_index as zero-based and x/y as offsets in mm, adding critical semantics beyond the schema's type and default values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Duplicate' on the resource 'pattern piece' and includes positional offsets. This distinguishes it from siblings like delete_pattern, flip_pattern, and move_pattern_2d, as duplication is semantically unique.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly mention when to use this tool versus alternatives such as move_pattern_2d or mirror_pattern. The purpose is implied through the name and description, but no exclusions or alternative conditions are stated. This is adequate for a simple operation but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_patternA
Create a new pattern piece from vertex points.
Args: points: List of [x, y] or [x, y, type] coordinates in mm. Type: 0=straight (default), 2=spline, 3=bezier. Example: [[0,0], [100,0], [100,200], [0,200]]
Returns the new pattern_index and its outline lines (line_index, start, end, length), so you can sew, hem or topstitch without looking the piece up.
| Name | Required | Description | Default |
|---|---|---|---|
| points | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It goes beyond the verb by stating that it returns the pattern_index and outline lines for immediate sewing, hemming, or topstitching. It does not describe side effects like project mutation or failure behavior, but the key call behavior is adequately exposed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is tightly organized: one purpose sentence, a clean args block, and a useful return note. Every sentence contributes either to parameter semantics or to why the return value matters, with no redundant filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Even without an output schema, the description tells the agent what input to provide and exactly what will be returned, including line_index, start, end, and length. For a single-parameter creation tool, the information needed to invoke it correctly is present and actionable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but the description fully compensates: it explains points as [x, y] or [x, y, type], defines each type code (0=straight, 2=spline, 3=bezier), specifies mm units, and provides a concrete example. This is exactly the semantic detail an agent needs beyond the bare array schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Create a new pattern piece from vertex points', giving a specific verb and resource. It clearly distinguishes this from siblings like copy_pattern, delete_pattern, and get_pattern_info because it is the constructive action that builds geometry from coordinates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is implied rather than stated: an agent can infer this is for creating a pattern from raw vertex coordinates. However, the description does not explicitly say when to prefer this over alternatives such as import_file or copy_pattern, and it provides no exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_topstitch_styleA
Create a topstitch style with a given stitch length, thread thickness and offset from the stitched line (CLO's API cannot set these on a style, so a saved style file is copied with the values changed and imported). Returns its style_index for add_topstitch.
The stitch's shape and colour come from a template: a style saved from CLO once (select a topstitch in the Object Browser, set its Shape, e.g. Overlock, and colour in the Property Editor, click the save icon in its Topstitch row) and passed as template_path with a template name; later calls just name the template.
Args: name: Name for the new style. stitch_length_mm: Length of each stitch in mm (default: the template's). thread_thickness_mm: Thread thickness in mm (CLO shows it as Tex: 0.2 mm = 40 Tex). offset_mm: Distance of the stitching from the line or seam it follows, in mm. template: Which saved template to use, e.g. "default" or "overlock". template_path: A .sst saved from CLO, stored as this template (first time only).
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| template | No | default | |
| offset_mm | No | ||
| template_path | No | ||
| stitch_length_mm | No | ||
| thread_thickness_mm | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so well: it discloses the underlying implementation (copies a saved style file with values changed and imports it), the required template workflow, and the return value (style_index). It stops short of stating permissions, error behavior, or what happens if a template name is reused or an existing style is overwritten.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads purpose and the return value, then the template explanation, then per-arg docs. The template paragraph is somewhat long but earns its place because the workaround is non-obvious. Minor formatting noise (line breaks, trailing blank) keeps it from a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema and no annotations exist, so the description must stand alone; it covers the purpose, the non-obvious file-copy mechanism, the template prerequisite, and the returned style_index. For a 6-parameter tool this is complete enough for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 fully and does: it documents all six parameters, including the Tex conversion for thread_thickness_mm, the offset meaning relative to the stitched line, defaults inherited from the template, and the first-time-only nature of template_path. This adds substantial meaning beyond the bare schema titles.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Create a topstitch style') and enumerates the three defining attributes (stitch length, thread thickness, offset). It also ties itself into the workflow by explaining it returns a style_index for add_topstitch, distinguishing it from get_topstitch_style/list_topstitch_styles/set_topstitch_style siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear context for when this is needed (CLO's API cannot set these values on a style, so a template file must be copied and imported) and explains the one-time template setup. However, it never states when NOT to use it or names alternatives such as set_topstitch_style for modifying an existing style or list_topstitch_styles for discovering available ones.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_fabricC
Delete a fabric from the project.
| Name | Required | Description | Default |
|---|---|---|---|
| fabric_index | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral disclosure burden. It only says 'Delete', which implies mutating and destructive behavior, but it does not disclose whether deletion is irreversible, whether assigned fabrics are affected, or whether undo/checkpoint behavior applies.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single crisp sentence with no filler words. It is concise and front-loaded, though it is arguably too sparse for a destructive operation, which slightly limits the appropriateness of its size.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations and no output schema, the description is incomplete. It omits critical context about the fabric_index meaning, side effects, reversibility, and how this operation interacts with patterns or project state.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description adds no meaning to fabric_index. It does not explain where the index comes from, whether it is zero-based, or how it relates to get_fabric_list, so the agent has insufficient parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Delete'), a clear resource ('fabric'), and scope ('from the project'). This distinguishes it from sibling operations like delete_pattern, add_fabric, replace_fabric, and export_fabric, so an agent can tell what tool this is without inspecting schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given for when to use this tool versus alternatives such as replace_fabric or delete_pattern. There are no prerequisites, exclusions, or context about when deletion is appropriate, leaving the agent to infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_lineC
Delete an outline line of a pattern.
| Name | Required | Description | Default |
|---|---|---|---|
| line_index | Yes | ||
| pattern_index | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the action 'Delete' without mentioning side effects, irreversibility, error conditions, or dependencies. This is a destructive operation and the lack of transparency is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no wasted words. It is front-loaded with the action and resource, but it lacks any supporting detail. It is appropriately concise but under-specified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a delete operation with two required integer parameters, the description provides no context about how to obtain these indices, what 'line' means, or what the outcome will be. The lack of output schema and parameter details makes it incomplete for reliable invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning the schema provides no descriptions for pattern_index and line_index. The description also fails to explain what these parameters represent, their format, or any constraints. The agent has no way to correctly construct arguments.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'delete' and the resource 'outline line of a pattern', which is specific enough to distinguish it from sibling tools like delete_pattern or delete_point. However, it does not explicitly differentiate from these alternatives or clarify what constitutes an 'outline line'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives, such as delete_point or delete_pattern. The description only states the action without any context about prerequisites, conditions, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_patternB
Delete a pattern piece from the project.
Args: pattern_index: Zero-based index of the pattern piece to delete.
| Name | Required | Description | Default |
|---|---|---|---|
| pattern_index | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure, but it only says 'Delete' without stating that the operation is permanent, irreversible, or how errors are handled. It does not disclose side effects, confirmation behavior, or impact on related patterns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: one front-loaded sentence stating the core operation, followed by a minimal args list with no redundant content. Every element earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool, the description provides enough to make the call (resource and param semantics). However, it lacks information about error behavior, irreversibility, and what happens after deletion; with no output schema, these gaps remain unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema only specifies an integer, but the description clarifies that it is a zero-based index and that it refers to a pattern piece. This fully compensates for the 0% schema description coverage on the single parameter and is an essential detail for correct invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action ('Delete') and target ('a pattern piece from the project'), identifying the operation and its scope. It distinguishes from other pattern-related siblings by the destructive verb and specific resource, though it does not explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, or on prerequisites such as obtaining a valid pattern_index from get_pattern_list. There is no mention of exclusions or conditions that would make this tool inappropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_pointA
Delete an outline point (point n is the start point of line n; see get_pattern_geometry).
| Name | Required | Description | Default |
|---|---|---|---|
| point_index | Yes | ||
| pattern_index | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. The verb 'Delete' signals destructiveness and the point-line relationship hints at geometric consequences, but the description never states whether deleting a point also affects its associated line, whether the operation is reversible/undoable, or what constraints exist (e.g., minimum point counts or validity rules).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with the core action front-loaded ('Delete an outline point') and a tightly scoped clarifying parenthetical. The cross-reference to get_pattern_geometry earns its place; there is no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity tool (two simple integer params, no output schema), the description is adequate: it states the operation and the indexing convention. However, the point-line relationship introduced in the description raises an obvious unanswered question — what happens to the line when the point is deleted — and no error or undo behavior is mentioned, which matters for a destructive operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 exactly that for point_index by explaining that point n is the start point of line n — genuine meaning the schema cannot convey. pattern_index is left to inference, but the sibling-tool convention and parameter name make its purpose reasonably clear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Delete') and resource ('outline point'), clearly distinguishing it from sibling deletion tools like delete_line, delete_pattern, and delete_fabric. The parenthetical adds the non-obvious indexing convention ('point n is the start point of line n'), which sharpens what exactly is being targeted.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The cross-reference to get_pattern_geometry implies the intended workflow — understand the geometry before deleting points — but there is no explicit when-to-use/when-not-to-use guidance. Given that several sibling tools also delete or modify pattern structures, naming an alternative or condition would have been stronger.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_dxfA
Export the pattern as a DXF for CAD, plotters and cutters (no dialog). Returns the pieces read back from the file (name, size, quantity, outline box in mm) as a check.
Args: file_path: Absolute path ending in .dxf. format: "aama", "astm" or "gerber" (Gerber-flavoured AAMA). metric: Millimetres (True) or inches. box_per_piece: One bounding box per piece instead of one around all pieces. curves_to_straight: Convert curve points to straight points. optimize_curve_points: Drop curve points very close to others. without_grading: Leave grading out. without_baselines: Only the outlines, without base lines. remove_duplicate_notches: Remove duplicate notches. scale: Scale factor. rotate_degrees: Rotate the pieces.
| Name | Required | Description | Default |
|---|---|---|---|
| scale | No | ||
| format | No | aama | |
| metric | No | ||
| file_path | Yes | ||
| box_per_piece | No | ||
| rotate_degrees | No | ||
| without_grading | No | ||
| without_baselines | No | ||
| curves_to_straight | No | ||
| optimize_curve_points | No | ||
| remove_duplicate_notches | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that the export runs without a dialog and returns pieces read back from the file as a check, which adds useful context. However, it does not mention whether the tool overwrites existing files, handles errors, or has any side effects beyond creating the file. This is a moderate disclosure but not exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is structured with a purpose statement up front followed by a parameter list. Each line in the Args block is necessary and adds value. There is no fluff or repetition. The format is efficient and easy to scan, though it could be slightly more compact.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (11 parameters, no output schema, no annotations), the description covers all parameters and the return behavior. It explains the output as a list of piece data (name, size, quantity, outline box in mm), which is helpful. It lacks explicit error handling or file overwrite behavior, but for an export tool this is a relatively complete specification.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain parameters. It does so for every one of the 11 parameters in the Args block, adding meaning beyond the schema's titles and defaults (e.g., file_path must be an absolute path ending in .dxf, format values and their interpretation, metric as mm vs inches). The explanations are concise yet informative, covering all parameters adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool exports a pattern as a DXF for CAD, plotters, and cutters, with a specific use case. It distinguishes itself from other export tools (obj, fbx, glb, etc.) by naming the DXF format and its target applications. However, it doesn't explicitly contrast with sibling export tools, so a 4 rather than 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage via the format options (aama, astm, gerber) and target use cases (CAD, plotters, cutters), but it does not explicitly state when to choose this tool over alternatives or include any exclusions. It's clear enough for an agent to infer, but guidance is not overt.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_fabricB
Save a fabric as a .zfab file (CLO 2025.2 refuses .jfab here; the .fab inside is binary).
Args: fabric_index: Fabric to export. file_path: Absolute output path ending in .zfab.
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes | ||
| fabric_index | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses a behavioral constraint (CLO 2025.2 refuses .jfab) and notes the binary nature of the .fab inside, which is useful. However, it does not mention overwrite behavior, error handling, or whether the operation returns anything. For a save operation, these are notable omissions, but the provided nuance adds some transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two lines, front-loaded with the primary action, and includes a parenthetical detail that is relevant without bloating the text. The argument list is structured and each parameter has a brief, clear definition. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool with no output schema, the description covers the core action, format, and parameter meanings. It is missing details about overwrite behavior, return values, or potential errors, but given the simplicity, these are gaps rather than critical omissions. The description is adequate for basic invocation but not fully comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides no descriptions (0% coverage), so the description compensates by explaining both parameters: fabric_index as 'Fabric to export' and file_path as 'Absolute output path ending in .zfab'. This adds clear meaning beyond the bare schema types and titles, giving the agent enough to use them correctly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Save a fabric as a .zfab file') with a specific resource (fabric) and output format. It distinguishes from sibling export tools by format and resource, though it doesn't explicitly name alternatives. The nuance about CLO 2025.2 refusing .jfab adds specificity without confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not mention when to use this tool versus alternative export tools (e.g., export_obj, export_fbx). It implies the use case (exporting fabric to .zfab) but provides no exclusions or comparisons to siblings. The only guidance is the file path extension requirement, which is more of a constraint than a usage condition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_fbxA
Export the garment as an FBX file.
Args: file_path: Absolute path for the exported .fbx file.
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden but only states the core export action. It does not disclose overwrite behavior, whether the destination directory must exist, scope of the exported garment, or any success/failure side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two brief parts: a front-loaded purpose sentence and a single parameter explanation. There is no filler or repetition, making it easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, low-complexity export tool, the description covers the essential invocation detail: what is exported and where to write it. The lack of detail about overwriting or return values is a minor gap given how simple the operation is.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but the description compensates by defining file_path as an absolute path and explicitly tying it to the .fbx output. This adds useful meaning beyond the schema's bare 'string' property, though it stops short of providing format or example details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Export'), a target ('the garment'), and an explicit format ('FBX'), which clearly sets it apart from sibling export tools such as export_obj and export_glb. Even without reading the schema, an agent knows exactly what this tool produces.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance about when to choose FBX over the many sibling export tools, nor does it mention alternatives or exclusions. An agent must infer suitability solely from the format name in the first sentence.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_glbC
Export the garment as a GLB (binary glTF) file.
Args: file_path: Absolute path for the exported .glb file. options: Optional export options.
| Name | Required | Description | Default |
|---|---|---|---|
| options | No | ||
| file_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure, yet it reveals only the export action itself. It does not disclose overwrite behavior, permission requirements, directory creation, failure modes, or output size. The options field is described only as 'Optional export options,' which is a tautology that adds no behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences plus an Args block with zero filler, and the core purpose is front-loaded. The Args section slightly duplicates the schema, but it is compact and does not waste words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations, no output schema, and 0% schema coverage on both parameters, the description is incomplete for an export operation. It leaves the options object entirely undefined, offers no format-selection rationale versus export_gltf, and provides no behavioral context. An agent cannot know what options are valid or what side effects to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 partially does for file_path, adding the useful 'Absolute path' and destination requirement. But options receives only 'Optional export options,' which merely restates the parameter name and the schema's optionality (default null, not required) — no meaning added for the poorly-understood options object.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb+resource+format: 'Export the garment as a GLB (binary glTF) file.' Naming 'binary glTF' implicitly distinguishes it from OBJ/FBX and from the JSON-based glTF sibling (export_gltf). However, it does not explicitly call out the export_gltf distinction, which is the closest and most confusable sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to choose GLB over glTF, OBJ, FBX, or any of the ~10 export siblings present. No exclusions, no context, no alternative names mentioned. An agent gets no help selecting this format over its peers.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_gltfB
Export the garment as a glTF file.
Args: file_path: Absolute path for the exported .gltf file. options: Optional export options.
| Name | Required | Description | Default |
|---|---|---|---|
| options | No | ||
| file_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description itself conveys the key behavioral trait: the tool writes a glTF file to the supplied absolute path. It does not mention overwrite behavior, whether exported resources/textures are included, or what the call returns, but the core write-to-file behavior is at least explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is compact and front-loaded: one clear purpose sentence followed by two argument lines. It could earn a 5 with a much smaller addition such as an alternatives sentence, but as written every line serves a purpose without padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the essential purpose and file_path argument, and 'options' is at least identified as optional. It is incomplete in meaningful ways—no options semantics, no return/result indication, no file overwrite note, and no relation to the many sibling export tools—so it is minimally viable rather than complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
file_path is given real meaning ('Absolute path for the exported .gltf file'), which is not present in the schema. However, 'options: Optional export options' adds no semantics beyond the schema's optional/nullable declaration, and with 0% schema coverage the description only partially compensates for the opaque options object.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource ('Export the garment') and names the target format ('glTF file'), so an agent can identify the action. It does not differentiate from the closely related sibling export_glb, which is the same export action with a binary glTF format, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only usage signal is the format name: an agent can infer 'use this when a glTF file is requested.' There is no explicit guidance about when to prefer export_gltf over export_glb/export_fbx/export_obj, nor any exclusion or alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_objA
Export the garment as an OBJ file.
Args: file_path: Absolute path for the exported .obj file. options: Optional export options (bExportGarment, bExportAvatar, bThin, scale, etc.).
| Name | Required | Description | Default |
|---|---|---|---|
| options | No | ||
| file_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the basic operation and lists some option keys, but does not mention side effects such as overwriting an existing file, file-system permission needs, required garment state, or what the tool returns after export.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with the core action, followed by a compact Args section. There is no filler or repetition of schema fields, and every sentence contributes useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple export tool with two parameters this is minimally adequate: the required file_path is defined and the optional options are introduced. But the options object remains under-specified, and with no output schema or annotations, there is no information about return behavior or side effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 usefully defines file_path as an absolute path for the .obj file, and it lists example option keys (bExportGarment, bExportAvatar, bThin, scale). However, it does not explain the types, accepted values, or meaning of those options, so an agent cannot confidently construct a correct options object.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Export the garment as an OBJ file.' The OBJ format clearly distinguishes it from sibling export tools like export_fbx, export_glb, and export_gltf, so an agent can identify the intended output without inspecting schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is implied by the format name: use this tool when an OBJ export is needed. However, the description gives no explicit guidance about when not to use it or how it compares to the many other export siblings, so the agent must infer the selection criteria from context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_pattern_sheetA
Export the 2D pattern as a PDF (vector, exactly 1:1: verified in CLO 2025.2) or PNG, by the file's extension, for plotting or printing.
"print_layout" exports the marker of the fabric shown in CLO's Print Layout Editor (see marker_report): the page is the fabric width by the marker length. It needs the layout set up once in CLO (Printing Layout mode, Auto Nesting). "pattern" exports the pattern window.
Args: file_path: Absolute path ending in .pdf or .png. source: "print_layout" or "pattern". paper: a4, a3, b5, b4, letter, legal, tabloid, wide_24in, wide_36in, wide_44in, one_to_one or custom (then give width_mm and height_mm). Default: CLO's setting. The PDF stays one 1:1 page whatever the paper (tested with a4: no tiling), so tile it with your plotter or PDF software for small paper. landscape: Paper orientation. width_mm: Paper width for custom paper. height_mm: Paper height for custom paper. resolution_dpi: Resolution for PNG output. show: What to draw, e.g. {"seam_allowance": true, "notches": true, "grain_line": true, "pattern_name": true, "annotations": true}. Keys: outline, internal_lines, graphic_outline, baseline, notches, seam_allowance, symmetry_line, reference_line, pattern_name, annotations, line_length, grain_line, button_holes, seam_taping, measurements_2d, grading_size_name, nest_information, fabric_texture, pattern_texture, graphic_texture.
| Name | Required | Description | Default |
|---|---|---|---|
| show | No | ||
| paper | No | ||
| source | No | print_layout | |
| width_mm | No | ||
| file_path | Yes | ||
| height_mm | No | ||
| landscape | No | ||
| resolution_dpi | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses the vector 1:1 scaling, verification in CLO 2025.2, that PDF output stays as a single 1:1 page regardless of paper size (no tiling), and that print_layout depends on a prior CLO layout setup. It does not mention return values or error behavior, but the key behavioral traits are covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is lengthy but every section earns its place: it front-loads the core behavior, then uses a clean Args block to document eight parameters. The extra notes about 1:1 scaling, paper behavior, and tiling are useful, not filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having no annotations and no output schema, the description fully covers the operation, the two source workflows, prerequisites, all parameters, defaults, and paper behavior. An agent has enough to call this tool correctly for both PDF and PNG exports.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must fully compensate, and it does. It explains file_path requirements, source values, all paper presets plus custom sizing, landscape, width/height, resolution_dpi, and the full show key set with an example object. This is far beyond what the bare input schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: export the 2D pattern as PDF or PNG, and explains the format is chosen by file extension. It also distinguishes the two source modes (print_layout vs pattern), which separates it from related export tools like export_dxf, export_thumbnail, and export_snapshot.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear context for when each source mode is appropriate: print_layout exports the marker from CLO's Print Layout Editor and requires one-time layout setup, while pattern exports the pattern window. It does not explicitly state when to choose this tool over sibling export tools, but the format and purpose are obvious enough that the lack is minor.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_snapshotA
Save front, back, left and right images of the 3D window as PNG files.
To look at the garment yourself, use capture_3d instead (returns the images).
Args: file_path: Base path; files are saved as _front.png, _back.png, ...
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of disclosing side effects. It clearly states that files are written to disk and describes the exact naming convention (<base>_front.png, etc.). It does not mention overwrite behavior or return/success indicators, but the primary behavioral contract is transparent enough for a simple export tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded. The first sentence states purpose, the second routes to the relevant sibling, and the Args block is short. No sentence is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, low-complexity tool without an output schema, the description is nearly complete: it covers behavior, naming, and the sibling alternative. It stops short of stating what the tool returns on success/failure, which would make it fully self-contained, but the core usage context is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema only says file_path is a string, but the description adds essential meaning: it is a base path, not a literal final file path, and it defines how output filenames are derived. This fully compensates for the 0% schema description coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Save'), a concrete resource ('front, back, left and right images of the 3D window'), and the output format ('PNG files'). It also explicitly contrasts with capture_3d, which returns images instead, making the tool's role clear among siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit usage guidance by naming capture_3d as the alternative when the agent needs to view images directly. It does not compare against other export siblings such as export_thumbnail or export_turntable, but the core decision between saving and returning images is well covered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_tech_packB
Export a tech pack with JSON metadata and images.
Args: file_path: Absolute path for the tech pack output.
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must disclose behavior itself. It reveals that the tool writes a tech pack to an absolute file path, but does not mention overwrite behavior, whether directories are created, side effects, or return values. This is thin for a file-creation operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded; the first sentence states the operation and output format, and the Args line adds the one necessary parameter detail. It is concise, though slightly under-specified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter export tool, the description covers the essential 'what' and 'where.' However, with no annotations or output schema, it omits usage context versus sibling exports and any return/error behavior, making it only minimally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description compensates by explaining file_path as 'Absolute path for the tech pack output,' adding meaning beyond the schema's bare 'File Path' label. It could specify expected extension or file-vs-directory, but the core semantic is clear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific action ('Export') and a distinct resource ('tech pack'), and clarifies content ('JSON metadata and images'). It is distinguishable from sibling export_* tools by the unique 'tech pack' target, though it does not name any sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to choose this over the many sibling export tools (export_obj, export_pattern_sheet, etc.), nor any prerequisites such as a loaded project. The description simply states what the tool does.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_thumbnailB
Export a 3D viewport screenshot/thumbnail.
Args: file_path: Absolute path for the exported image file. width: Image width in pixels (default 512). height: Image height in pixels (default 512).
| Name | Required | Description | Default |
|---|---|---|---|
| width | No | ||
| height | No | ||
| file_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It states that the tool exports an image with specified width/height, but does not mention side effects, required viewport state, file format, or whether it is read-only. This is minimal but not misleading.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the primary purpose, followed by a clearly structured Args list. No unnecessary words, though the Args section is largely restating schema fields with added semantic detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the essential mechanics of the tool, but lacks usage context, output/return behavior, and any discussion of file format or overwrite behavior. Given the tool's simplicity, it is adequate but has clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 adds meaning to all three parameters: file_path is an absolute path for the exported image, width and height are in pixels with defaults. This is more informative than the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: 'Export a 3D viewport screenshot/thumbnail.' This distinguishes it from generic export tools, though it does not explicitly differentiate from closely related siblings like export_snapshot or capture_3d.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives. The description does not mention export_snapshot, capture_3d, or any conditions that would make export_thumbnail the preferred choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_turntableC
Export a 360-degree turntable image sequence.
Args: file_path: Absolute path (directory or base name) for turntable images.
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavior, but it only states the action without mentioning side effects, file creation, overwrite behavior, or prerequisites. The agent cannot know what happens when it runs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, front-loads the purpose, and includes a structured Args section. It is not bloated, but it lacks detail that could be added without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is too sparse to fully inform the agent. It omits details about the output format, file naming, required state, and potential side effects, making it insufficient for safe invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description explains file_path as an absolute path that can be a directory or base name, adding meaning beyond the schema's type. However, it doesn't clarify how these two modes differ or what the tool does with the path, leaving ambiguity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool exports a 360-degree turntable image sequence, which is a specific export type distinct from siblings like export_obj or export_thumbnail. However, it doesn't specify what object the turntable is of, leaving some ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool vs other export tools. The description doesn't mention alternatives or selection criteria, so an agent must infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
flip_patternA
Flip a pattern piece horizontally or vertically.
Args: pattern_index: Zero-based index of the pattern piece to flip. horizontal: True for horizontal flip, False for vertical flip.
| Name | Required | Description | Default |
|---|---|---|---|
| horizontal | No | ||
| pattern_index | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden. It does state that the operation flips a pattern piece and exactly how the boolean maps to horizontal/vertical behavior. However, it does not explicitly say whether the piece is modified in place, whether the flip is reversible, or what the tool returns, leaving some side-effect ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: one clear action sentence followed by a minimal Args block. There is no filler, and every line adds useful semantic information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter operation, the description is mostly adequate to make a valid call. It is incomplete, though, because it does not clarify side effects or distinguish flip_pattern from the overlapping sibling mirror_pattern, and there is no output schema to clarify the return behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, but the description fully compensates by explaining that pattern_index is zero-based and that horizontal=true means horizontal flip while horizontal=false means vertical flip. Both parameters receive meaningful semantics beyond their raw names and types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action ('flip'), a specific target ('a pattern piece'), and the two supported orientations ('horizontally or vertically'). It is clear and distinguishable from most siblings, but it does not explicitly differentiate itself from the similarly named mirror_pattern sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use flip_pattern versus alternatives such as mirror_pattern, move_pattern_2d, or copy_pattern. It also provides no exclusions or conditions, so the agent must infer the appropriate usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_arrangement_listB
Get the list of arrangement points on the avatar.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden. It signals a read-only retrieval ('Get') and scopes the result to arrangement points on the avatar, but it does not state whether there are side effects, how the list is ordered, or what information each point contains. Basic transparency, but not complete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no filler; the verb and object are front-loaded and every word contributes. It is appropriately concise for a zero-parameter getter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, but there is no output schema and a near-identically named sibling (get_arrangement_points) exists. The description states the return type ('list') and scope ('on the avatar'), which is enough for a basic call, but it lacks disambiguation and any detail about the returned data structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero properties, so there are no parameter semantics to document. The description correctly avoids inventing parameters, and the baseline for a zero-parameter tool is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a clear verb ('Get') and a specific object ('list of arrangement points on the avatar'), so the basic purpose is unambiguous. However, it does not differentiate the tool from the sibling get_arrangement_points, which appears to describe the same concept, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus get_arrangement_points or any other sibling. No conditions, prerequisites, or alternatives are mentioned, so the agent is left without selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_arrangement_pointsA
List the avatar's arrangement points (needs an avatar in the scene) for place_pattern.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It discloses a prerequisite (avatar presence) and the read-like nature of 'list', but it does not specify what happens if the precondition fails, the exact return format, or any side effects. The prerequisite disclosure is useful, but more behavioral detail would be expected for a tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The entire description is a single, front-loaded sentence that conveys the action, a prerequisite, and the intended use case with no filler. Every clause adds value, making it an excellent example of concise writing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with no output schema, the description covers the essential elements: what it does, a key prerequisite, and its purpose. It could mention the return value (a list of points) explicitly, but that is strongly implied by 'list' and the context, so it is adequate for the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema is empty, so the baseline is 4. The description does not need to add parameter semantics, and it correctly avoids inventing any.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'list' and the resource 'avatar's arrangement points', with an explicit purpose ('for place_pattern'). It distinguishes from potential siblings like get_arrangement_list by scoping to the avatar and the placement use case, though it doesn't name an alternative directly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides a clear precondition ('needs an avatar in the scene') and an implied usage context ('for place_pattern'), but it does not explicitly contrast with alternatives like get_arrangement_list or state when not to use it. The guidance is present but not fully explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_avatarsA
List avatars in the scene with names and genders.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral disclosure burden. It communicates the scope ('in the scene') and the returned data fields, which is useful, but it does not explicitly state that the operation is read-only, non-destructive, or what happens when no avatars exist. For a simple list operation this is minimally adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that wastes no words. It front-loads the action and resource, then adds the output details, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (0 parameters, no output schema, simple list operation), the description is nearly complete. It states the scope and mentions the returned fields, which partially compensates for the missing output schema. It could be slightly more explicit about the shape of the returned list, but this is sufficient for the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema trivially covers 100% of them, so no parameter documentation is needed from the description. The baseline for 0-parameter tools is 4, and the description adds no parameter ambiguity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') with a specific resource ('avatars in the scene') and even states the output fields (names and genders). The scope 'in the scene' clearly distinguishes it from sibling tools like import_avatar or show_avatar, which add or display avatars rather than list them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus alternatives such as show_avatar or import_avatar. The description implies a read-only list operation, but it never explicitly states conditions or provides exclusions, leaving the agent to infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_clo_dialogA
The dialog open in CLO right now, if any: title, message and buttons. Commands answer CLO's acknowledge-only dialogs (OK / Close) themselves and list them in clo_dialogs; a dialog that needs a decision stops the command with its text and buttons instead of hanging.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully discloses that acknowledge-only dialogs are handled automatically and that decision dialogs stop commands with text and buttons, but it does not state this tool's own side effects, safety profile, or behavior when no dialog exists beyond the phrase 'if any'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with what the tool returns and then adds relevant dialog-handling context. It is reasonably concise, though the second sentence is a dense run-on that mixes behavior of other commands with this tool's context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter getter with no annotations or output schema, the description adequately covers purpose and return content. The main gap is routing guidance: it does not explicitly tell the agent when to use get_clo_dialog versus answer_clo_dialog.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero input parameters, so the baseline is 4. The description cannot add parameter-level meaning, and that is appropriate for a no-argument getter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the resource and return payload: the currently open CLO dialog, if any, including its title, message, and buttons. It does not explicitly name answer_clo_dialog as a sibling alternative, so sibling differentiation is implied rather than explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: call this to inspect the dialog currently open in CLO. The description explains how commands handle acknowledge-only dialogs and decision dialogs, but it never states when to choose this tool over answer_clo_dialog or other dialog-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cloth_boundsA
3D bounding box (mm) of the cloth: min/max [x, y, z]. CLO's 3D axes: Y is up, Z points towards the front view camera, X to the avatar's left. Use it to place rods and props and to check where a piece ended up (e.g. is this panel still on the rod?).
CLO only reports cloth once it has been simulated, and reports nothing while every piece is frozen: run simulate(1) with at least one piece unfrozen first. A flat new piece lies at its 2D (x, y) coordinates in the plane z = 200.
Args: region_min: Only count vertices inside this box: [x, y, z] lower corner. region_max: Upper corner [x, y, z] of that box. pattern_index: Only this pattern's vertices.
| Name | Required | Description | Default |
|---|---|---|---|
| region_max | No | ||
| region_min | No | ||
| pattern_index | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of explaining behavior. It discloses that results depend on simulation, that frozen pieces report nothing, and that a flat unpinned piece sits at z=200, plus the axis orientation details. This is rich, useful behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core result, then adds axis context, behavioral caveats, and structured parameter explanations. Every sentence contributes useful information, with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the return value, units, coordinate system, usage scenarios, simulation prerequisites, behavior edge cases, and parameter semantics. Given the lack of annotations and output schema, it provides everything an agent needs to decide when and how to call it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain the parameters itself. It does so by defining region_min and region_max as box corners and pattern_index as a filter for specific pattern vertices. This adds clear meaning beyond the bare schema types and defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns the 3D bounding box of the cloth with units and axis definitions. It is specific about the resource (cloth) and output (min/max x, y, z), though it does not explicitly contrast it with sibling tools like get_pattern_bounding_box.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit use cases: placing rods and props, and checking where a piece ended up. It does not provide comparisons or exclusions relative to alternative tools, but the intended context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_colorwaysA
Get a list of all colorways in the current project with names and which is active.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the read-only nature implicitly via 'Get' and specifies the content of the response (names and active flag). It does not explicitly state that no state is modified or mention any errors/edge cases, making this minimally adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, compact sentence that front-loads the operation and result. Every word adds value, with no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity, zero-parameter tool with no output schema or annotations, the description adequately explains what is returned (names and active status). It could mention ordering or whether inactive colorways are included, but 'all colorways' already implies inclusion, so it is essentially complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the schema coverage is 100% (vacuously). With no parameters, the baseline is 4, and there is nothing the description needs to add about parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and resource ('all colorways in the current project') and specifies the returned data (names and which is active). This clearly distinguishes it from siblings like set_current_colorway and other get_* list tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is clear from the context: listing colorways in the current project, which pairs naturally with set_current_colorway among siblings. However, it does not explicitly name alternatives or state when not to use it, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_fabric_for_patternB
Get which fabric is assigned to a pattern piece.
Args: pattern_index: Zero-based index of the pattern piece.
| Name | Required | Description | Default |
|---|---|---|---|
| pattern_index | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full responsibility for behavioral disclosure. It implies a read-only 'get' operation, but does not mention return format, error behavior for invalid indices, or whether any side effects occur. The description is minimal and leaves these behaviors unspecified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: one clear declarative sentence followed by a single argument definition. It is front-loaded with the purpose and contains no redundant or extraneous text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple getter with one parameter, the description covers purpose and parameter semantics, but it omits the return value format (e.g., fabric ID or name) and any error conditions. Given the absence of annotations and output schema, these gaps leave the tool somewhat incomplete for an agent to use confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 fully by explaining 'pattern_index' as a zero-based index of the pattern piece, adding critical meaning beyond the bare integer type in the schema. This single parameter is clearly and completely defined.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear, specific verb and resource: 'Get which fabric is assigned to a pattern piece.' This distinguishes it from write operations like assign_fabric_to_pattern and list operations like get_fabric_list, though it does not explicitly name sibling alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It does not mention conditions, exclusions, or when to prefer get_fabric_info or get_fabric_list. The description simply states what it does without any usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_fabric_infoC
A fabric's name, its information fields (content, classification, supplier...) and CLO's fabric info JSON.
| Name | Required | Description | Default |
|---|---|---|---|
| fabric_index | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the data returned but does not state that it is a read-only operation (implied by 'get'), nor does it describe error behavior, required permissions, or side effects. The description is too terse to fully disclose behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one concise sentence, front-loading the key details about the returned data. It avoids unnecessary words and is easy to read. It could be slightly clearer in structure but is appropriately sized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple getter with one parameter and no output schema, the description offers a minimal specification: it lists the returned fields and mentions the JSON format. However, it lacks details on error handling, the exact JSON structure, and any prerequisites. It is minimally complete but not thorough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has only one parameter, fabric_index, with no description provided (schema coverage 0%). The tool description does not explain the parameter or how it relates to the returned data. The agent must rely on the parameter name alone, which is a gap given the zero coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states what the tool returns: a fabric's name, information fields, and CLO's fabric info JSON. It identifies a specific resource (a single fabric) and distinguishes from siblings like get_fabric_list (which lists fabrics) and set_fabric_information (which mutates). It is not a tautology, though it could be more explicit about retrieving data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention alternative tools, prerequisites, or contexts. An agent would have to infer usage from the name and siblings, which is insufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_fabric_listA
Get a list of all fabrics in the current project with their indices and names.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It communicates a read-only intent through 'Get' and states the output shape, but it does not disclose behaviors such as project-state requirements, ordering guarantees, or whether any implicit filtering occurs. This is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that is immediately informative, with the action, scope, and output contents all front-loaded. There is no redundant wording or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read-only list tool with no output schema, the description adequately specifies scope and return contents. It could be slightly more explicit about the exact return structure, but an agent can confidently invoke it without missing critical information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4. The description adds meaningful context by stating the scope ('current project') and the returned data ('indices and names'), which is all an agent needs given no inputs are required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and resource ('a list of all fabrics in the current project'), and clarifies the return contents ('indices and names'). This clearly distinguishes it from sibling tools like get_fabric_info, which targets a single fabric, and get_fabric_for_pattern, which is scoped to a pattern.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as get_fabric_info or get_fabric_for_pattern. The intended use is implied by the name and description, but there are no explicit exclusions or alternative-routing hints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_garment_infoA
Export and retrieve garment metadata as JSON, including pattern details, fabric assignments, and measurements.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full responsibility for disclosing behavior. It says 'export and retrieve' which hints at read-like operation but does not clarify whether any side effects occur (e.g., writing to disk), nor does it mention permissions, rate limits, or reversibility. The term 'metadata' suggests a non-destructive intent but this is not explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, well-structured sentence that front-loads the core action and resource, then details the content. Every word contributes value; there is no redundancy or irrelevant detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description lists the returned content but does not specify the scope of 'garment' — for example, whether it refers to the currently open project, a selected garment, or all garments. Given the absence of parameters and output schema, this ambiguity could confuse an agent. However, the tool is simple, so the description is mostly complete but leaves this key context unclear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so schema coverage is trivially 100%. Per the baseline rule for 0 parameters, this dimension is satisfied. The description adds no parameter-specific meaning because there are none, but it does not need to.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('Export and retrieve') and a distinct resource ('garment metadata') with specific content (pattern details, fabric assignments, measurements). It differentiates from sibling tools like get_pattern_info and get_fabric_info by targeting the garment-level aggregate, making the tool's purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for obtaining overall garment data but does not explicitly state when to prefer this over pattern-specific or fabric-specific tools. No alternative names or exclusion conditions are given, leaving the decision to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pattern_annotationsC
The notes written on a piece, with their positions.
| Name | Required | Description | Default |
|---|---|---|---|
| pattern_index | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only states that notes and their positions are returned, but does not clarify read-only nature, error conditions, output format, or any side effects. The description adds minimal context beyond the obvious.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, which is concise, but it is under-specified. It is not front-loaded with the most important information (what the tool does). The sentence is not verbose but it does not effectively communicate the core action. It is acceptable in length but poor in content structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one parameter, no output schema, and no annotations, the description is incomplete. It does not specify the structure of the returned annotations, the meaning of 'positions,' or any prerequisites or error behavior. An agent calling this tool would not know what to expect beyond the name and minimal description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 by explaining the pattern_index parameter. It does not. The description mentions 'a piece' but does not explicitly connect it to the pattern_index or explain how the index is used. No additional meaning is added over the schema, which only lists the parameter name and type.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'The notes written on a piece, with their positions.' implies the tool retrieves annotations, but it lacks an explicit verb like 'get' or 'retrieve.' The resource is vague ('a piece' vs. the pattern identified by pattern_index). It does not clearly distinguish from sibling add_pattern_annotation, though that tool is obviously for creating. The purpose is discernible but not precise.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives. It does not mention that it retrieves annotations for a specific pattern, nor does it contrast with add_pattern_annotation or other get tools. The agent is left to infer usage from the name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pattern_bounding_boxB
Get the bounding box (width/height) of a pattern piece.
Args: pattern_index: Zero-based index of the pattern piece.
| Name | Required | Description | Default |
|---|---|---|---|
| pattern_index | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states the tool retrieves bounding box dimensions but does not disclose units, coordinate system, return format, or error behavior for invalid indices. Minimal disclosure for a getter with no annotation support.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise and front-loaded, with a clear one-sentence purpose followed by the parameter explanation. Every word earns its place, no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple getter with one parameter and no output schema, the description is mostly complete. However, it lacks return format details (e.g., width/height as floats, units) and error handling, which could confuse an agent. It's adequate but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema only defines pattern_index as an integer with no description. The description adds semantic meaning by specifying 'Zero-based index of the pattern piece,' which is valuable. However, it does not elaborate on valid ranges or edge cases, so it's adequate but not exhaustive.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets the bounding box (width/height) of a pattern piece, using a specific verb and resource. It distinguishes itself from siblings like get_pattern_info or get_pattern_geometry by focusing on the bounding box, though it doesn't explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus other pattern query tools. The description only states what it does, without context on selection criteria or when it's appropriate to call it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pattern_countA
Get the total number of pattern pieces in the current project.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does convey a read-only operation via the verb 'Get' and states the returned information is a total count. However, it does not disclose whether the count includes only main pieces versus internal/topstitch pieces, or what happens if no project is open — behavioral details an agent might need.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single 12-word sentence with zero waste that front-loads the verb and resource. Every word earns its place, and there is no redundant elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a trivial zero-parameter, no-output-schema read tool, the description is mostly complete: it states the purpose and scope. Minor gaps remain — the return type is only implied ('total number' suggests an integer) and error behavior for a missing project is unspecified — but nothing blocks correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4. The description correctly needs no parameter explanation; the empty schema has 100% coverage trivially, and nothing is left ambiguous about invocation arguments.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get'), resource ('total number of pattern pieces'), and scope ('current project'). The word 'count' inherently distinguishes this from siblings like get_pattern_list, get_pattern_info, and get_pattern_geometry, so an agent can tell it apart without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as get_pattern_list or get_pattern_info. There is no mention of when a count is preferred over a full list, no exclusions, and no prerequisites (e.g., requiring an open project), leaving the selection decision entirely to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pattern_geometryA
Get pattern pieces with numbered outline lines, internal shapes and all seams.
Use this before sewing or editing lines: every line-based tool takes the line_index
values listed here. Each line has its length (mm) and start/end points in 2D pattern
coordinates. Each seam lists, for both sides, the pattern, optional internal shape, the
lines it covers (coverage 1.0 = whole line) and where stitching starts and ends.
"sewn_together" pairs those ends (side a's start is sewn to side b's start, end to end):
if a left end is paired with a right end the seam is twisted; sew it again with one
direction flipped. A pocket's fold-over seam deliberately pairs the strip's top edge with
a lower line.
Args: pattern_index: Only return this piece and the seams touching it (default: all). include_points: Also return every point of every line (larger output).
| Name | Required | Description | Default |
|---|---|---|---|
| pattern_index | No | ||
| include_points | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does disclose substantial behavior: line lengths, start/end points, seam coverage, sewn_together pairing, twisted-seam handling, and pocket fold-over behavior. It does not explicitly state 'this is read-only/no side effects,' though 'Get' plus the preparatory framing implies it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but every sentence earns its place, explaining seam semantics that are essential for correct downstream use. It front-loads the main purpose and usage, then parameter details. It is somewhat long, but the complexity of the returned geometry justifies the length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having no output schema and no annotations, the description comprehensively explains what is returned, the meaning of line_index, coordinate units, seam pairing rules, and parameter effects. It gives an agent enough context to correctly call the tool and interpret its output for sewing and editing workflows.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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, and it does. It explains pattern_index as filtering to one piece and its touching seams (default all), and include_points as adding every point of every line with a larger-output warning. This meaningfully exceeds the bare schema definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Get pattern pieces with numbered outline lines, internal shapes and all seams.' It clearly distinguishes the tool from siblings like get_pattern_info and get_pattern_list by framing it as the source of line_index values for line-based editing and sewing tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Use this before sewing or editing lines' and explains why, since every line-based tool takes the line_index values returned here. It gives a clear use context but does not explicitly name alternative tools or state when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pattern_infoB
Get detailed information about a specific pattern piece.
Args: pattern_index: Zero-based index of the pattern piece.
| Name | Required | Description | Default |
|---|---|---|---|
| pattern_index | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The verb 'Get' strongly implies a read-only operation and the description makes no claim of side effects. However, there are no annotations confirming safety, and the description does not explicitly state that the pattern is unmodified or mention any error/permission conditions. For a simple getter this is acceptable but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact: one clear purpose sentence and one argument definition with no filler. It is front-loaded and easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter getter, the description is minimally sufficient for invocation: the agent knows which argument to provide and that the result is pattern information. But with no output schema, 'detailed information' is vague, and the agent cannot know what fields will be returned until runtime.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema only says 'pattern_index' is an integer, while the description adds the important semantic that it is a zero-based index of the pattern piece. This fully documents the single required parameter, though it omits bounds or out-of-range behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses 'Get detailed information about a specific pattern piece,' which clearly names the verb and resource. It distinguishes itself from list-oriented siblings like get_pattern_list and get_pattern_count, though it does not explicitly separate itself from other per-piece getters such as get_pattern_geometry.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool versus get_pattern_geometry, get_pattern_bounding_box, or get_pattern_state. The description provides no context for choosing it over alternative information-retrieval tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pattern_listA
Get a list of all pattern pieces with their indices and names.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It communicates a read-only listing operation and specifies the output fields (indices and names). It stops short of stating ordering, pagination, or empty-result behavior, but for a zero-parameter getter this is not a material gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the action and resource, with every word adding information. There is no verbose or redundant content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter list tool with no output schema, the description provides the essential contract: all pattern pieces, indices, and names. Nothing else is required to select or invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the input schema has no properties, so there is nothing for the description to explain about parameter semantics; the baseline score of 4 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a precise verb and resource: 'Get a list of all pattern pieces with their indices and names.' It clearly states the scope ('all') and the returned data (indices and names), so an agent can distinguish it from count or single-info tools without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The wording implies this is the tool to use when enumerating all pattern pieces, but it does not explicitly say when to prefer it over sibling tools such as get_pattern_count or get_pattern_info, nor does it name alternatives or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pattern_stateC
Get a piece's layer, solidify state, grain direction, shrinkage and 3D arrangement.
| Name | Required | Description | Default |
|---|---|---|---|
| pattern_index | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It does not state whether the operation is read-only, whether any side effects occur, or what prerequisites exist (e.g., pattern must exist). While being a 'get' implies non-mutating, this is not explicitly stated, and no additional behavioral context is given.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no unnecessary words. It lists the key returned attributes concisely and front-loads the main action. This is appropriately sized for a simple getter tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there is no output schema, the description should clarify what the return value looks like (e.g., a structured object with those fields, or separate values). It also does not explain domain-specific terms like 'solidify state' or '3D arrangement'. For a tool with one parameter and no output schema, the description is too sparse to fully guide correct invocation and interpretation of results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% coverage for pattern_index, and the description does not explain what pattern_index refers to (e.g., index into the pattern list) or its expected format/range. The parameter name is somewhat self-explanatory, but the description adds no meaning beyond the name, failing to compensate for the lack of schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and clearly enumerates the attributes returned (layer, solidify state, grain direction, shrinkage, 3D arrangement). This makes the tool's purpose clear, though it does not explicitly contrast with siblings like get_pattern_info or get_pattern_geometry, which might overlap. The specificity of the listed fields is a strong positive.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as get_pattern_info, get_pattern_geometry, or set_pattern_state. The name implies it is for retrieving state, but the description provides no explicit when-to-use or when-not-to-use conditions, leaving the agent to infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_print_optionsA
Current 2D export settings (paper, orientation, resolution and what is shown) for the pattern window ("pattern") or the print layout ("print_layout").
| Name | Required | Description | Default |
|---|---|---|---|
| source | No | print_layout |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the behavioral burden itself. 'Current' and the read-only framing make clear this is a query, not a mutation. It also discloses that results are scoped to either the pattern window or print layout. It stops short of describing the response shape or edge cases, but for a simple getter the core behavior is transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no filler. The resource is front-loaded, the content of the settings is summarized compactly, and the parameter-related detail appears naturally at the end.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter getter with no output schema and no annotations, the description covers the resource, the parameter values, and the kind of data returned. It does not spell out the exact return structure, but that is a minor gap given the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides only a type and default with 0% description coverage, so the description must compensate. The parenthetical values 'pattern' and 'print_layout' give the agent the meaningful options for the source parameter and their purpose. It would be slightly stronger if it explicitly said these are the valid values for `source`, but the mapping is clear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a concrete read operation: retrieving current 2D export settings, and it enumerates the content (paper, orientation, resolution, and what is shown). It also distinguishes the two modes, pattern window and print layout, which helps differentiate it from the many export_* sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use or when-not-to-use guidance and no named alternatives. However, the phrase 'Current 2D export settings' implies this is the tool to check settings before exporting, and the two source values provide useful context for when each variant applies.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_project_infoA
Get information about the current CLO3D project including name, path, version, and counts for patterns, fabrics, and colorways.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. 'Get information' clearly signals a read-only operation, and the description discloses the kind of data returned. However, it does not mention what happens when no project is open, whether all counts are current, or any other operational behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words. It front-loads the action and resource, then enumerates the returned information in a clear list-like structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity, zero-parameter read-only tool, the description is largely complete. It lists the output fields the agent can expect, which is especially important since no output schema is present. It could be slightly more specific about output shape, but the scope is simple enough that this is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the input schema carries no semantic burden. The description does not need to explain parameter behavior, and the baseline of 4 for a zero-parameter tool is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('Get information'), the target resource ('current CLO3D project'), and the data fields returned (name, path, version, counts). It is distinguishable from project-adjacent siblings like get_pattern_info and get_garment_info because it is explicitly scoped to the project level, though it does not explicitly name any sibling as an alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as get_pattern_count, get_fabric_list, or get_colorways. It implies usage through 'current CLO3D project,' but there is no explicit context, prerequisites, or exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_topstitch_styleB
A topstitch style's name, offset and per-line values as CLO's API reports them (stitch length and thread thickness are not readable through the API).
| Name | Required | Description | Default |
|---|---|---|---|
| style_index | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It usefully discloses that the tool reports values exactly as CLO's API provides them and explicitly states that stitch length and thread thickness are not readable through the API. This goes beyond the schema and gives the agent realistic expectations, though it does not mention error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single compact sentence with no filler. The main content is front-loaded, and the parenthetical adds a valuable API limitation without bloating the text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read tool, the description names the returned fields and a key limitation. However, it does not connect style_index to list_topstitch_styles or describe edge cases, and there is no output schema to fill that gap. It is adequate but leaves some context to inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage and the description never explains style_index, such as what it indexes into or how it maps to a topstitch style. The parameter name is fairly self-explanatory, but with no schema description and no compensating detail in the tool description, the agent is left to infer the parameter's meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource (topstitch style) and the specific data returned: name, offset, and per-line values. It does not use an explicit verb like 'retrieves', but the tool name and 'as CLO's API reports them' make the read operation clear. It is distinguishable from list/create/set siblings by focusing on a single style's read-only fields.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus siblings like list_topstitch_styles, set_topstitch_style, or create_topstitch_style. The parenthetical about unreadable stitch length and thread thickness implies a limitation, but it does not name alternatives or conditions for choosing this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hang_on_rodA
Hang panels on a rod from a frozen header band: the reliable way to hang curtains, noren and banners (make_rod_pocket's folded pocket is not reliable with several panels).
Adds a band above each panel's straight top edge, sews it on, freezes it flat (it acts like a pin line) and lays a rod along it; the panels drape from the bands. The pocket does not wrap the rod in 3D: the rod lies against the band's rod_side face, so from the other side it looks like a rod pocket with the rod ends showing. Save a checkpoint first.
Args: pattern_index: The panel, or a list of panels sharing one rod; their top edges must be at the same height. band_height: Height of the band in mm, added above the top edge (so make the panels that much shorter for a given finished height). At least rod_diameter + 10. rod_diameter: Rod diameter in mm. rod_overhang: How far the rod extends past each side, in mm. settle_steps: Simulation steps to let the panels hang. rod_side: "front" (+z, towards the front camera) or "back" (-z). fabric_index: Fabric for the bands (default: each panel's own fabric).
| Name | Required | Description | Default |
|---|---|---|---|
| rod_side | No | front | |
| band_height | No | ||
| fabric_index | No | ||
| rod_diameter | No | ||
| rod_overhang | No | ||
| settle_steps | No | ||
| pattern_index | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and meets it: it explains the mechanism (adds a band, sews it, freezes it flat like a pin line, lays a rod along it), the visual outcome (looks like a rod pocket from the other side with rod ends showing), and hints at destructibility by advising a checkpoint first. No safety annotations exist to contradict this.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The prose is front-loaded with the core purpose, then moves to a concise mechanism sentence and a bulleted Args block. Every sentence carries information—constraint, visual result, checkpoint warning, and each parameter—so the length is justified by the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter tool with no output schema and no annotations, the description supplies everything needed: all parameters with units and constraints, the alternative tool, the visual behavior, the multi-panel requirement, and a checkpoint warning. Nothing required to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain every parameter, and it does: pattern_index is defined as a panel or list of panels sharing one rod with equal top-edge heights, band_height has a unit and minimum constraint (rod_diameter + 10), rod_side maps 'front' to +z and 'back' to -z, and defaults are stated for fabric_index. This is strong compensation for an empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Hang panels on a rod from a frozen header band,' and explicitly separates itself from make_rod_pocket by noting that the folded pocket approach is unreliable with several panels. It names the sibling and the scope, so an agent can tell the tools apart.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states the intended use ('the reliable way to hang curtains, noren and banners'), names the alternative and the condition where it is inferior ('make_rod_pocket's folded pocket is not reliable with several panels'), and gives an operational warning ('Save a checkpoint first'). This gives clear when/why guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
import_avatarA
Load an avatar (.avt, .avac) into the scene, optionally with an arrangement file (.apf).
| Name | Required | Description | Default |
|---|---|---|---|
| apf_path | No | ||
| file_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure, but it only states the action without revealing side effects. It does not say whether the avatar replaces an existing one, whether a project must be open, whether the scene is modified, or what the result/return value is. For a mutation-style operation, this is a significant transparency gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, short sentence that front-loads the core action and file formats. It contains no redundant wording, and the optional arrangement mention adds relevant information without bloating the text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter import tool, the description provides enough to attempt basic invocation, but it is incomplete in important ways. There is no mention of prerequisites, side effects, or behavior after loading, and no output schema exists to fill that gap. Given the simplicity and the absence of annotations, a few extra details about the operation's consequences would make it more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description maps the .avt/.avac files to the avatar file path and the .apf file to the arrangement path, adding clear meaning that the schema (0% coverage) entirely lacks. It implicitly identifies file_path as the avatar and apf_path as the optional arrangement. However, it does not explicitly name the parameters or mention path-format requirements, leaving a small amount to inference.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'load' with the resource 'avatar' and names the exact file extensions (.avt, .avac), making the tool's scope immediately clear. It also mentions the optional .apf arrangement file, further distinguishing this from generic import_file or avatar-related siblings like get_avatars and show_avatar.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool versus alternatives such as import_file, get_avatars, or show_avatar. The description only states the action, not the conditions under which an agent should select it. No exclusions or prerequisites are given, leaving the decision entirely to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
import_collision_objectA
Import your own OBJ (e.g. a modelled curtain rail or furniture) as an object cloth collides with. Units are mm unless scale is set (e.g. 10 for a model in cm). It replaces the current avatar and any rods or boxes (CLO keeps a single avatar).
Args: file_path: Absolute path to the .obj file. keep_position: Keep the file's coordinates (False: CLO drops it onto the ground). scale: Scale factor applied on import.
| Name | Required | Description | Default |
|---|---|---|---|
| scale | No | ||
| file_path | Yes | ||
| keep_position | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does so well. It discloses the destructive/replacement side effect explicitly and explains unit handling and coordinate behavior, including the keep_position false drop-to-ground effect.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: purpose, key side effect, units, then an Args block. Every sentence adds necessary information and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a three-parameter tool with no annotations and no output schema, the description is complete enough for correct invocation. It covers all parameters, the required file format, side effects, and units, so an agent can call it without needing additional clarification.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate, and it fully does. It explains file_path as an absolute path to the .obj file, clarifies what keep_position does in practical terms, and gives meaningful scale guidance with a unit example.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: importing an OBJ file as an object that cloth collides with. It gives concrete examples (curtain rail, furniture) and clearly distinguishes this from file/avatar imports by explaining the collision-object role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context about when to use it: when the user wants to bring in their own OBJ geometry as a collision object. It warns about replacing the current avatar and rods/boxes, which serves as an implicit exclusion, but it does not explicitly name alternative tools such as add_box, add_rod, or import_file.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
import_fileB
Import a file into CLO3D. Auto-detects type from extension (.zprj, .zpac, .obj, .fbx, .avt, etc.).
Args: file_path: Absolute path to the file to import.
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose side effects and behavior. It reveals one useful trait (auto-detects type from extension), but does not say whether importing replaces the current project, merges content, requires an existing project, or what happens on unsupported extensions. This is a significant gap for an import operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two compact sections: a one-sentence purpose and a single argument definition. Every sentence contributes, and the key behavior (auto-detection) is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter tool, the essential invocation detail (absolute file path) is present, and examples of supported extensions are given. However, the description omits the import's effect on the current CLO3D project and does not differentiate from open_file, so an agent may not know the correct context for calling it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema only declares file_path as a string with no description, so the description's 'Absolute path to the file to import' adds the key semantic that the path must be absolute and points to the file. It does not enumerate all supported extensions or constraints, but for a single required parameter this is adequate compensation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a clear verb and object ('Import a file into CLO3D') and adds the auto-detection behavior from extension, which helps distinguish it from more targeted imports like import_avatar or import_collision_object. It does not explicitly name sibling tools, but the scope is clear enough.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use import_file versus open_file, import_avatar, or import_collision_object. The description only states what the tool does, not the conditions that select it over alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_checkpointsA
List saved checkpoints, newest first.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description itself conveys a non-mutating 'List' behavior and the newest-first ordering. It adds useful behavioral context, though it does not mention limits or what checkpoint fields are returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Five words state the operation, object, and sort order with no filler. Every word carries meaning and the main action is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless read-only list tool, the description covers action and ordering. Since there is no output schema, a bit more detail on what checkpoint data is returned would be ideal, but it is not required for successful invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so the schema has no burden and the description does not need to document arguments. The baseline 4 applies because a no-parameter tool cannot gain meaning from parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Identifies the exact operation (list), the resource (saved checkpoints), and the result ordering (newest first). This clearly distinguishes it from save_checkpoint and restore_checkpoint and from the various pattern/fabric list tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for reviewing saved checkpoints, and the sibling set contains save/restore as related alternatives. However, it does not explicitly state when to choose this over restore_checkpoint or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_collision_objectsA
The rods and boxes currently in the scene, with the index remove_collision_object takes.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral burden. It communicates that the tool reflects current scene state and that indices are meaningful to remove_collision_object, but it does not explicitly state read-only behavior, return shape, ordering, or empty-scene behavior. Adequate but incomplete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence with no filler; the current-scene scope is front-loaded and the index relationship is meaningful. The phrasing is slightly compressed but every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, no-output-schema list tool, the description covers what is returned and why the returned index matters. It does not detail the exact return structure, but the simple nature of the tool makes the description minimally sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema imposes no burden. The description adds the relevant index semantics for the companion removal tool, which is the most useful contextual information an agent needs here. Baseline 4 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource (rods and boxes), the scope (currently in the scene), and ties the result to remove_collision_object's expected index. It is not a tautology and is distinguishable from collision-object add/remove/import siblings, though it lacks an explicit verb.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use statement or mention of alternatives, but the phrase 'with the index remove_collision_object takes' implies the tool should be called before removal to get valid indices. This is contextual guidance, not clear routing between siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_topstitch_stylesA
List the topstitch styles in the project, for add_topstitch's style_index.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral transparency burden. It communicates a read-only listing action and project scope, but it does not disclose output format, ordering, or whether the returned values are names, ids, or objects. Basic behavior is clear, but the full return contract is unspecified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that front-loads the primary action and resource, then immediately adds the key consumer context. There is no filler or repeated schema information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter list tool, the description is complete: it states what is listed, in what scope, and why the result matters. The reference to add_topstitch's style_index is enough for an agent to know both when to call it and how to use its result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters show dash the input schema is fully covered at 100%, and the baseline for no-parameter tools is 4. There is no parameter-level detail needed beyond what the empty schema already makes obvious.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('List'), a clear resource ('topstitch styles'), scopes it to 'the project', and gives an explicit purpose ('for add_topstitch's style_index'). This also distinguishes it from siblings like get_topstitch_style, which implies singular retrieval, and create/set/add mutations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'for add_topstitch's style_index' clause provides a clear when-to-use context: call this before add_topstitch to obtain a valid style_index. It does not explicitly mention alternatives or exclusions, but for a zero-parameter list tool this is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
load_poseA
Pose the avatar from a .pos file (made and saved in CLO, or with save_pose). CLO's API cannot bend joints itself, so poses are built in CLO's pose tools and reused from files. Load the pose before placing garment pieces: arrangement points follow the avatar.
Args: file_path: The .pos file. pose_and_translation: Also apply the pose's position in the scene (default: pose only). bottom_to_ground: Stand the avatar's feet on the ground afterwards.
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes | ||
| bottom_to_ground | No | ||
| pose_and_translation | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden and discloses important context: CLO's API cannot bend joints itself, poses must be built in CLO and reused, and loading order affects arrangement points. It still does not state whether loading replaces an existing pose, whether the operation is reversible, or what errors may occur.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded: it starts with the core action, explains why the tool exists, gives an important ordering instruction, and then lists parameter meanings. Every sentence adds useful context without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description is largely complete for calling the tool: it explains purpose, ordering dependency, and all parameters. It could be stronger with explicit side-effect or overwrite behavior, but it covers what an agent needs to invoke it correctly in most cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 documents all three parameters: file_path is the .pos file, pose_and_translation also applies the pose's scene position and defaults to pose-only, and bottom_to_ground stands the avatar's feet on the ground afterwards.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Pose the avatar from a .pos file.' It also names a sibling tool (save_pose) as a source of the file, so an agent can distinguish this loading operation from pose-saving or avatar-importing operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear usage context: load the pose before placing garment pieces because arrangement points follow the avatar. It also implies that poses originate from CLO's pose tools or save_pose. It does not explicitly state when not to use the tool or name an alternative for a conflicting scenario.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
make_rod_pocketA
Make a rod pocket along a panel's top edge and hang the panel on a rod (curtains, banners, flags). The panel needs a straight, horizontal top edge. Verified with one panel; with several panels a pocket often fails to wrap, so prefer hang_on_rod there.
Adds a pocket strip above the panel, sews it to the top edge and to a fold line, holds the panel still, places a rod just in front of the strip above the top edge (the folding strip wraps it; verified in CLO 2025.2) and lets the panel hang. Returns whether the cloth stays up at the ends and in the middle; the pocket can be fuller in places, so look at the result with capture_3d. Save a checkpoint first.
Args: pattern_index: The panel, or a list of panels sharing one rod (e.g. the two halves of a noren); their top edges must be at the same height. pocket_depth: Height of the pocket strip in mm (the tube is roughly 1.4x this around). rod_diameter: Rod diameter in mm. rod_overhang: How far the rod extends past each side of the panel, in mm. settle_steps: Simulation steps after releasing the panel. pocket_side: Only "front" (+z, towards the front camera) forms reliably in CLO 2025.2. For a curtain whose pocket belongs on the back, build it facing the "back" camera (decorative patches on layer -1). Keep patches on the pocket side below fold_y.
| Name | Required | Description | Default |
|---|---|---|---|
| pocket_side | No | front | |
| pocket_depth | No | ||
| rod_diameter | No | ||
| rod_overhang | No | ||
| settle_steps | No | ||
| pattern_index | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure, and it does a good job: it walks through the operation sequence (adds a pocket strip, sews it, holds the panel, places a rod, lets the panel hang), discloses a known limitation ('the pocket can be fuller in places'), and tells the agent to verify with capture_3d. It also notes the CLO 2025.2 verification and the pocket_side reliability caveat. It doesn't explicitly state that the operation is destructive or irreversible, but the 'Save a checkpoint first' instruction implies mutation and risk, which is meaningful behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but well-organized: a first paragraph for what it does and when to use it, a second paragraph for the operation sequence and verification advice, then a compact Args block. Every sentence earns its place; the only minor inefficiency is some redundancy between the first paragraph's 'hang the panel on a rod' and the second paragraph's step-by-step hanging description, but that repetition serves both purpose clarity and behavioral transparency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex 6-parameter tool with no annotations and no output schema, the description is remarkably complete: it covers prerequisites, the physical process, known failure modes, verification steps, and parameter semantics. The main gap is that it doesn't describe the return value in detail beyond 'Returns whether the cloth stays up at the ends and in the middle' — but since there is no output schema, a bit more precision on the return format (e.g., booleans vs a status object) would have made it fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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, and it does. It explains pattern_index can be a single panel or a list of panels sharing one rod and adds the constraint that their top edges must be at the same height. It gives physical meaning to pocket_depth ('Height of the pocket strip in mm (the tube is roughly 1.4x this around)') and clarifies pocket_side with a concrete reliability caveat ('Only front (+z, towards the front camera) forms reliably in CLO 2025.2') plus a workaround. rod_diameter, rod_overhang, and settle_steps are only restated with units, which is modest, but the overall parameter coverage is strong.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Make a rod pocket along a panel's top edge and hang the panel on a rod (curtains, banners, flags).' It clearly distinguishes the tool from the sibling hang_on_rod by explaining that this tool both creates the pocket and hangs the panel, and it names the sibling explicitly. The scope (single panel vs several panels) is also stated, so an agent can tell this apart from hang_on_rod without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit when-to-use and when-not-to-use guidance: 'Verified with one panel; with several panels a pocket often fails to wrap, so prefer hang_on_rod there.' It also states the prerequisite that the panel needs a straight, horizontal top edge, and advises saving a checkpoint first. This is exactly the kind of routing and precondition information an agent needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
map_cloth_to_patternsA
Work out which cloth vertices belong to which pattern, for get_cloth_bounds(pattern_index). Run while the pieces are still flat (after a few simulation steps, before draping).
CLO lists cloth vertices pattern by pattern, but its per-pattern counts are slightly off, so the boundaries are found from the flat layout. Freezing or unfreezing pieces reorders CLO's list (unfrozen pieces first) and changes the mesh; the map is then refused, so map again in the new state.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that CLO's per-pattern counts are inaccurate, so the mapping is derived from the flat layout, and that freezing/unfreezing reorders the vertex list and changes the mesh, invalidating the map. This warns the agent about state-dependent validity without overstepping into speculative details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences that efficiently convey purpose, timing, and a critical re-mapping caveat. It is front-loaded with the main action and follows with necessary context. While slightly dense, every sentence adds value and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no parameters and no output schema, the description is complete: it explains what it does, when to use it, why it is needed (CLO's counts are off), and when to re-run it. An agent has all the information required to invoke it correctly and understand its role in the workflow.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema is empty (coverage 100%), so there is nothing for the description to add about parameters. The baseline of 4 applies because the description correctly avoids fabricating parameter details and instead focuses on the tool's purpose and timing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('work out which cloth vertices belong to which pattern') tied to a concrete consumer (get_cloth_bounds). It clearly differentiates from all sibling tools by describing a unique preparatory computation, so an agent knows exactly what it does and how it relates to other tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states when to run the tool ('while the pieces are still flat, after a few simulation steps, before draping') and provides a critical condition for re-running (after freezing/unfreezing). It doesn't list alternatives because none exist for this specific mapping task, but the context is clear and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
marker_reportA
Measure the marker shown in CLO's Print Layout Editor: which fabric it is, its length along the fabric, width, pieces, area and utilisation, from a 1:1 PDF export (path included for plotting). CLO exports one fabric at a time and the API cannot switch it; the result lists the other fabrics to switch to in CLO.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses a key behavioral trait: the API cannot switch fabrics, so the tool can only measure the currently exported fabric and returns a list of other fabrics to switch to. This is valuable beyond the schema and helps set expectations. It doesn't mention side effects or permissions, but the tool appears to be a read-only measurement operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose and output attributes, followed by a crucial limitation. Every sentence earns its place; there is no fluff or repetition of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters, no output schema, and no annotations, the description does a good job explaining what the tool does, what it returns, and its limitation regarding fabric switching. It could be slightly more explicit about the return format or how the list of other fabrics is presented, but the essential context for calling the tool is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema provides no parameter semantics. The description compensates by explaining the implicit input: the currently shown marker in CLO's Print Layout Editor from a 1:1 PDF export. This is sufficient for an agent to understand what the tool operates on, even though there are no explicit parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool measures the marker in CLO's Print Layout Editor, listing the specific attributes it reports (fabric, length, width, pieces, area, utilisation) and the input source (1:1 PDF export). It distinguishes itself from the many sibling tools by focusing on marker measurement rather than pattern creation, export, or fabric management.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the context: it works from a 1:1 PDF export and notes that CLO exports one fabric at a time and the API cannot switch it. It also says the result lists other fabrics to switch to in CLO, which implies when to use it and what to expect. It doesn't explicitly name alternative tools or say when not to use it, but the context is clear enough for an agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mirror_patternB
Create a symmetric (mirrored, linked) copy of a piece, optionally copying its sewing.
| Name | Required | Description | Default |
|---|---|---|---|
| with_sewing | No | ||
| pattern_index | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It does disclose that the copy is 'linked' and that sewing can optionally be copied, which are useful behavioral traits. However, it doesn't explain what 'linked' implies (e.g., propagation of edits, reversibility) or any side effects, leaving some ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words. The key action and distinguishing features are front-loaded, and it is appropriate for the tool's simplicity. This is an efficient definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter tool with no output schema, the description covers the main action and optional flag. However, the required pattern_index parameter is not explained, the term 'piece' is ambiguous, and the meaning of 'linked' is left vague. Given the low complexity, it is adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage (only titles and types), so the description must compensate. It connects 'optionally copying its sewing' to the with_sewing parameter, but says nothing about pattern_index, what constitutes a 'piece', or how to obtain a valid index. This leaves the required parameter under-explained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Create') and a clear resource ('symmetric (mirrored, linked) copy of a piece') that conveys the core operation. The word 'linked' hints at a distinguishing behavior, but it doesn't explicitly differentiate from siblings like copy_pattern or flip_pattern. Overall, the purpose is clear but not fully distinguished from related tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus copy_pattern or flip_pattern, nor any exclusions or prerequisites. Usage context must be inferred entirely from the tool name and description. No explicit alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
move_pattern_2dB
Move a piece in the 2D pattern window: to (x, y), or by (dx, dy).
| Name | Required | Description | Default |
|---|---|---|---|
| x | No | ||
| y | No | ||
| dx | No | ||
| dy | No | ||
| pattern_index | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden of behavioral disclosure. It only states that a move occurs and the two coordinate modes; it does not explain the coordinate system, units, whether pattern_index identifies the piece being moved, what happens if both absolute and relative values are provided, or whether the move has any side effects. This leaves important behavior undocumented.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, tightly worded sentence that front-loads the core action and then succinctly presents the two calling conventions. There is no filler or redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutating tool without annotations and without an output schema, this description is too thin. It leaves unclear how pattern_index selects the piece, whether x/y and dx/dy are mutually exclusive alternatives, what coordinate space is used, and what response or visual change an agent should expect. An agent could easily construct an ambiguous or invalid call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description adds essential meaning by clarifying that x/y are absolute coordinates and dx/dy are relative offsets. However, it does not explain pattern_index's role, even though that is the only required parameter, nor does it specify precedence or units when multiple movement parameters are supplied.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action ('Move') and a specific resource ('a piece in the 2D pattern window'), and immediately distinguishes the two supported movement modes: absolute position (x, y) and relative offset (dx, dy). This is concrete and differentiates it from other pattern-related tools like flip_pattern or place_pattern.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no explicit guidance about when to prefer this tool over alternatives such as place_pattern or reset_arrangement, nor does it mention any preconditions or exclusions. The intended use case is implied by the name and the mention of the 2D pattern window, but an agent is not told how to choose between this and related sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nest_patternsA
Auto-nest the pieces in CLO's print layout and report the marker shown there: length along the fabric, width, pieces and utilisation (measured from the exported 1:1 layout; CLO's own fabric length value did not match the layout in testing).
In a fresh CLO session the API's nesting leaves the layout empty until CLO's Printing Layout mode has been opened once (tested: empty before the switch, working right after it and for the rest of the session, also back in Simulation mode). If it is still empty, allow_ui_click clicks "Nest All Fabrics" in CLO (needs Printing Layout mode); otherwise the error says what to do.
Args: buffer_spacing_mm: Space between pieces. fabric_index: With fabric_width_mm, set this fabric's width first. fabric_width_mm: Usable fabric width in mm. timeout_s: How long to wait for CLO's nesting to finish. allow_ui_click: Click CLO's "Nest All Fabrics" button when the layout is empty.
| Name | Required | Description | Default |
|---|---|---|---|
| timeout_s | No | ||
| fabric_index | No | ||
| allow_ui_click | No | ||
| fabric_width_mm | No | ||
| buffer_spacing_mm | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses the measurement discrepancy (uses exported 1:1 layout, not CLO's fabric length), the fresh-session quirk requiring Printing Layout mode, and the UI click fallback behavior. It also hints at error messaging. This is substantial transparency, though it does not explicitly flag the mutating nature of nesting or return format details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Every sentence earns its place: the primary purpose and outputs are front-loaded, followed by a critical caveat about the empty layout and the fallback behavior, then a compact args list. No redundant phrases; the structure is logical and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex tool with 5 optional parameters and no output schema, the description covers the operation, return content (length, width, pieces, utilisation), and important caveats (measurement source, session initialization). It could be more explicit about side effects (permanent layout changes) and return format (JSON keys), but these are minor given the clarity provided.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must explain parameters. It does: each of the five parameters is described in the args list, e.g., 'buffer_spacing_mm: Space between pieces.' and 'fabric_width_mm: Usable fabric width in mm.' Some explanations are terse (e.g., 'fabric_index' implies ordering but not how to obtain the index), but all are addressed, providing meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb and resource: 'Auto-nest the pieces in CLO's print layout and report the marker shown there', listing the exact output fields. It is clear but does not explicitly distinguish itself from sibling tools like 'set_nesting' or 'marker_report', though the combined action is evident.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides contextual guidance on when to set 'allow_ui_click' based on the empty-layout behavior, and notes the need for Printing Layout mode. However, it does not explicitly state when to choose this tool over alternatives like 'clo_ui_nest_all_fabrics' or 'marker_report', leaving the comparison implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
new_projectA
Create a new empty CLO3D project, clearing the current scene.
Args: discard_unsaved: Drop unsaved changes when CLO asks; otherwise it stops with an error.
| Name | Required | Description | Default |
|---|---|---|---|
| discard_unsaved | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses that the call is destructive (clears the current scene), that it can lose unsaved work, and that with discard_unsaved=false it will stop with an error rather than silently proceed. It does not cover permissions or post-call state, but the key risk traits are surfaced.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence for the action plus one short line per parameter; no filler, no restatement of the name, and the destructive scope appears before the parameter detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, no-annotation, no-output-schema mutation tool, the description covers the action, its destructive effect, and the parameter's failure mode. Minor gaps remain (e.g., what state the project is left in afterwards, whether saving is required), but nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain the single parameter, and it does: discard_unsaved drops unsaved changes when CLO prompts, otherwise the operation errors out. This is meaningful semantics (the error path) well beyond the boolean type and false default in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Create a new empty CLO3D project') and adds the important scope note that the current scene is cleared, which separates it from siblings like open_file or import_file. It does not name an alternative explicitly, but the destructive scope makes the intent unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied rather than stated: an agent can infer this is the tool for starting from scratch, and the discard_unsaved note hints at the pre-condition that unsaved work may block the call. There is no explicit when-to-use versus open_file/restart_clo guidance or statement of exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
offset_internal_lineA
Create internal lines parallel to an outline line (e.g. hem fold or pleat lines).
The offset must fit inside the piece; if CLO creates nothing, the tool returns an error (try reverse=True, a smaller distance, or a longer line).
Args: pattern_index: Pattern to draw on. line_index: Outline line to offset from. distance: Distance between lines in mm. count: Number of lines to create. reverse: Offset to the other side. extend: Extend the new lines to the piece outline.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | ||
| extend | No | ||
| reverse | No | ||
| distance | Yes | ||
| line_index | Yes | ||
| pattern_index | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of disclosing behavior. It goes beyond the basic action by explaining the failure mode when CLO creates nothing and offering corrective options. It does not describe the success return value or reversibility, but the key behavioral edge case is covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-organized: purpose first, then a usage caveat with fallback advice, then a clean Args list. Every sentence adds value, and no text is redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 6-parameter tool with no output schema, the description covers the operation, the main failure mode, troubleshooting options, and all parameters. It is slightly thin on success return values and index conventions, but an agent can confidently attempt the call and recover from errors.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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, and it does: every parameter is given an actionable meaning, including units for distance and behavior for reverse/extend. It could be stronger by stating constraints like positive distance or count, but the provided docs are sufficient for invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence states a precise verb and resource: 'Create internal lines parallel to an outline line', with concrete examples (hem fold or pleat lines). This makes the tool's function clear and differentiates it from sibling tools like add_internal_shape or convert_shape.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear usage constraint: the offset must fit inside the piece, and it explicitly tells the agent what to try if the operation fails (reverse=True, smaller distance, longer line). It does not compare against alternative tools, but the parameter-level guidance is actionable and context-rich.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
open_fileB
Open a file in CLO3D. Supports .zprj, .zpac, .avt, .obj, .fbx formats.
Args: file_path: Absolute path to the file to open. discard_unsaved: Drop unsaved changes when CLO asks; otherwise it stops with an error.
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes | ||
| discard_unsaved | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does disclose real behavior: discard_unsaved drops pending changes when CLO prompts, otherwise the call fails with an error. It still omits error cases for missing/unreadable files, whether the current project is replaced, and what a successful call returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded purpose sentence followed by a compact args block; every line adds information. Minor redundancy in restating parameter names already present in the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter tool with no output schema and no annotations, the description covers formats, path requirements, and the side-effect flag adequately. It is incomplete on the relationship to 'import_file' and on the state of the currently open project after the call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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, and it does: file_path is documented as an absolute path and discard_unsaved's default-false behavior and failure mode are explained. This meaningfully exceeds what the bare schema conveys.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Open a file in CLO3D') and enumerates the supported file formats, which is genuinely informative. However, it never distinguishes itself from the sibling 'import_file', which an agent would reasonably consider for the same task.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use guidance and no mention of the closely related 'import_file' or 'new_project' alternatives. The only implied usage is that the file must be in one of the listed formats.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
place_patternA
Place a pattern piece in 3D on an avatar arrangement point.
CLO's API has no free XYZ move/rotate; placement goes through arrangement points. Run simulate afterwards to drape.
Args: pattern_index: Pattern to place. arrangement_index: Arrangement point from get_arrangement_points. orientation: Orientation value for the piece on the point. position_x: Position on the arrangement surface (set together with position_y/offset). position_y: Position on the arrangement surface. offset: Distance from the arrangement surface. shape_style: "Flat" or "Curved" (wrap around the body).
| Name | Required | Description | Default |
|---|---|---|---|
| offset | No | ||
| position_x | No | ||
| position_y | No | ||
| orientation | No | ||
| shape_style | No | ||
| pattern_index | Yes | ||
| arrangement_index | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden and does disclose non-obvious constraints: no free XYZ placement, arrangement-point routing, and the need to run simulate afterward for draping. It does not state overwrite behavior, return status, or failure modes, but the most important behavioral traits are covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well structured with a front-loaded purpose, two context sentences, and a compact Args list. Every line earns its place, though the Args block is necessarily detailed for a 7-parameter tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 7 params, no annotations, 0% schema coverage, and no output schema, the description covers the key inputs and usage sequence sufficiently. It could be more complete by stating prerequisites or return/error behavior, but the agent has enough to call it correctly in the intended workflow.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description compensates by explaining all seven arguments, including the relationship between position_x, position_y, and offset, the source of arrangement_index, and the 'Flat'/'Curved' shape_style meanings. This goes well beyond the bare input schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first line states a specific action and target: 'Place a pattern piece in 3D on an avatar arrangement point.' It distinguishes this from 2D manipulation siblings like move_pattern_2d by explicitly noting the API has no free XYZ move/rotate and that placement goes through arrangement points.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear post-step ('Run simulate afterwards to drape') and explains the arrangement-point mechanism, including sourcing arrangement_index from get_arrangement_points. It does not explicitly list exclusions or compare with other placement/move tools, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_all_pinsA
Remove every pin in the scene. (CLO's API can remove pins but not create them.)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden. It explicitly discloses the destructive scope ('every pin') and adds the useful limitation that pins cannot be created through the API, implying removal is not reversible via the API. It does not mention undo behavior or return values, but the core side effect is clearly communicated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with the primary action front-loaded and no filler. The parenthetical adds meaningful context without bloating the description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-argument, side-effect-only tool with no output schema, the description provides the action, the scope, and an important API constraint. Nothing necessary for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and an empty input schema, so the description has nothing to add about arguments. The baseline of 4 applies because no parameters means there is no parameter documentation burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Remove'), a concrete resource ('pins'), and a precise scope ('every pin in the scene'). This clearly distinguishes it from all sibling tools, none of which target pins.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly indicates when to use the tool: when all pins in the scene need to be removed. The parenthetical about the API not being able to create pins sets an important expectation. No explicit alternatives or exclusions are given, but no pin-related sibling tools exist to disambiguate against.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_collision_objectA
Remove one rod or box (index from list_collision_objects); the others stay.
| Name | Required | Description | Default |
|---|---|---|---|
| index | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It discloses that exactly one rod or box is removed and that the rest remain, which is meaningful behavioral context beyond the verb 'Remove'. It doesn't mention invalid-index failure modes or irreversibility, but the scoped effect is clear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One concise sentence with the action and object front-loaded, followed by a parenthetical for the parameter source. Every word earns its place; there is no fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, side-effect-heavy tool with no output schema and no annotations, the description provides the essential pieces: what, which parameter, and how to choose it. Minor gaps such as invalid-index behavior or return value are not critical for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must explain the single 'index' parameter. It does this by pointing to list_collision_objects as the source of the index, which adds real meaning. It leaves zero-based/one-based convention unspecified, but the tool is still invocable from that guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Remove') and clear resource ('one rod or box'), and ties the target to a specific list via 'index from list_collision_objects'. This distinguishes it from sibling tools like add_rod, add_box, delete_pattern, and remove_all_pins.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly tells the agent where to get the index ('from list_collision_objects') and clarifies scope ('the others stay'). It doesn't explicitly discuss alternatives or exclusions, but the context is sufficient for this simple one-item removal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
replace_fabricA
Replace an existing fabric with a new one from file.
Args: fabric_index: Zero-based index of the fabric to replace. file_path: Absolute path to the replacement fabric file (.zfab).
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes | ||
| fabric_index | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so description must disclose side effects. It states it replaces, implying mutation, but does not explain consequences (e.g., impact on pattern assignments, reversibility, permissions). Lacks detail on error conditions or state changes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise bullet points with no fluff. The key action is stated first, parameters follow. Efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter operation, it covers the essentials but omits any mention of return behavior or side effects on existing fabric references. Without annotations or output schema, an agent may need more context about the replacement's impact, though the tool is straightforward.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Description adds meaning to both parameters: fabric_index is explicitly zero-based, file_path requires absolute path and .zfab extension. This goes beyond the bare schema and helps the agent format inputs correctly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb 'Replace', resource 'existing fabric', and source 'from file'. Distinguishes from add_fabric and delete_fabric by implying replacement of an existing item. Clear and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this vs alternatives like add_fabric or delete_fabric. Does not mention prerequisites such as fabric index validity or file existence. No exclusions or context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reset_arrangementA
Reset all pieces to their arrangement positions (undo draping).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden. It does disclose the key behavioral trait: pieces are moved back to arrangement positions and draping effects are reversed, which goes beyond what the tool name alone conveys. However, it doesn't disclose whether this resets simulation state, whether it interacts with checkpoints, or whether the operation is reversible.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that front-loads the verb and resource, then appends the clarifying intent in parentheses. Every word contributes meaning and there is no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter mutation with no output schema and no annotations, the description conveys the essential behavior: what is reset and what semantic effect it has. Minor gaps remain around side effects on simulation/checkpoint state, but given the low complexity, the definition is adequately complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema is trivially complete at 100% coverage and there is nothing for the description to explain. The baseline of 4 for a zero-parameter tool applies; no parameter documentation is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Reset'), names the affected resource ('all pieces'), and defines the target state ('their arrangement positions'). The parenthetical '(undo draping)' adds semantic intent that distinguishes it from placement/movement tools like place_pattern and move_pattern_2d. It doesn't explicitly distinguish itself from restore_checkpoint, another undo-style sibling, but the core 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The '(undo draping)' parenthetical implies the appropriate usage context: after a draping/simulation operation has moved pieces away from their arrangement positions. However, no explicit when-to-use instruction, exclusion, or named alternative (e.g., restore_checkpoint) is provided, so the agent must infer the boundary between this and similar state-restoring tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
restart_cloA
Close CLO and start it again, e.g. to load a rebuilt plug-in or recover from a hang.
The scene is saved first as the checkpoint "before_restart" and reopened afterwards. CLO is then ended without its own save prompt. If the scene cannot be saved (CLO not answering), nothing is closed unless discard_unsaved=True.
Args: save_first: Save the scene as checkpoint "before_restart" first. reopen: Reopen that checkpoint once CLO is back. install_plugin: Path of a plug-in DLL to install while CLO is closed (e.g. cpp_plugin/dist/CloMcpPlugin.dll); CLO only loads plug-ins at startup. discard_unsaved: Close even when the scene could not be saved. timeout_s: How long to wait for CLO and the plug-in to come back.
| Name | Required | Description | Default |
|---|---|---|---|
| reopen | No | ||
| timeout_s | No | ||
| save_first | No | ||
| install_plugin | No | ||
| discard_unsaved | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so: it discloses the checkpoint save ('before_restart'), that CLO is ended without its own save prompt, the failure fallback ('nothing is closed unless discard_unsaved=True'), and that plug-ins only load at startup. These are exactly the destructive/irreversibility facts an agent needs before invoking a restart.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the action and the safety-critical checkpoint behavior in the first two paragraphs, with the Args block reserved for parameter detail. Dense but every sentence carries behavioral or parameter information; only mild redundancy between the prose and the Args list.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a side-effecting restart tool with no annotations and no output schema, the definition covers recovery semantics, save/failure behavior, timeout, and plug-in installation. An agent could invoke it correctly without any further inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must document all five parameters, and the Args block does so for every one, adding semantics the schema lacks (e.g. install_plugin is a DLL path because plug-ins load only at startup; discard_unsaved governs the save-failure fallback path). Nothing is left undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Close CLO and start it again') and immediately scopes the intent with concrete use cases (rebuilt plug-in, recover from a hang). No sibling tool in the list restarts the host, so it is trivially distinguishable from new_project, open_file, and the export/simulation tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit when-to-use context ('to load a rebuilt plug-in or recover from a hang'), which tells an agent the triggering conditions. It does not name an alternative or state when-not to restart, so it stops short of a 5, but the context is clear and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
restore_checkpointA
Reopen a checkpoint, replacing the current scene (unsaved changes are lost).
Afterwards CLO's open file is the checkpoint copy; save with save_project to the original_path returned here to keep working on the real file.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of disclosing behavioral consequences, and it does so strongly: 'unsaved changes are lost' and 'open file is the checkpoint copy' clearly warn about destructive and redirecting behavior. It also explains the necessary recovery step, saving to the returned original_path, which is critical for avoiding further file divergence.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: the first sentence states the action and the key warning, and the second gives the necessary post-restore workflow. There is no filler or repetition of already-structured schema information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter destructive tool with no annotations and no output schema, the description covers the core action, the data-loss consequence, and the post-condition of the open file. It is nearly complete, but tying `name` to checkpoint listing would fully remove ambiguity about the required input.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description needed to clarify the `name` parameter, but it never says where the name comes from, whether it is a checkpoint ID or label, or that it should come from list_checkpoints/save_checkpoint. The only contextual hint is 'Reopen a checkpoint,' which provides minimal meaning for this single string parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource ('Reopen a checkpoint') and immediately states the main side effect ('replacing the current scene'). This clearly distinguishes it from related tools like list_checkpoints and save_checkpoint.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the tool's context clear: restoring an earlier checkpoint over the current scene, with unsaved changes lost. It also provides a concrete follow-up instruction to save via save_project to the original_path. It does not explicitly name alternatives or state when not to use the tool, but the usage context is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_checkpointA
Save the whole scene so it can be restored later. CLO's API has no undo, so save one before risky edits (sewing, deleting lines, simulating). Reusing a name overwrites it.
CLO saves the checkpoint like "Save As", so its open file becomes the checkpoint copy. The result's original_path is the real file: save there with save_project when done.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | checkpoint |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden and does so well. It discloses that reusing a name overwrites the checkpoint, that CLO saves the checkpoint like Save As and changes the open file, and that the returned original_path points to the real file. These are non-obvious side effects an agent must know.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Every sentence earns its place: purpose, timing, overwrite warning, Save As behavior, and final-save guidance. The information is front-loaded and tightly structured, with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema and no annotations, the description is remarkably complete. It covers what the tool does, when to use it, the overwrite behavior, the surprising open-file side effect, and the return field original_path, plus how to finish the save with save_project.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema only defines a single name parameter with a default, and the description does not directly document that parameter. However, 'Reusing a name overwrites it' adds meaningful semantics beyond the schema by warning about collisions, which is the main risk with this simple parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action and resource: 'Save the whole scene so it can be restored later.' It also distinguishes itself from save_project by explaining that a checkpoint behaves like Save As and is not the final file save, so the agent can tell it apart from sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly tells when to use the tool: before risky edits such as sewing, deleting lines, or simulating, because the API has no undo. It also directs the agent to use save_project on the real file when finished, giving both a clear usage condition and an alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_poseA
Save the avatar's current pose as a .pos file, for load_pose later (e.g. after posing it in CLO). Without a path CLO writes it to its temporary folder; the path is returned.
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does meaningful work: it discloses the no-path fallback (written to CLO's temporary folder) and that the resulting path is returned. It omits overwrite semantics and format restrictions, but the default-behavior and return-value disclosure is solid for a save tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences, front-loaded with the core action, with the fallback behavior and return value appended. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter tool with no annotations and no output schema, the description covers purpose, the default path behavior, and the returned path. Only minor details (overwrite behavior, exact file location guarantees) are absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the lone file_path parameter is undocumented in the schema, yet the description explains its behavior: optional, and when absent CLO writes to a temporary folder. That compensates for the missing schema description, though it doesn't state accepted path formats or extension rules.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource+format: save the avatar's current pose as a .pos file. It explicitly names load_pose as the complementary sibling, so an agent can distinguish the write side from the restore side without inspecting either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear context for use ('for load_pose later, e.g. after posing it in CLO'), which tells the agent when this tool fits. It does not state exclusions or alternatives beyond load_pose, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_projectA
Save the current CLO3D project as a .zprj file.
Args: file_path: Absolute path for the saved .zprj file.
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It reveals that a write occurs and that a file path is used, but does not mention whether existing files are overwritten, whether the path must already exist, or what the tool returns after saving. This is a meaningful gap for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences plus one argument line. Every sentence is necessary and the core message is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter tool the description is mostly sufficient: the agent knows what to pass and why. However, with no output schema and no annotations, the absence of overwrite/error/return behavior leaves a minor completeness gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must add meaning to file_path. It does so by specifying an absolute path and the .zprj extension, which is useful guidance beyond the bare string type. It stops short of detailing filename validation or directory requirements.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action (save), a clear resource (the current CLO3D project), and an explicit output format (.zprj). It is unambiguous and easily distinguishable from siblings like export_obj or save_checkpoint.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is implied by 'Save the current CLO3D project' and the .zprj extension, but the description does not explicitly contrast it with alternatives such as save_checkpoint or export_* tools. There is no exclusion guidance for when a different save/export path should be chosen.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_current_colorwayA
Switch to a different colorway.
Args: colorway_index: Zero-based index of the colorway to activate.
| Name | Required | Description | Default |
|---|---|---|---|
| colorway_index | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It clearly states the primary behavior (activating the given colorway) and the argument semantics. However, it does not discuss potential side effects, reversibility, or what happens with invalid indices. For a simple state-switch tool, this is adequate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: one purpose sentence followed by a single parameter explanation. It is front-loaded with the main action and contains no fluff. Every word earns its place, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one integer parameter, no output schema, no annotations), the description is nearly complete. It states the operation and parameter semantics. It could mention error handling or that the index should be within the range from get_colorways, but these are minor gaps for such a straightforward setter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It does so by explaining that colorway_index is a 'Zero-based index of the colorway to activate,' adding meaning beyond the bare integer type. This is sufficient for a single parameter, though it doesn't reference how to obtain the list of valid indices.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear, specific action: 'Switch to a different colorway.' It uses a specific verb and resource, and the tool name set_current_colorway aligns with this. It is clearly distinct from sibling get_colorways, which retrieves colorways rather than changing them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by defining the action, but it does not explicitly state when to use this tool versus alternatives or mention any prerequisites (e.g., calling get_colorways to obtain valid indices). No exclusions or alternative routing are provided, so guidance is minimal but not misleading.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_elasticA
Set elastic on a pattern line (or all lines with line_index=-1). Only passed values change.
Args: pattern_index: Pattern to change. line_index: Outline line, or -1 for every line. enabled: Elastic on/off. strength: Elastic strength. ratio: Elastic strength ratio in percent. segment_length: Elastic segment length in mm. total_length: Elastic total length in mm.
| Name | Required | Description | Default |
|---|---|---|---|
| ratio | No | ||
| enabled | No | ||
| strength | No | ||
| line_index | No | ||
| total_length | No | ||
| pattern_index | Yes | ||
| segment_length | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden. It explicitly states partial-update behavior ('Only passed values change') and the mass-edit meaning of line_index=-1, which are material side effects. It does not discuss response or error behavior, but the key mutation semantics are transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured: the key behavior is front-loaded, followed by a tidy Args list. There is no filler, repetition, or irrelevant detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers all inputs and the essential mutation semantics well enough for an agent to invoke the tool correctly. Minor gaps such as valid numeric ranges and any interaction between parameters are not specified, but the core calling context is complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description compensates well by explaining all seven parameters. It adds concrete units (percent, mm), the special value 'or -1 for every line', and operational meanings such as 'Elastic on/off' and 'Outline line'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description opens with 'Set elastic on a pattern line (or all lines with line_index=-1)', which gives a specific verb, target resource, and scope. It is clearly distinct from other setters in the sibling list, and the all-lines option removes ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly establishes when to use it: when elastic properties need to be set on a pattern line, possibly across all lines. It does not enumerate when-not-to-use alternatives, but no sibling tool appears to cover the same operation, so the lack of explicit exclusions is acceptable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_fabric_colorA
Set the PBR base color of a fabric.
Args: fabric_index: Zero-based index of the fabric. r: Red channel (0-255). g: Green channel (0-255). b: Blue channel (0-255). face: "front", "back" or "side". The back and side only show their own colour once set_fabric_faces has separated them from the front.
| Name | Required | Description | Default |
|---|---|---|---|
| b | No | ||
| g | No | ||
| r | No | ||
| face | No | front | |
| fabric_index | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It clearly indicates a mutation ('Set') and explains the conditional behavior of the face parameter, but it does not cover other behavioral traits such as persistence, undo behavior, permission requirements, or what happens with invalid inputs. Some useful context is added, but significant gaps remain.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core action and then uses a compact Args list. Every sentence and parameter note earns its place, with no redundant or filler text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple setter with no output schema, the description covers the purpose, all parameters, and the important face-separation prerequisite. It is nearly complete for invocation, though a brief note on side effects or immediate visibility in the 3D view could add value. Given the lack of annotations, the description is sufficient but not exhaustive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description fully compensates by documenting all five parameters: fabric_index as zero-based, RGB channels as 0-255, and face values with a dependency note. It adds meaning well beyond the bare types and defaults in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Set the PBR base color of a fabric.' It distinguishes the operation from texture-related siblings by specifying 'PBR base color' and references the related set_fabric_faces tool for face separation. An agent can identify the tool's action without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for the 'face' parameter: back and side only show their own colour after set_fabric_faces has separated them. This is a useful prerequisite, but the description does not explicitly state when to use this tool versus alternatives such as set_fabric_texture or set_fabric_faces. Context is present but exclusions and alternatives are absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_fabric_facesA
Give a fabric a back face of its own, for double-faced and reversible cloth (e.g. plaid on the front, solid charcoal on the back), or join it to the front again. Do this before texturing the front: a back separated afterwards copies the front's texture.
Args: fabric_index: Fabric to change. separate_back: True for its own back material and colour, False to use the front's. back_color: Optionally set the back's colour at the same time, [r, g, b] 0-255.
| Name | Required | Description | Default |
|---|---|---|---|
| back_color | No | ||
| fabric_index | Yes | ||
| separate_back | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden, and it does disclose a non-obvious behavioral trait: split-after-texture inherits the front's texture, which is exactly the kind of state interaction an agent would otherwise get wrong. It does not say whether the change is reversible or what happens to an existing back material when separate_back is False, leaving some gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose and the critical ordering caveat are front-loaded in the first two sentences, and the Args block is terse. The opening sentence is slightly wordy for what it conveys but nothing is filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter mutation tool with no annotations and no output schema, the definition covers purpose, ordering, and all parameter meanings. Return behavior and reversibility are unstated, but with no output schema and a low-stakes state change these are minor omissions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate entirely, and it does: it defines separate_back's true/false semantics in terms of ownership of material and colour, and specifies back_color as [r, g, b] in 0-255 — format detail absent from the schema. fabric_index is identified as the fabric to change.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: giving a fabric a back face of its own or rejoining it to the front. The double-faced/reversible use case (plaid front, solid charcoal back) makes the operation recognizable and separates it from siblings like set_fabric_color or set_fabric_texture.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a concrete ordering rule — 'Do this before texturing the front' — with the consequence spelled out (a back separated afterwards copies the front's texture). It names the scenario (double-faced/reversible cloth) but never points to a sibling alternative for the non-separated case, so 4 rather than 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_fabric_informationA
Set a fabric's name and information fields, e.g. {"Content": "60% Cotton, 40% Linen"}. Field names are CLO's (see get_fabric_info). This is metadata only; the drape comes from the fabric's physical properties.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| information | No | ||
| fabric_index | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral disclosure burden. It transparently scopes the operation to metadata and explicitly denies an effect on drape, which is valuable. However, it does not disclose whether providing an information object replaces or merges existing fields, how null values behave, or what the success/error outcome looks like. Some behavioral ambiguity remains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each earning its place. The primary action is front-loaded, the important field-name detail is second, and the key scoping caveat closes it. There is no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple setter with no output schema and no annotations, the description covers the essentials: what is set, an example of the structured field, where to get valid field names, and what it does not affect. Minor gaps such as merge/replace behavior and null semantics prevent a perfect score, but the tool is simple enough that the description is largely sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must add meaning. It does so for the 'information' parameter by giving a concrete example ('{"Content": "60% Cotton, 40% Linen"}') and clarifying that field names follow CLO conventions via get_fabric_info. 'name' and 'fabric_index' are reasonably self-evident, so the description adequately compensates despite not describing every parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Set'), a resource ('fabric'), and the specific fields being modified ('name and information fields'). The final sentence also distinguishes it from physics-related siblings by clarifying this is 'metadata only' and that drape comes from physical properties. An agent can clearly differentiate it from set_fabric_physics and similar tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives useful context about when to use the tool: it is about metadata, not physical drape behavior. It also points the agent to get_fabric_info for valid CLO field names. It does not explicitly state when not to use it or name an alternative sibling, but the metadata-vs-physics distinction provides clear enough guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_fabric_physicsA
Set all of a fabric's physical properties (how it stretches, bends and hangs), keeping its colour, texture and name. CLO cannot report a fabric's current values (only weight and thickness, via get_fabric_info), so every value is written: the defaults are CLO's documented defaults, not the fabric's own. Pass real values for a specific cloth, or keep a library fabric (add_fabric) whose physics were measured.
Args: fabric_index: Fabric to change. weight_gsm: Weight in g/m2. thickness_mm: Thickness in mm. stretch_weft: Stretch stiffness across the grain (weft); higher = less stretch. stretch_warp: Stretch stiffness along the grain (warp). shear: Shear stiffness (bias stretch). bending_weft: Bending stiffness across the grain; higher = stiffer, fewer folds. bending_warp: Bending stiffness along the grain. bending_bias: Bending stiffness on the bias. buckling_ratio: Buckling ratio (all directions). buckling_stiffness: Buckling stiffness (all directions). friction: Friction. internal_damping: Internal damping. content: Optionally also set the content label, e.g. "60% Cotton, 40% Linen". property_name: Name for this set of physical properties.
| Name | Required | Description | Default |
|---|---|---|---|
| shear | No | ||
| content | No | ||
| friction | No | ||
| weight_gsm | No | ||
| bending_bias | No | ||
| bending_warp | No | ||
| bending_weft | No | ||
| fabric_index | Yes | ||
| stretch_warp | No | ||
| stretch_weft | No | ||
| thickness_mm | No | ||
| property_name | No | Custom | |
| buckling_ratio | No | ||
| internal_damping | No | ||
| buckling_stiffness | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden. It discloses the critical behavioral trait that every value is written and that defaults are CLO's documented defaults, not the fabric's current values – preventing a false assumption of partial updates. It also states what is preserved, but does not address side effects like reversibility or failure modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight opening sentences front-load the key behavioral caveat, then a clean per-parameter list follows. Every line adds information; no filler or repetition of schema titles.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter tool with no output schema and no annotations, the description is nearly complete: it defines the behavior, all parameters, and points to relevant sibling tools for reading values. The only gaps are unmentioned return/error behavior and explicit alternatives exclusion, which are often implied by the platform.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description fully compensates by explaining all 15 parameters, including units (g/m2, mm), directional semantics (weft vs warp vs bias), and physical effects ('higher = stiffer, fewer folds'). This far exceeds the terse schema labels.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description opens with a specific verb+resource: 'Set all of a fabric's physical properties', which immediately distinguishes it from siblings like set_fabric_color, set_fabric_width, and set_fabric_information. It also specifies what is preserved (colour, texture, name), further scoping the tool's purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear operational context: CLO cannot report current values, so all values are written, which tells the agent what to expect when setting. It also points to get_fabric_info for reading values and add_fabric for library fabrics with measured physics, but does not explicitly state when not to use it versus siblings like set_fabric_information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_fabric_textureC
Use an image (PNG, JPG) as a fabric's base texture.
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes | ||
| fabric_index | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It implies a mutation but does not disclose whether the existing texture is replaced, whether the operation is undoable, what file access or permissions are required, or what happens on errors.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no wasted words. Its brevity is efficient, though the under-specification is a separate completeness issue.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation setter with no annotations, no output schema, and fully undocumented parameters, the description is too sparse. An agent lacks the context needed to select and invoke it correctly relative to sibling fabric tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% with two parameters. The description adds only that file_path should be a PNG or JPG image; it gives no meaning for fabric_index (e.g., index from get_fabric_list, zero- or one-based) or how file_path is resolved.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('use an image as a fabric's base texture'), and the 'base texture' framing helps distinguish it from color/plaid siblings. However, it does not explicitly differentiate itself from other fabric-modifying tools like set_fabric_faces or apply_fabric_json.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use, prerequisites, or alternatives are provided. It does not say to use set_fabric_color for solid colors or apply_plaid for plaid patterns, nor does it state that fabric_index must reference an existing fabric.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_fabric_widthB
Set a fabric's usable width (the marker width in the print layout), in mm.
| Name | Required | Description | Default |
|---|---|---|---|
| width_mm | Yes | ||
| fabric_index | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose the tool's behavior on its own. It only states the action ('set') and the semantic meaning of width, but does not mention that the operation overwrites the existing width, whether it validates the fabric_index, or any side effects. This is a significant gap for a mutation tool with no annotation support.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, compact sentence that directly states the intent without filler. It is appropriately sized for the tool's simplicity and readable at a glance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is minimal and leaves key context uncovered: no usage guidance, no behavioral detail, and incomplete parameter semantics. With no output schema and no annotations, an agent could call it with a wrong fabric_index or misunderstanding about overwriting. Though the tool is simple, the description does not cover the essentials enough to be considered complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema description coverage at 0%, the description must explain the parameters. It clarifies that width_mm is in millimeters and that it refers to the marker/print width, which adds some semantics. However, it leaves fabric_index entirely as a bare integer name, with no explanation that it references a fabric from the fabric list. The partial compensation is insufficient for full clarity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the specific action ('Set'), the resource ('a fabric's usable width'), and clarifies its meaning ('the marker width in the print layout') with units ('in mm'). This is enough to distinguish it from sibling setters like set_fabric_information or set_fabric_physics, making the tool's purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no guidance on when to use this tool versus alternatives such as set_fabric_information. It does not state prerequisites (e.g., fabric must exist) or mention cases where the width should be set differently (e.g., for nesting vs print). The when-to-use context is entirely absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_fit_mapA
Show CLO's fit map in the 3D window: "strain" (stretch %), "stress" (pressure) or "off".
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It does disclose the core behavior: showing strain, stress, or turning the map off. However, it does not explain whether this changes persistent state, requires a loaded garment, or affects other tools, leaving some behavioral context missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no filler. It front-loads the action and resource, then provides the necessary parameter values in a compact, readable format.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter setter with no output schema, the description covers the essential information an agent needs: what the tool does, where the effect occurs, and all acceptable mode values. No critical details appear to be missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema only defines 'mode' as a string with no enum or additional description. The description fully compensates by listing the exact valid values ('strain', 'stress', 'off') and their meanings, which is essential for correct invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('Show'), a specific resource (CLO's fit map), and a location (the 3D window). It also enumerates the three possible modes, making the tool's scope unambiguous even without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool: whenever the user wants to display or hide the fit map in the 3D window with a particular mode. However, it does not explicitly state when not to use it or mention any alternative tools, so usage guidance is only implied rather than directly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_nestingC
Nesting settings for the print layout: spacing between pieces, which colourways get the result, and per piece how it may turn ("1-way": as cut, "2-way": also turned 180 degrees, "4-way": also 90 degrees) or a fixed [x, y] position.
| Name | Required | Description | Default |
|---|---|---|---|
| grain | No | ||
| colorways | No | ||
| pattern_index | No | ||
| fixed_position | No | ||
| buffer_spacing_mm | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. It fails to mention whether the tool applies settings immediately, if it requires the fabric to be nested first, or if it modifies the arrangement permanently. The description only describes parameters, not side effects or execution behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one long sentence that front-loads the main purpose but becomes convoluted with embedded explanations. It is not overly long, but the structure mixes purpose and parameter details awkwardly, making it less scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 5 parameters with 0% schema coverage and no annotations or output schema, the description is incomplete. It fails to define key parameters like 'grain' and 'colorways', and does not explain what the tool does with the settings or what the expected outcome is. The agent would struggle to call it correctly without additional knowledge.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate by explaining parameter meanings. It partially explains the allowed values for 'buffer_spacing_mm'? Actually it explains the turning options (1-way, 2-way, 4-way) and fixed position, but it does not describe 'grain', 'colorways', or 'pattern_index' specifically. This leaves significant ambiguity for the agent.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool sets nesting settings for the print layout, and lists the specific aspects: spacing, colorways, and per-piece turning options. It distinguishes itself from the sibling 'nest_patterns' by focusing on configuration rather than execution, though it doesn't explicitly name that sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context on what the tool controls but does not state when to use it versus other tools like 'nest_patterns' or 'set_fabric_information'. There is no explicit guidance on prerequisites or conditions that would make this tool the appropriate choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_pattern_nameA
Rename a pattern piece.
Args: pattern_index: Zero-based index of the pattern piece. name: New name for the pattern piece.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| pattern_index | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of disclosing behavior. It only states the rename action and parameters, without mentioning side effects, whether the operation is reversible, how invalid indices are handled, or whether name changes affect dependent objects. For a mutating tool with no annotations, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single clear opening sentence followed by a compact, well-structured argument list. Every sentence earns its place, and the key operation is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter rename operation, the description provides enough information for an agent to invoke it correctly: the action, the target resource, and both arguments. The lack of an output schema reduces the need to explain return values, though error behavior and naming rules would improve completeness further.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 adds useful meaning to both parameters: pattern_index is explicitly 'Zero-based index' and name is described as the 'New name for the pattern piece', which clarifies its role beyond the bare schema titles. It does not include constraints like uniqueness or allowed characters, but the core semantics are present.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Rename') and resource ('pattern piece'), and identifies the two arguments that define the operation. It is unambiguous and distinct from the many sibling pattern tools, which address different actions like flipping, unfolding, or placing patterns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool: whenever a pattern piece needs a new name. However, it gives no explicit guidance about alternatives, exclusions, or prerequisites, leaving the agent to infer the usage context from the operation name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_pattern_stateA
Set simulation state of a pattern piece. Only the values you pass are changed.
CLO's API cannot place pins; freeze or strengthen a piece to hold it in place instead.
Args: pattern_index: Pattern to change. frozen: Freeze (excluded from simulation, stays where it is). strengthened: Strengthen (stiffer, holds shape). solidified: Solidify. solidify_strength: Solidify strength. hidden_3d: Hide the piece in the 3D window. layer: Layer number (higher layers sit on top in collisions). particle_distance: Mesh particle distance in mm (smaller = finer mesh, slower). grain_degrees: Grainline direction in degrees.
| Name | Required | Description | Default |
|---|---|---|---|
| layer | No | ||
| frozen | No | ||
| hidden_3d | No | ||
| solidified | No | ||
| strengthened | No | ||
| grain_degrees | No | ||
| pattern_index | Yes | ||
| particle_distance | No | ||
| solidify_strength | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral disclosure burden. It does this well by explaining partial-update behavior, the meaning of freeze, strengthen, layer ordering, and the performance tradeoff of particle_distance. It does not discuss potential re-simulation needs or interactions between parameters, but it discloses the main side-effect profile clearly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core behavior and the pin caveat, then cleanly organized into an Args list. It is efficient with no filler. A few arg explanations are terse or slightly tautological ('solidify: Solidify'), but the overall structure is easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 9-parameter tool with no annotations, no output schema, and zero schema descriptions, the description is remarkably complete: it defines every parameter, explains the update semantics, and gives the key constraint about pins. It omits interaction/dependency details such as whether solidify_strength only matters when solidified is true, and it does not mention return behavior, but these are not critical for a correct initial invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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, and it fully does. Every one of the nine parameters receives an explanation beyond its schema title, including units for particle_distance (mm), units for grain_degrees, and the practical meaning of layer ordering. This is exactly the kind of semantic enrichment the input schema lacks.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a clear verb+resource: 'Set simulation state of a pattern piece,' immediately identifying the tool's scope and target. It goes beyond a bare restatement by explaining that only passed values are changed, which clarifies partial-state mutation. It does not explicitly differentiate itself from sibling tools like get_pattern_state or set_simulation_quality, so it falls just short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides meaningful usage context: 'Only the values you pass are changed' and the explicit note that CLO's API cannot place pins, so freeze or strengthen should be used instead. This gives an actionable hint for a common scenario, but it does not provide broader when-to-use vs when-not-to-use guidance relative to the many sibling pattern/fabric tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_seam_tapingC
Turn seam taping on or off for one outline line of a pattern.
| Name | Required | Description | Default |
|---|---|---|---|
| enabled | No | ||
| line_index | Yes | ||
| pattern_index | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits itself. It only states the action (toggle seam taping) without revealing any side effects, requirements, reversibility, or what happens to the pattern. The mutation is implied but not elaborated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, short sentence, which is concise but under-specified. It front-loads the action but lacks any structure or additional context. While not verbose, it sacrifices informativeness for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with three parameters, no output schema, and no annotations, the description is incomplete. The agent is left without any understanding of what pattern_index and line_index refer to (e.g., indexing conventions, validity), and the enabled parameter is not mentioned. Essential information for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate by explaining the parameters. It mentions 'one outline line' hinting at line_index, and 'on or off' implying enabled, but it does not explain pattern_index at all, nor does it clarify the meaning of each parameter or their relationships.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('Turn on or off') and a specific resource ('seam taping for one outline line of a pattern'), making the tool's purpose immediately understandable. It distinguishes itself from sibling tools by being the only one dealing with seam taping, though it does not explicitly name an alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus others, nor any context about prerequisites or typical scenarios. It simply states the action without indicating when it is appropriate or when an alternative might be better.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_shrinkageA
Set a piece's fabric shrinkage as its size in percent: 100 = no shrinkage, 97 = shrinks 3 %.
Args: pattern_index: Pattern to change. width_percent: Width (weft) size in percent, 50-150. height_percent: Height (warp) size in percent, 50-150.
| Name | Required | Description | Default |
|---|---|---|---|
| pattern_index | Yes | ||
| width_percent | No | ||
| height_percent | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only defines the percent scale and ranges; it does not mention what happens when width_percent or height_percent is null, how invalid values are handled, whether the change is reversible, or what side effects occur on the pattern's fabric.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core formula is front-loaded in one sentence, and the parameter list is compact and informative. There is no filler or repetition beyond the necessary parameter explanations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple setter, all parameters are well documented and the scale is clear. However, with no output schema and no annotations, the description is missing expected return/error behavior and the meaning of null values, leaving some ambiguity for an agent deciding how to invoke it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema only names pattern_index, width_percent, and height_percent; the description adds crucial meaning: width is weft, height is warp, valid ranges are 50-150, and 100 means no shrinkage. This fully compensates for the 0% schema description coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Set a piece's fabric shrinkage', with precise percent semantics (100 = no shrinkage, 97 = shrinks 3%). This is clearly distinct from sibling setters like set_fabric_information or set_fabric_width because it targets the shrinkage property specifically.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus related setters such as set_fabric_information, set_fabric_physics, or set_fabric_width. There are also no stated preconditions, such as whether the pattern must exist or whether a fabric must already be assigned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_simulation_qualityA
Set the simulation preset: 0 Normal, 1 Animation (stable), 2 Fitting (accurate), 3 FAST (GPU).
Args: quality: Preset index. simulation_mode: 0 CPU, 1 GPU (defaults to GPU for preset 3, CPU otherwise).
| Name | Required | Description | Default |
|---|---|---|---|
| quality | Yes | ||
| simulation_mode | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of behavioral disclosure. It does disclose meaningful behavior, such as the preset meanings and the conditional default for simulation_mode ('defaults to GPU for preset 3, CPU otherwise'). However, it does not describe side effects, persistence, or what happens after setting the quality, leaving some behavioral ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: the first line states the operation and all preset values. The Args section is terse and each line provides necessary semantic enrichment. There is no filler or redundant content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple setter with two parameters and no output schema, the description covers the essential invocation details: all parameter meanings, valid preset indices, and the conditional default. It does not mention interaction with the 'simulate' tool, but that is arguably outside the core scope of this setter and does not prevent correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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, and it does. It explains 'quality' as a preset index and maps each index to a concrete meaning. It also clarifies 'simulation_mode' values and the subtle default behavior, which is beyond what the bare schema with 'default: null' provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb and resource: 'Set the simulation preset'. It enumerates the preset indices and their meanings, which clarifies exactly what is being set. However, it does not explicitly contrast itself with the sibling tool 'simulate', so differentiation is implied rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool versus alternatives such as 'simulate'. The contextual relationship to simulation is implied by the word 'simulation', but the description does not mention prerequisites, sequencing, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_topstitch_styleA
Rename a topstitch style, set its thread colour ([r, g, b] 0-255) or its number of parallel lines. For stitch length, thread thickness and offset use create_topstitch_style.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| color | No | ||
| style_index | Yes | ||
| number_of_lines | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It communicates that the tool edits an existing style and gives the color format, but it does not disclose what happens when optional/null parameters are omitted, whether an invalid style_index fails, or what side effects or return values to expect.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences convey the main operations, one parameter format, and a routing alternative with no filler. The core capabilities are front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description covers the supported attributes and color format, but leaves ambiguity about whether multiple fields are applied in one call, how null values behave, and what the tool returns. An agent can probably invoke it, but cannot fully predict its behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description maps name→rename, color→[r,g,b] 0-255, and number_of_lines→parallel lines, partially compensating for the 0% schema coverage. However, it never explains style_index itself, such as where the index comes from, and it does not clarify how null defaults are interpreted.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a concrete action on a specific resource: 'Rename a topstitch style, set its thread colour ... or its number of parallel lines.' It also explicitly differentiates its scope from create_topstitch_style by listing which attributes belong to that sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly tells the agent to use create_topstitch_style for stitch length, thread thickness, and offset, which removes ambiguity for those attributes. It does not spell out the inverse condition ('use this tool for name, color, or number_of_lines'), but that is reasonably clear from the purpose statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sew_edgesA
Sew two outline edges by saying which points meet: from_a meets from_b and to_a meets to_b. The lines are found by their endpoints (2D pattern coordinates, mm, within 2 mm) and the stitch directions follow, so the seam cannot come out twisted (with sew_lines the direction flags are easy to get backwards).
Args: pattern_a: Piece of side A. from_a: One end of the edge on A, e.g. the neck point [x, y]. to_a: The other end on A, e.g. the shoulder point. pattern_b: Piece of side B. from_b: The point on B that meets from_a. to_b: The point on B that meets to_a.
| Name | Required | Description | Default |
|---|---|---|---|
| to_a | Yes | ||
| to_b | Yes | ||
| from_a | Yes | ||
| from_b | Yes | ||
| pattern_a | Yes | ||
| pattern_b | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It discloses important behavior: lines are found by endpoints using 2D pattern coordinates in mm within a 2 mm tolerance, and stitch directions are derived so the seam cannot twist. It does not explicitly state whether the operation is destructive, reversible, or requires existing pattern IDs, but the core mechanics are well explained.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose and mechanism, followed by a compact Args section. Every sentence earns its place, including the parenthetical contrast with sew_lines, and there is no redundant filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a six-parameter mutation tool with no annotations and no output schema, the description covers purpose, mechanism, parameter meanings, and an alternative. It could still mention side effects or whether the operation is undoable, but it is largely complete for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description compensates fully by documenting all six parameters. It explains what each point represents, gives examples ('neck point [x, y]', 'shoulder point'), clarifies coordinate format and tolerance, and maps from_b/to_b to their counterparts on side A.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Sew two outline edges') and explains the exact mechanism: matching endpoints so from_a meets from_b and to_a meets to_b. It also distinguishes itself from the sibling sew_lines by noting that stitch direction follows automatically and avoids twisted seams.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear reason to choose this tool over sew_lines ('the seam cannot come out twisted') and names the alternative explicitly. However, it does not state explicit when-not conditions or a full decision rule for using sew_lines instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sew_linesA
Sew one line to another (segment sewing). Get line indices from get_pattern_geometry.
If the seam comes out twisted, sew it again with one direction flipped.
Args: pattern_a: Pattern index of side A. line_a: Line index on side A (outline line, or line of internal_shape_a). pattern_b: Pattern index of side B. line_b: Line index on side B (outline line, or line of internal_shape_b). direction_a: Stitch direction along line A (True = forward). direction_b: Stitch direction along line B (True = forward). internal_shape_a: Sew a line of this internal shape on A instead of the outline. internal_shape_b: Sew a line of this internal shape on B instead of the outline.
| Name | Required | Description | Default |
|---|---|---|---|
| line_a | Yes | ||
| line_b | Yes | ||
| pattern_a | Yes | ||
| pattern_b | Yes | ||
| direction_a | No | ||
| direction_b | No | ||
| internal_shape_a | No | ||
| internal_shape_b | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the action and mentions a remedy for twisted seams, but does not disclose whether the operation modifies original lines, is reversible, or produces any return value. This is a significant gap for a mutating operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured: a one-line purpose, a single troubleshooting sentence, then a clear, alphabetized parameter list. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While it covers the core usage and all parameters, it omits the return value, side effects, and error conditions. Given the tool's complexity (8 params, no annotations, no output schema), these gaps leave an agent uncertain about the operation's outcome and reversibility.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain all parameters. It does so clearly for all 8 parameters, including the optional internal_shape overrides and direction booleans. It could define 'outline line' and 'forward' more precisely, but the reference to get_pattern_geometry helps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Sew one line to another (segment sewing)' – a specific verb and resource. It also points to get_pattern_geometry for line indices, distinguishing its input source without needing to compare to siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a prerequisite ('Get line indices from get_pattern_geometry') and a practical troubleshooting tip about twisted seams, but no explicit alternatives or when-not-to-use guidance. Since no sibling tool directly competes for segment sewing, this is acceptable but not thorough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
show_avatarB
Show or hide the avatar.
| Name | Required | Description | Default |
|---|---|---|---|
| show | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden. It accurately states the visibility-toggle behavior, which is helpful, but it does not disclose any context such as whether the change is persistent, whether it applies to the currently selected avatar, or whether it only affects the 3D viewport. This is adequate for a simple toggle, not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence with no filler or redundancy. For a tool with one boolean parameter, this level of conciseness is appropriate and front-loads the function clearly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple and has no output schema, so not much is required. However, the description leaves open which avatar is affected, what 'show or hide' means in the broader scene context, and whether state persists. It is minimally viable but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must clarify the only parameter. 'Show or hide' implies the boolean sets visibility state, but it does not explicitly map true to show and false to hide. The meaning is recoverable but largely inferred.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb pair ('show or hide') and a clear resource ('the avatar'), so the agent understands the tool's core function. It does not explicitly differentiate from related siblings like get_avatars or import_avatar, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus alternatives such as get_avatars or import_avatar, nor when the boolean should be true versus false. The agent has to infer usage from the name and schema alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
simulateB
Run cloth simulation for a number of steps.
Args: steps: Number of simulation steps to run (default 100).
| Name | Required | Description | Default |
|---|---|---|---|
| steps | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden, but it only states the action and parameter. It does not mention side effects such as advancing cloth state, potential performance cost, whether an active garment/project is required, or what the tool returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely compact: one sentence states the purpose and a short Args block documents the parameter. There is no redundant content, and the key action is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one optional parameter, the calling signature is fully covered by the schema and description. However, the absence of annotations and an output schema leaves side effects, prerequisites, and return behavior unexplained, which is a notable gap for a simulation action in a larger workflow.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides only a bare integer with a default and 0% property description coverage. The description compensates by defining 'steps' as 'Number of simulation steps to run' and noting the default, adding the missing semantic context for the only parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Run') and resource ('cloth simulation') and clarifies that it progresses by a number of steps. It clearly states what the tool does, though it does not explicitly differentiate it from related siblings like set_simulation_quality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description only states the tool's action and provides no guidance on when it should be used versus alternatives. There are no exclusions, prerequisites, or references to sibling tools, leaving the agent to infer the appropriate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
topstitch_allA
Topstitch a whole garment in one go: every seam and/or every free outline edge (edges no seam uses: hems, front edges, cuffs, collar tops), e.g. the contrast edge stitching of a reversible or unlined jacket.
Args: style_index: Topstitch style (list_topstitch_styles, create_topstitch_style). seams: Stitch along every seam. free_edges: Stitch every free outline edge. pattern_indices: Only these pieces (default: all).
| Name | Required | Description | Default |
|---|---|---|---|
| seams | No | ||
| free_edges | No | ||
| style_index | Yes | ||
| pattern_indices | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does disclose the meaningful scope behavior: seams and free_edges both default true and pattern_indices defaults to all pieces, which tells the agent the operation is global unless narrowed. It does not say whether existing topstitching is replaced, whether the operation is reversible, or what it returns – a notable gap for an unannotated mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose, then a compact Args list. The parenthetical edge enumeration is slightly long but earns its place by clarifying what a 'free outline edge' is. No redundant filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter mutation tool with no annotations and no output schema, the description covers purpose, scope, defaults, and how to source the style_index. The main missing piece is the side-effect/reversibility story, which is more important here because no annotations exist.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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, and it does document all four parameters in the Args block, including defaults ('Only these pieces (default: all)') and a pointer to sibling tools for style_index. It could go further on the semantics of seams vs free_edges interaction (e.g. can both be false), but coverage is solid.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (topstitch) and resource (whole garment: every seam and/or free outline edge) with concrete examples (hems, front edges, cuffs, collar tops, contrast stitching). An agent can distinguish it from add_topstitch and set_topstitch_style without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explains the practical scenario ('contrast edge stitching of a reversible or unlined jacket') and routes the agent to list_topstitch_styles / create_topstitch_style for obtaining style_index. However it does not state when to prefer this over add_topstitch (single-seam variant) or any exclusions, so it stops short of full alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unfold_patternB
Unfold a half pattern across one of its lines (e.g. the centre-front fold line).
| Name | Required | Description | Default |
|---|---|---|---|
| line_index | Yes | ||
| half_symmetry | No | ||
| pattern_index | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It states the core action but does not reveal whether the pattern is mutated in place, duplicated, or merely displayed, nor what happens if the selected line is not a valid symmetry or fold line. These are material uncertainties for an agent performing a destructive-looking operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with an informative example, and every word earns its place. It is concise and not padded, even though it leaves semantic gaps that are penalized in other dimensions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema and no annotations, so the description is the only source of context. It conveys the general operation but omits essential details: the meaning of half_symmetry, valid line types, return behavior, and side effects. An agent could not confidently invoke this 3-parameter mutation tool based on this definition alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must clarify the three parameters. It hints at pattern_index ('a half pattern') and line_index ('one of its lines'), but it completely fails to explain half_symmetry, and none of the parameters gets precise semantics or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Unfold a half pattern across one of its lines,' and gives a concrete example ('centre-front fold line'). It is clear what the tool does, but it does not explicitly distinguish itself from sibling operations like flip_pattern or mirror_pattern, so it misses the highest bar.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrasing 'half pattern' and 'centre-front fold line' implies the intended use case: completing a symmetric half-pattern. However, it never explicitly states when to prefer this tool over alternatives such as flip_pattern or mirror_pattern, and it provides no exclusions or conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
view_patternsA
Picture of the 2D pattern pieces with every outline line numbered and seams coloured.
Blue numbers are line_index values for sewing, elastic, topstitch and seam taping; "sN" marks lines sewn by seam N; grey lines are internal lines. Pieces on another layer (appliqué, hem strips) lie on their base piece and are labelled with their layer, +z or -z. Pair it with get_pattern_geometry for exact lengths and coordinates.
Args: pattern_index: Draw only this piece (default: all pieces).
| Name | Required | Description | Default |
|---|---|---|---|
| pattern_index | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explains what the rendered picture will contain: blue numbers are line_index values, 'sN' labels seam lines, grey lines are internal, and layered pieces are annotated with +z/-z. Since no annotations are provided, this detail is valuable, though it does not specify the return format or explicitly confirm the operation is read-only.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-organized and front-loaded with the core purpose, followed by the visual legend, a helpful pairing note, and parameter details. It is slightly dense but every sentence carries necessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a visualization tool with no output schema and no annotations, the description adequately explains what the picture shows and directs users to get_pattern_geometry for exact data. It only lacks minor details such as the returned file format or how the picture is delivered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema only provides a title and default for pattern_index, but the description adds meaning: 'Draw only this piece (default: all pieces).' This fully compensates for the 0% schema description coverage and makes the optional parameter's behavior clear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific outcome: 'Picture of the 2D pattern pieces with every outline line numbered and seams coloured.' It clearly identifies the tool as a visual inspection tool and distinguishes it from get_pattern_geometry, which is for exact lengths and coordinates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives useful context by saying to pair this tool with get_pattern_geometry for exact measurements. However, it does not explicitly state when to prefer view_patterns over the many export_* siblings (e.g., export_thumbnail, export_snapshot, export_pattern_sheet), so the routing is mostly implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
14 tool updates
v0.6.1- Added
answer_clo_dialog - Added
apply_plaid - Changed
create_topstitch_style1 field changed- added
Input schema / properties / templateAdded value: +{ + "default": "default", + "title": "Template", + "type": "string" +}
- Added
get_clo_dialog - Added
load_pose - Changed
new_project1 field changed- added
Input schema / properties / discard_unsavedAdded value: +{ + "default": false, + "title": "Discard Unsaved", + "type": "boolean" +}
- Changed
open_file1 field changed- added
Input schema / properties / discard_unsavedAdded value: +{ + "default": false, + "title": "Discard Unsaved", + "type": "boolean" +}
- Added
restart_clo - Added
save_pose - Changed
set_fabric_color1 field changed- added
Input schema / properties / faceAdded value: +{ + "default": "front", + "title": "Face", + "type": "string" +}
- Added
set_fabric_faces - Added
set_fabric_texture - Added
sew_edges - Added
topstitch_all
94 tool updates
v0.5.0- First observed
add_applique - First observed
add_box - First observed
add_fabric - First observed
add_hem - First observed
add_internal_shape - First observed
add_pattern_annotation - First observed
add_rod - First observed
add_topstitch - First observed
apply_fabric_json - First observed
assign_fabric_to_pattern - First observed
capture_3d - First observed
clo_ui_nest_all_fabrics - First observed
convert_shape - First observed
copy_pattern - First observed
create_pattern - First observed
create_topstitch_style - First observed
delete_fabric - First observed
delete_line - First observed
delete_pattern - First observed
delete_point - First observed
export_dxf - First observed
export_fabric - First observed
export_fbx - First observed
export_glb - First observed
export_gltf - First observed
export_obj - First observed
export_pattern_sheet - First observed
export_snapshot - First observed
export_tech_pack - First observed
export_thumbnail - First observed
export_turntable - First observed
flip_pattern - First observed
get_arrangement_list - First observed
get_arrangement_points - First observed
get_avatars - First observed
get_cloth_bounds - First observed
get_colorways - First observed
get_fabric_for_pattern - First observed
get_fabric_info - First observed
get_fabric_list - First observed
get_garment_info - First observed
get_pattern_annotations - First observed
get_pattern_bounding_box - First observed
get_pattern_count - First observed
get_pattern_geometry - First observed
get_pattern_info - First observed
get_pattern_list - First observed
get_pattern_state - First observed
get_print_options - First observed
get_project_info - First observed
get_topstitch_style - First observed
hang_on_rod - First observed
import_avatar - First observed
import_collision_object - First observed
import_file - First observed
list_checkpoints - First observed
list_collision_objects - First observed
list_topstitch_styles - First observed
make_rod_pocket - First observed
map_cloth_to_patterns - First observed
marker_report - First observed
mirror_pattern - First observed
move_pattern_2d - First observed
nest_patterns - First observed
new_project - First observed
offset_internal_line - First observed
open_file - First observed
place_pattern - First observed
remove_all_pins - First observed
remove_collision_object - First observed
replace_fabric - First observed
reset_arrangement - First observed
restore_checkpoint - First observed
save_checkpoint - First observed
save_project - First observed
set_current_colorway - First observed
set_elastic - First observed
set_fabric_color - First observed
set_fabric_information - First observed
set_fabric_physics - First observed
set_fabric_width - First observed
set_fit_map - First observed
set_nesting - First observed
set_pattern_name - First observed
set_pattern_state - First observed
set_seam_taping - First observed
set_shrinkage - First observed
set_simulation_quality - First observed
set_topstitch_style - First observed
sew_lines - First observed
show_avatar - First observed
simulate - First observed
unfold_pattern - First observed
view_patterns
TDQS
Scored across 104 tools
Many tools have clear, distinct purposes, but several overlapping pairs exist (e.g., sew_edges vs sew_lines, add_topstitch vs topstitch_all, and multiple export/save variants). The detailed descriptions help, but with 104 tools the chance of misselection is significant.
Almost all tools use snake_case with a verb_noun or verb_noun_phrase pattern (e.g., get_pattern_geometry, set_fabric_color, add_internal_shape). A few exceptions like marker_report, new_project, and clo_ui_nest_all_fabrics are minor deviations but still readable.
104 tools is far beyond the 50-tool threshold for extreme mismatch. Even for a complex application like CLO3D, this count is excessive and likely overwhelms both agents and users.
The surface covers the full CLO3D lifecycle: project management, pattern creation/editing, fabric handling, sewing, simulation, avatars, collision objects, checkpoints, dialogs, and numerous export formats. Workarounds are provided for API limitations, leaving no obvious gaps.
Maintenance
Related MCP Connectors
Generate, edit, and deploy immersive 3D/WebGL web projects from any MCP assistant.
Use AI models for chat, image, and video generation from Claude Code and other MCP hosts.
Generate game-ready 3D models, textures, and audio from natural language, over MCP.
Build editable 3D scenes, direct characters and cameras, and export AI video references with MCP.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables natural language control of Blender 3D through MCP clients, allowing creation, modification, and manipulation of 3D models, animations, and scenes.300MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to control CLO3D for pattern creation, fabric swapping, simulation, and model export via natural language commands.39MIT
- AlicenseBqualityDmaintenanceEnables AI-assisted garment design by letting Claude (or any MCP host) drive CLO3D — import projects, dress avatars, assign fabrics, simulate cloth, render, and export, all from a chat.144MIT
- AlicenseCqualityCmaintenanceEnables an AI assistant to interact with CLO3D projects, including inspecting scenes, editing patterns, sewing, changing fabrics, simulating, taking snapshots, and saving checkpoints.48MIT