test-driven-development
por addyosmaniLa skill test-driven-development te ayuda a modificar código escribiendo primero una prueba que falle y aplicando después la corrección mínima para que pase. Úsala para cambios de lógica, corrección de bugs, regresiones y casos límite en los que importa más demostrar el resultado que aplicar un parche plausible.
Esta skill obtiene 84/100, lo que la convierte en una ficha sólida del directorio para quienes buscan un flujo TDD compatible con agentes, con activadores claros y guía paso a paso. Debería ayudar a los agentes a elegir y ejecutar la skill con menos incertidumbre que un prompt genérico, aunque sigue siendo una skill de un solo archivo sin scripts ni referencias de apoyo.
- Buena capacidad de activación: la descripción apunta de forma explícita a implementar lógica nueva, corregir bugs y ajustar comportamientos.
- Flujo de trabajo claro a nivel operativo: explica el ciclo RED-GREEN-REFACTOR y cuándo conviene usarlo o evitarlo.
- Buen nivel de profundidad práctica: el contenido principal es sustancial, con varios encabezados, restricciones y ejemplos de código en lugar de texto de relleno.
- No incluye archivos de apoyo ni comando de instalación: los usuarios solo reciben SKILL.md, así que la adopción depende de leer el documento con atención.
- Está marcada como experimental/test y no aporta referencias externas, por lo que la confianza depende del contenido en sí más que de herramientas o citas.
Descripción general de la skill de test-driven-development
La skill test-driven-development te ayuda a cambiar código demostrando primero el comportamiento y luego implementando la corrección mínima que hace pasar la prueba. Encaja mejor con desarrolladores y agentes que trabajan en cambios de lógica, correcciones de bugs, casos límite y regresiones, donde “parece correcto” no basta. Si necesitas la test-driven-development skill para reducir la improvisación, esta guía te dice cuándo encaja y qué mejora de verdad: ediciones más seguras, requisitos más claros y menos ida y vuelta después de un primer parche.
Para qué sirve esta skill
Usa test-driven-development cuando la tarea cambie el comportamiento: funciones nuevas, condiciones alteradas, reproducción de errores o cualquier cosa que pueda romper en silencio código existente. Es especialmente útil cuando el repo ya tiene pruebas y quieres que el agente trabaje dentro del sistema de verificación del proyecto en lugar de inventar el comportamiento desde cero.
Qué la hace diferente
El valor clave es la disciplina: primero escribe una prueba que falle y luego implementa solo lo que esa prueba demuestra. Eso le da al agente un objetivo concreto, expone antes las suposiciones faltantes y ayuda a mantener las correcciones acotadas. Para test-driven-development for Skill Testing, esa suele ser la diferencia entre un parche plausible y uno verificado.
Cuándo no es una buena opción
No uses esta skill para cambios que no tengan comportamiento en tiempo de ejecución: ediciones de texto, actualizaciones de contenido estático o ajustes puramente de configuración. Si el proyecto tiene poca o ninguna cobertura de pruebas, la skill aún puede ayudar, pero la adopción será más lenta porque quizá haya que preparar primero el propio harness de pruebas antes de que el flujo rinda frutos.
Cómo usar la skill de test-driven-development
Instala e inspecciona la skill
Usa el flujo de instalación del repositorio para test-driven-development install:
npx skills add addyosmani/agent-skills --skill test-driven-development
Después de instalarla, empieza por SKILL.md. En este repositorio no hay carpetas extra rules/, resources/ ni scripts/ en las que apoyarse, así que la tarea principal es leer el archivo de la skill con atención y mapear sus indicaciones a tu codebase.
Convierte una tarea ambigua en un prompt verificable
El mejor test-driven-development usage empieza con una descripción del comportamiento, no con una solicitud de solución. Un buen input suena así: “Añade una prueba que falle para la validación de email vacío y luego implementa la corrección mínima en src/auth.ts.” Un input débil suena así: “Mejora el login.” Incluye el resultado observable, el archivo o módulo si se conoce y el riesgo de regresión que te preocupa.
Sigue el ciclo RED-GREEN-REFACTOR
Usa la skill como flujo de trabajo: primero escribe una prueba que falle con el código actual, luego haz el cambio mínimo que la haga pasar y después refactoriza solo si la prueba sigue pasando. Si el fallo es difícil de reproducir, detente y afina el caso de prueba antes de tocar la implementación. La skill funciona mejor cuando el caso que falla es lo bastante específico como para demostrar el bug.
Lee primero los archivos adecuados
Para este repo, la lectura inicial más importante es SKILL.md. Después, inspecciona la configuración local de pruebas en tu proyecto objetivo: la configuración del test runner, las convenciones de pruebas existentes y las pruebas más cercanas al código que piensas cambiar. Si el proyecto ya sigue patrones sólidos, respétalos al pie de la letra; si no, mantén la prueba mínima y explícita.
Preguntas frecuentes sobre la skill de test-driven-development
¿Esto es solo para ingenieros con experiencia?
No. Las personas principiantes también pueden usar test-driven-development, pero necesitan un punto de partida claro: un comportamiento, una prueba que falle y una corrección mínima. La skill se aprende mejor con correcciones pequeñas de bugs que con trabajo amplio de funcionalidades.
¿En qué se diferencia de un prompt normal?
Un prompt normal puede pedir código que “funcione”. Esta skill pide prueba. La test-driven-development guide empuja al agente a definir el éxito como una prueba que pasa, lo que reduce la ambigüedad y facilita la revisión.
¿Cuándo no debería elegirla?
Sáltala para documentación, formato o cambios que no puedan expresarse como comportamiento en tiempo de ejecución. También sáltala si el proyecto no tiene un harness de pruebas viable y solo necesitas una edición rápida que no afecte al comportamiento.
¿Encaja en todos los ecosistemas?
Sí, en principio, pero los comandos exactos de prueba, las aserciones y la estructura de archivos dependen del stack. La skill es agnóstica al framework; las convenciones locales del repo deciden si usas Jest, Vitest, pytest, JUnit u otro runner.
Cómo mejorar la skill de test-driven-development
Dale al agente un caso de fallo más preciso
El mejor input nombra el comportamiento que falla, el resultado esperado y la condición de borde. Ejemplo: “Cuando se ejecute parseDate(""), debe lanzar InvalidDateError; añade primero la prueba y luego corrige el parser.” Esto ayuda a que la test-driven-development skill no caiga en conjeturas de implementación vagas.
Comparte el estilo de pruebas existente
Menciona los archivos de prueba cercanos, los patrones de nomenclatura y cualquier helper o fixture que ya use el proyecto. Si el repo usa pruebas basadas en tablas, mocks o pruebas de integración para comportamientos parecidos, dilo explícitamente. Ajustarse a la convención local mejora la confianza y hace que el resultado sea fácil de integrar.
Vigila los fallos más comunes
Los errores más grandes son escribir la implementación antes que la prueba, usar una prueba que ya pasa y ampliar demasiado la corrección más allá del caso que falla. Si la primera salida es demasiado amplia, pide la prueba fallida más pequeña posible y solo un parche mínimo. Suele ser la ruta más rápida hacia un test-driven-development usage fiable.
Itera con evidencia, no con suposiciones
Después del primer paso, pide el siguiente punto de verificación: otro caso límite, una prueba de regresión o un refactor que mantenga las pruebas pasando. Si el bug es sutil, solicita un resumen del comportamiento antes y después, además del nombre exacto de la prueba que hay que añadir. Así mantienes el flujo anclado en comportamiento observable y no en suposiciones.
