Saltar al contenido principal

Skills: tareas concretas que ejecutan contexto específico

Si los Agentes son el "quién" y las Reglas son el "cómo se gobierna", los Skills son el "qué se hace concretamente." Son el elemento del trípode que convierte la visión en acción.

Un Skill es una tarea autocontenida que un Agente ejecuta respetando las Reglas. Contiene todo el contexto necesario para que el Agente la complete sin ambigüedad y sin información adicional más allá del project-context.md.

El problema del Context Loss

Cuando un Agente ejecuta un Skill, solo "ve" lo que está en su ventana de contexto. Si información relevante está en otro Skill, en una conversación anterior o en la cabeza de un humano, el Agente toma decisiones sin ella. Con total confianza.

El resultado: Context Debt. Skills que producen outputs correctos aisladamente pero incoherentes como sistema. La autocontención de cada Skill, combinada con las Reglas globales, es el antídoto.

Los cinco elementos de un Skill

Elemento del SkillQué incluyeConexión con Agentes y Reglas
ObjetivoQué debe lograrse. No cómo, sino qué.El Agente usa el objetivo para tomar decisiones ante ambigüedades, dentro de las Reglas.
Contexto específicoExtractos del PRD, arquitectura. Solo lo que este Skill necesita.Complementa las Reglas globales con información específica. El Agente combina ambos.
Criterios de aceptaciónCondiciones verificables. Escritas como assertions.El QA Agent usa estos criterios para validar el output, aplica Reglas de calidad globales.
DependenciasQué otros Skills deben estar completos.Los Agentes no ejecutan Skills fuera de secuencia. Las Reglas definen el orden.
Restricciones específicasLimitaciones de esta tarea, adicionales a las Reglas globales.El Agente aplica Reglas globales + restricciones del Skill. Si hay conflicto, las Reglas ganan.

La jerarquía: Reglas > Skills

Cada Skill opera dentro del espacio definido por las Reglas. La relación es jerárquica e innegociable: si las Reglas dicen "todos los endpoints devuelven JSON { data, error, meta }", un Skill que define un endpoint hereda esa restricción automáticamente. El Skill no necesita repetirla, pero el Agente que lo ejecuta sí necesita tener las Reglas cargadas.

Si un Skill pide algo que contradice una Regla, la Regla gana. Siempre. El Agente debe señalar la contradicción al Context Engineer en lugar de resolver el conflicto por su cuenta. Esta jerarquía es lo que protege la coherencia global.

Tipos de Skills

TipoGranularidadRelación con Agentes y ReglasEjemplo
Skill atómicoUna tarea, un output.Un solo Agente lo ejecuta. Aplica Reglas globales + restricciones propias."Crear endpoint GET /inventory/{sku}."
Skill compuestoMúltiples sub-tareas coordinadas.Un Agente ejecuta todas las sub-tareas con contexto compartido. Las Reglas aplican a cada sub-tarea."Módulo de alertas: modelo + lógica + notificación."
Skill de integraciónConecta outputs de otros Skills.Las Reglas de integración del project-context.md son especialmente críticas aquí."Integrar inventario con alertas, validar flujo e2e."
Técnica

Test de autocontención: Para cada Skill: "¿Un Agente que solo lee este Skill y el project-context.md (Reglas) puede completar la tarea sin preguntar nada?" Si no, falta contexto. Añádelo al Skill; no asumas que el Agente lo sabe.

Anti-patrón: El Skill Huérfano

Qué es: Un Skill que no referencia el project-context.md. El Agente que lo ejecuta no carga las Reglas, o asume contexto que no está escrito.

Qué produce: Outputs inconsistentes. El mismo Skill produce resultados diferentes según qué Agente lo ejecute o en qué momento, porque las Reglas no estaban presentes.

Cómo prevenirlo: Cada Skill incluye una referencia explícita: "Reglas aplicables: ver project-context.md." El Agente carga ambos documentos.

El principio de autocontención

Un Skill bien escrito es un acto de empatía con el Agente que lo ejecutará. Si el Agente necesita información que no está en el Skill ni en las Reglas, no la buscará, la inventará. La autocontención no es burocracia. Es la diferencia entre un output fiel al contexto y un output que parece correcto pero no lo es.