SIMPE&MS
Guia editorial de instalação e desenvolvimento local. Para colegas que vão construir, consertar e melhorar o sistema integrado de monitoramento estratégico da Secretaria de Saúde.
OSIMPE-MS é o sistema que substituiu o antigo SAGA-SUS — uma migração de Firebase (NoSQL) para Supabase (PostgreSQL), com um frontend Next.js totalmente novo. Ele organiza o plano estratégico da SES-MS em uma hierarquia de objetivos, ações, resultados, entregas e atividades, com monitoramento por semáforo, métricas, compromissos, matriz de responsabilidade e relatórios.
Em maio/2026, o desenvolvimento ficou local-first: cada dev tem seu próprio Postgres rodando em Docker, com migrations isoladas por branch. Acabou a disputa pelo banco de testes compartilhado, e features paralelas finalmente conseguem ir para produção independentemente.
Este manual existe para que esse novo fluxo seja claro, reproduzível, e — quando possível — agradável de seguir.
A stack
Apêndice / Anatomia de um dia normal
Um dia com o Dev Matheus
Não é receita de bolo — é só como, na prática, eu abro a máquina, escrevo código e fecho o dia sem deixar nada queimando RAM. Use como referência ou como ponto de partida para criar o seu próprio ritmo.
-
Abrir o VSCode no projeto
Eu rodo no WSL2 Ubuntu, mas isso é detalhe — funciona igual no macOS ou no Windows nativo. O importante é abrir a pasta
simpe-msdireto, não o workspace pai. -
Subir o Docker Desktop
Antes de qualquer coisa, o Docker precisa estar de pé — é ele que vai segurar o Postgres, o Studio e o resto do stack do Supabase local.
-
Abrir três terminais no VSCode
Cada um com um propósito, para não embolar saída de log:
- Supabase —
supabase start, migrations, reset. - Next.js — o
npm run devrodando ininterrupto. - Externo —
git, troca de branch, comandos avulsos.
- Supabase —
-
Abrir um terminal fora do VSCode — o Claude Code
Em uma janela separada eu digito
claudee deixo aberto o dia inteiro. Manter fora do VSCode evita que o painel do editor vire um caos de abas. -
Subir o Supabase local
supabase start -
Subir o Next
npm run devPronto. Agora é só pular pra branch da task e começar a editar.
-
No Claude, três comandos que uso o tempo todo
-
/mcp— confiro se o MCP do Supabase local conectou. Se não, nada de query inteligente. -
/usage— nunca passo dos 20% dos 200K de contexto. Se chega lá, paro a sessão e abro outra do zero. Contexto sujo gera resposta suja. -
shift+tab— alterna pro plan mode, antes de pedir mudanças que envolvam várias etapas.
-
-
Migrations, se a task encostar no schema
# cria o arquivo de migration na branch atual supabase migration new nome-descritivo # aplica em cima (sem destruir dados) supabase migration up # ou: rebobina tudo, replay do zero + seed supabase db resetupquando quero adicionar;db resetquando alterei algo já aplicado e preciso garantir que a migration roda limpa do começo. -
Edge functions, se mexi em alguma
supabase functions serveRoda em modo watch — testo a função batendo nela direto enquanto edito.
-
Tudo verde? Commit, push, PR para
devMensagens de commit no padrão do repo, PR descrevendo o que muda e por quê, screenshots se for visual. Daí é com o revisor (veja o quadro abaixo).
-
Antes de fechar o laptop — nunca esquecer
supabase stopSe eu esquecer, o stack continua mastigando RAM em segundo plano e amanhã o ventilador me xinga. Vira hábito rápido.
Do outro lado: quem aprova o PR
Code review aqui não é só ler diff — é rodar de fato. Migration que parece inocente quebra na hora de aplicar em outro banco.
Rodar a branch do PR
Faz checkout, sobe tudo do zero, garante que a feature anda na máquina dele exatamente como prometido:
supabase start
npm run dev
supabase db reset
O db reset aqui faz todo o sentido: rebobina
o banco e replay das migrations — é o teste real de que a
migration nova roda limpa.
Aprovou? Mergeia em dev
Logo depois, aplica as mudanças no projeto cloud de QA
(simpe-ms-test):
# aponta o CLI pro projeto de teste
supabase link # — escolher simpe-ms-test
# envia migrations
supabase db push
# publica edge functions alteradas
supabase functions deploy nome-da-funcao --no-verify-jwt
QA validou? PR de dev → main
Depois do merge em main, refaz o mesmo ritual —
mas agora com supabase link apontado pro projeto
simpe-ms-dev (que apesar do nome, é a
produção). db push + functions deploy
e a feature está no ar.
Comece pelo capítulo 01 — ou pule direto para o que precisar.