Single tool 'verify' has a clear, domain-specific description (165 chars) and explicit input schema with three required object parameters. However, parameter descriptions lack detail on expected structure and constraints. The schema defines items as bare objects without property specifications, forcing LLMs to guess at internal structure. No output schema is documented, the tool returns a Verdict JSON but the response structure is not formally specified. Error handling is present (PayloadError, ValidationError caught) but error messages are generic ('payload error', 'schema invalid') without recovery guidance. The tool name is a verb but lacks specificity, 'verify' could mean many things; 'verify_proposal_against_rules' would be clearer. No tool annotations (readOnlyHint, etc.) present.
Verify a proposal against facts and constraint rules. Returns a Verdict with status (allowed | denied | invalid_input), failed rules, missing facts, warnings, and contradictions. A 'denied' verdict is a successful verification — it is not an error.
Parameter schemas lack property definitions. 'proposal', 'facts', and 'rules' are declared as objects/arrays but have no 'properties' or 'items.properties', LLMs cannot infer valid structure.
Output schema not documented. Tool returns a Verdict object but response structure (fields, types) is not specified in the tool definition. LLMs cannot plan downstream operations or extract fields reliably.
Error messages are generic and non-actionable. 'payload error: ...' and 'schema invalid: ...' do not guide the LLM on what to fix or retry. Should include the invalid value and constraint violated.
Parameter descriptions are minimal. 'Proposal under evaluation: {action, actor, target, scope}' is a structure hint, not a description. Each field should be documented: what is 'action'? What values are valid? What is 'scope'?
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 53 | 2026-07-28+ | v2 |
Tool name 'verify' is generic. Does not clearly distinguish this from other verification tools. 'verify_proposal' or 'verify_against_rules' would be more specific and aid LLM tool selection.