Communitygithub.com

Lev-it/lev-skills

Desarrollo guiado por pruebas. Úsalo cuando el usuario quiera construir funcionalidades o corregir errores siguiendo el enfoque test-first, mencione "red-green-refactor", o necesite pruebas de integración.

¿Qué es lev-skills?

Esta skill de agente de IA implementa una metodología rigurosa de desarrollo guiado por pruebas (TDD) con un enfoque en pruebas de integración sobre aislamiento. Su principio fundamental es que las pruebas deben verificar el comportamiento a través de interfaces públicas, no los detalles de implementación, garantizando que las pruebas sobrevivan a refactorizaciones. La skill promueve el patrón de "balas trazadoras" verticales: escribir una prueba, implementar el código mínimo para que pase y repetir, evitando el anti-patrón de escribir todas las pruebas primero. Está diseñada para agentes de IA como Claude Code, Cursor o Codex, y su flujo de trabajo incluye planificación con confirmación del usuario, ciclo incremental de rojo-verde y refactorización. Incluye referencias a documentación complementaria sobre ejemplos de pruebas, mocking y refactorización, así como listas de verificación para cada ciclo.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Lev-it/lev-skills/tree/HEAD/.claude/skills/tdd

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Desarrollo Guiado por Pruebas

Filosofía

Principio fundamental: Las pruebas deben verificar el comportamiento a través de interfaces públicas, no los detalles de implementación. El código puede cambiar por completo; las pruebas no deberían.

Las pruebas buenas son de estilo integración: ejercitan rutas de código reales a través de APIs públicas. Describen qué hace el sistema, no cómo lo hace. Una buena prueba se lee como una especificación — "el usuario puede finalizar la compra con un carrito válido" te dice exactamente qué capacidad existe. Estas pruebas sobreviven a refactorizaciones porque no les importa la estructura interna.

Las pruebas malas están acopladas a la implementación. Simulan colaboradores internos, prueban métodos privados o verifican a través de medios externos (como consultar una base de datos directamente en lugar de usar la interfaz). La señal de advertencia: tu prueba se rompe cuando refactorizas, pero el comportamiento no ha cambiado. Si renombras una función interna y las pruebas fallan, esas pruebas estaban probando implementación, no comportamiento.

Consulta tests.md para ejemplos y mocking.md para pautas sobre mocking.

Anti-Patrón: Capas Horizontales

NO escribas todas las pruebas primero, luego toda la implementación. Esto es "corte horizontal" — tratar ROJO como "escribe todas las pruebas" y VERDE como "escribe todo el código."

Esto produce pruebas pésimas:

  • Las pruebas escritas en masa prueban un comportamiento imaginado, no un comportamiento real
  • Terminas probando la forma de las cosas (estructuras de datos, firmas de funciones) en lugar del comportamiento orientado al usuario
  • Las pruebas se vuelven insensibles a cambios reales — pasan cuando el comportamiento se rompe, fallan cuando el comportamiento está bien
  • Te adelantas a lo que puedes manejar, comprometiéndote con una estructura de prueba antes de entender la implementación

Enfoque correcto: Capas verticales mediante balas trazadoras. Una prueba → una implementación → repetir. Cada prueba responde a lo que aprendiste del ciclo anterior. Como acabas de escribir el código, sabes exactamente qué comportamiento importa y cómo verificarlo.

INCORRECTO (horizontal):
  ROJO:   test1, test2, test3, test4, test5
  VERDE: impl1, impl2, impl3, impl4, impl5

CORRECTO (vertical):
  ROJO→VERDE: test1→impl1
  ROJO→VERDE: test2→impl2
  ROJO→VERDE: test3→impl3
  ...

Flujo de Trabajo

1. Planificación

Al explorar el código fuente, lee CONTEXT.md (si existe) para que los nombres de las pruebas y el vocabulario de la interfaz coincidan con el lenguaje del dominio del proyecto, y respeta las ADR en el área que estás tocando.

Antes de escribir cualquier código:

  • Confirmar con el usuario qué cambios de interfaz se necesitan
  • Confirmar con el usuario qué comportamientos probar (priorizar)
  • Identificar oportunidades para módulos profundos (interfaz pequeña, implementación profunda) — ejecuta la skill /codebase-design para el vocabulario y las comprobaciones de testabilidad
  • Listar los comportamientos a probar (no los pasos de implementación)
  • Obtener la aprobación del usuario sobre el plan

