What problem does it solve?
Developers adding tools to the ToolUniverse often break discovery, validation, or testing because of missing configuration entries, non-nullable mutually exclusive parameters, weak error handling, or inadequate test examples. This Skill consolidates the required structure, registration steps, validation rules, and testing practices so new tools load reliably and behave predictably in production and research pipelines.
Core Features & Use Cases
- Registration checklist: clear three-step registration (class registration via @register_tool, config entry in default_config.py, and automatic wrapper generation on tu.load_tools()) to prevent silent load failures.
- Tool scaffolding & patterns: multi-operation Python class patterns, JSON configuration format conventions, and recommended return_schema shapes (success + error) to maintain consistency across tool families.
- Testing & validation: mandatory three-level testing guidance (direct class tests, ToolUniverse interface tests, and real API tests), realistic test_examples, and scripts to verify registration and tool loading.
- Common pitfalls addressed: guidance on nullable mutually exclusive parameters, timeout settings for HTTP calls, environment-based API keys, name length limits, and returning error envelopes rather than raising exceptions.
Quick Start
Create a new tool by adding a Python class annotated with @register_tool, a JSON config in src/tooluniverse/data, register the category in src/tooluniverse/default_config.py, and run the tool validation tests to verify loading and behavior.