tiny-loop provides 11 tools with partial schema coverage and uneven description quality. Most tools have basic JSON Schema input definitions with type and required fields present, but descriptions are inconsistent, some are absent, and parameter documentation is incomplete. The framework uses Rust procedural macros (#[tool]) to auto-generate schemas via schemars, which ensures consistency for tools that are properly macro-annotated. However, 4 out of 11 tools lack descriptions entirely (custom_tool, custom_method_one, custom_method_two, param_multi_line_doc), and 7 tools have minimal descriptions. Tool naming is verb-noun style (fetch, read, write, add, get_weather) which follows conventions, but the semantics are domain-specific and some tools (custom_tool, custom_method_one, custom_method_two) serve only as demonstration/test fixtures with no real-world context. Parameter descriptions exist for most tools but are trivial (e.g., 'Data key', 'First number') and do not explain constraints, ranges, or format expectations. Output schemas are not documented, callers must infer return types from documentation or code inspection. Error handling is not specified in tool definitions.
Calculate the sum of two numbers
Fetch data from database 1
Get the current weather for a location
First line of method doc Second line of method doc Third line of method doc
First line of documentation Second line of documentation Third line of documentation
4 tools lack descriptions entirely: custom_tool, custom_method_one, custom_method_two, param_multi_line_doc. Tools without descriptions cannot be selected by LLMs.
Parameter descriptions are generic and lack actionable constraints. 'Data key' does not explain the format, range, or semantics of the key. Descriptions should specify expected input format, valid ranges, and dependencies between parameters.
Output/return schemas are not documented. Tools return strings (inferred from examples: 'Key not found', 'Wrote X to key Y', 'The weather in X is sunny...') but the structure and content of responses are not formally specified. LLMs cannot plan downstream tool calls without knowing response structure.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 48 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 36 | - | v1 |
Read data from database 2
Write data to database 2
No error handling guidance documented. Tools do not specify error conditions, error recovery steps, or retry strategies. E.g., 'fetch' returns 'Key X not found', should LLM retry? Ask user? Try different key?
Tool naming ambiguity for test/demo tools. 'custom_tool', 'custom_method_one', 'custom_method_two' are not verb_noun (action-oriented). Names do not convey intent. These appear to be internal test fixtures, not production tools.
Multi-line descriptions in 'multi_line_doc', 'param_multi_line_doc', 'method_with_doc' repeat content without adding clarity. 'First line\nSecond line\nThird line' suggests a placeholder structure rather than meaningful explanation.