Como o Surgr usa IA
O motor decide.
A IA explica.
Surgr dev docs
AI Trainer
Onde entra a IA — e onde ela não entra.
Surgr SURGR AI Trainer
SURGR

AI Trainer

O motor monta e ajusta o treino. A IA explica e conversa.

Exercícios, séries, repetições, RIR, descanso, carga, deload e platô saem de um motor de regras escrito a partir de um guia de metodologia de treino: volume por músculo, progressão por nível, ciclo de quatro semanas. O modelo de linguagem (Google Gemini 2.5) entra em quatro pontos onde o problema é texto, e o app funciona sem ele. Abaixo, cada passo e quem decide.

494
testes automatizados só no motor e na metodologia, rodando no CI a cada push
1.000
planos simulados em cinco perfis: nenhum exercício faltando, contraindicado ou fora do músculo pedido
4
pontos de IA em tempo real, todos com fallback que mantém o app funcionando
648
exercícios no pool automático, de um catálogo de 1.653; curadoria com IA, gravada só depois de revisão
01 · Pipeline

Quem decide cada passo

Da curadoria do catálogo à conversa com o treinador, em sete fases. Cada passo está na raia de quem o executa. Clique num passo para ver o arquivo, a entrada, a saída e, quando é IA, o modelo, a validação e o que acontece se ela falhar.

algoritmo (sem IA) IA em tempo real (Gemini) IA offline, com revisão humana
Com o Gemini fora do ar, o treino segue igual: o plano é gerado, a semana é prescrita, a sessão roda, a progressão e o deload acontecem. O que se perde: as dicas de execução de um plano novo, a reescrita do resumo pós-treino (fica o texto-padrão), o resumo semanal do Início e o chat.
02 · Acompanhamento

O laço de progressão não tem IA

