Seja bem vindo ao Next Commit

NextCommit

Ferramenta que gera recomendações com Inteligência Artificial para ajudar desenvolvedores a melhorar e evoluir seus projetos e códigos de programação.

Visão geral

O NextCommit coleta automaticamente seus dados do WakaTime, organiza tudo em um banco de dados e transforma os registros diários em resumos claros e recomendações práticas para você melhorar foco, reduzir retrabalho e evoluir continuamente na sua rotina de programação.

Como funciona

  1. Coleta diária: a aplicação importa seus heartbeats do WakaTime.
  2. Organização dos dados: salva e estrutura informações como languages, editors, projects, branches, machines e categories.
  3. Processamento: gera um summary por dia com totais, “top 5” por categoria e indicadores de diversidade/tempo.
  4. Insights: cria recomendações automáticas com base nos seus padrões de trabalho.
  5. Visualização: você acessa os detalhes do dia pela interface web (ex.: /?on=YYYY-MM-DD).

O que você vê

  • Resumo diário estruturado:
    • Total de tempo (ex.: 3h 42m) e principais destaques do dia.
    • Top linguagens, editores, projetos, branches, máquinas e categorias.
    • Quebras por seção (top 5) com tempo e percentual.
  • Recomendações inteligentes:
    • Sugestões para diminuir alternância de contexto e evitar retrabalho.
    • Dicas de organização do código, acessibilidade e build (quando aplicável).
    • Pontos rápidos de melhoria em fluxo, tooling e hábitos de commits.

Por que usar

  • Clareza: passa de métricas brutas para insights acionáveis.
  • Foco: ajuda a priorizar tarefas e reduzir distrações técnicas.
  • Evolução contínua: feedback diário para melhorar qualidade e velocidade.

Exemplo de fluxo diário

Pela manhã, o NextCommit importa seus dados do dia anterior, calcula o resumo e gera recomendações. Você abre a página do dia para ver:

Aqui vai um raio-x do dia e acoes praticas, baseadas no JSON:

Resumo do dia
- 1h37 totais (86.8% codando, 13.2% docs)
- Principal: Python 1h21
- Projeto: nextcommit-django 1h36
- Foco tecnico: django (~60m), json (~31m), datetime/tracking (~26m cada), typing (~26m), pathlib (~19m), openai (~15m), requests/time (~11m)
- 613 adicoes vs 4 remocoes de codigo (grandes incrementos, pouca limpeza)
- 1 maquina, Linux, VS Code dominante
- 1m30 em Unknown Project

O que foi bem
- Boa proporcao de tempo em Python e escrita de docs (12m) para consolidar mudancas
- Investimento em typing, pathlib e estrutura de dados (tende a melhorar manutencao)
- Foco claro em uma feature Django com integracao externa (openai/requests) e tratamento de tempo

Riscos/alertas rapidos
- Muitas adicoes e poucas remocoes: risco de PRs grandes, cobertura de testes insuficiente e divida tecnica
- Uso de datetime/time pode gerar bugs de timezone (America/Sao_Paulo) se nao estiver tudo aware/UTC
- Integracao com OpenAI/requests sem timeouts/retries/logs pode causar travas e flutuar confiabilidade
- Unknown Project sugere perda de rastreabilidade

Acoes de alto impacto (1-2h)
- Qualidade de codigo
  - Ativar pre-commit: black, ruff, isort, mypy, bandit, end-of-file-fixer, trailing-whitespace
  - VS Code: format on save + ruff + mypy/pyright + pytest + Django
- Testes essenciais
  - Cobrir serializacao JSON e normalizacao de datas (UTC), inclusive casos de horario de verao
  - Tests para integracao com OpenAI/requests com timeouts e retries (usar VCR.py ou responses)
- Confiabilidade de integracoes
  - requests.Session + HTTPAdapter com Retry (exponential backoff), timeout padrao, user-agent claro
  - Para OpenAI: backoff, limites de taxa, timeouts, logs de latencia, mascarar PII nos logs
- Timezone e datas
  - Garantir uso de timezone.now() (nao datetime.now())
  - Armazenar em UTC, converter para local apenas em apresentacao
  - Normalizar entradas/saidas JSON em ISO 8601 com timezone
- WakaTime hygiene
  - Renomear/associar o Unknown Project
  - Definir meta diaria (ex.: 2h foco) para feedback mais util

Ajustes especificos no Django
- Configs e segredos
  - Separar settings por ambiente e usar variaveis de ambiente (.env com django-environ)
  - Verificar ALLOWED_HOSTS, CSRF, CORS e django check --deploy
- Modelos e queries
  - Se tracking gera muitas leituras, revisar select_related/prefetch_related e indices
  - Criar migracoes pequenas e frequentes; considerar squash depois
- APIs/serializacao
  - Se usa DRF: validar JSON via Serializers (tipos, ranges, coercao de timezone)
  - Se views puras: validar com pydantic/marshmallow antes da logica
- Contas/seguranca
  - Confirmacao de email, politicas de senha, 2FA se aplicavel
  - Protecao contra brute force (django-axes) e configuracao de expiracao de sessao
- Observabilidade
  - Sentry para erros; logs estruturados (JSON) com correlacao de requests; metricas basicas

DevEx e fluxo de trabalho
- Commits e PRs menores, focados por assunto; manter escopo apertado
- Rodar testes e linters no CI (GitHub Actions); coverage minimo
- Pin de dependencias (poetry ou pip-tools) e atualizacoes semanais

Sugerido para amanha (blocos curtos)
- 25-30m: pre-commit + ruff/black/isort/mypy/bandit e format on save
- 40-60m: testes para JSON/datetime (UTC, DST, inputs invalidos) e funcoes criticas
- 20-30m: resiliencia nas chamadas OpenAI/requests (Session, Retry, timeout, logs)
- 10m: arrumar Unknown Project e metas no WakaTime

Sinais a monitorar
- Aumento de tempo em json/datetime sem queda de bugs
- Tamanho de PRs e tempo de revisao
- Latencia/erros das chamadas externas
- N+1 queries no Django (use Django Debug Toolbar durante dev)

Se quiser, envio um checklist de pre-commit e um snippet de Retry/timeout para requests/OpenAI.

Resultados esperados

  • Menos context switching e retrabalho.
  • Commits mais consistentes e objetivos.
  • Time-to-done menor nas tarefas recorrentes.