Diseña la Spec de tu proyecto

Resumen

Aprender a usar Git para versionar tu proyecto y a definir especificaciones con el comando specify es el paso donde dejas de micromanejar a la inteligencia artificial y empiezas a actuar como product manager. Esto le sirve a cualquier persona que quiera construir software con spec-driven development usando Claude Code y Spec Kit.

Piensa en tu proyecto como una casa: ya tienes el permiso de construcción y sabes que en esa zona solo se permiten edificios de hasta tres pisos y casas de ladrillo. Esa es tu Constitution, las reglas inquebrantables. Ahora toca decidir qué construir: una casa con tres recámaras, dos baños, piscina y jardín frontal. Esas son las especificaciones, el plano arquitectónico.

Por qué usar Git para versionar tu proyecto

Antes de avanzar necesitas una forma de manejar puntos de control para cada paso que das. Aquí entra Git, la herramienta que te permite gestionar el versionado de los artefactos y el código de tu proyecto de software [00:38].

La idea central es sencilla: cada comando importante que ejecutas durante el curso vive en su propia rama. Así puedes regresar al punto más estable de la aplicación si algo sale mal.

¿Qué es una rama en Git? Es una línea de trabajo independiente donde registras cambios sin afectar el resto del proyecto. Si algo falla, vuelves a la rama estable sin perder tu avance.

Cómo inicializar Git y rastrear cambios paso a paso

El flujo que sigues en la práctica es directo. Estos son los comandos exactos que usas desde la raíz de tu proyecto, en este caso my-project [00:52]:

  1. Ejecuta git init para inicializar Git y empezar a rastrear cambios [01:00].
  2. Usa git status para ver los archivos que generó Spec Kit más la Constitution que creaste antes [01:11].
  3. Crea una rama nueva con git checkout -b constitution para aislar esos cambios [01:40].
  4. Agrega los cambios con git add y confírmalos con git commit, comentando la modificación como Project setup [02:00].
  5. Verifica de nuevo con git status que ya no quedan cambios por rastrear [02:14].

Dos consejos que valen oro aquí. Primero: no te estreses con los comandos, solo usa los mismos que se muestran. Segundo: si te da curiosidad profundizar, existe un curso de Git en Platzi para ir más a fondo [02:22].

Qué cambia con Spec-Driven Development en tu forma de trabajar

Antes de abrir la terminal para dar vida a la app, hace falta un cambio de mentalidad. Estamos acostumbrados a micromanejar a la inteligencia artificial: le decimos qué componente usar en el backend, qué librería en el frontend y así con todo [02:45].

Con spec-driven development eso se invierte. Tú actúas como product manager. No le dictas a un equipo de ingeniería cómo escribir el código: defines el qué y el por qué, y la IA decide el cómo en los pasos siguientes [03:07].

¿Qué define un product manager en spec-driven development? Define el qué y el porqué de las funcionalidades. El cómo, es decir la implementación técnica, lo resuelve la inteligencia artificial después.

Cómo se estructura una spec con features y no objetivos

Una spec mantiene la misma estructura básica que ya conoces: intención, comportamiento, restricciones y no objetivos. La diferencia es que ahora no describes una sola feature, sino todas las de la aplicación [03:30].

Las features principales del proyecto son:

  • Autenticación de usuarios.
  • Navegación y selección de canchas.
  • Creación de reservas.
  • Gestión de reservas.
  • Lo que no se va a construir.

Cada feature se escribe en términos de funcionalidad y comportamiento. Por ejemplo, los usuarios deben poder registrarse e iniciar sesión con correo y contraseña [04:05]. Y también incorpora restricciones: solo los usuarios con sesión activa pueden ver la disponibilidad completa y hacer reservas, y cada usuario solo gestiona sus propias reservas, no las de terceros [04:20].

Los no objetivos delimitan lo que la IA no debe construir: sin pasarela de pago, sin panel de administración web para agregar contenido, sin notificaciones externas, sin reservas de más de una hora continua y sin sistema de matchmaking para encontrar compañeros de juego [04:45].

Cómo generar la especificación con el comando specify en Claude

El proceso replica lo que ya hiciste con la Constitution: defines una versión mínima, la conviertes en prompt, se la pasas a Claude y él te devuelve el documento completo y estructurado [05:10].

Aquí aparece un principio que conviene grabarse: la calidad del resultado que entrega la IA depende de la calidad del prompt que le das. Para lograr un buen prompt debes evitar la ambigüedad y la subjetividad, y fomentar el pensamiento crítico en la IA [05:35].

Qué pasos seguir para pasar la spec a Claude Code

El flujo concreto para generar la especificación es este:

  1. Crea la rama nueva con git checkout -b spec desde la rama constitution [05:55].
  2. Copia la especificación que definiste en tu prompt.
  3. Abre Claude con el comando claude [06:15].
  4. Usa el comando speckit specify y pega tu prompt cuando aparezca el mensaje Describe the feature you want to specify [06:25].
  5. Presiona Enter y espera un par de minutos mientras Claude Code llena la plantilla con la información de tu proyecto [06:45].

Cuando termina, Claude Code genera el archivo spec.md, que abres en Visual Studio Code para revisarlo [07:00]. Ese documento llega completo: con historias de usuario, criterios técnicos, criterios de aceptación y edge cases [05:20].

Ahí está la magia del enfoque: tú describes la casa que quieres y la IA arma el plano detallado. ¿Ya tienes claras las features que definirías para tu propio proyecto? Cuéntame en los comentarios cuáles serían tus no objetivos.