Pregunta: "¿Cómo debería ser la interfaz pública? ¿Qué comportamientos son más importantes de probar?"

No puedes probarlo todo. Confirma con el usuario exactamente qué comportamientos importan más. Enfoca el esfuerzo de prueba en rutas críticas y lógica compleja, no en cada posible caso límite.

2. Bala Trazadora

Escribe UNA prueba que confirme UNA cosa sobre el sistema:

ROJO:   Escribir prueba para el primer comportamiento → la prueba falla
VERDE: Escribir código mínimo para que pase → la prueba pasa

Esta es tu bala trazadora — demuestra que la ruta funciona de extremo a extremo.

3. Bucle Incremental

Para cada comportamiento restante:

ROJO:   Escribir la siguiente prueba → falla
VERDE: Código mínimo para que pase → pasa

Reglas:

  • Una prueba a la vez
  • Solo el código suficiente para que pase la prueba actual
  • No anticipar pruebas futuras
  • Mantener las pruebas centradas en el comportamiento observable

4. Refactorizar

Después de que todas las pruebas pasen, busca candidatos a refactorización:

  • Extraer duplicación
  • Profundizar módulos (mover complejidad detrás de interfaces simples)
  • Aplicar principios SOLID donde sea natural
  • Considerar qué revela el nuevo código sobre el código existente
  • Ejecutar pruebas después de cada paso de refactorización

Nunca refactorices mientras estés en ROJO. Llega a VERDE primero.

Lista de Verificación por Ciclo

[ ] La prueba describe comportamiento, no implementación
[ ] La prueba usa solo la interfaz pública
[ ] La prueba sobreviviría a una refactorización interna
[ ] El código es mínimo para esta prueba
[ ] No se añadieron características especulativas

Individual skills in this repo

This repo contains 11 individual skills — each has its own dedicated page.

Lev-it/lev-skills

Ask which skill or flow fits your situation. A router over the user-invoked skills in this repo.

Lev-it/lev-skills

Premium brand-kit image generation skill for creating high-end brand-guidelines boards, logo systems, identity decks, and visual-world presentations. Trained for minimalist, cinematic, editorial, dark-tech, luxury, cultural, security, gaming, developer-tool, and consumer-app brand systems. Optimized for intentional logo concepting, refined composition, sparse typography, strong symbolic meaning, premium mockups, art-directed imagery, and flexible grid layouts.

Lev-it/lev-skills

Compact the current conversation into a handoff document for another agent to pick up.

Lev-it/lev-skills

Ink terminal renderer for json-render that turns JSON specs into interactive terminal UIs. Use when working with @json-render/ink, building terminal UIs from JSON, creating terminal component catalogs, or rendering AI-generated specs in the terminal.

Lev-it/lev-skills

Interactive QA session where user reports bugs or issues conversationally, and the agent files GitHub issues. Explores the codebase in the background for context and domain language. Use when user wants to report bugs, do QA, file issues conversationally, or mentions "QA session".

Lev-it/lev-skills

Facilitate a structured sprint retrospective — what went well, what didn't, and prioritized action items with owners and deadlines. Use when running a retrospective, reflecting on a sprint, creating action items from team feedback, or learning how to run effective retros.

Lev-it/lev-skills

Review the changes since a fixed point (commit, branch, tag, or merge-base) along two axes — Standards (does the code follow this repo's documented coding standards?) and Spec (does the code match what the originating issue/PRD asked for?). Runs both reviews in parallel sub-agents and reports them side by side. Use when the user wants to review a branch, a PR, work-in-progress changes, or asks to "review since X".

Lev-it/lev-skills

Teach the user a new skill or concept, within this workspace.

Lev-it/lev-skills

Turn the current conversation into a PRD and publish it to the project issue tracker — no interview, just synthesis of what you've already discussed.

Lev-it/lev-skills

Move issues through a state machine of triage roles — categorise, reproduce, grill if needed, and write agent-ready briefs.

Lev-it/lev-skills

Create product backlog items in Why-What-Acceptance format — independent, valuable, testable items with strategic context. Use when writing structured backlog items, breaking features into work items, or using the WWA format.

Skills relacionados