NeuralOS
GuíaIntermedio

El Guardián Inviolable · el CI que revisa cada cambio antes de que toque a tus usuarios

Hay un momento en todo proyecto hecho con IA en el que dejas de estar solo. Ya no eres tú probando en tu computadora: hay usuarios reales del otro lado, y cada cambio que subes los puede tocar. Ahí es donde nace el susto — porque la IA, en modo constructor, se enfoca en que la app FUNCIONE, no en cazar la clave secreta que se te coló, el hueco que abriste en la base de datos, o el archivo que rompiste sin darte cuenta. Este recurso te monta un guardián: un CI (integración continua) con 7 inspectores que revisan CADA cambio ANTES de que llegue a producción, y si uno solo falla, bloquean el cambio hasta que lo arregles. No es teoría: es un repo real, verificado, que copias en 4 archivos, ajustas 3 datos, y activas con un push. Cuesta prácticamente cero, se monta una vez y te cuida para siempre. No confundas esto con proteger tu app en internet (eso es otro recurso): esto es la puerta automática por la que pasa tu código antes de existir para el mundo.

Jul 19, 202614 min
¿Para quién es esto?
Para cualquiera que construya con IA y ya tenga (o esté por tener) usuarios reales — no necesitas ser programador. Si tu proyecto vive en GitHub y se conecta a una base de datos (Supabase), este guardián es de las mejores decisiones que puedes tomar. Lo instalas una vez copiando 4 archivos, y a partir de ahí cada cambio pasa por 7 inspectores automáticos antes de tocar a nadie. Tú solo apruebas cuando ves el check verde.

El momento · cuándo aparece la necesidad

Al principio construyes solo. Cambias algo, refrescas la pantalla, ves que funciona, y listo. No hay riesgo: el único que sufre un error eres tú, en tu propia máquina, y lo arreglas en dos minutos. Esa etapa es un paraíso — y también una trampa, porque te acostumbras a que "si funciona en mi pantalla, está bien".

El momento cambia el día que alguien más depende de tu app. El primer usuario que se registra. El cliente que ya paga. El compañero que también toca el código. A partir de ahí, cada cambio que subes ya no te afecta solo a ti: puede romperle la app a gente real, o peor, filtrar sus datos. Y aquí está el problema — tú ya no ves todos los cambios uno por uno. Le pides algo a la IA, hace 8 archivos, tú lees 2, apruebas, y subes. En esos 6 que no leíste puede estar el desastre.

Imagínalo así
Piensa en un aeropuerto. Cuando construyes solo, eres tú caminando por tu casa: no hay control, y no hace falta. Pero el día que tu código va a "volar" hacia usuarios reales, necesitas un control de seguridad en la puerta de embarque. El guardián de este recurso es ese control: nadie pasa sin ser revisado, y no importa si tienes prisa o si "seguro está bien" — la máquina revisa igual, siempre, sin cansarse ni distraerse.

El dolor · de dónde sale y por qué duele tanto

El dolor no es dramático de entrada. No es una película de hackers. Es más bien una serie de accidentes pequeños que, sumados, te cuestan caro. Y todos nacen del mismo sitio: la IA en modo constructor es optimista. Está pensando en hacer que la función nueva funcione, no en las mil formas en que ese cambio puede romper otra cosa. Es su naturaleza — y también la tuya cuando estás emocionado construyendo.

El accidente más caro es la clave secreta filtrada. Le pides a la IA que conecte un servicio, y para "que funcione rápido" pega tu llave de API directamente en un archivo. Tú no lo notas, apruebas, subes a GitHub. Esa llave ahora es pública. Hay bots que escanean GitHub las 24 horas buscando exactamente eso — pueden encontrarla en minutos y empezar a gastar tu dinero o entrar a tus sistemas. No es un ataque sofisticado: es un descuido que la máquina de otro recogió del suelo, como quien recoge una cartera que se te cayó sin que te dieras cuenta.

El segundo es el hueco en la base de datos. Un cambio que, sin querer, deja una tabla de tus usuarios accesible para cualquiera, o crea una función con permisos que no debía tener. No se ve. La app sigue funcionando idéntica. Pero acabas de dejar una ventana abierta que nadie va a cerrar hasta que alguien la encuentre — y para entonces ya es tarde.

El tercero es el más común y menos glamoroso: rompiste algo que antes andaba. Arreglaste el botón A y sin darte cuenta desconectaste el botón B. En tu prueba rápida solo tocaste el A, así que no lo viste. El usuario que usaba el B se encuentra la app rota. En programación esto tiene nombre — regresión — y es el 80% del dolor real del día a día.

