Claude Code skills te permiten guardar una checklist de revisión que sigues pegando en el chat. Cada skill es un directorio que contiene un archivo SKILL.md. Claude puede usarla cuando tu petición coincide con su descripción, o puedes iniciarla tú con un comando como /review-notes.
Usa CLAUDE.md para la información del proyecto que Claude necesita al inicio de cada conversación, como los comandos de prueba y las convenciones de código. Usa una skill para una tarea concreta con varios pasos, como revisar cambios o preparar un despliegue. Las instrucciones completas de la skill se leen cuando esa tarea las necesita.
Los comandos personalizados se han fusionado en skills. Un archivo en .claude/commands/deploy.md y una skill en .claude/skills/deploy/SKILL.md crean ambos /deploy. Los archivos de comando que ya tienes siguen funcionando. El trabajo nuevo debería ser una skill: puede llevar archivos de apoyo, controlar si la invocas tú o Claude, y cargar sola cuando viene a cuento.
Dónde ponerla
- Proyecto:
.claude/skills/<name>/SKILL.md, con commit para que el equipo la reciba - Personal:
~/.claude/skills/<name>/SKILL.md, todos los proyectos de esta máquina, pero no las sesiones de Cowork ni las sesiones cloud - Anidada:
<subdir>/.claude/skills/<name>/SKILL.md, para trabajo que solo aplica ahí. Una sesión iniciada por encima de ese directorio carga la skill cuando Claude trabaja con archivos de ahí
En una skill de proyecto o personal, el nombre del directorio es el comando con barra que escribes, y el name del frontmatter es la etiqueta del listado; el ejemplo los mantiene iguales a propósito. El frontmatter YAML del inicio le dice a Claude cuándo usarla. El markdown de debajo es el procedimiento.
Empieza con una skill que solo informa
Conviene que la primera skill solo informe: así es más fácil fiarse de ella. Lee las diferencias entre los archivos actuales y el último commit de Git, y escribe notas de revisión. Las cuatro instrucciones del ejemplo le dicen al modelo que solo informe; no retiran las herramientas de edición de archivos ni las de git.
El archivo que guardas es el bloque en inglés de abajo. Cada línea le pide a Claude lo siguiente.
description: pide un resumen breve de los cambios aún no confirmados. Se usa cuando el usuario pregunta qué cambió, quiere notas antes de un commit o una lista de riesgos. Solo informa; no edita archivos ni crea un commit.!`git diff HEAD`: Claude Code ejecutagit diff HEADy sustituye esa línea!por la salida del comando antes de que Claude vea las instrucciones. Este ejemplo necesita un proyecto Git con un commit ya existente. El comando compara con ese commit solo los archivos que Git ya sigue, y no incluye los archivos nuevos que aún no se han añadido a Git. Si el comando inyectado se deniega o falla, la skill se interrumpe antes de que Claude la vea.- 1: resume el cambio en tres viñetas o menos.
- 2: lista riesgos: pruebas que faltan, secretos, o un comportamiento que parece accidental.
- 3: si no hay cambios, lo dice y para.
- 4: no edita archivos. No ejecuta comandos git que escriban.
Guarda este inglés como .claude/skills/review-notes/SKILL.md:
---
name: review-notes
description: Write a short review of the current diff. Use when the user asks what changed, wants notes before a commit, or asks for a risk list. Report only; do not edit files or create a commit.
---
## Diff
!`git diff HEAD`
## Instructions
1. Summarize the change in three bullets or fewer.
2. List risks: missing tests, secrets, or behavior that looks accidental.
3. If the diff is empty, say so and stop.
4. Do not edit files. Do not run git write commands.
Arranca Claude en el repo y escribe /review-notes, o pregunta “¿qué cambié?” si la descripción basta para que Claude la cargue. La línea ! inserta el diff respecto al último commit antes del resto, así que las notas se basan en ese diff. Comprueba que salga un resumen corto y una lista de riesgos.
Mantén las instrucciones centradas en la tarea. Una vez cargada, la skill sigue en la conversación y usa parte del contexto disponible del modelo. Para ejecutarla solo cuando lo pidas de forma explícita, añade disable-model-invocation: true junto a description en el frontmatter YAML entre las marcas ---, y arráncala con /review-notes.