NeuralOS
GuideIntermediate

O Guardião Inviolável · o CI que revisa cada mudança antes que ela toque seus usuários

Existe um momento em todo projeto feito com IA em que você deixa de estar sozinho. Já não é mais você testando no seu computador: há usuários reais do outro lado, e cada mudança que você sobe pode tocá-los. É aí que nasce o susto — porque a IA, em modo construtor, foca em que o app FUNCIONE, não em caçar a chave secreta que se enfiou sem querer, o buraco que você abriu no banco de dados, ou o arquivo que você quebrou sem perceber. Este recurso monta para você um guardião: um CI (integração contínua) com 7 inspetores que revisam CADA mudança ANTES que ela chegue à produção, e se um só falhar, bloqueiam a mudança até você consertar. Não é teoria: é um repo real, verificado, que você copia em 4 arquivos, ajusta 3 dados, e ativa com um push. Custa praticamente zero, se monta uma vez e cuida de você para sempre. Não confunda isso com proteger seu app na internet (isso é outro recurso): isto é a porta automática pela qual seu código passa antes de existir para o mundo.

Jul 19, 202614 min
Para quem é isto?
Para qualquer pessoa que construa com IA e já tenha (ou esteja prestes a ter) usuários reais — você não precisa ser programador. Se seu projeto vive no GitHub e se conecta a um banco de dados (Supabase), este guardião é uma das melhores decisões que você pode tomar. Você o instala uma vez copiando 4 arquivos, e a partir daí cada mudança passa por 7 inspetores automáticos antes de tocar ninguém. Você só aprova quando vê o check verde.

O momento · quando a necessidade aparece

No começo você constrói sozinho. Muda algo, atualiza a tela, vê que funciona, e pronto. Não há risco: o único que sofre com um erro é você, na sua própria máquina, e você conserta em dois minutos. Essa etapa é um paraíso — e também uma armadilha, porque você se acostuma a achar que "se funciona na minha tela, está tudo bem".

O momento muda no dia em que outra pessoa depende do seu app. O primeiro usuário que se cadastra. O cliente que já paga. O colega que também mexe no código. A partir daí, cada mudança que você sobe já não afeta só você: pode quebrar o app de gente real, ou pior, vazar os dados delas. E aqui está o problema — você já não vê todas as mudanças uma por uma. Você pede algo à IA, ela mexe em 8 arquivos, você lê 2, aprova, e sobe. Naqueles 6 que você não leu pode estar o desastre.

Imagine assim
Pense em um aeroporto. Quando você constrói sozinho, é você caminhando pela sua casa: não há controle, e nem precisa. Mas no dia em que seu código vai "voar" rumo a usuários reais, você precisa de um controle de segurança no portão de embarque. O guardião deste recurso é esse controle: ninguém passa sem ser revisado, e não importa se você está com pressa ou se "com certeza está tudo bem" — a máquina revisa igual, sempre, sem cansar nem se distrair.

A dor · de onde ela sai e por que dói tanto

A dor não é dramática de cara. Não é um filme de hackers. É mais uma série de acidentes pequenos que, somados, saem caro. E todos nascem do mesmo lugar: a IA em modo construtor é otimista. Ela está pensando em fazer a função nova funcionar, não nas mil formas em que essa mudança pode quebrar outra coisa. É a natureza dela — e também a sua quando você está empolgado construindo.

O acidente mais caro é a chave secreta vazada. Você pede à IA para conectar um serviço, e para "que funcione rápido" ela cola a sua chave de API direto num arquivo. Você não percebe, aprova, sobe para o GitHub. Essa chave agora é pública. Há bots que escaneiam o GitHub 24 horas por dia procurando exatamente isso — podem encontrá-la em minutos e começar a gastar seu dinheiro ou entrar nos seus sistemas. Não é um ataque sofisticado: é um descuido que a máquina de outra pessoa recolheu do chão, como quem pega uma carteira que caiu do seu bolso sem você notar.

O segundo é o buraco no banco de dados. Uma mudança que, sem querer, deixa uma tabela dos seus usuários acessível para qualquer um, ou cria uma função com permissões que não deveria ter. Não dá para ver. O app continua funcionando idêntico. Mas você acabou de deixar uma janela aberta que ninguém vai fechar até alguém encontrá-la — e aí já é tarde.

O terceiro é o mais comum e menos glamouroso: você quebrou algo que antes rodava. Consertou o botão A e sem perceber desconectou o botão B. No seu teste rápido você só mexeu no A, então não viu. O usuário que usava o B se depara com o app quebrado. Em programação isso tem nome — regressão — e é 80% da dor real do dia a dia.

