Two tools with basic definitions but significant gaps. List-Workflows-Tool has empty input schema ({}), violating schema requirements. Run-Workflow-By-Id-Tool has a proper schema but descriptions are minimal (under 100 chars). Neither tool has parameter descriptions beyond the schema. No output schemas documented. No error handling guidance. No tool annotations (readOnlyHint/destructiveHint). Descriptions lack context on when to use each tool or what to do on failure.
Tool that returns the list of workflows belonging to the user.
Tool that runs a specific workflow with the associated ID.
List-Workflows-Tool has empty input schema ({}). No parameters documented, but tool description does not explain what it returns or when to call it.
Run-Workflow-By-Id-Tool parameter 'input' lacks description in the tool docstring. Schema shows it is optional and a string, but LLM cannot infer what text to pass or when it is needed. Parameter descriptions are required.
No output schemas documented for either tool. List-Workflows-Tool returns list[dict[str, Any]] but structure is not specified. Run-Workflow-By-Id-Tool returns dict[str, Any] with no field documentation. LLM cannot plan downstream calls or extract required data.
No tool annotations present. Run-Workflow-By-Id-Tool is destructive (WRITE risk) but lacks destructiveHint annotation. List-Workflows-Tool is read-only but lacks readOnlyHint. Agents cannot distinguish safe from unsafe operations.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 45 | <=2025-11-25 | v2 |
Error handling is minimal. api_request() returns None on failure with only logging.error(). Tool functions return empty list/dict on error with no guidance to LLM on what went wrong or what to do next. No recovery hints provided.