# Tdd Workflow > Flujo de trabajo TDD London School: desarrollo mock-first y outside-in. Escribe primero la prueba que falla, confírmala, implementa el mínimo código y refactoriza. Fuente: https://skillsagentes.com/skills/ruvnet/ruflo/tdd-workflow Markdown: https://skillsagentes.com/skills/ruvnet/ruflo/tdd-workflow.md Repositorio: https://github.com/ruvnet/ruflo Autor: ruvnet Licencia: MIT Actualizado: el mes pasado Coste de contexto: 17 tok instalada, 269 tok al activarse, 269 tok con todos los archivos del bundle Bundle: 1 archivo, 1 KB Permisos que pide: bash(npx * npm *) mcp__plugin_ruflo-core_ruflo__hooks_pre-task mcp__plugin_ruflo-core_ruflo__hooks_post-task read write edit ## Instalación Un skill son archivos markdown: los mismos archivos valen para cualquier agente y lo único que cambia es el directorio de destino, es decir la bandera `--agent`. Añade `-g` para instalarlo en todos los proyectos de la máquina. ```bash # Claude Code npx -y skills add ruvnet/ruflo --skill tdd-workflow --agent claude-code # Cursor npx -y skills add ruvnet/ruflo --skill tdd-workflow --agent cursor # Codex npx -y skills add ruvnet/ruflo --skill tdd-workflow --agent codex # Gemini CLI npx -y skills add ruvnet/ruflo --skill tdd-workflow --agent gemini # Windsurf npx -y skills add ruvnet/ruflo --skill tdd-workflow --agent windsurf # Cline npx -y skills add ruvnet/ruflo --skill tdd-workflow --agent cline ``` ## Qué hace - Aplica el enfoque TDD London School (mock-first, outside-in): escribe primero la prueba que falla con dependencias simuladas. - Guía el ciclo completo: escribir la prueba, confirmar que falla, implementar el mínimo código para pasarla, y refactorizar. - Antes de empezar registra la tarea con el hook pre-task y al terminar la registra con post-task. ## Cuándo usarla - El usuario quiere desarrollar una funcionalidad siguiendo TDD con mocks en los límites de las dependencias externas. ## Qué la activa - "Implementa esta función siguiendo TDD, mockea las dependencias externas" - "Escribe primero el test que falla para este módulo antes de programarlo" ## Antes de instalar - Usa las tools MCP `hooks_pre-task` y `hooks_post-task` del plugin ruflo-core. ## Archivos - SKILL.md — 1 KB ## SKILL.md Reproducido tal cual desde ruvnet/ruflo bajo MIT. Esta sección es el documento original y está en inglés. Follow the TDD London School (mock-first) approach: 1. **Write the failing test first** -- define expected behavior with mocked dependencies 2. **Run the test** -- confirm it fails for the right reason 3. **Implement minimal code** -- make the test pass with the simplest solution 4. **Refactor** -- clean up while keeping tests green 5. **Repeat** -- add the next behavior Before starting: `mcp__plugin_ruflo-core_ruflo__hooks_pre-task({ description: "TDD: FEATURE_NAME" })` After completing: `mcp__plugin_ruflo-core_ruflo__hooks_post-task({ taskId: "tdd-FEATURE", success: true, storeResults: true })` Principles: - Mock external dependencies at boundaries - Test behavior, not implementation - One assertion per test when possible - Descriptive names: `should [behavior] when [condition]` ## Dónde encaja - Categoría: [Testing y QA](https://skillsagentes.com/categorias/testing-qa.md) — Flujos de testing unitario, de integración y end-to-end. - Creador: [ruvnet](https://skillsagentes.com/creators/ruvnet.md) — 275 skills en el directorio - [Todas las skills](https://skillsagentes.com/skills.md) - [Ranking de instalaciones](https://skillsagentes.com/ranking.md) ## Otras skills del mismo repositorio - [Harness Gepa](https://skillsagentes.com/skills/ruvnet/ruflo/harness-gepa.md): Inspecciona y audita genomas GEPA: carga y valida un genoma, renderiza el system prompt que compila, o clasifica los modos de fallo de una transcripción de ejecución. - [Deepseek Reason](https://skillsagentes.com/skills/ruvnet/ruflo/deepseek-reason.md): Completion en modo razonamiento contra deepseek-reasoner (R1) de DeepSeek. Devuelve el chain-of-thought por separado de la respuesta final. Lee DEEPSEEK_API_KEY y degrada si falta o la API no responde. - [Deepseek Chat](https://skillsagentes.com/skills/ruvnet/ruflo/deepseek-chat.md): Completion de un solo turno contra el modelo deepseek-chat de DeepSeek vía /v1/chat/completions. Lee DEEPSEEK_API_KEY y degrada con status:degraded si falta o la API no responde. Para tareas sin razonamiento. - [Adr Index](https://skillsagentes.com/skills/ruvnet/ruflo/adr-index.md): Construye o reconstruye el índice de ADRs y su grafo de dependencias ejecutando scripts/import.mjs, en vez de cientos de llamadas MCP. - [Agntcy Status](https://skillsagentes.com/skills/ruvnet/ruflo/agntcy-status.md): Muestra el estado de la integración AGNTCY/SLIM/CASA: si los paquetes están instalados, qué transporte está activo y si el enforcement de CASA está habilitado. --- Skills Agentes · [Índice de páginas en markdown](https://skillsagentes.com/sitemap.md) · [Inicio](https://skillsagentes.com/index.md)