Honestidad · esto es un accidente, no un apocalipsis
No te vendo miedo. La mayoría de estos fallos, cazados a tiempo, se arreglan en minutos. El problema NO es que sean catástrofes imposibles de resolver — es que se cuelan silenciosos y explotan cuando menos te lo esperas: un viernes por la noche, con un cliente enojado, cuando ya no recuerdas qué cambiaste. El guardián no evita que cometas errores (todos los cometemos). Evita que esos errores lleguen hasta tus usuarios. Los caza en la puerta, cuando aún cuestan cero arreglarlos.

¿Y qué pasa si NO lo haces? Nada… durante un tiempo. Esa es la trampa. Funciona sin guardián durante semanas, te confías, y justo cuando el proyecto empieza a importar de verdad — cuando ya hay usuarios, dinero, o reputación en juego — llega el accidente que te habría costado 30 segundos evitar. El guardián es un seguro barato contra un día muy caro.

Los 7 inspectores · qué revisa cada uno

El guardián no es un bloque mágico: son 7 revisiones concretas que corren automáticamente en cada cambio. Si las 7 pasan, ves un check verde y el cambio puede seguir. Si UNA sola falla, se pone en rojo y el cambio queda bloqueado hasta que lo arregles. Así de simple, así de estricto. Vamos una por una, en el orden en que corren.

Imagínalo así
Son 7 inspectores en fila en el control de seguridad. El primero revisa que no lleves nada peligroso en los bolsillos (secretos). El segundo — el jefe — revisa que no hayas dejado una puerta abierta en la bóveda (la base de datos). Los demás revisan que tu maleta esté bien hecha, que nada esté roto, y que todo encaje. Basta con que un inspector diga "no" para que no embarques. Sin excepciones, sin "es que tengo prisa".

1 · Gitleaks — ¿metiste una clave secreta por accidente? Escanea todo el cambio buscando cosas que parezcan credenciales: llaves de API, contraseñas, tokens. Si encuentra algo que huele a secreto, se detiene en seco. Es el inspector que te salva del accidente más caro de todos, y por eso corre de los primerísimos — antes incluso de instalar nada, sobre el árbol limpio de git, para que esa llave no siga ni un paso más hacia el repositorio público.

2 · Gate de seguridad (Supabase advisors) — ¿este cambio abrió un hueco en la base de datos? Es el inspector jefe, y por eso corre primero de los que revisan tu código. Le pregunta a Supabase directamente: ¿alguna tabla de usuarios quedó sin su candado (RLS)? ¿alguien creó una función con permisos peligrosos? ¿se otorgó un acceso que no debía? Si la respuesta es sí, bloquea. Este es el que protege los datos de tus usuarios de un descuido silencioso.

3 · Type-check — ¿los tipos cuadran? En programación moderna, cada dato tiene un "tipo" (esto es un número, esto es un texto, esto es una fecha). Este inspector confirma que no estés, por ejemplo, sumando un texto con una fecha. Caza una familia enorme de bugs antes de que la app siquiera arranque — errores que si no, aparecerían en la cara del usuario en el peor momento.

4 · Lint — ¿el código está limpio? El linter es el inspector de malos hábitos: variables que se declaran y nunca se usan, código muerto, patrones que se sabe que causan problemas. No es estética por capricho — el código sucio es donde se esconden los bugs. Un linter obliga a mantener la casa ordenada para que se vea la suciedad de verdad.

5 · Format — ¿el formato es consistente? Que todo el código se vea igual: mismos espacios, mismas comillas, mismo estilo. Suena a manía, pero es idioma común. Cuando varias personas (o varias sesiones de IA) tocan el mismo proyecto sin un formato acordado, cada cambio mezcla lo que hiciste con un enjambre de comillas movidas y sangrías reordenadas — y ya no distingues la idea del ruido. El inspector impone el mismo dialecto para todos, de una vez y para siempre, así nadie tiene que discutirlo nunca.

6 · Tests — ¿lo que antes funcionaba sigue funcionando? Este es el que caza las regresiones, el dolor #3 de arriba. Son pruebas automáticas que verifican que las funciones clave siguen dando el resultado correcto. Arreglaste el botón A; los tests confirman que el B, el C y el D siguen andando. Es el inspector que te deja hacer cambios grandes sin miedo, porque sabes que si rompes algo, te avisa al instante.

