Critical gaps across all dimensions. Tool descriptions are present but generic (10-30 chars, well below 50-200 char baseline for LLM optimization). Input schemas exist but lack rigor: many parameters missing type definitions (e.g., 'path' and 'name' in get_object_info have no 'type' field visible in schema), no enums for constrained inputs, no parameter descriptions in schemas. Output schemas completely undocumented. execute_code exposes arbitrary code execution without validation or confirmation. Error handling absent, no recovery guidance, no categorization. Naming is verb-forward but ambiguous (modify_object lacks specificity about what modifies). No evidence of idempotency, pagination, or composition patterns. STDIO transport caps protocol readiness at 50.
Create a new object in Houdini
Delete an object
Execute Python code in Houdini
Get detailed information for a specific object
Get information about the current scene
Modify an existing object
Render the current scene
Input schemas lack type definitions and parameter descriptions. Parameters like 'path' and 'name' appear in schema but have no 'type' field or description text visible.
execute_code tool accepts arbitrary Python code with no validation, confirmation, or dry-run. Violates pattern:confirmation-request and pattern:permission-gate. Agents can execute destructive code without safeguards. No error handling or recovery guidance.
Tool descriptions are 10-30 characters (e.g., 'Get information about the current scene'). Rubric baseline: 50-200 chars for LLM optimization. Descriptions lack WHEN to use, WHAT it returns, and dependencies.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 40 | <=2025-11-25 | v2 |
Apply a material to an object
No output schemas documented. LLMs cannot plan downstream calls or extract required fields. Violates pattern:tool and pattern:response-shaper. No pagination, no result limits, no chaining IDs returned.
modify_object description is ambiguous ('Modify an existing object'). Does not specify what properties can be modified, what the expected parameters are, or what the return value contains. Violates pattern:tool-description and pattern:name-clarity.