Honestidade · isto é um acidente, não um apocalipse
Não estou te vendendo medo. A maioria dessas falhas, caçada a tempo, se conserta em minutos. O problema NÃO é que sejam catástrofes impossíveis de resolver — é que elas se enfiam em silêncio e explodem quando você menos espera: numa sexta à noite, com um cliente irritado, quando você já nem lembra o que mudou. O guardião não evita que você cometa erros (todos cometemos). Ele evita que esses erros cheguem até seus usuários. Ele os caça na porta, quando ainda custa zero para consertar.

E o que acontece se você NÃO fizer isso? Nada… por um tempo. Essa é a armadilha. Funciona sem guardião por semanas, você se confia, e bem quando o projeto começa a importar de verdade — quando já há usuários, dinheiro, ou reputação em jogo — chega o acidente que teria levado 30 segundos para evitar. O guardião é um seguro barato contra um dia muito caro.

Os 7 inspetores · o que cada um revisa

O guardião não é um bloco mágico: são 7 revisões concretas que rodam automaticamente em cada mudança. Se as 7 passam, você vê um check verde e a mudança pode seguir. Se UMA só falhar, fica vermelho e a mudança fica bloqueada até você consertar. Simples assim, rigoroso assim. Vamos uma por uma, na ordem em que rodam.

Imagine assim
São 7 inspetores em fila no controle de segurança. O primeiro revisa se você não está levando nada perigoso nos bolsos (segredos). O segundo — o chefe — revisa se você não deixou uma porta aberta no cofre (o banco de dados). Os demais revisam se sua mala está bem-feita, se nada está quebrado, e se tudo se encaixa. Basta um inspetor dizer "não" para você não embarcar. Sem exceções, sem "é que estou com pressa".

1 · Gitleaks — você meteu uma chave secreta por acidente? Escaneia toda a mudança procurando coisas que pareçam credenciais: chaves de API, senhas, tokens. Se encontrar algo com cheiro de segredo, para na hora. É o inspetor que te salva do acidente mais caro de todos, e por isso roda entre os primeiríssimos — antes até de instalar qualquer coisa, sobre a árvore limpa do git, para que essa chave não avance nem mais um passo rumo ao repositório público.

2 · Portão de segurança (Supabase advisors) — esta mudança abriu um buraco no banco de dados? É o inspetor chefe, e por isso roda primeiro entre os que revisam seu código. Ele pergunta ao Supabase diretamente: alguma tabela de usuários ficou sem seu cadeado (RLS)? alguém criou uma função com permissões perigosas? foi concedido um acesso que não deveria? Se a resposta for sim, bloqueia. Este é o que protege os dados dos seus usuários de um descuido silencioso.

3 · Type-check — os tipos batem? Na programação moderna, cada dado tem um "tipo" (isto é um número, isto é um texto, isto é uma data). Este inspetor confirma que você não está, por exemplo, somando um texto com uma data. Caça uma família enorme de bugs antes de o app sequer iniciar — erros que, se não, apareceriam na cara do usuário no pior momento.

4 · Lint — o código está limpo? O linter é o inspetor de maus hábitos: variáveis que são declaradas e nunca usadas, código morto, padrões que se sabe que causam problemas. Não é estética por capricho — o código sujo é onde os bugs se escondem. Um linter obriga a manter a casa arrumada para que a sujeira de verdade fique visível.

5 · Format — o formato é consistente? Que todo o código tenha a mesma aparência: mesmos espaços, mesmas aspas, mesmo estilo. Parece mania, mas é idioma comum. Quando várias pessoas (ou várias sessões de IA) mexem no mesmo projeto sem um formato combinado, cada mudança mistura o que você fez com um enxame de aspas trocadas e indentações reordenadas — e você já não distingue a ideia do ruído. O inspetor impõe o mesmo dialeto para todos, de uma vez por todas, assim ninguém precisa discutir isso nunca.

6 · Tests — o que antes funcionava ainda funciona? Este é o que caça as regressões, a dor #3 lá de cima. São testes automáticos que verificam se as funções-chave continuam dando o resultado correto. Você consertou o botão A; os testes confirmam que o B, o C e o D continuam rodando. É o inspetor que te deixa fazer mudanças grandes sem medo, porque você sabe que se quebrar algo, ele te avisa na hora.

