Model tool schema inventory

This page defines the versioning policy for Holon's model-facing built-in tool surface. The machine-readable inventory is checked in as model-tool-schema-inventory.json.

Inventory contents

Each built-in tool entry records:

The version 2 inventory starts result-schema coverage with Enqueue, GenerateImage, ListTasks, TaskStatus, TaskInput, TaskOutput, and TaskStop. Uncovered tools keep their result type name and an explicit null schema; this avoids presenting an inferred or partial shape as a stable contract. Coverage can expand only when the concrete Rust result type derives schemars::JsonSchema.

Capability families

Each built-in tool belongs to a capability family. The runtime defines six families in src/types.rs (ToolCapabilityFamily):

FamilyDescriptionExample tools
CoreAgentCore agent operations (state, memory, work items, scheduling, CLI/config introspection)MemorySearch, WaitFor, ListWorkItems, ListModelProviders
LocalEnvironmentWorkspace-local operationsExecCommand, ApplyPatch, ViewImage, GetWorkspaceState, SwitchWorkspace, CreateWorktree
WebPublic web accessWebFetch, WebSearch
AgentCreationAgent spawning and delegationSpawnAgent
AuthorityExpandingTools that change workspace authority or destroy registered artifactsAttachWorkspace, DetachWorkspace, RemoveWorktree
ExternalTriggerExternal event ingressCreateExternalTrigger, CancelExternalTrigger

Stability levels

LevelMeaning
stableName, input schema, result envelope family, and documented model rendering are intended to be compatibility-preserving.
experimentalSurface is available but may change while the runtime contract is still settling.
deprecatedSurface remains for compatibility but should not be introduced into new workflows.

Naming policy

Holon-native built-in tool names use PascalCase with action-first names. Use List* for collection reads, Get* for single-resource or snapshot reads, and explicit verbs such as Send*, Stop*, Create*, or Update* for control or mutation. Legacy aliases may remain accepted by the dispatcher during a migration window, but the checked-in inventory advertises the canonical model-facing name.

Versioning policy

The top-level version field versions the inventory format, not every tool schema independently.

Refresh workflow

make snapshots-refresh
make snapshots-check