Desarrollo guiado por especificaciones

Escribe una especificación antes de darle instrucciones a un agente de código de IA

Spec Kit de GitHub es un proyecto de código abierto del propio GitHub. Esta guía es independiente y no está afiliada ni respaldada por GitHub.

Gran parte de la frustración con los agentes de código de IA tiene la misma raíz: una petición vaga produce un resultado vago, y solo descubres lo que querías de verdad al leer código que no coincide. Una especificación corrige el orden de las cosas. Antes de enviar un solo prompt, escribes tres cosas breves en lenguaje llano: qué debe hacer lo que quieres construir, para quién es y las comprobaciones concretas que te dicen que está terminado. Nada de eso exige saber programar. Spec Kit de GitHub, un conjunto de herramientas de código abierto mantenido en el repositorio del propio GitHub, construye un proceso estructurado y repetible para agentes de código justo en torno a este hábito, con su propia herramienta de línea de comandos y una secuencia de pasos con nombre que va desde los principios rectores de un proyecto hasta una versión funcional. Esta guía explica la especificación de tres partes que puedes escribir a mano en cinco minutos, cómo el flujo de Spec Kit convierte la misma idea en comandos separados, y cuándo vale la pena instalar el conjunto completo frente a escribir tú mismo la especificación.

Una especificación es un documento breve, en lenguaje llano, que escribes antes de pedirle a cualquier agente de código que construya algo: qué hace, para quién es y los criterios de terminado que demuestran que está listo. Spec Kit de GitHub, un conjunto de herramientas de código abierto creado en el repositorio del propio GitHub, convierte ese hábito en un flujo repetible con sus propios comandos para fijar principios, escribir la especificación, planificar, dividir el plan en tareas, implementar y converger, y su documentación nombra los agentes con los que se conecta, entre ellos Claude Code de Anthropic y GitHub Copilot. No necesitas el conjunto de herramientas para obtener el beneficio: escribir ese mismo documento de tres partes como primer mensaje funciona con cualquier agente de código que ya uses.

Publicado

Lección gratis · sin crear cuentaConoce a Claude¿Por qué Claude?6 minEmpezar la lección gratis

Puntos clave

  • Una especificación son tres cosas escritas antes del primer prompt: qué debe construir el agente, para quién es y los criterios de terminado que demuestran que está listo.
  • Spec Kit de GitHub es un conjunto de herramientas gratuito y de código abierto, con licencia MIT según su propio repositorio, que convierte este hábito en seis comandos con nombre: una constitución, una especificación, un plan, una lista de tareas, la implementación y la convergencia.
  • No necesitas Spec Kit para beneficiarte de una especificación. Escribir el mismo documento de tres partes como primer mensaje funciona en Claude Code, Codex de OpenAI, Copilot, Cursor de Anysphere o cualquier otro agente de código.
  • La documentación de instalación de Spec Kit nombra los agentes de código con los que se conecta mediante una clave de integración, entre ellos Claude Code y GitHub Copilot, e indica cómo añadir otros.
  • Omitir los criterios de terminado es la forma más habitual de que una especificación falle sin que se note: sin ellos, ni tú ni el agente pueden saber si la tarea está realmente terminada.

Copiar y pegar

Prompts que puedes usar hoy

Una especificación de tres partes para abrir tu primer chat

Esta es la especificación de lo que quiero que construyas. QUÉ HACE: un script que ordena los archivos de mi carpeta Descargas en subcarpetas con fecha según el tipo de archivo. PARA QUIÉN ES: solo para mí, ejecutado a mano desde la terminal, sin más usuarios. LISTO CUANDO: al ejecutarlo sobre una carpeta de prueba con 20 archivos de muestra, cada uno queda en la subcarpeta correcta, no se toca nada fuera de esa carpeta y puedo deshacer toda la ejecución con un solo comando. Pregúntame todo lo que necesites antes de empezar a construir.

Pega esto como tu primerísimo mensaje, antes de cualquier ida y vuelta sobre cómo debería funcionar.

Pedirle a un agente que convierta una idea vaga en una especificación

Quiero construir algo, pero mi idea todavía es vaga. Esto es más o menos lo que imagino: describe aquí tu idea general en una o dos frases. Antes de escribir código, hazme preguntas hasta que puedas explicarme, en tres partes breves, qué hace, para quién es y cómo sabremos los dos que está terminado. No empieces a construir hasta que yo confirme las tres partes en voz alta.