7 · Build — compila de verdade? O último inspetor monta o app do zero, como se fosse ser publicado. Porque uma coisa é "funcionar no seu computador" e outra é conseguir ser construído limpo desde o início. Se o build falhar aqui, na porta, é infinitamente melhor do que falhar em produção com usuários olhando uma tela em branco.

A ordem importa · o chefe primeiro
Repare que o portão de segurança roda primeiro (antes de type-check, lint, format, tests e build). É de propósito: a segurança dos dados dos seus usuários é o mais importante, então é revisada antes de gastar tempo com o resto. Se há um buraco no banco de dados, não importa que o código esteja bonito — a mudança é bloqueada de imediato. Prioridades ordenadas por dano, não por comodidade.

O custo · por que isto é praticamente de graça

A gente esperaria que um guardião de nível empresa custasse dinheiro. Não. Este custa ~$0 e adiciona uns ~15 segundos por revisão. Detalhamento honesto: os advisors do Supabase são grátis. O GitHub Actions (o motor que roda os inspetores) te dá 2.000 minutos grátis por mês em repositórios privados — e é ilimitado e grátis em repositórios públicos. Uma revisão das 7 leva segundos, então com 2.000 minutos você faz milhares de revisões por mês sem pagar um centavo.

A conta de guardanapo
Se você faz 10 mudanças por dia, são ~300 por mês. A ~15 segundos cada uma, você gasta ~75 minutos dos 2.000 gratuitos. Sobram 1.925. Tradução: para um projeto normal, isto é grátis para sempre. E em troca você se poupa do primeiro acidente caro — que só com o fato de não vazar uma chave de API já se pagou mil vezes. Poucas decisões da sua vida como construtor têm uma relação custo-benefício tão descaradamente a seu favor.

O repo · o que você vai copiar

Você não precisa inventar nada. Todo o guardião está empacotado num repositório público, verificado, pronto para copiar. São 4 arquivos que você leva para o seu projeto, mais um guia de instalação em espanhol, passo a passo. Está escrito em JavaScript puro e não depende de nada estranho.

MentexDev/NeuralOS-CI-Blindaje
REPO

Template de CI reutilizável com os 7 inspetores: o workflow do GitHub Actions (backend-ci.template.yml), a configuração do Gitleaks (gitleaks.toml.template), o script do portão de segurança do Supabase (scripts/supabase-advisors-gate.mjs) com sua allowlist (scripts/supabase-advisors-allowlist.json), o guia em espanhol (GUIA-agregar-ci-a-un-proyecto.md) e o padrão BACKEND_SUPABASE_STANDARDS.md — 'as 10 regras invioláveis' que o portão faz cumprir. Você copia, ajusta 3 dados, e ativa com um push.

JavaScriptView on GitHub
Os 4 arquivos que você copia para o seu projeto
`backend-ci.template.yml` → o workflow com os 7 inspetores (vai na sua pasta .github/workflows/).
`gitleaks.toml.template` → a configuração do caçador de segredos.
`scripts/supabase-advisors-gate.mjs` → o script que pergunta ao Supabase por buracos de segurança.
`scripts/supabase-advisors-allowlist.json` → a lista de exceções aprovadas (começa vazia).

O protocolo de instalação · uma única vez, para sempre

Aqui está a parte boa: você instala uma vez e ele cuida de você para sempre. Não há manutenção diária, não precisa lembrar de rodar. Ele vive no seu repositório e dispara sozinho a cada mudança. A instalação são 6 passos, e o prompt mestre lá embaixo cola isso para a sua IA para que ela os faça junto com você. Primeiro olhe o mapa completo para entender o que vai acontecer.

