Turn a JSON spec into a clean blueprint-style SVG diagram.
Single tool with adequate naming (render_diagram) but significant gaps in schema documentation and parameter descriptions. The tool description is moderately detailed (195 chars) but the input parameter lacks a proper schema with type constraints. No output schema is documented. The implementation includes validation logic but error handling is not surfaced to the LLM. No tool annotations (readOnlyHint, etc.) present.
Render a diagrammer JSON spec to an SVG string. The spec format mirrors the CLI: top-level `nodes` and `edges`, plus optional `direction`, `router`, `col_gap`, `row_gap`, `margin`, `defs`. Built-in node types: box, circle, text, database, stack, group, note, custom. See `diagrammer prompt` for the full reference and examples.
Input parameter 'spec' has no type constraints or nested schema. Declared as bare 'dict' with minimal description. LLM cannot validate structure before calling.
No output schema documented. Tool returns SVG string but LLM has no structured expectation of response format, length, or error cases.
Parameter description is generic ('A dictionary containing diagram specification...') and does not specify required fields (nodes, edges), optional fields (direction, router, col_gap, row_gap, margin, defs), or valid node/edge types.
Error handling is not surfaced. validate() raises ValueError on invalid specs, but LLM receives no guidance on how to fix malformed input or what fields are required.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 47 | 2026-07-28+ | v2 |
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Tool is read-only but LLM cannot infer this from metadata.