Pular para o conteúdo principal

Como trabalhamos

Time pequeno, 100% remoto, sem disponibilidade em horário comercial dias úteis. O processo é assíncrono por padrão + 1 call por semana à noite.

Cerimônias

QuandoOndeDuraçãoO quê
Daily asyncWhatsApp (grupo do time)até as 22hCada um posta: o que entreguei · o que vou fazer amanhã · o que está bloqueando
Weekly planningCall (link no grupo)30 minQuarta 20:00. Revisa semana, ajusta prioridades.
Retro mensalCall (link no grupo)1hÚltima sexta do mês 20:00. Continuar / parar / começar.

Horários podem ser ajustados nos primeiros encontros até cair num slot que todos sustentem.

Não há call diária. Daily é texto. Quando algo travar e precisar de resposta rápida, mandar no WhatsApp — sem esperar a daily.

Divisão de responsabilidades

Áreas críticas ficam com os founders (não-negociável):

  • Autenticação (login, signup, Google OAuth, reset de senha)
  • Pagamento / Stripe (webhooks, planos, assinaturas)
  • Integração com Strava (OAuth, sync)
  • Migrations de banco / schema Prisma
  • Deploy / infra (Fly.io, Cloudflare Pages, Neon)
  • Segurança, LGPD, dados sensíveis (CPF, dados de saúde)
  • Decisões de arquitetura
  • Code review de todo PR

Trabalho de engenharia com critério de aceite claro fica com o time de engenharia/programação:

  • Componentes do @treinogo/ui e testes
  • Estados de UI (loading, empty, error)
  • Páginas estáticas (FAQ, Termos, Privacidade)
  • SEO / Open Graph / acessibilidade
  • Storybook stories
  • Migrar estilos ad-hoc pro design system
  • Polimento de copy / microcopy
  • Smoke tests E2E (com template pronto)
  • Bugs catalogados de severidade medium ou low

Em caso de dúvida sobre a quem pertence uma tarefa, pergunta no WhatsApp antes de começar. Custo do alinhamento prévio é zero. Custo de fazer errado é alto.

Fluxo de Pull Request

  1. Cria branch a partir de main:

    git checkout main
    git pull origin main
    git checkout -b feat/minha-coisa
    Branch protection ainda não está ativa

    A branch main não está bloqueada por enquanto — GitHub branch protection em repos privados exige plano Team (em avaliação) ou migração para GitLab. Sem proteção automática, redobre o cuidado pra nunca commitar direto na main. Sempre via PR.

  2. Faz commits seguindo Conventional Commits:

    • feat: nova funcionalidade
    • fix: correção
    • docs: documentação
    • refactor:, test:, chore:, perf:, style:
  3. Push e abre PR no GitHub.

  4. CI roda automaticamente:

    • typecheck, lint, test, build
    • Front-ends: Cloudflare gera preview URL automática (testa lá antes de pedir review)
  5. Pede review ao @zanlucathiago. SLA: 24h.

  6. Após aprovação: "Squash and merge". Sempre squash, nunca merge commit.

  7. Deploy automático após merge na main (Fly.io pra backend, Cloudflare Pages pra front-ends).

  8. Move o card no Project pra Done (ou ele move sozinho se o PR tiver Closes #N).

Mais detalhes em Workflow de Desenvolvimento.

Code review — o que esperar

  • Toda PR recebe revisão de @zanlucathiago
  • SLA: 24h, idealmente same-day
  • Bot GitHub Code Quality também comenta automaticamente
  • Sugestões automáticas: avalia uma a uma. Aceita se fizer sentido, rejeita se não.
  • Comentários humanos: responde sempre, mesmo que pra dizer "OK, ajustado"

Como pegar a próxima tarefa

  1. Abre o Project TreinoGO Launch
  2. Filtra por Assignee = seu @
  3. Ordena por Vence ASC
  4. Pega a Issue mais urgente que não está bloqueada
  5. Move o card pra In progress
  6. Cria branch e começa

Quando travar

  • Trava de produto (não sei o que fazer): pergunta no grupo, marca @thiag0xavier. Geralmente responde rápido.
  • Trava técnica: pergunta no grupo, marca @zanlucathiago. Não fica travado mais de 1h sem perguntar.
  • Trava de setup: documenta no PR ou na própria issue. Não some — escreve "tô preso em X há Y horas".