claudio.cool
CCAR-FLecciones

CCAR-F · Claude Code

Comandos y skills: dónde van y cómo se configuran

⏱ 3 min de lecturaBorrador

CLAUDE.md se carga siempre. Pero muchas cosas solo hacen falta a veces: una checklist de revisión, un flujo de release, un análisis del código. Para eso están los comandos y las skills, que se usan bajo demanda.

Proyecto o personal

Del equipo (en el repo) Personal
Comando de barra (slash command) .claude/commands/ ~/.claude/commands/
Skill .claude/skills/<nombre>/SKILL.md ~/.claude/skills/<nombre>/SKILL.md

Un /review que todo el que clona el repo tiene que tener va en .claude/commands/review.md: se versiona y llega con cada pull. Si lo creaste en ~/.claude/commands/, el push sale bien pero el archivo nunca se commiteó, porque está fuera del repo. En un comando, el nombre del archivo define el comando y $ARGUMENTS recibe lo que se escribe después (por ejemplo, el número de PR).

Una skill es un flujo de tarea con su propia carpeta. Se invoca con /nombre o el modelo la carga cuando su descripción coincide con la tarea. Al empezar la sesión solo se carga el nombre y la descripción; el contenido entero entra cuando se usa. En las versiones recientes de Claude Code, comandos y skills crean el mismo /nombre, y las skills suman frontmatter y archivos de apoyo.

El frontmatter que pide el examen

---
name: analizar-modulo
description: Analiza dependencias y deuda técnica de un módulo
context: fork
allowed-tools: Read, Grep, Glob
argument-hint: "[ruta-del-modulo]"
---
  • context: fork (contexto bifurcado): la skill corre en un subagente aislado y a la conversación principal vuelve solo el resumen final. Es lo que se usa cuando una skill produce salida verbosa (listados, grafos de dependencias) o exploración (una lluvia de ideas) que llenaría la sesión.
  • allowed-tools (herramientas permitidas): qué herramientas puede usar la skill sin pedir permiso. En el examen aparece como la forma de acotar las herramientas mientras corre la skill, por ejemplo para evitar acciones destructivas. Define qué herramientas usa, no cuánto imprime.
  • argument-hint (pista de argumento): muestra qué argumento espera la skill cuando alguien la invoca sin él.

Campos como output-limit o max-tokens no existen, y paths es de las reglas de .claude/rules/.

Variantes personales

Si querés una versión más detallada de la /analyze del equipo, creala en ~/.claude/skills/ con otro nombre (deep-analyze). Con el mismo nombre, la personal tapa a la del equipo en tus sesiones y se vuelve confuso saber cuál corre. Cambiar la del repo afecta a todos.

Skill o CLAUDE.md

Siempre cargado Bajo demanda
CLAUDE.md y .claude/rules/ sin paths Skills y comandos
Convenciones que aplican a cada tarea Flujos de una tarea puntual

Una convención de nombres que tiene que guiar cada generación nunca va en una skill: depende de que alguien la invoque. Una checklist larga de uso ocasional, sí.

Las trampas típicas

  • Definir comandos dentro de CLAUDE.md o en un config.json inventado.
  • Usar allowed-tools para reducir la salida de una skill: eso es context: fork.
  • Copiar a mano los comandos personales en cada máquina en lugar de commitearlos.
  • Pensar que /memory carga comandos.

En el examen

“Disponible para todo el que clona” es .claude/; “solo para mí” es ~/.claude/. Salida que ensucia la conversación: context: fork. Convención universal: CLAUDE.md, nunca una skill.

Pregunta rápida

Una pregunta del simulacro sobre este dominio. Cuenta para tu progreso.

A healthcare analytics team keeps a long architecture description in docs/architecture.md, maintained by the platform group and updated every sprint. Rather than copy it into their instruction file, a developer adds the following line to the project CLAUDE.md, which lives at the repository root: @docs/architecture.md

A reviewer on the pull request, new to Claude Code, asks whether that line actually does anything or is just a note to readers. The team has twelve developers and the repository is mostly Go, with a few Python scripts for data loading. Nobody has run /memory on the branch yet.

What happens when Claude Code loads this CLAUDE.md?

Practicá este dominio en el simulacro →