Use when designing or troubleshooting Claude Platform tool contracts: names, descriptions, input_schema, input_examples, strict, tool_choice, cache/privacy, versions, and routing boundaries.
Diseñar cada tool como un contrato de routing y datos: nombre, descripción, input_schema, ejemplos válidos, opciones comunes, selección y frontera recíproca. Para Claude Platform también gobierna strict:true, tool_choice, allowed_callers, defer_loading, caching, privacidad de esquemas y versiones descritas por la referencia oficial. [DOC]
Frontera: este skill define el catálogo, no ejecuta tools. El bucle tool_use/tool_result pertenece a claude-api-tool-runtime; server tools a claude-api-server-tools; handlers Anthropic de memory/bash/editor/computer a claude-api-client-tools; contexto/cache a claude-api-context-management; extensiones de Claude Code a custom-tooling-extension. La selección y secuencia de built-ins para operar repositorios pertenece a katas-builtin-tool-selection. [CONFIG]
"Analyzes content" no permite al modelo saber qué entrada espera ni dónde está su frontera.name, description, input_schema o input_examples, activar strict:true, revisar tool_choice, o comparar versiones/opciones de la referencia de Claude Platform. [DOC]references/claude-platform-tool-definition-contract.md: valida nombre/campos, restricciones de ejemplos, los cuatro modos de tool_choice, pensamiento extendido, invalidación de caché, privacidad del esquema estricto, allowed_callers, defer_loading y versionado antes de emitir código. [DOC]# GOOD — descripciones como contrato con frontera recíproca + estrategia Grep→Read→Edit
TOOLS = [
{
"name": "search_code",
"description": (
"Find files or symbols by pattern across the repo. "
"Input: a regex or literal string. Returns matching paths + line numbers. "
"Use this FIRST to locate. To read a known file's contents, use read_file instead."
),
},
{
"name": "read_file",
"description": (
"Read the full contents of ONE known file path. "
"Input: an absolute path. Use after search_code has located the file. "
"Do NOT use to discover files — that is search_code's job."
),
},
{
"name": "edit_file",
"description": (
"Replace an exact, UNIQUE anchor string in a file. "
"Input: path, old_string (must be unique), new_string. "
"FAILS if old_string is not unique. Fallback: read_file then write_file for a full rewrite."
),
},
]
# Workflow the descriptions enforce: locate cheaply, read selectively, mutate precisely.
hits = search_code(pattern="def handle_payment") # Grep
src = read_file(path=hits[0].path) # Read only the relevant file
edit_file(path=hits[0].path, old_string=unique_anchor, new_string=patched) # Edit# ANTI — descripciones genéricas + read masivo upfront
TOOLS = [
{"name": "analyze", "description": "Analyzes content."}, # no input, no frontera
{"name": "process", "description": "Processes the file."}, # solapa con analyze
]
# El agente, sin frontera, no sabe cuál elegir → pide aclaración o adivina.
# Y para "entender el repo" carga todo en contexto:
all_files = glob("**/*")
context = "".join(read_file(p) for p in all_files) # ~200k tokens, satura la ventana
# Edit sin fallback documentado: si el anchor no es único, falla con error.Grep → Read → Edit, sin ningún Glob("**/*") + Read all upfront?input_examples valida contra input_schema, strict:true se usa con restricciones verificadas y tool_choice es compatible con el modo/modelo activo? [DOC]input_examples por tipo de tool? [DOC]tool_choice, pensamiento extendido, invalidación de caché y la caché de esquema estricto de hasta 24 horas sin PHI? [DOC]katas-tool-description-quality, katas-builtin-tool-selection.mcp-engineering, claude-api-tool-runtime, claude-api-server-tools, claude-api-client-tools.references/claude-platform-tool-definition-contract.md - definición completa, selección, caché/privacidad estricta, catálogo/versiones y troubleshooting. [DOC]Capas del packet, cargables bajo demanda (disciplina ICM: una capa por vez, nunca todas juntas): references/ guías de profundidad (cargar UNA por etapa) · knowledge/ cuerpo de conocimiento · prompts/ prompts listos · examples/ salida de ejemplo · agents/ subagentes del packet · templates/ plantilla de output.
e8f986b
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.