Audita tu biblioteca de skills cada trimestre con grep
Tus instrucciones de IA ya están desactualizadas.
Las skills se pudren como el código, y se pudren en silencio. Los archivos derivan, las skills sin referencias se acumulan, los nombres cambian y las referencias a herramientas quedan obsoletas — pero nada da error. Tu agente simplemente sigue cargando con confianza lo incorrecto. El código tiene una suite de tests para atrapar la decadencia; tu biblioteca de skills normalmente no tiene nada. Así que ponlo en el calendario: audita cada trimestre con grep, y trata la auditoría como una pasada de revisión, no de borrado.
Por qué las skills se pudren en silencio
No hay compilador para la prosa. Una skill puede estar mal durante meses sin lanzar nada:
- Se acumulan archivos sin referencias. Una skill queda reemplazada pero nunca se elimina. Sigue cargándose, sigue influyendo en el agente, sigue costando contexto.
- El front-matter deriva. El
name, ladescriptiono las condiciones de disparo de una skill dejan de coincidir con lo que realmente hace, así que se activa en los momentos equivocados. - Los nombres de herramientas se vuelven obsoletos. La guía aún menciona herramientas que retiraste —
tslint(reemplazado por ESLint),bower(muerto), un script interno renombrado. El agente sigue instrucciones que ya no mapean a la realidad.
Nada de esto aparece como un error. Aparece como un agente que en silencio hace lo incorrecto.
El mecanismo: una auditoría trimestral con grep
No necesitas herramientas especiales — grep y ripgrep encuentran casi toda la putrefacción en minutos.
Encuentra skills sin referencias. Para cada skill, revisa si algo más apunta a ella:
# Para cada archivo de skill, ¿su nombre se referencia en algún otro lado?
for f in skills/**/*.md; do
name=$(basename "$f" .md)
refs=$(rg -l --glob '!'"$f" "$name" . | wc -l)
echo "$refs $name"
done | sort -n # las skills con cero referencias suben al tope
Revisa la deriva de front-matter. Lista el nombre y la descripción declarados de cada skill y compáralos con lo que el archivo hace ahora:
rg -n '^(name|description):' skills/ --glob '*.md'
Caza nombres de herramientas obsoletos. Busca con grep las herramientas que retiraste o renombraste:
rg -n 'tslint|bower|yarn run|old-internal-cli' skills/
Sin referencias significa "revisar", no "borrar"
Esta es la parte que la gente hace mal. Una skill con cero referencias entrantes queda marcada para revisión, no condenada. Algunos archivos sin referencias son legítimos:
- Hijos de profundización cargados bajo demanda a través de un padre mediante divulgación progresiva — el padre apunta a ellos, pero un grep ingenuo con el patrón equivocado se pierde ese enlace.
- Puntos de entrada invocados por el runtime o por el usuario directamente, no por otro archivo.
Así que la auditoría produce una lista para investigar. Para cada archivo marcado decides: aún se usa vía un padre (conservar), genuinamente muerto (borrar), o derivado (arreglar). Nunca borres en masa solo con la salida de grep.
Movidas avanzadas
- Ponlo en el calendario. Un recordatorio trimestral recurrente le gana a "cuando se ponga mal", porque no puedes sentir la putrefacción silenciosa.
- Mantén una lista negra de herramientas retiradas. Conserva un patrón de grep con los nombres de herramientas que descartaste y vuélvelo a correr en cada auditoría para atrapar rápido las nuevas referencias obsoletas.
- Compara descripciones con el comportamiento. Si la
descriptionde una skill ya no predice cuándo debería activarse, arregla el front-matter — eso es lo que el agente empareja. - Rastrea los enlaces del padre. Antes de borrar una profundización sin referencias, busca con grep por ruta y por nombre de archivo para atrapar referencias de divulgación progresiva.
- Audita tras renombrados grandes. Un movimiento de directorio o una migración de herramienta es el momento en que nacen las referencias obsoletas; corre la auditoría entonces, no solo en el trimestre.
Recursos
- ripgrep — guía de usuario
- Agent Skills — documentación de Anthropic (progressive disclosure)
- grep — manual de GNU
- ESLint — el sucesor de TSLint (deprecado)
¿Desarrollas sistemas de IA o en la nube? Yeda AI audita y refuerza pipelines de LLM y agentes en producción. Hablemos · Lee el blog