Capítulo 7: Creación de skills, enseñar procedimientos a los agentes
Skills: el conocimiento procedimental del agente
Sección titulada «Skills: el conocimiento procedimental del agente»Si los agentes son los trabajadores de la Empresa Sintética, los skills son sus especializaciones: procedimientos empaquetados que el agente puede invocar de forma consistente y reproducible. La idea responde a un problema real de ingeniería de contexto: las instrucciones especializadas no pueden vivir todas en el prompt de sistema (lo inflarían hasta degradar el rendimiento y el costo; Liu et al., 2024), pero tampoco pueden improvisarse en cada tarea. Un skill es la solución intermedia: una unidad de conocimiento procedimental con divulgación progresiva, donde su descripción breve está siempre disponible y su contenido completo se carga solo cuando la tarea lo requiere.
En Claude Code y en la plataforma de agentes de Anthropic, un skill es un archivo Markdown estructurado que define:
- Cuándo activarse (el disparador, basado en la intención del usuario)
- Qué hacer (el procedimiento, paso a paso)
- Qué herramientas usar (el arsenal disponible)
- Qué salida producir (el formato del resultado)
El concepto trasciende a un proveedor: OpenAI y Google ofrecen mecanismos análogos de instrucciones empaquetadas y herramientas predefinidas. Lo que el AI Engineer debe dominar es el principio, no la sintaxis: el conocimiento procedimental del equipo se versiona en el repositorio y se carga bajo demanda.
La anatomía de un skill bien diseñado:
---name: domain-reviewdescription: | Revisa que el código generado respeta el bounded context del dominio. ACTIVAR cuando: el usuario pide revisar código de dominio, menciona DDD, bounded context, o cuando se acaba de generar lógica de negocio. NO ACTIVAR para: código de infraestructura, UI, tests unitarios simples.tools: - Read - Grep - Bash---
# Skill: Domain Review
## ObjetivoVerificar que el código respeta los bounded contexts definidos y no violainvariantes de dominio.
## Protocolo de Ejecución
### Paso 1: Identificar el Bounded Context- Buscar el archivo de contexto: `grep -r "BOUNDED CONTEXT" docs/ domain/`- Si no existe: crear uno básico basado en las entidades encontradas
### Paso 2: Análisis de ViolacionesBuscar estos anti-patterns específicos:- Acceso directo a DB desde capa de dominio: `grep -r "db\." domain/`- Entidades expuestas en controllers: verificar que usan DTOs- Lógica de negocio en repositorios: verificar que solo hacen CRUD
### Paso 3: Verificar InvariantesPara cada invariante listado en el contexto de dominio:- Encontrar dónde se implementa en el código- Verificar que existe un test que lo cubre- Marcar como "sin cobertura" si no hay test
### Paso 4: ReporteProducir reporte en este formato:- RESUMEN: [1 línea: pass/fail + número de violaciones]- VIOLACIONES CRÍTICAS: [invariantes rotos]- ADVERTENCIAS: [anti-patterns encontrados]- ACCIONES REQUERIDAS: [lista numerada de cambios]El skill anterior es la operacionalización del capítulo 6: el contexto de dominio define las reglas; el skill define el procedimiento para auditarlas. Esa composición, documentos de conocimiento más procedimientos que los consumen, es la forma madura de la ingeniería de contexto.
Los cinco patrones de skill más valiosos
Sección titulada «Los cinco patrones de skill más valiosos»Patrón 1: SKILL DE ANÁLISIS────────────────────────────Propósito: Inspección profunda de artefactos existentesDisparador: "analiza", "revisa", "audita", "¿qué hace X?"Estructura: Read -> Grep -> Análisis -> Reporte estructuradoEjemplos: security-review, domain-review, performance-audit
Patrón 2: SKILL DE GENERACIÓN──────────────────────────────Propósito: Crear artefactos nuevos siguiendo plantillasDisparador: "crea", "genera", "scaffoldea", "implementa X"Estructura: Lee plantillas -> Adapta al contexto -> Escribe -> ValidaEjemplos: generate-api-endpoint, scaffold-domain-entity, create-test-suite
Patrón 3: SKILL DE TRANSFORMACIÓN───────────────────────────────────Propósito: Convertir un artefacto del formato A al formato BDisparador: "migra", "convierte", "refactoriza a X"Estructura: Lee -> Analiza estructura -> Transforma -> Verifica equivalenciaEjemplos: refactor-to-ddd, migrate-to-typescript, convert-to-async
Patrón 4: SKILL DE ORQUESTACIÓN─────────────────────────────────Propósito: Coordinar múltiples agentes o herramientas en secuenciaDisparador: "despliega", "pipeline completo", "proceso de inicio a fin"Estructura: Plan -> Lanza sub-agentes -> Recoge resultados -> SintetizaEjemplos: full-deploy-pipeline, code-review-council, onboard-new-service
Patrón 5: SKILL DE VALIDACIÓN──────────────────────────────Propósito: Verificar que invariantes y contratos se cumplenDisparador: "verifica", "valida", "¿está correcto?", antes de merge/deployEstructura: Define criterios -> Ejecuta checks -> Produce go/no-goEjemplos: verify-api-contracts, validate-domain-invariants, pre-deploy-check► PISTA TÉCNICA: Creando su primer skill
# Estructura de directorios para skills en un proyecto Claude Codemkdir -p .claude/skills
# Skill de ejemplo: auditor de costos de tokenscat > .claude/skills/cost-audit.md << 'EOF'---name: cost-auditdescription: | Audita el uso de tokens en el código y estima costos mensuales. ACTIVAR cuando: el usuario pregunta sobre costos, menciona token-burn, quiere optimizar el gasto en IA, o antes de lanzar a producción.tools: - Grep - Read - Bash---
# Cost Audit Skill
## ObjetivoIdentificar llamadas a APIs de LLM en el código y estimar su costo mensualbasado en el uso esperado.
## Proceso
1. Encontrar todas las llamadas a APIs de modelos: `grep -rn "messages.create\|chat.completions\|generate_content" --include="*.py" .`
2. Para cada llamada encontrada: - Identificar el modelo usado - Estimar tokens de entrada (system prompt + contexto típico) - Estimar tokens de salida (max_tokens configurado) - Calcular costo por llamada según la tabla de precios local
3. Estimar volumen mensual basado en: - Endpoints HTTP: revisar logs o asumir un volumen conservador documentado - Jobs batch: leer configuración del scheduler - Llamadas síncronas: contar por usuario activo
4. Producir tabla: Función | Modelo | Tokens/call | Costo/call | Costo/mes
## Tabla de preciosNO uses precios memorizados: lee el archivo `config/precios_llm.json`del repositorio (actualizado trimestralmente por el equipo de plataforma)y, si no existe, indica al usuario que debe crearlo desde la documentaciónoficial del proveedor.EOFEl detalle final del skill, prohibir precios memorizados y exigir un archivo de configuración versionado, ilustra un principio general: los skills no deben contener datos perecederos. Contienen procedimientos (estables) que leen datos (volátiles) de fuentes versionadas. Un skill con precios incrustados de 2026 seguirá susurrando esos precios en 2028.
■ PISTA EJECUTIVA
Los skills son la respuesta a una pregunta que toda dirección de ingeniería se hace: «¿cómo evitamos que el conocimiento de nuestros mejores ingenieros viva solo en sus cabezas?». La respuesta clásica, la documentación, fracasa porque la documentación no se ejecuta y, por tanto, se desactualiza sin que nadie lo note. Un skill es documentación que se ejecuta: cuando el procedimiento queda obsoleto, el skill falla de forma visible y alguien lo arregla. La biblioteca de skills de una organización es, literalmente, su know-how operativo convertido en activo digital: inventariable, versionable y transferible al siguiente empleado o al siguiente agente.
Skills limpios: plantillas y la checklist de revisión
Sección titulada «Skills limpios: plantillas y la checklist de revisión»El Código Limpio Sintético (capítulo 4) aplicado a los skills produce dos artefactos concretos. El primero es la plantilla de skill, el equivalente del prompt maestro del capítulo 5 para conocimiento procedimental: todo skill de la organización nace de la misma estructura (frontmatter con disparadores positivos y negativos, objetivo en una frase, protocolo numerado, formato de reporte), de modo que leer un skill ajeno cuesta lo mismo que leer el propio. Los cinco patrones de este capítulo son, precisamente, cinco plantillas: el equipo no redacta skills desde cero, instancia el patrón que corresponde.
El segundo es la checklist de revisión de skills, porque un skill entra al repositorio por pull request como cualquier código:
- Nombre y disparador. ¿El nombre dice qué hace (
cost-audit, noutils)? ¿La descripción dice cuándo activarse y cuándo no? El disparador negativo evita activaciones falsas, el error más común. - Responsabilidad única. ¿Encapsula UN procedimiento? Un skill que analiza «y de paso corrige» son dos skills mal mezclados.
- Sin datos perecederos. ¿Precios, versiones, URLs cambiantes? Van a configuración versionada, no al skill.
- Herramientas mínimas. ¿La lista
toolses la mínima necesaria? Un skill de análisis no necesita permisos de escritura (mínimo privilegio, capítulo 4 (Vol. 4)). - Salida verificable. ¿El formato de reporte permite un eval automático (capítulo 3 (Vol. 4))?
- Probado. ¿Existe al menos un caso de prueba con entrada y salida esperada en la suite?
Seis preguntas, dos minutos por revisión: la diferencia entre una biblioteca de skills y un cajón de prompts sueltos.
Ejercicio resuelto 7.1: un skill de validación pre-deploy
Sección titulada «Ejercicio resuelto 7.1: un skill de validación pre-deploy»Enunciado. Instancie el patrón 5 (validación) en un skill pre-deploy-check que verifique, antes de cada despliegue: que los tests pasan, que no hay credenciales en el código y que el CHANGELOG fue actualizado. Aplique la checklist anterior.
Solución comentada.
---name: pre-deploy-checkdescription: | Verifica condiciones de despliegue: tests, credenciales, changelog. ACTIVAR cuando: el usuario pida desplegar, mencione release o pre-deploy. NO ACTIVAR para: despliegues a entornos locales o de experimentación.tools: - Bash - Grep - Read---
# Pre-Deploy Check
## ObjetivoProducir un go/no-go verificable antes de desplegar a producción.
## Protocolo1. Tests: ejecutar la suite (`npm test` o `pytest -q` según el proyecto); capturar el código de salida.2. Credenciales: `grep -rEn "(api[_-]?key|secret|password)\s*[:=]\s*['\"]"` sobre el código fuente, excluyendo tests y ejemplos documentados.3. Changelog: verificar que CHANGELOG.md tiene una entrada cuya versión coincide con la del manifiesto del proyecto.
## Reporte (formato fijo, evaluable)- VEREDICTO: GO | NO-GO- CHECKS: [tests: pass/fail] [credenciales: limpio/hallazgos] [changelog: ok/falta]- BLOQUEANTES: [lista, vacía si GO]Contra la checklist: (1) nombre y disparadores (incluido el negativo) explícitos; (2) una sola responsabilidad: valida, no corrige ni despliega (corregir sería otro skill; desplegar, una acción crítica con guardia humana, capítulo 1 (Vol. 3)); (3) sin datos perecederos, los comandos de test se detectan del proyecto, no se fijan versiones; (4) tres herramientas de solo lectura y ejecución acotada, sin permisos de escritura; (5) el formato VEREDICTO/CHECKS/BLOQUEANTES es trivialmente evaluable por una aserción determinista; (6) el caso de prueba mínimo: un repositorio de juguete con una credencial plantada debe producir NO-GO con el hallazgo listado.
Lo esencial del capítulo 7
Sección titulada «Lo esencial del capítulo 7»- Un skill = conocimiento procedimental versionado con divulgación progresiva: descripción siempre visible, contenido bajo demanda.
- Cinco patrones-plantilla: análisis, generación, transformación, orquestación, validación. Se instancian, no se improvisan.
- Los skills no contienen datos perecederos: procedimientos estables que leen configuración versionada.
- Checklist de revisión de seis puntos en cada PR de skill, es código, y se revisa como código.
- Un skill es documentación que se ejecuta: cuando queda obsoleto, falla visiblemente y alguien lo arregla.