7 · Build — ¿compila de verdad? El último inspector arma la app de cero, como si fuera a publicarse. Porque una cosa es que "funcione en tu computadora" y otra que se pueda construir limpia desde el principio. Si el build falla aquí, en la puerta, es infinitamente mejor que fallar en producción con usuarios mirando una pantalla en blanco.

El orden importa · el jefe primero
Fíjate que el gate de seguridad corre primero (antes que type-check, lint, format, tests y build). Es a propósito: la seguridad de los datos de tus usuarios es lo más importante, así que se revisa antes de gastar tiempo en lo demás. Si hay un hueco en la base de datos, no importa que el código esté bonito — el cambio se bloquea de una. Prioridades ordenadas por daño, no por comodidad.

El costo · por qué esto es prácticamente gratis

Uno esperaría que un guardián de nivel empresa costara dinero. No. Este cuesta ~$0 y añade unos ~15 segundos por revisión. Desglose honesto: los advisors de Supabase son gratis. GitHub Actions (el motor que corre los inspectores) te da 2.000 minutos gratis al mes en repositorios privados — y es ilimitado y gratis en repositorios públicos. Una revisión de las 7 tarda segundos, así que con 2.000 minutos haces miles de revisiones al mes sin pagar un centavo.

La cuenta de servilleta
Si haces 10 cambios al día, son ~300 al mes. A ~15 segundos cada uno, gastas ~75 minutos de los 2.000 gratuitos. Te sobran 1.925. Traducción: para un proyecto normal, esto es gratis para siempre. Y a cambio te ahorras el primer accidente caro — que solo con no filtrar una llave de API ya se pagó mil veces. Pocas decisiones de tu vida como constructor tienen una relación coste-beneficio tan descarada a tu favor.

El repo · lo que vas a copiar

No tienes que inventar nada. Todo el guardián está empaquetado en un repositorio público, verificado, listo para copiar. Son 4 archivos que se llevan a tu proyecto, más una guía de instalación en español paso a paso. Está escrito en JavaScript puro y no depende de nada raro.

MentexDev/NeuralOS-CI-Blindaje
REPO

Plantilla de CI reutilizable con los 7 inspectores: el workflow de GitHub Actions (backend-ci.template.yml), la configuración de Gitleaks (gitleaks.toml.template), el script del gate de seguridad de Supabase (scripts/supabase-advisors-gate.mjs) con su allowlist (scripts/supabase-advisors-allowlist.json), la guía en español (GUIA-agregar-ci-a-un-proyecto.md) y el estándar BACKEND_SUPABASE_STANDARDS.md — 'las 10 reglas inviolables' que el gate hace cumplir. Copias, ajustas 3 datos, y activas con un push.

JavaScriptVer en GitHub
Los 4 archivos que copias a tu proyecto
`backend-ci.template.yml` → el workflow con los 7 inspectores (va en tu carpeta .github/workflows/).
`gitleaks.toml.template` → la configuración del cazador de secretos.
`scripts/supabase-advisors-gate.mjs` → el guion que le pregunta a Supabase por huecos de seguridad.
`scripts/supabase-advisors-allowlist.json` → la lista de excepciones aprobadas (empieza vacía).

El protocolo de instalación · una sola vez, para siempre

Aquí está la parte buena: lo instalas una vez y te cuida para siempre. No hay mantenimiento diario, no hay que acordarse de correrlo. Vive en tu repositorio y se dispara solo en cada cambio. La instalación son 6 pasos, y el prompt maestro de más abajo se los pega a tu IA para que los haga contigo. Primero mira el mapa completo para entender qué va a pasar.