Útil cuando conoces la forma del problema pero aún no has definido los detalles.

Revisar los criterios de terminado antes de aprobar una construcción

Antes de empezar a implementar, enumera las comprobaciones concretas que harás para demostrar que esto está terminado: qué vas a probar, cuál es el resultado esperado de cada una y qué cuenta como fallo. Si alguna comprobación necesita algo que no puedes verificar tú mismo desde dentro de esta sesión, dímelo ahora en lugar de asumir que funcionará más adelante.

Un buen agente debería poder responder esto con detalle antes de escribir una sola línea de código.

El hábito central

Por qué la especificación va antes del prompt

Escribir la petición directamente en un agente de código parece más rápido que anotar algo antes, y en una tarea realmente trivial suele serlo. El problema empieza con cualquier cosa que admita más de una interpretación razonable: el agente elige una, construye en esa dirección y tú no descubres que eligió mal hasta que estás leyendo el código terminado. Cada vuelta desde ahí cuesta más que los pocos minutos que habría llevado una especificación.

Una especificación cambia el orden de las cosas. Antes de escribir una sola línea de código, anotas tres cosas en lenguaje llano: qué debe hacer lo que quieres construir, para quién es y los criterios de terminado que demuestran que funciona. No es un documento técnico. Se parece más a la nota que le dejarías a un asistente competente que no te conoce: con suficiente detalle para que no tenga que adivinar lo que importa.

Funciona por una razón sencilla. El agente deja de rellenar los huecos de tu petición con sus propias suposiciones, porque quedan menos huecos que rellenar. Y tú dejas de descubrir lo que querías al leer el resultado del agente a posteriori, porque ya lo dejaste escrito antes de pedir nada.

Nada de esto es específico de una herramienta. Claude Code, Codex, Copilot, Cursor y cualquier otro agente de código funcionan básicamente igual: entran instrucciones en lenguaje llano y salen código y comandos. Una especificación cambia lo que entra, lo que a su vez cambia lo que vuelve, sea cual sea el agente con el que hables.

La especificación de tres partes

Qué incluir en una especificación que puedes escribir en cinco minutos

Cuatro partes breves, en lenguaje llano. Nada de esto requiere saber programar.

Qué hace

Una o dos frases que describan el comportamiento, no la implementación. «Ordena los archivos por tipo en carpetas con fecha», no una descripción de qué funciones o bibliotecas usar.

Para quién es

¿Solo para ti, ejecutándolo a mano? ¿Para un compañero que nunca ha visto el proyecto? Esa respuesta cambia lo que realmente necesitas construir, a menudo más que la descripción de la función.

Criterios de terminado

Las condiciones concretas y comprobables que demuestran que la construcción está terminada. Es la parte que la mayoría omite, y la que más importa cuando algo sale mal.

Límites

Opcionales, pero conviene añadirlos cuando hay algo en juego: lo que el agente nunca debe hacer, como tocar archivos fuera de una carpeta o enviar algo de forma automática.

Una estructura de código abierto para esto

Cómo Spec Kit de GitHub convierte una especificación en un flujo de trabajo

Spec Kit de GitHub es un conjunto de herramientas de código abierto, mantenido en el repositorio del propio GitHub bajo licencia MIT, pensado para dar a los agentes de código de IA procesos estructurados, plantillas reutilizables y resultados documentados en lugar de conversaciones sueltas. Se instala con su propia herramienta de línea de comandos, y su README lo describe como un conjunto de herramientas para empezar con el desarrollo guiado por especificaciones, o con cualquier otro proceso estructurado que quieras que siga un agente.

El flujo principal de desarrollo guiado por especificaciones, según la documentación del proyecto, recorre una secuencia con nombre de seis comandos: uno fija los principios rectores del proyecto, otro escribe la especificación, otro convierte esa especificación en un plan técnico, otro divide el plan en una lista ordenada de tareas, otro ejecuta las tareas y escribe el código, y un último comprueba cuánto ha convergido el resultado con la especificación. La propia guía del proyecto recomienda ejecutarlos uno a uno, revisando cada resultado antes de seguir, y repetir los pasos de implementar y converger hasta que la convergencia indique que el trabajo ha convergido, en lugar de entregarle todo el trabajo al agente de una sola vez.