Os 6 passos da instalação
Copiar os 4 arquivos do repo para o seu projeto (o .template é removido ao copiar o workflow para .github/workflows/).
Ajustar 3 dados marcados com <<<CAMBIAR>>> nos arquivos: a pasta do seu projeto, os caminhos, e o nome do seu pacote.
Adicionar 1 script ao seu package.json para que o portão de segurança possa ser executado.
Copiar o PROJECT_REF do seu projeto do Supabase (você o encontra na configuração do seu projeto).
Criar 2 secrets no GitHub (Settings → Secrets): SUPABASE_PROJECT_REF e SUPABASE_ACCESS_TOKEN. Nunca vão no código — vão guardados no cofre do GitHub.
Ativar Leaked Password Protection no Supabase (Auth → Settings) e fazer push. No push você vê os 7 checks rodarem — mire no verde.
json
// Passo 3: o script que você adiciona ao seu package.json (na seção "scripts")
{
  "scripts": {
    "db:advisors:gate": "node scripts/supabase-advisors-gate.mjs"
  }
}
bash
# Os 2 secrets do passo 5 são criados no GitHub, NÃO no código:
# Repositório → Settings → Secrets and variables → Actions → New secret
#
#   SUPABASE_PROJECT_REF   → o ref do seu projeto (muda por projeto)
#   SUPABASE_ACCESS_TOKEN  → seu token de conta (o mesmo para todos os seus projetos)
#
# O portão foi feito para se pular sozinho (com aviso) se esses secrets faltarem,
# então nunca quebra um projeto que ainda não os tem configurados.
A regra de ouro dos secrets
Os 2 dados do Supabase são guardados nos Secrets do GitHub, NUNCA num arquivo do projeto. Toda a graça está aí: o guardião que caça segredos vazados não pode ele mesmo vazar segredos. O token de acesso é da sua conta (serve para todos os seus projetos); o PROJECT_REF muda em cada projeto. Se algum dia você vir uma dessas duas coisas escrita dentro de um arquivo .yml ou .js, algo foi feito errado — tire de lá.

O prompt mestre · cole para a sua IA e deixe ela instalar para você

Este é o único prompt que você precisa. Você o cola no seu agente de código (Claude Code, Cursor, ou o que você usar) parado dentro do seu projeto, e ele te guia pelos 6 passos, ajustando os 3 dados por você e explicando cada movimento. Preencha os [colchetes] com o que é seu antes de enviar.

Prompt mestre · instale o guardião de CI no meu projetotexto
Quero montar neste projeto um guardião de integração contínua (CI) que revise cada mudança antes que ela chegue à produção. O template está no repo público github.com/MentexDev/NeuralOS-CI-Blindaje e traz 7 inspetores: Gitleaks (segredos), portão de segurança dos Supabase advisors (que roda PRIMEIRO entre os que revisam o código), type-check, lint, format, tests e build. Se UM falhar, a mudança é bloqueada.

Contexto do meu projeto:
- Banco de dados: Supabase.
- Gerenciador de pacotes: [npm / pnpm / yarn].
- Nome do meu pacote (o "name" do package.json): [nome].

Me guie passo a passo, sem que eu precise saber programar, e nesta ordem:

1. Traga os 4 arquivos do template (backend-ci.template.yml, gitleaks.toml.template, scripts/supabase-advisors-gate.mjs e scripts/supabase-advisors-allowlist.json) e coloque cada um onde deve ficar. O workflow deve ficar em .github/workflows/ SEM o sufixo .template.

2. Procure nos arquivos os 3 marcadores <<<CAMBIAR>>> e substitua pelos dados reais do meu projeto (pasta, caminhos, nome do pacote). Me mostre exatamente o que você mudou em cada um.

3. Adicione ao meu package.json o script "db:advisors:gate": "node scripts/supabase-advisors-gate.mjs" sem apagar meus scripts existentes.

4. Me explique EXATAMENTE onde eu encontro meu PROJECT_REF no Supabase, e como eu gero meu ACCESS_TOKEN de conta.

5. Me diga passo a passo como criar os 2 secrets no GitHub (SUPABASE_PROJECT_REF e SUPABASE_ACCESS_TOKEN). Me lembre que eles NUNCA devem ir dentro de um arquivo do projeto, só nos Secrets do GitHub.

6. Me lembre de ativar "Leaked Password Protection" no Supabase (Auth → Settings).

No final:
- Me dê o comando exato para fazer commit e push desses arquivos, e me diga o que eu deveria ver na aba de checks do GitHub (os 7 inspetores rodando, e qual roda primeiro).
- Se algum inspetor ficaria vermelho com meu projeto do jeito que ele está agora (por exemplo, não tenho tests, ou meu código tem erros de tipo), me avise ANTES e me diga a forma mais simples de deixá-lo verde honestamente, sem desativar o inspetor.
O que você NUNCA deve fazer para "passar" pelo guardião
Quando um inspetor ficar vermelho, a tentação vai ser desativá-lo para "passar logo". Não faça isso. Desativar um inspetor para pular uma revisão é como vendar os olhos do segurança do aeroporto: o problema não desaparece, você só deixa de vê-lo. Se um inspetor falha, conserte o que ele aponta — é para isso que ele existe. Um guardião que você desativa quando incomoda não é um guardião, é um enfeite.

