What problem does it solve? Extending a coding agent's Rust core with a new tool requires touching several disconnected places—function-calling schema, approval classification, sync/async dispatch, and path guards—and missing any one of them causes silent failures. This Skill provides the canonical workflow for wiring a new agent-callable tool correctly end to end. ## Core Features & Use Cases - Schema and classification guidance: Append OpenAI function-calling JSON to definitions() and assign the tool to ReadOnly or Destructive approval classes in classify(). - Sync and async dispatch patterns: Add match arms in execute() for sync tools, or wire the sentinel error plus async fn execute_<name> routing in main.rs for async tools. - Safety guard integration: Apply workspace::resolve for path confinement and workspace::check_dangerous_path for write-capable tools, with diff previews for approval requests. - Use Case: You want the agent to count lines in a file. Follow the steps to add a count_lines schema, classify it as read-only, implement the function, dispatch it, and verify with cargo clippy and tests. ## Quick Start Add a new read-only tool called count_lines to the Rust core following the add-core-tool workflow, including its schema, classification, dispatch arm, and a unit test.