CLI tool and MCP server for validating Revit Property Set (PSET) definition files
Two tools with minimal descriptions (both ~30 chars, below 50-char baseline for LLM optimization). Input schemas present but sparse: single string parameters with minimal context. No output schema documented. No error handling guidance, parameter constraints, or recovery paths. Tool names follow verb_noun pattern (validate_*) but descriptions lack WHEN/WHY context. No indication of what validation rules are applied or what the output structure contains. Composition is reasonable (two separate concerns), but lack of documentation makes it difficult for LLMs to reason about tool selection and result interpretation.
Validate PSET content from string.
Validate a PSET file and return results.
Descriptions are too short (30 chars) and lack WHEN/WHY context. 'Validate a PSET file and return results' does not explain what PSET is, what validation rules apply, when to use this tool vs validate_pset_content, or what the output structure contains.
Output schema is not documented. The code returns result.model_dump() (a dict), but LLMs cannot see the ValidationResult structure (errors_count, warnings_count, issues array, etc.). LLMs must guess what fields exist and how to interpret them.
No error handling guidance. If validation fails (file not found, parse error, invalid format), the tool returns no recovery hints. LLMs cannot determine whether to retry, ask the user, or try an alternative approach.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 48 | 2026-07-28+ | v2 |
Parameter descriptions are missing. 'file_path' and 'content' have one-word descriptions ('Path to PSET file', 'PSET file content as string'). No format constraints, encoding hints, or examples of valid input.
No distinction between the two tools in descriptions. Both say 'Validate a PSET file and return results', LLMs cannot reason about when to pass a file path vs inline content without reading implementation details.