El conjunto de herramientas incluye además extensiones independientes que se añaden al flujo principal, de nuevo según su documentación: un grupo de comandos centrado en evaluar y corregir un error concreto, y otro centrado en llevar una idea aproximada por la investigación y la definición antes de decidir si se construye o no.

En cuanto a los agentes con los que se conecta, la documentación de instalación de Spec Kit nombra varios mediante una clave de integración que se indica al instalar, entre ellos Claude Code y GitHub Copilot, y remite a su propia documentación aparte para conectar otros agentes además de los que nombra directamente. Trata cualquier lista de agentes, incluida esta, como una instantánea: consulta la documentación actual de Spec Kit antes de dar por hecho que una herramienta concreta es compatible o no lo es hoy.

El flujo, comando por comando

Los seis comandos principales de Spec Kit

Según el README del proyecto, el flujo guiado por especificaciones recorre estos seis pasos en orden, repitiendo los dos últimos hasta que el resultado converja.

Fijar la constitución

Un comando que registra los principios de todo el proyecto que el agente debe respetar en todo lo que venga después, escritos una vez y reutilizados en el trabajo posterior.

Escribir la especificación

Un comando que produce el documento de la especificación, el mismo documento en lenguaje llano que vimos arriba, ahora guardado como un archivo reutilizable en lugar de un mensaje suelto.

Planificar el enfoque

Un comando que convierte la especificación en un plan técnico y elige un enfoque antes de escribir código, para que una decisión de diseño no quede enterrada dentro de la implementación.

Dividir en tareas

Un comando que divide el plan en una lista concreta y ordenada de tareas, cada una lo bastante pequeña como para comprobarse por sí sola.

Implementar

Un comando que ejecuta la lista de tareas y escribe el código, usando todo lo de los pasos anteriores como guía en lugar de empezar de cero.

Converger

Un comando que comprueba cuánto se parece el resultado a la especificación. Según la guía del proyecto, se repiten implementar y converger juntos hasta que la convergencia indique que el trabajo ha convergido.

Sin instalar nada

Escribir una especificación a mano, sin ningún conjunto de herramientas

Para alguien que no es desarrollador y construye una sola cosa pequeña, ejecutar el flujo completo de Spec Kit puede ser más ceremonia de la que la tarea necesita. La especificación de tres partes por sí sola, escrita como tu primer mensaje al agente que ya uses, hace por sí misma la mayor parte del trabajo, sin nada que instalar.

Pega la especificación y deja que el agente te haga preguntas aclaratorias antes de escribir nada. Un agente competente preguntará cuando algo no quede claro, y una especificación le da algo concreto sobre lo que preguntar en lugar de adivinar en silencio y construir con seguridad lo equivocado.

Esta versión sencilla del hábito se traslada a cualquier herramienta. El mismo documento de tres partes funciona tanto si hablas con Claude Code como con Codex, Copilot, Cursor o cualquier otro agente de código, porque nada de ello depende de una función propia de una herramienta. Es un hábito que construyes, no un complemento que instalas.

Dónde se tuerce

Los errores que deshacen una especificación

Escribir una especificación ayuda menos de lo que debería cuando se cuela alguno de estos.

Sin criterios de terminado

Una especificación sin forma de verificar que está terminada solo traslada la adivinanza del prompt a la revisión, donde es más difícil detectarla.

Mezclar detalles de implementación

Especificar un lenguaje de programación o un algoritmo concreto antes de decidir si la función se quiere siquiera convierte la especificación en un diseño prematuro.

Escribirla después

Una especificación redactada para coincidir con un código que ya existe solo documenta lo que se construyó. No puede detectar un problema con el que fue escrita para estar de acuerdo.

Una especificación, muchas tareas

Una especificación que abarca más de una tarea real entierra la que de verdad importa. Mantén cada especificación en una sola pieza de trabajo comprobable.

Cuándo recurrir al conjunto de herramientas

Especificación sencilla o Spec Kit completo: elegir una

Para una construcción pequeña y puntual, basta una especificación sencilla de tres partes escrita directamente en el chat, y es más rápido que instalar nada. La mayoría de los ejemplos de esta guía están pensados para ese caso.

Spec Kit empieza a compensar su coste de instalación cuando repites esto en el mismo proyecto, quieres que sus principios se apliquen automáticamente en cada función nueva, o prefieres la estructura propia de las extensiones de corrección de errores o de evaluación de ideas en lugar de inventar tu propia versión cada vez.

En cualquier caso, la habilidad de fondo es la misma: indicar qué hace, para quién es y cómo sabrás que está terminado antes de que se escriba una sola línea de código. El conjunto de herramientas solo automatiza dejar eso por escrito de forma coherente, cuando el hábito es uno al que recurres con la frecuencia suficiente como para que valga la pena automatizarlo.

Practica escribir una especificación antes de construir

Escribir una especificación clara, y darle a un agente de código de IA instrucciones permanentes del proyecto, es una habilidad que se traslada a todas las herramientas de esta guía. La lección gratuita de Nightschool AI sobre el archivo de instrucciones de un proyecto lo explica paso a paso, usando Claude Code como ejemplo.

Preguntas frecuentes

¿Qué es exactamente una especificación en este contexto?

Un documento breve, en lenguaje llano, que escribes antes de pedirle a un agente de código que construya algo. Como mínimo recoge qué debe hacer, para quién es y los criterios de terminado que demuestran que está listo. No es un documento técnico y no requiere saber programar.

¿Necesito saber programar para escribir una?

No. Una especificación describe comportamientos y resultados en lenguaje llano, no la implementación. Describir qué debe hacer una herramienta y cómo sabrás que funciona no requiere conocimientos de programación, aunque el agente que la construya escriba código real.

¿Qué es Spec Kit de GitHub?

Un conjunto de herramientas de código abierto, con licencia MIT, mantenido en el repositorio del propio GitHub. Ofrece a los agentes de código de IA un proceso estructurado y repetible basado en el desarrollo guiado por especificaciones, con su propia herramienta de línea de comandos y una secuencia con nombre de seis comandos que va desde los principios rectores de un proyecto hasta la implementación y la convergencia.

¿Con qué agentes de código funciona Spec Kit?

Según su documentación de instalación, conectas un agente al instalar mediante una clave de integración; la documentación nombra así varios agentes, entre ellos Claude Code y GitHub Copilot, y remite a su propia documentación para conectar otros. Consulta la documentación actual de Spec Kit para ver la lista completa y al día antes de dar por hecho que una herramienta concreta es compatible.

¿Esta guía está afiliada a GitHub?

No. Es una guía educativa independiente, no publicada ni respaldada por GitHub. Spec Kit y GitHub son un proyecto y una marca del propio GitHub, y se nombran aquí solo para describirlos con precisión.

¿Qué diferencia hay entre una especificación y simplemente un prompt más largo?

Un prompt más largo sigue siendo un solo mensaje que describe una tarea. Una especificación es un documento estructurado con tres partes concretas, qué hace, para quién es y criterios de terminado, pensado para leerse, confirmarse y reutilizarse, no para escribirse una vez y olvidarse.

¿Qué son exactamente los criterios de terminado?

Condiciones comprobables que demuestran que una construcción está terminada: qué vas a comprobar, el resultado esperado de cada comprobación y qué cuenta como fallo. Sin ellos, no hay una forma acordada de saber si el agente terminó de verdad la tarea o simplemente se detuvo.

¿Tengo que instalar Spec Kit para obtener el beneficio de este hábito?

No. Escribir la misma especificación de tres partes como primer mensaje a cualquier agente de código, Claude Code, Codex, Copilot, Cursor u otro, te da la mayor parte del beneficio sin instalar nada. Spec Kit es una estructura repetible para hacerlo a menudo, no un requisito para hacerlo.

¿Spec Kit es gratuito?

Sí. Es un proyecto de código abierto publicado bajo la licencia MIT, según su propio repositorio, y se instala con su propia herramienta de línea de comandos, también gratuita.

¿Qué produce en realidad el comando de Spec Kit que escribe la especificación?

Según la documentación del propio proyecto, produce el documento de la especificación, el mismo texto en lenguaje llano que se describe en toda esta guía, guardado como un archivo reutilizable en tu proyecto en lugar de escrito de nuevo en un chat cada vez.

Convierte una especificación en tu primer agente de IA

Indica qué hace, para quién es y cómo sabrás que está terminado, y luego construye.

Nightschool AI es una plataforma de aprendizaje independiente y no está afiliada, respaldada ni patrocinada por Anthropic. Claude es una marca de Anthropic, PBC. ¿Buscas la Claude Academy oficial de Anthropic? Está en academy.claude.com.