Revela es una cámara desechable compartida para eventos. Los invitados entran con un QR, sin descargar nada, hacen un número limitado de fotos y nadie las ve hasta que el anfitrión las revela. Detrás hay autenticación, base de datos, subida de fotos, pagos y analítica. Construirlo me ha obligado a resolver problemas que van bastante más allá de generar una interfaz con IA.
Tiene algo de nostalgia a propósito. Como una cámara desechable, cada invitado tiene un número limitado de fotos. Con pocas fotos, las haces con atención: piensas el encuadre, esperas el momento, y no sabes cómo habrán salido hasta que se revela el carrete.
El problema que plantea mi documento de visión es el de cualquier evento con mucha gente: las fotos quedan repartidas en los móviles de cada invitado, el anfitrión acaba pidiendo «mandadme las fotos» por WhatsApp, y ver cada foto al instante se carga la sorpresa que tenían las cámaras desechables.
Así funciona Revela en un minuto
Aquí aparece una pregunta interesante: ¿hasta dónde puede llegar con agentes de IA alguien que conoce de producto, pero no domina toda la implementación? Revela me está sirviendo para comprobarlo. No he dejado de necesitar criterio técnico, pero los agentes me han permitido participar directamente en decisiones e implementación que antes dependían necesariamente de otras personas.
Antes de entrar en herramientas y código, hay algo que conviene tener claro: construir software con IA es cada vez más accesible. Construir el producto adecuado sigue siendo otra historia. En Revela he comprobado que la parte difícil no es conseguir que la IA escriba código. Es conseguir que entienda qué estoy construyendo, que no improvise decisiones importantes y que pueda demostrar que lo que ha hecho funciona.
Un aviso antes de seguir: esto no es una metodología oficial ni pretendo enseñar ingeniería de software. Trabajo en producto y estoy explorando hasta dónde puedo llegar construyendo con IA. Comparto el proceso real, las herramientas que uso y las decisiones que tomo, y también los riesgos y lo que todavía no sé resolver. Tampoco presento Revela como un éxito comercial: sigo validando el negocio, centrado en B2B.
Vamos a ver el método en cinco pasos, con los prompts para que los copies. Después, lo que he aprendido construyendo Revela y la diferencia entre que algo funcione y que alguien lo necesite. La IA me permite construir más cosas; mi trabajo sigue siendo decidir qué merece la pena construir y asegurarme de que lo que construyo tiene sentido.
Índice
- Las herramientas, al servicio del método
- El método en cinco pasos
- Que funcione no es que alguien lo necesite
- Y un paso más: publicarlo
- Lo que he aprendido construyendo Revela
- Por dónde empezar a construir con IA
- AGENTS.md completo, para copiar
Las herramientas, al servicio del método
He usado las skills superpowers e impeccable, y MCP de Supabase, Vercel, Sentry y PostHog, entre otras cosas. También SDD, primero con especificaciones y después con los subagentes de superpowers, y TDD. No te quedes con la lista, que cambiará en pocos meses. Quédate con el problema que cada pieza evita.
Empiezo por superpowers, que es la que más conviene entender. Una skill es un conjunto de instrucciones que el agente carga para trabajar de una manera concreta. Según su documentación, superpowers convierte al agente en algo parecido a un método de trabajo: antes de escribir código te pregunta qué quieres de verdad, te enseña el diseño en trozos que se pueden leer y prepara un plan en tareas pequeñas, con test primero. Que se active sola depende de la instalación, la configuración y el agente que uses, así que no es una garantía universal.
El problema que evita es el más común al empezar: pedirle algo a la IA, recibir código enseguida y descubrir después que resolvía otra cosa. Si lo quieres ver en su fuente, está en github.com/obra/superpowers.
Y una advertencia que me parece importante: estas herramientas no hacen que el agente sea infalible. Le dan un proceso de trabajo. Sigue siendo responsabilidad nuestra revisar sus decisiones y comprobar los resultados.
SDD son las siglas de desarrollo guiado por especificaciones (en inglés, spec-driven development). La idea es escribir primero la especificación, que define el qué antes del cómo, y generar el código a partir de ella en varios pasos, en lugar de pedirlo todo de golpe en un solo prompt. Reduce el margen para que el agente complete por su cuenta decisiones que deberían estar definidas. Y, cuando quedan dudas, permite detectarlas y resolverlas antes de escribir código. Lo explican, por ejemplo, en la documentación de GitHub Spec Kit (github.com/github/spec-kit). Ten en cuenta que el término es joven y cada herramienta lo entiende un poco distinto. Con superpowers hay además un segundo uso: con el plan ya hecho, lanza un agente nuevo por cada tarea y revisa su trabajo antes de seguir. Es el comportamiento de ese flujo, según su documentación, no una propiedad de cualquier sistema con varios agentes.
El TDD, por su parte, consiste en escribir el test antes que el código. Te obliga a decir qué significa «funciona» antes de pedirlo, y así una tarea no se da por terminada solo porque la IA lo diga.
Un MCP es otra cosa: un protocolo que permite conectar al agente con herramientas y fuentes de datos externas, como tu base de datos o tu panel de errores. Según la conexión y los permisos, puede consultar información o ejecutar acciones sin que tengas que copiar los datos a mano. Puede darle acceso a contexto más actualizado, aunque sigue siendo necesario comprobar qué datos está consultando.
El método en cinco pasos
Paso 1. Escribe el producto antes de programarlo
En mi repositorio de Revela hay una carpeta docs con la visión, los requisitos del producto, la arquitectura, el modelo de datos, la API, la seguridad, el diseño, la monetización y la analítica. El índice incluye un glosario (carrete, evento, anfitrión, invitado, disparos, revelado) para que todos los documentos usen las mismas palabras.
Hay dos trucos que puedes copiar tal cual. Primero, el glosario: si la IA llama de tres formas distintas a lo mismo, el código acaba con tres nombres. Segundo, la etiqueta [HIPÓTESIS]: cuando algo no se puede verificar con fuentes públicas, se marca, en vez de darlo por cierto.
Este es el prompt para arrancar:
Paso 2. Trocea el trabajo en fases que se puedan terminar
El plan de Revela tiene 13 fases, de la 00 a la 12, desde la preparación del proyecto hasta el pulido final. Cada fase tiene objetivo, contexto, ficheros afectados, criterios de aceptación, pruebas y definición de terminado, y su propio prompt. También hay un mapa de dependencias: no empiezo la galería si el revelado no está hecho.
La regla de oro del plan:
Ejemplo real: la regla de oro del plan de fases
Y así es el prompt de una fase real, la 04, la captura del invitado, que el propio plan marca como la de mayor riesgo técnico:
Ejemplo real: fragmento del prompt de la fase 04
Fíjate en dos cosas. Los criterios hablan de cosas que se pueden comprobar, no de buenas intenciones. Y el plan pide dejar como pendiente de verificación manual lo que la IA no puede probar, como la cámara web en un iPhone real.
Para generar tu propio plan:
Paso 3. Escribe el AGENTS.md
Si te llevas una sola cosa de este artículo, que sea esta. El AGENTS.md es un fichero en la raíz del repositorio con las normas para cualquier agente de IA que trabaje en el proyecto. Es un fichero versionado con reglas explícitas, y así no dependes de repetirlas en cada conversación con el agente. Por eso le doy tanta importancia. Un matiz técnico: cada herramienta debe soportar ese fichero o tener configurada su lectura; no todos los agentes lo cargan automáticamente. Por qué el contexto pesa más que el prompt lo cuento en La IA no va de hacer mejores prompts: va de trabajar con mejor contexto.
En Revela tengo un CLAUDE.md que solo contiene una línea que remite al AGENTS.md, así que hay una única fuente de verdad. El de Revela empieza diciendo que sirve para cualquier agente (Claude, Copilot, etc.), siempre que la herramienta esté configurada para leerlo. Estas son sus piezas y el problema que resuelve cada una:
- Principio de ejecución: incrementos pequeños y verificables, nunca una tarea entera de golpe. Evita recibir mil líneas que nadie ha revisado.
- Comprobación antes de cada commit: el mismo comando que corre la integración continua. Evita que algo pase en tu máquina y falle al subirlo.
- Convenciones: idioma, flujo de commits y dónde va la lógica que se puede probar. Evita decidir lo mismo cada vez.
- TDD con ciclo completo, reglas estrictas y una lista de comprobación. Evita que el agente dé una tarea por terminada sin pruebas, o que debilite un test para que pase. En mi configuración original lo exigía para todos los cambios. Después he matizado esa regla: no todos los cambios se verifican de la misma manera.
- Qué hacer si se rompe el ciclo. Evita seguir acumulando código encima de algo que nadie ha verificado.
- Cómo ejecutar las pruebas en el entorno de desarrollo. Evita perder tiempo con una suite que no arranca.
Dos matices. Primero, el tamaño de las tareas: pequeñas no significa dividir todo hasta el absurdo. Tienen que ser lo bastante pequeñas para revisar y verificar el resultado, pero conservar sentido funcional. Segundo, el TDD. Yo mantendría el ciclo completo para la lógica de negocio y los errores reproducibles. Para un ajuste visual pediría una revisión visual, y una exploración inicial no debería consolidarse sin una validación adecuada. No lo trataría como un test automático universal.
Con el plan y las reglas en su sitio, la gestión del día a día es siempre la misma: el agente lee el contexto antes de empezar, trabaja en tareas independientes, revisa cada incremento y ejecuta las comprobaciones antes de cada commit, sin acumular cambios sin verificar. No es una herramienta más: es lo que evita que el trabajo se desvíe mientras no miras.
Te dejo los fragmentos clave de una versión generalizada del mío, sin nada específico de Revela. El fichero completo, listo para copiar en la raíz de tu proyecto como AGENTS.md, está al final de este artículo. Rellena los corchetes y quita lo que no encaje:
Fragmentos clave del AGENTS.md generalizado
Y el preámbulo común que abre todos mis prompts de fase, que es el mismo contrato en versión corta:
Ejemplo real: preámbulo común de los prompts de fase
Es lo contrario de lo que apetece. Con IA lo fácil es pedir mucho de golpe y recibir un montón de código que nadie ha comprobado. Si prefieres que la IA te ayude a escribir el tuyo desde cero, usa este prompt:
Paso 4. Entiende qué te dice cada prueba
No necesitas dominar toda la implementación para construir con IA. Sí necesitas saber qué ha comprobado cada cosa. En Revela hay varias capas, y cada una dice algo distinto:
- Tests de la lógica con Vitest: comprueban una regla concreta de forma aislada.
- Pruebas de extremo a extremo con Playwright: comprueban un recorrido completo del usuario en el navegador.
- Scripts SQL en supabase/tests: comprueban reglas de la base de datos. Al menos el del aforo de disparos indica en su comentario que se ejecuta a mano contra una base de desarrollo.
- Integración continua: comprobación de estilo y de tipos, tests y una auditoría Lighthouse, que mide rendimiento y buenas prácticas de la web, no la seguridad.
Ninguna de ellas es una prueba de seguridad. Y una prueba de concurrencia, la que detecta fallos cuando dos operaciones coinciden, es otra cosa que tienes que pedir expresamente.
Un ejemplo con el límite de fotos. Es el caso concreto de uno de los scripts SQL, con lo que hace y hasta dónde llega:
Ejemplo real: qué comprueba un test del límite de fotos
Si no entiendes cómo se implementa algo así, no pasa nada. Pídele a la IA que te lo explique y que escriba el test que lo demuestre:
Paso 5. Revisa los riesgos antes de lanzar
Los riesgos no salen solo en los tests: ninguna de las pruebas que acabas de ver sustituye a una revisión de seguridad, permisos, políticas de acceso, almacenamiento y pagos. Con pagos, permisos y datos personales, pide ayuda especializada antes de lanzar. Los tests tampoco descubren por sí solos qué casos límite debería contemplar el negocio: comprueban las condiciones que alguien ha definido previamente.
Para esa revisión, de la auditoría previa al lanzamiento que hay en mi repositorio me quedo con el método: cada afirmación se marca como verificada en el código, verificada en el entorno real o no verificada.
Un caso documentado en el repositorio: uno de los scripts de pruebas de la base de datos se titula «Fotos offline/tardías (auditoría 5 oct, B2)». Fija que un disparo hecho dentro de la ventana del evento y subido después del cierre se acepta (hasta pasadas 24 horas), y que sin la hora del disparo se rechaza. Es el tipo de condición que un requisito como «no dejar disparar fuera de la ventana» no contempla a primera vista. El test documenta esa regla, aunque no permite reconstruir quién detectó el caso ni cómo llegó a implementarse. Lo importante aquí es que una condición así puede pasar desapercibida si solo pensamos en el momento en que se dispara la foto.
Ojo con esto. Un prompt de revisión no sustituye a una persona que sepa de seguridad. Si tu proyecto cobra o guarda datos personales, pide esa revisión y consulta los requisitos legales que te apliquen.
Que funcione no es que alguien lo necesite
Que una cámara funcione, que un pago se registre o que todos los tests pasen demuestra que el software hace lo que esperabas. No demuestra que alguien necesite Revela ni que esté dispuesto a pagar por ella. Eso se valida hablando con usuarios, y es justo donde estoy ahora. Construir era la primera mitad.
Y un paso más: publicarlo
Menos magia de la que parece: el código está en GitHub con integración continua, la web en Vercel y los datos, la autenticación y las fotos en Supabase. Los pagos van con Stripe (la función que recibe sus avisos verifica la firma y registra cada pago con un identificador único, para que un reenvío no se duplique) y la medición con PostHog y Sentry.
Las claves de servidor van en variables de entorno del servidor, no en el cliente ni en el repositorio. Es una de las reglas que recogen los documentos de Revela. Aun así, revisa tú que ninguna clave acabe en el repositorio.
Los planes también cambian. En el repositorio, la app nativa para el anfitrión (con Expo) figura como congelada, y hoy Revela es una web. Algunos documentos, como el preámbulo de los prompts, siguen hablando de una app móvil. Cuando cambies de rumbo, pídele a la IA que actualice también los documentos, o la próxima vez seguirá un plan que ya no existe. Y cuando algo falle, este prompt te ahorra tiempo:
Lo que he aprendido construyendo Revela
No es un caso de éxito: todavía estoy validando el negocio. Pero el camino me ha dejado varias lecciones que resumen buena parte de lo aprendido:
- Tener documentación no garantiza que esté actualizada. Cuando cambié de rumbo, parte de los documentos siguió hablando del plan antiguo. Si no los actualizas, la próxima vez la IA seguirá un plan que ya no existe.
- Un test en verde no garantiza que el sistema sea seguro. Los tests comprueban reglas concretas, y la seguridad pide su propia revisión. Por eso trato permisos, pagos y datos personales como algo aparte, no como una casilla más que el test ya cubre.
- Un agente puede implementar correctamente un requisito que estaba mal definido. «No dejar disparar fuera de la ventana del evento» no contemplaba las fotos hechas dentro y subidas después del cierre. El fallo no estaba en la ejecución, estaba en mi requisito.
- Dividir el trabajo no sirve si las tareas no tienen sentido funcional. Trocear hasta el absurdo genera cambios que se pueden ejecutar pero no se pueden revisar.
- Construir un producto funcional no demuestra que exista demanda. Por eso no doy Revela por validada: que funcione es la primera mitad; la segunda es hablar con usuarios, y ahí sigo.
Por dónde empezar a construir con IA
- Elige un problema que conozcas de primera mano.
- Escribe una página con la idea y deja que la IA te pregunte lo que falta (prompt 1).
- Pide un plan por fases y empieza solo por la primera (prompt 2).
- Fija las reglas del agente antes de la primera línea de código (prompt 3).
- Revisa los riesgos antes de lanzar, y pide ayuda especializada si cobras o guardas datos personales (prompt 5). Después, prueba con pocas personas que conozcas antes de abrirlo al mundo.
La IA no sustituye el criterio. Quién es tu usuario, qué problema resuelves y cuándo algo está listo siguen siendo decisiones tuyas.
La diferencia ya no está solamente en quién sabe programar, sino también en quién sabe qué construir, cómo dirigir a los agentes y cómo comprobar que el resultado tiene sentido.
Construir Revela me está permitiendo aprenderlo en primera persona. Ahora toca comprobar si también tiene sentido para quienes podrían utilizarlo.
AGENTS.md completo, para copiar
Generalizado a partir del AGENTS.md de Revela, sin claves, datos privados ni dependencias del proyecto. Rellena los corchetes y quita lo que no encaje. Guárdalo en la raíz de tu proyecto con el nombre AGENTS.md.