O plano salvo guarda só a seleção de exercícios. A cada leitura, a semana é recalculada a partir do histórico: o mesmo histórico gera sempre a mesma próxima sessão. Isso torna o acompanhamento reproduzível, testável e explicável — o chat lê esse estado para explicar o porquê, mas não o altera.

    03 · Pontos de IA

    Os quatro lugares onde o modelo fala

    Todos produzem texto para a pessoa ler. Nenhum grava número de treino. O único que pode sugerir uma mudança no plano, o chat, só a propõe entre opções pré-calculadas pelo motor, e o servidor revalida antes de aplicar. O texto em si não é verificado: uma explicação do chat pode estar errada; o plano, não muda por causa dela.

    PontoModeloEntraSaiValidaçãoSe falhar
    04 · Catálogo

    IA offline, com humano no meio

    O motor só escolhe entre exercícios marcados como elegíveis. Essa marcação e as notas biomecânicas usadas no scoring vêm de scripts que rodam fora do app: regras primeiro, modelo depois, e nada é gravado sem relatório e revisão.

    Entrada
    Catálogo completo

    1.653 exercícios, com GIF, músculo, subgrupo, equipamento e contraindicações.

    Regras · sem IA
    Filtro de segurança

    Sai o que não tem GIF, é alongamento, usa equipamento raro ou está na lista de movimentos de risco.

    IA offline
    Avaliação em lotes

    Gemini 2.5 flash, com raciocínio, avalia por subgrupo muscular, com o pool atual como contexto e critérios fixos.

    Relatório
    Modo --dry

    Lista o que entra, o que sai e o motivo de cada um. Nada vai ao banco nessa etapa.

    Humano
    Revisão

    O relatório é lido antes de gravar, e uma rodada inteira pode ser descartada. Cobertura mínima por slot é medida antes.

    Gravação
    Só o válido

    Respostas fora do formato ou com erro transitório nunca viram dado. Notas biomecânicas só aceitam 0,2, 0,5 ou 0,8.

    Catálogo completo
    1.653
    Elegíveis após curadoria
    761
    Canônicos, no pool automático
    648

    Exemplo real: uma re-curadoria completa foi descartada na revisão porque o modelo tirava agachamento livre, stiff e remada curvada do pool, por um critério de “seguro para iniciante” lido de forma ampla demais. O prompt foi corrigido e só a curadoria incremental foi gravada.

    05 · Medição

    O motor é medido, não só testado

    Um simulador roda o motor real sobre o catálogo exportado, sem banco, e gera 200 planos por perfil. As métricas abaixo são acompanhadas a cada mudança de regra ou de catálogo.

    PerfilExercício faltandoFora do músculoMovimento de riscoDuração estimada (pedida)
    Academia, intermediário, 4 dias00%046 min (60)
    Academia, avançado, 3 dias00%068 min (75)
    Academia, novato absoluto, 3 dias00%049 min (60)
    Casa, halteres, 4 dias00%046 min (60)
    Casa, só peso corporal, 3 dias00%032 min (45)

    Qualidade com variedade

    Em 64–70% das escolhas, o exercício sai dos 5 de maior nota do slot. Um sorteio uniforme acertaria 7–24%. O restante é variação deliberada, sempre dentro do pool seguro.

    Semana 1 começa leve

    A duração estimada fica abaixo da pedida porque a semana 1 parte do volume mínimo eficaz. No intermediário de 4 dias, a sessão vai de cerca de 47 para 63 minutos até a semana 3 e cai para 39 no deload.

    Fonte: scripts/simulate-engine.mjs, seed 42, catálogo de 13/10/2026.

    06 · Limites

    O que a IA nunca faz

    Limites garantidos pela arquitetura, não pelo prompt: o código que decide esses pontos não chama modelo nenhum.

    Nunca

    Escolhe os exercícios do plano. A seleção é scoring sobre o pool curado, com sorteio ponderado entre os melhores candidatos.

    Nunca

    Define séries, repetições, RIR, descanso ou carga. Isso é prescrição semanal e progressão, em código testado.

    Nunca

    Relaxa uma restrição. Equipamento disponível, contraindicações de bloqueio e travas de novato são filtros que nenhum fallback ignora. Contraindicações de cautela não excluem: reduzem a chance de o exercício ser escolhido.

    Nunca

    Altera o plano sozinha. Uma troca sugerida no chat é um id de uma lista do motor, revalidado no servidor antes do botão de aplicar aparecer.

    Nunca

    Decide algo durante o treino. Os avisos da sessão vêm de regras locais, sem rede e sem custo de modelo; o chat só entra se a pessoa abrir.

    Nunca

    Decide deload. O motor detecta os sinais de fadiga e propõe; quem confirma é o atleta.

    07 · Racional

    Por que dividir assim

    Reproduzível

    Prescrição e progressão são determinísticas; a seleção aceita seed. Com ela, mesma entrada gera o mesmo plano, e é assim que a simulação compara versões do motor. Um bug vira um teste que falha, não uma resposta que muda a cada chamada.

    Testável

    Seleção, prescrição, progressão, mesociclo, fadiga e platô são módulos puros: 494 testes em 32 suítes, sem banco e sem rede.

    Seguro

    Contraindicações e equipamento saem antes do scoring, por filtro de lista fechada. Na simulação, nenhum plano trouxe exercício de família bloqueada para ombro ou punho.

    Custo previsível

    O motor roda em memória, sem chamada externa: a simulação gera e analisa 1.000 planos em menos de 7 s. O modelo menor escreve o texto curto; o maior só entra no chat Pro e na curadoria offline.

    Explicável

    Cada exercício escolhido guarda o motivo do scoring, e o chat recebe o estado da metodologia. A IA explica uma decisão que existe, em vez de inventar uma.

    Versionado

    Todo plano é carimbado com a versão da metodologia. Mudança de regra é mudança de código, com diff e teste.

    08 · Em aberto

    O que ainda não fazemos

    Dicas fixas

    As dicas de execução são escritas uma vez, quando o plano nasce. Não acompanham a carga e as reps que mudam semana a semana.

    Carga inicial estimada

    Sem histórico, a carga sai de razões por músculo sobre o peso corporal e começa 20% abaixo. As primeiras sessões calibram; não há teste de 1RM.

    Esforço não registrado

    A sessão não pergunta mais quantas reps sobraram. Para o avançado, a progressão usa reps e carga; o ajuste fino por esforço só vale para histórico antigo ou importado.

    Chat sem verificação

    As respostas do chat não são checadas contra a metodologia. O prompt carrega o estado do motor, mas uma explicação pode sair imprecisa.