O hábito · onde isto vive no seu dia a dia

A beleza do guardião é que ele não exige disciplina da sua parte. Não é um hábito que você tenha que lembrar, tipo "beber água" ou "fazer exercício". Uma vez instalado, ele dispara sozinho toda vez que você sobe uma mudança. Seu único trabalho é olhar a cor: verde, siga; vermelho, conserte o que o inspetor aponta antes de continuar.

O momento em que você o vive é bem na hora de subir uma mudança para o GitHub (ou de abrir um "pull request", se você trabalha com branches — veja o recurso de branches paralelas). Aí o GitHub lança os 7 inspetores automaticamente. Em segundos você tem o veredito. Se você trabalha com a IA, este é o ponto onde o otimismo dela de construtora encontra um auditor que não se empolga: a máquina revisa a frio o que a IA construiu a quente.

A ponte com o C-A-R
Este guardião é a versão automatizada e permanente da fase de auditar do [protocolo C-A-R](/recursos/protocolo-car-construir-sin-bugs). O C-A-R te ensina a separar o modo construtor do modo auditor na sua cabeça. O guardião faz isso por você na máquina: cada mudança passa obrigatoriamente por um auditor frio antes de existir para o mundo. Construir pensa em fazer funcionar; o guardião pensa em como pode falhar — e não se cansa nunca.

Os caminhos mais fáceis · o que você faz e o que a máquina faz

Para deixar clarííssimo onde você põe a mão e onde não: a instalação você faz UMA vez (com o prompt lá de cima, sua IA te acompanha). Depois, tudo é automático. Esta é a divisão real de esforço.

Você (uma única vez, ao instalar)
Cola o prompt mestre na sua IA e segue os 6 passos com ela.
Copia seu PROJECT_REF do Supabase e cria os 2 secrets no GitHub.
Ativa a proteção de senhas vazadas no Supabase.
Faz o primeiro push e vê os 7 checks rodarem.
A máquina (para sempre, em cada mudança)
Dispara os 7 inspetores automaticamente em cada push.
Bloqueia a mudança se um só falhar, com o detalhe do que falhou.
Pula o portão com aviso se algum projeto ainda não tiver os secrets (não quebra nada).
Te mostra o check verde quando tudo passa — seu sinal de que é seguro seguir.
Um detalhe honesto sobre os tests
Se seu projeto ainda não tem tests (testes automáticos), o inspetor #6 não vai caçar regressões porque não há nada para verificar — e tudo bem para começar. O guardião continua te protegendo com os outros 6 (segredos, segurança de dados, tipos, limpeza, formato e build). Os tests são a peça que você vai somando com o tempo; o guardião está pronto para usá-los assim que você os tiver. Não espere ter tests perfeitos para montar o resto.

Fechamento · um guardião que não dorme

Construir com IA é rápido e viciante, e essa velocidade é justamente o que a torna perigosa: você vai tão rápido que não vê tudo o que sobe. O guardião não te freia — ele te deixa ir rápido com uma rede embaixo. Cada mudança passa por 7 inspetores em segundos, e se algo cheira mal, ele para antes de tocar um só usuário. Custa zero, se monta uma vez, e te dá algo que o dinheiro normalmente não compra: dormir tranquilo sabendo que nada quebrado chega à produção por descuido.

No NeuralOS, este guardião já faz parte da casa
Tudo isso que você acabou de montar na mão é, no NeuralOS, parte de como a própria plataforma é construída: o portão de segurança dos Supabase advisors é de máxima prioridade e bloqueia uma mudança se detecta um aviso, exatamente como o inspetor #2 deste recurso. "Cada mudança revisada por um auditor automático antes de tocar ninguém" não é uma promessa para o futuro — é a disciplina real com que o produto é erguido. E a honestidade é completa: aqui não te vendemos nada, te demos o mesmo guardião para o seu próprio projeto, com o repo real e aberto, para que ele seja seu.
Antes do guardião · guarde tudo no GitHub
O guardião vive no GitHub e revisa cada mudança. Se você ainda não tem seu projeto salvo por lá, comece por este — é o passo zero.
O protocolo C-A-R · auditar antes de publicar
O guardião é a versão automática de auditar. Este recurso te ensina a mentalidade por trás — separar o construtor do auditor — que faz tudo se encaixar.
#ci-cd#seguranca#automacao#supabase#github-actions#producao
Ready to build?

Start building in
under 3 minutes

Join 4,200+ builders. No credit card. Build your first app with AI in minutes.