Cómo crear skills y subagentes personalizados para automatizar tu flujo diario de desarrollo con IA
Cada mañana, durante semanas, me sorprendía a mí mismo haciendo exactamente lo mismo. Abría mi herramienta de IA y pasaba los primeros 10 minutos explicándole la arquitectura de mi proyecto, las normas de linteo de nuestro equipo, qué librerías no debía usar y cómo estructurar los tests unitarios.
Si cambiaba de conversación o abría un nuevo hilo para otra tarea, tenía que volver a escribirlo todo de nuevo.
Estaba tratando a los asistentes de inteligencia artificial como un becario que llega nuevo a la oficina cada dos horas y sufre amnesia. Ahí fue cuando me di cuenta de que el verdadero salto de productividad no está en perfeccionar los prompts, sino en construir skills y subagentes personalizados que encapsulen tu conocimiento y el de tu equipo en tu flujo de desarrollo con IA.
El problema del prompt de 500 líneas en la ventana de contexto
Muchos desarrolladores intentan solucionar este problema pegando gigantescos bloques de contexto en el system prompt o en archivos de instrucciones globales.
Eso crea dos problemas graves:
- Degradación del contexto: Si sobrecargas la ventana inicial del modelo con reglas que solo aplican a una tarea específica (por ejemplo, cómo migrar la base de datos), el LLM pierde precisión al razonar sobre la tarea actual.
- Coste descontrolado de tokens: Cada mensaje que envías vuelve a procesar todo ese system prompt gigante. Como analizamos en nuestro artículo sobre el coste de subagentes al cambiar de modelo, acumular tokens innecesarios encarece y ralentiza drásticamente la ejecución.
La solución arquitectónica correcta es separar el conocimiento en dos conceptos: Skills (habilidades bajo demanda) y Subagentes (agentes especializados con ventana de contexto aislada).
¿Qué es una Skill y cuándo usarla?
Una Skill es una carpeta de instrucciones y recursos que se activa solo cuando el agente la necesita para resolver una tarea concreta.
Piensa en una skill como el "manual de procedimientos" para una tarea específica:
- Crear una nueva spec arquitectónica.
- Configurar el tracking de analítica.
- Auditar la accesibilidad UI de una página.
---
name: angular-signals-migration
description: Guía paso a paso para migrar componentes de RxJS BehaviorSubject a Angular Signals en v22+
---
# Instrucciones de Migración
1. Reemplaza `BehaviorSubject<T>` por `signal<T>`.
2. Para valores derivados, utiliza `computed()`. No uses `effect()` para modificar estado.
3. Asegúrate de actualizar la plantilla eliminando el pipe `async`.
Cuando tu agente (como Claude Code o AGY) detecta que tu petición requiere migrar componentes, lee este SKILL.md bajo demanda, aplica las reglas y libera el espacio cuando termina.
¿Qué es un Subagente personalizado?
Un Subagente es un agente secundario que se lanza en una conversación en segundo plano completamente aislada.
Recibe un rol específico (por ejemplo: Code Reviewer, Database Debugger o SEO Auditor), un conjunto acotado de herramientas y su propia ventana de contexto. Cuando termina su labor, devuelve únicamente el resultado sintetizado al agente principal.
Al igual que explicamos en nuestro post sobre graph engineering, estructurar la información en nodos especializados evita que la IA se pierda en un laberinto de contexto irrelevante.
Ejemplo de definición de Subagente
---
name: code-reviewer-senior
description: Revisa pull requests buscando vulnerabilidades de seguridad, memory leaks y falta de tipos estrictos.
tools: read_file, grep_search
---
# Rol: Senior Code Reviewer
Eres un auditor de código ultrarreciso. Revisa las líneas modificadas en la PR y evalúa:
1. ¿Hay algún `any` implícito o explícito en TypeScript?
2. ¿Se están liberando los subs de observables no finitos?
3. Devuelve únicamente una lista de hallazgos críticos prioritarios.
Guía paso a paso para crear tu primera Skill
Para implementar skills en tu repositorio o configuración global de IA:
1. Estructura el directorio
Crea una carpeta dentro de .agents/skills/ (o la ruta de configuraciones de tu herramienta):
.agents/
skills/
db-migration/
SKILL.md
template.sql
2. Escribe el SKILL.md con Frontmatter claro
Define en la cabecera YAML el nombre y una descripción precisa de cuándo debe activarse la skill. El agente utilizará la descripción para saber cuándo consultar estas instrucciones.
3. Mantén los pasos de ejecución atómicos
Define un flujo paso a paso que el agente pueda verificar en cada etapa antes de continuar.
El resultado es inmediato: dejas de repetir las mismas explicaciones una y otra vez. Tu equipo comparte la misma carpeta de .agents/ en el repositorio Git, garantizando que todos los desarrolladores (y sus agentes de IA) sigan exactamente los mismos estándares.
Si deseas ver más sobre la integración de IA en tu organización, revisa nuestra guía sobre cómo formar a tu equipo de desarrollo en IA en 6 semanas.
Para seguir perfeccionando tu workflow, consulta los Cursos de Dominicode donde profundizamos en desarrollo asistido por IA. Y si buscas construir productos reales en comunidad, te esperamos en Dominicode Labs.
Preguntas frecuentes
¿En qué se diferencia una Skill de un Prompt tradicional?
Un prompt tradicional se envía manualmente en cada mensaje. Una Skill es modular, vive en el disco como archivo de código y es descubierta y cargada de forma autónoma por la IA solo cuando la tarea lo requiere.
¿Puedo compartir mis skills con otros miembros de mi equipo?
Sí, al almacenar la carpeta .agents/skills/ dentro del propio repositorio de Git, todo el equipo comparte automáticamente las mismas instrucciones y mejores prácticas del proyecto.
¿Los subagentes consumen más tokens que una conversación normal?
Inicialmente, lanzar un subagente consume tokens de inicialización, pero a medio y largo plazo ahorra miles de tokens porque evita arrastrar el historial de chat acumulado de la sesión principal.
¿Qué herramientas soportan el uso de Skills y Subagentes?
Herramientas avanzadas como Claude Code, Google Antigravity (AGY), Cursor y entornos habilitados con arquitecturas de agentes permiten definir e invocar skills y subagentes de forma nativa.
Por Bezael Pérez — Developer senior con más de 15 años de experiencia y fundador de Dominicode.
¿Te resultó útil este artículo?
Compártelo con tu comunidad y ayuda a otros desarrolladores.