Los 6 pasos de la instalación
Copiar los 4 archivos del repo a tu proyecto (el .template se le quita al copiar el workflow a .github/workflows/).
Ajustar 3 datos marcados con <<<CAMBIAR>>> en los archivos: la carpeta de tu proyecto, las rutas, y el nombre de tu paquete.
Añadir 1 script a tu package.json para que el gate de seguridad se pueda ejecutar.
Copiar el PROJECT_REF de tu proyecto de Supabase (lo encuentras en la configuración de tu proyecto).
Crear 2 secrets en GitHub (Settings → Secrets): SUPABASE_PROJECT_REF y SUPABASE_ACCESS_TOKEN. Nunca van en el código — van guardados en la bóveda de GitHub.
Activar Leaked Password Protection en Supabase (Auth → Settings) y hacer push. En el push ves los 7 checks correr — apunta al verde.
json
// Paso 3: el script que añades a tu package.json (en la sección "scripts")
{
  "scripts": {
    "db:advisors:gate": "node scripts/supabase-advisors-gate.mjs"
  }
}
bash
# Los 2 secrets del paso 5 se crean en GitHub, NO en el código:
# Repositorio → Settings → Secrets and variables → Actions → New secret
#
#   SUPABASE_PROJECT_REF   → el ref de tu proyecto (cambia por proyecto)
#   SUPABASE_ACCESS_TOKEN  → tu token de cuenta (el mismo para todos tus proyectos)
#
# El gate está hecho para saltarse solo (con aviso) si estos secrets faltan,
# así que nunca rompe un proyecto que aún no los tiene configurados.
La regla de oro de los secrets
Los 2 datos de Supabase se guardan en los Secrets de GitHub, NUNCA en un archivo del proyecto. Esa es toda la gracia: el guardián que caza secretos filtrados no puede él mismo filtrar secretos. El token de acceso es de tu cuenta (sirve para todos tus proyectos); el PROJECT_REF cambia en cada proyecto. Si alguna vez ves una de estas dos cosas escrita dentro de un archivo .yml o .js, algo se hizo mal — sácala de ahí.

El prompt maestro · pégaselo a tu IA y que te lo instale

Este es el único prompt que necesitas. Se lo pegas a tu agente de código (Claude Code, Cursor, o el que uses) parado dentro de tu proyecto, y te guía por los 6 pasos, ajustando los 3 datos por ti y explicándote cada movimiento. Rellena los [corchetes] con lo tuyo antes de enviarlo.

Prompt maestro · instala el guardián de CI en mi proyectotexto
Quiero montar en este proyecto un guardián de integración continua (CI) que revise cada cambio antes de que llegue a producción. La plantilla está en el repo público github.com/MentexDev/NeuralOS-CI-Blindaje y trae 7 inspectores: Gitleaks (secretos), gate de seguridad de Supabase advisors (que corre PRIMERO de los que revisan el código), type-check, lint, format, tests y build. Si UNO falla, el cambio se bloquea.

Contexto de mi proyecto:
- Base de datos: Supabase.
- Gestor de paquetes: [npm / pnpm / yarn].
- Nombre de mi paquete (el "name" de package.json): [nombre].

Guíame paso a paso, sin que yo tenga que saber programar, y en este orden:

1. Trae los 4 archivos de la plantilla (backend-ci.template.yml, gitleaks.toml.template, scripts/supabase-advisors-gate.mjs y scripts/supabase-advisors-allowlist.json) y colócalos donde van. El workflow debe quedar en .github/workflows/ SIN el sufijo .template.

2. Busca en los archivos los 3 marcadores <<<CAMBIAR>>> y reemplázalos por los datos reales de mi proyecto (carpeta, rutas, nombre del paquete). Muéstrame exactamente qué cambiaste en cada uno.

3. Añade a mi package.json el script "db:advisors:gate": "node scripts/supabase-advisors-gate.mjs" sin borrar mis scripts existentes.

4. Explícame EXACTAMENTE dónde encuentro mi PROJECT_REF en Supabase, y cómo genero mi ACCESS_TOKEN de cuenta.

5. Dime paso a paso cómo crear los 2 secrets en GitHub (SUPABASE_PROJECT_REF y SUPABASE_ACCESS_TOKEN). Recuérdame que NUNCA deben ir dentro de un archivo del proyecto, solo en los Secrets de GitHub.

6. Recuérdame activar "Leaked Password Protection" en Supabase (Auth → Settings).

Al final:
- Dame el comando exacto para hacer commit y push de estos archivos, y dime qué debería ver en la pestaña de checks de GitHub (los 7 inspectores corriendo, y cuál corre primero).
- Si algún inspector se pondría en rojo con mi proyecto tal como está ahora (por ejemplo, no tengo tests, o mi código tiene errores de tipo), avísame ANTES y dime la forma más simple de dejarlo en verde honestamente, sin desactivar el inspector.
Lo que NUNCA debes hacer para "pasar" el guardián
Cuando un inspector se ponga en rojo, la tentación va a ser desactivarlo para que "pase de una". No lo hagas. Desactivar un inspector para saltarte una revisión es como taparle los ojos al de seguridad del aeropuerto: el problema no desaparece, solo dejas de verlo. Si un inspector falla, arregla lo que señala — para eso está. Un guardián que desactivas cuando molesta no es un guardián, es un adorno.

El hábito · dónde vive esto en tu día a día

La belleza del guardián es que no exige disciplina de tu parte. No es un hábito que tengas que recordar como "tomar agua" o "hacer ejercicio". Una vez instalado, se dispara solo cada vez que subes un cambio. Tu único trabajo es mirar el color: verde, sigue; rojo, arregla lo que el inspector señala antes de continuar.

El momento en que lo vives es justo al subir un cambio a GitHub (o al abrir un "pull request", si trabajas con ramas — ver el recurso de ramas paralelas). Ahí GitHub lanza los 7 inspectores automáticamente. En segundos tienes el veredicto. Si trabajas con la IA, este es el punto donde su optimismo de constructor se encuentra con un auditor que no se emociona: la máquina revisa fría lo que la IA construyó caliente.

El puente con el C-A-R
Este guardián es la versión automatizada y permanente de la fase de auditar del [protocolo C-A-R](/recursos/protocolo-car-construir-sin-bugs). El C-A-R te enseña a separar el modo constructor del modo auditor en tu cabeza. El guardián lo hace por ti en la máquina: cada cambio pasa obligatoriamente por un auditor frío antes de existir para el mundo. Construir piensa en que funcione; el guardián piensa en cómo puede fallar — y no se cansa nunca.

Los caminos más fáciles · qué haces tú y qué hace la máquina

Para que quede clarísimo dónde pones tú la mano y dónde no: la instalación la haces UNA vez (con el prompt de arriba, tu IA te acompaña). Después, todo es automático. Este es el reparto real de esfuerzo.

Tú (una sola vez, al instalar)
Pegas el prompt maestro a tu IA y sigues los 6 pasos con ella.
Copias tu PROJECT_REF de Supabase y creas los 2 secrets en GitHub.
Activas la protección de contraseñas filtradas en Supabase.
Haces el primer push y ves los 7 checks correr.
La máquina (para siempre, en cada cambio)
Dispara los 7 inspectores automáticamente en cada push.
Bloquea el cambio si uno solo falla, con el detalle de qué falló.
Se salta el gate con aviso si algún proyecto aún no tiene los secrets (no rompe nada).
Te muestra el check verde cuando todo pasa — tu señal de que es seguro seguir.
Un detalle honesto sobre los tests
Si tu proyecto todavía no tiene tests (pruebas automáticas), el inspector #6 no va a cazar regresiones porque no hay nada que verificar — y eso está bien para empezar. El guardián sigue protegiéndote con los otros 6 (secretos, seguridad de datos, tipos, limpieza, formato y build). Los tests son la pieza que vas sumando con el tiempo; el guardián está listo para usarlos en cuanto los tengas. No esperes a tener tests perfectos para montar el resto.

Cierre · un guardián que no duerme

Construir con IA es rápido y adictivo, y esa velocidad es justo lo que lo hace peligroso: vas tan rápido que no ves todo lo que se sube. El guardián no te frena — te deja ir rápido con red debajo. Cada cambio pasa por 7 inspectores en segundos, y si algo huele mal, se detiene antes de tocar a un solo usuario. Cuesta cero, se monta una vez, y te da algo que el dinero normalmente no compra: dormir tranquilo sabiendo que nada roto llega a producción por descuido.

En NeuralOS, este guardián ya es parte de la casa
Todo esto que acabas de montar a mano es, en NeuralOS, parte de cómo se construye la propia plataforma: el gate de seguridad de Supabase advisors es de máxima prioridad y bloquea un cambio si detecta un aviso, exactamente como el inspector #2 de este recurso. "Cada cambio revisado por un auditor automático antes de tocar a nadie" no es una promesa a futuro — es la disciplina real con la que se levanta el producto. Y la honestidad es completa: aquí no te vendimos nada, te dimos el mismo guardián para tu propio proyecto, con el repo real y abierto, para que lo tengas tú.
Antes del guardián · guarda todo en GitHub
El guardián vive en GitHub y revisa cada cambio. Si aún no tienes tu proyecto respaldado ahí, empieza por este — es el paso cero.
El protocolo C-A-R · auditar antes de publicar
El guardián es la versión automática de auditar. Este recurso te enseña la mentalidad detrás — separar el constructor del auditor — que hace que todo encaje.
#ci-cd#seguridad#automatizacion#supabase#github-actions#produccion
¿Listo para construir?

Empieza a construir en
menos de 3 minutos

Únete a 4.200+ creadores. Sin tarjeta. Construye tu primera app con IA en minutos.