Todas las herramientas de IA para programar te dejan escribir prompts en lenguaje natural. Muy pocas te dejan construir flujos de trabajo estructurados sobre ellas. Ese es el gap que la mayoría de desarrolladores no ven, y la razón por la que su código generado por IA necesita reescrituras constantes.

El concepto no es nuevo. El desarrollo spec-driven — definir qué quieres antes de escribir cómo — ha sido una disciplina de ingeniería de software por décadas. Lo nuevo es aplicarlo a la programación asistida por IA. Como explora Birgitta Bockeler en martinfowler.com, las herramientas de SDD están trayendo la disciplina de la ingeniería temprana — diseñar antes de codear — a la era agéntica.

La idea es simple: en lugar de escribir las mismas instrucciones cada vez (“explora mi codebase primero”, “sigue los patrones existentes”, “no escribas tests todavía”), las codificas en slash commands reutilizables. Archivos markdown. Sin SDK, sin API, sin sistema de plugins. Solo archivos que tu herramienta de IA lee como instrucciones.

Construí 6 comandos que forman un pipeline de desarrollo spec-driven. Te cuento cómo, y por qué deberías armar los tuyos.

Por Qué los Prompts Crudos Fallan a Escala

Cuando escribes “agrega autenticación JWT a mi API”, le estás pidiendo al modelo que tome docenas de decisiones implícitas:

  • ¿Qué librería de JWT?
  • ¿Dónde se almacenan los tokens?
  • ¿Cómo se integra con tu middleware existente?
  • ¿Cuál es tu patrón de manejo de errores?

El modelo va a adivinar. A veces acierta. A menudo no. Y terminas gastando más tiempo corrigiendo las suposiciones de la IA que lo que hubieras tardado escribiendo el código tú mismo.

El Pipeline

Seis comandos, cada uno un archivo markdown, formando un pipeline lineal donde cada paso produce un artefacto y cada transición requiere tu aprobación:

Pipeline Spec-Driven

Comando 1: Crear. De Idea a Spec Estructurado

Le das un nombre y una descripción general. El comando genera un spec estructurado con contexto, comportamiento esperado, edge cases, restricciones, criterios de aceptación, y, crucialmente, preguntas abiertas que detectó que necesitas responder.

.commands/spec-create.md
# Crear Spec

Crea un spec estructurado para: **$ARGUMENTS**

## Tu tarea

1. Genera un documento de especificación estructurado
2. Incluye: contexto, comportamiento esperado, edge cases,
   restricciones, criterios de aceptación
3. Lista preguntas abiertas que necesitan decisiones humanas

**No explores el código. Solo crea el spec.**

En lugar de adivinar tu preferencia de librería JWT, te pregunta.

Comando 2: Auditar. El Spec Se Encuentra con Tu Codebase

Aquí el modelo explora tu proyecto real: estructura de archivos, convenciones de nombrado, patrones de manejo de errores, dependencias existentes, y enriquece el spec con una sección de análisis técnico.

Lo que explora el audit
  • Estructura del proyecto (carpetas, módulos, capas)
  • Patrones de arquitectura (MVC, service layer, feature-based)
  • Convenciones de nombrado de archivos y funciones
  • Enfoque actual de manejo de errores
  • Organización de tests y cobertura
  • Dependencias en package.json / requirements.txt
  • Archivos similares a lo que se quiere construir (para seguir el mismo patrón)

Este paso previene la falla #1 del código generado por IA: ignorar patrones existentes. Después del audit, el modelo conoce las convenciones de tu proyecto. El código que escriba después va a encajar.

Comando 3: Revisar. El Semáforo de Preparación

Antes de invertir tiempo en implementación, este comando evalúa el spec:

🟢 Listo: Bien definido. Todas las decisiones tomadas. Avanzar al plan.

🟡 Puede avanzar: Existe ambigüedad, pero se pueden hacer suposiciones razonables. Cada supuesto se lista explícitamente para que lo apruebes.

🔴 Bloqueante: Decisiones críticas pendientes. Ejemplos: “¿Sessions o JWT?”, “¿Qué base de datos?”, “¿Necesita real-time?” Resuelve antes de continuar.

Si algo está en rojo, lo arreglas ahora, no después de 3 fases de implementación.

Comando 4: Planear. Implementación por Fases

El plan genera una implementación paso a paso. Cada fase es pequeña (1-3 archivos), verificable (criterio claro de “está listo”) e independiente (revisable antes de continuar).

Ejemplo de plan
### Fase 1: Schema y migración
**Objetivo:** La tabla Users existe con campos de auth
**Archivos:** crear migración, modificar schema
**Verificar:** la migración corre sin errores

### Fase 2: Middleware de auth y utilidades
**Objetivo:** Rutas protegidas retornan 401 sin auth
**Archivos:** crear middleware, crear utils, modificar entry
**Verificar:** curl ruta libre → 200, protegida → 401

Comando 5: Implementar. Una Fase a la Vez

El comando de implementación solo ejecuta una fase a la vez. Después de cada fase, resume qué hizo, qué decisiones tomó, y pide tu revisión antes de continuar.

Esta es la diferencia clave con “generar todo de un golpe”. Si la Fase 1 revela un problema, ajustas el plan antes de que arranque la Fase 2. El costo del cambio se mantiene bajo durante todo el proyecto.

Bonus: Comandos de Review

ComandoQué revisaOutput
PerformanceLoops O(n²), queries N+1, memory leaks, caché, bundlesHallazgos por severidad con fixes
ArquitecturaSOLID, acoplamiento, separación de concerns, seguridadDiagrama de capas + roadmap

Configúralo

$ mkdir -p .commands

Pon tus archivos de comandos:

.commands
spec-create.md
spec-audit.md
spec-review.md
spec-plan.md
spec-implement.md
performance.md
architecture.md

Tiempo Ahorrado en Retrabajo

Tiempo en Retrabajo
Prompts crudos
Con spec

(Porcentaje del tiempo de sesión arreglando código que no encajó)

La Regla de Oro

Nunca saltes pasos bajo presión. El tiempo que “ahorras” saltando el audit o el review lo pagas triple en correcciones después.

No se trata de ir más lento. Se trata de invertir 10 minutos en especificación para ahorrar 2 horas en debugging. Tu herramienta de IA se vuelve dramáticamente más útil cuando la tratas como un colaborador que necesita contexto, no como una caja mágica que adivina lo que quieres.

Los flujos estructurados le ganan a los prompts crudos. Siempre.


Lectura adicional: