Como desarrollador, ingeniero de software, programador y un largo etc. con muchos años de experiencia, miraba con recelo el desarrollo potenciado con Inteligencia Artificial. Comencé a dar mis primeros pasos hace poco más de 1 año cuando estaba en boca de todo el submundo TI el que la AI se iba a comer a los programadores, como buen snob, creia que esto era imposible, ya que siempre se necesitaria de alguien que sepa que se está haciendo por si todo sale mal. Aunque aún sostengo en parte esas palabras, es verdad que el número necesario para desarrollar apps útiles, con rigurosidad técnica, esta descendiendo dramáticamente.
Lo primero que debemos notar es que para describir rigurosidad técnica, no basta con decirle al modelo «no te equivoques» o «usa arquitectura hexagonal» o «el stack debe estar estandarizado a las buenas prácticas internacionales», esto es un caldo de cultivo para que el modelo infiera cualquier cosa y termine desarrollando piezas con sobre ingeniería o con características de la NASA para una POC. Debemos por tanto, guiar de manera metódica el desarrollo de una aplicación, o mejora, para poder tener un resultado satisfactorio, en los márgenes que nuestra aplicación requiera.
Actualmente, existe una serie de inciativas que abordan este proceso reflexivo, guiado y aterrizado, llamado Spec Driven Development (o desarrollo guiado por especificaciones) y para ello se ha dispuesto de múltiples Frameworks que abordan este enfoque, como Github Spec Kit. El fin de este post no es abordar spec kit en sí, pero es bueno tener la idea de este en mente.
Matt Pocock, ingeniero de Reino Unido y divulgador de desarrollo agéntico, es el creador del proceso que relataré y constructor insigne de Sandcastle, la herramienta quien se encargará de llevar a cabo todo el proceso de implementación agéntica.
El proceso
Este proceso consta de 4 etapas rigurosamente definidas mediante skills: Interrogación, Definición del PRD, Creación de los slices para generar issues y por último, implementación agéntica con Sandcastle.

1. Interrogación
Esta etapa se encarga de generar un entendimiento común del problema a resolver, por medio de la skill grill-me, cuya definición es la siguiente:
Interview me relentlessly about every aspect of this plan until we reach a shared understanding. Walk down each branch of the design tree, resolving dependencies between decisions one-by-one. For each question, provide your recommended answer.
Ask the questions one at a time.
If a question can be answered by exploring the codebase, explore the codebase instead.
algunos aspectos claves de esta skill son:
- Interrogar implacablemente
- Entendimiento comun
- Arbol de diseño
- Recomendación
- Explorar codebase incial para evitar preguntas que ya se encuentren resueltas.
to-prd
Una vez que tengamos un entendimiento común, y un análisis del arbol de diseño completo, usaremos la skill to-prd para generar un documento de requerimientos de producto (PRD). Este documento tiene por objetivo formalizar el entendimiento comun, para ello el documento aborda:
- La declaracion del problema
- La solucion esperada
- Historias de usuario
- Decisiones de implementacion
- Declaraciones de testing
- Fuera del alcance
to-issues
Una vez que se genera el PRD, ocupamos esta skill para poder realizar generación de issues con slices verticales, este concepto de verticalidad lo que busca, es que el issue generado sea implementado en su integralidad y no por capas (Frontend, backend y asi) eso permite un incremento funcional y no estructural.

Sandcastle
Esta es una aplicacion desarrollada por el propio Matt, que permite ejecutar multiagentes de forma paralela para implementar toda la definición previa. Esta preciosura además realiza las pruebas, realiza revisiones de codigo y finalmente mezcla el issue con la rama en la que estemos trabajando.
Esto permite delegar tareas sumamente precisas, bien diferenciadas y paralelizables, cosa que nosotros nos vayamos a hacer otras cosas. Una maravilla.
Espero que este enfoque les sirva, ya crearé un post técnico de como se ve en la vida real esto.