What problem does it solve?
This Skill provides a practical end-to-end guide for authoring and wiring builtin tool packages so your agent tools are discoverable, executable, and correctly rendered across all chat UI surfaces.
Core Features & Use Cases
- New builtin tool scaffolding: Design and implement a new package under packages/builtin-tool-<name>/ with the correct structure for manifest, runtime logic, executor wiring, and UI surfaces.
- API surface design: Define stable identifiers and ApiName contracts, write JSON-schema manifests for LLM tool specs, and align Params/State so pluginState is result-domain only.
- Execution architecture & correctness: Split pure runtime logic (ExecutionRuntime) from frontend wiring (client/executor) and enforce the result contract (success/content/state/error) with safe fallbacks.
- UI surface integration: Add or update Inspector, Render, Placeholder, Streaming, Intervention, and Portal components only when needed, then register them in the central registries.
- Registry wiring & debugging: Resolve common issues like “tool not found”, missing chips, blank render cards, stuck placeholders, or missing intervention dialogs by updating the required registry files.
- Governed conventions: Follow conventions for stable lobe-<domain> identifiers, ApiName const objects, i18n keys, styling, and class-field executor methods to avoid runtime dispatch bugs.
Quick Start
Use the builtin-tool skill to create a new packages/builtin-tool-<name>/ package by first writing SKILL.md-aligned files (manifest, types, systemRole), implementing ExecutionRuntime and a class-field executor, and then wiring Inspector/Render/placeholder surfaces into the registries while updating i18n keys for builtins.<identifier>.apiName.<api>.