Seleccion de built-in tools con estrategia Grep then Read then Edit, failure modes y sin Read masivo upfront.
Claude Code expone un conjunto de built-in tools, cada una con un uso primario y un failure mode. El núcleo de manipulación de código:
Grep: busca contenido por regex sobre el cuerpo de los archivos.Glob: busca paths por patrón de nombre (no mira contenido).Read: carga un archivo concreto en contexto (también imágenes, PDFs y notebooks).Edit: modificación dirigida sobre un anchor de texto único; con replace_all: true sustituye todas las ocurrencias.Write: sobrescribe un archivo completo.Bash: ejecuta comandos de shell.La superficie built-in es más amplia que ese núcleo — el inventario vigente incluye además Agent (subagentes), Skill (invocar skills), TodoWrite/TaskCreate (tracking), WebFetch y WebSearch (red), NotebookEdit (celdas de notebook), SlashCommand, y BashOutput/KillShell (procesos en background). Elegir dentro del núcleo no exime de conocer el resto: delegar una búsqueda amplia a Agent o invocar una Skill existente suele ganar a orquestarlo a mano [coverage_gap: el set exacto varía por versión — verificar contra la sesión instalada].
La estrategia incremental canónica es Grep → Read → Edit: buscar primero los entry points por contenido, leer selectivamente siguiendo imports, y aplicar una modificación puntual.
Hacer Read sobre todo el repositorio carga miles de tokens innecesarios y quema el presupuesto de contexto. Un Edit con un anchor que no es único (matchea varias líneas) o que no existe simplemente falla. Saber qué tool aplica en cada momento es mecánica básica del examen y separa a los agentes eficientes de los que desperdician contexto en cada turno.
Grep = buscar contenido. Glob = buscar paths. Read = cargar archivo. Edit = mod puntual. Write = reescribir. Bash = shell.Grep primero (encontrar entry points) → Read selectivo (seguir imports) → Edit/Write puntual.Edit: anchor no único o inexistente → falla. Remedio documentado para el anchor repetido: replace_all: true (si TODAS las ocurrencias deben cambiar) o ampliar el anchor con más contexto para hacerlo único. Fallback de último recurso: Read entero + Write completo.matches = grep(pattern="processRefund\\(", glob="**/*.py")
content = read(matches[0].path)
edit(
path=matches[0].path,
old_text="if amount > 1000:",
new_text="if amount > MAX_REFUND:",
)all_files = glob("**/*")
for f in all_files:
read(f) # 200k tokens cargados sin necesidad
edit(old_text="if amount", ...) # múltiples líneas matchean → fallaEdit (anchor no único/inexistente) y sus remedios en orden: replace_all, anchor ampliado, y solo al final Read + Write.Grep → Read → Edit.Read masivo upfront sobre el repositorio.Grep, Glob, Read, Edit, Write o Bash.Edit falla por un anchor ambiguo y hay que decidir el fallback.katas-plan-mode-explorationkatas-custom-commands-skillskatas-hierarchical-claude-memoryCapas del packet, cargables bajo demanda (disciplina ICM: una capa por vez, nunca todas juntas): 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.