11 de maio de 2026
Mensagens de Commit: Comparação entre LLMs e Humanos
Nathalia Satie Gomazako; Daniele Aparecida Cicillini Pimenta
Resumo elaborado pela ferramenta ResumeAI, solução de inteligência artificial desenvolvida pelo Instituto Pecege voltada à síntese e redação.
O desenvolvimento de software moderno é caracterizado por projetos cada vez mais complexos e colaborativos, nos quais múltiplos desenvolvedores trabalham simultaneamente em diferentes funcionalidades e correções. Nesse contexto, o controle de versão surge como uma ferramenta fundamental para gerenciar mudanças, rastrear evoluções e facilitar a colaboração entre equipes. O sistema Git, desenvolvido em 2005, revolucionou a forma como os projetos de software são versionados, oferecendo funcionalidades robustas como ramificação, mesclagem e histórico completo de alterações (Torvalds e Hamano, 2005). Dentro do ecossistema de controle de versão, as mensagens de commit desempenham um papel crucial na documentação das mudanças realizadas. Uma mensagem bem estruturada deve comunicar de forma clara e concisa o que foi alterado, por que a alteração foi necessária e, quando apropriado, como a implementação foi realizada. Estas mensagens servem como um registro histórico valioso, permitindo que desenvolvedores compreendam rapidamente o contexto de mudanças passadas, facilitem a resolução de conflitos e mantenham a qualidade do código ao longo do tempo. A qualidade dessas mensagens varia significativamente entre desenvolvedores e projetos, resultando em inconsistências que podem comprometer a eficácia do controle de versão. Mensagens vagas, excessivamente longas ou descontextualizadas dificultam a compreensão das alterações e podem levar a problemas durante a manutenção do software (Dhamija e Uzun, 2014). Esta variabilidade na qualidade motivou pesquisas e iniciativas para padronizar e melhorar a documentação de commits. Recentemente, o advento de modelos de linguagem de grande escala tem transformado diversas áreas da computação, incluindo a geração de código, documentação e análise de texto. Estes modelos, treinados em vastas quantidades de dados de código e documentação técnica, demonstram capacidades na compreensão de contexto, geração de texto natural e tradução entre linguagens de programação e linguagem humana (Hou et al., 2023). A aplicação de modelos de linguagem na geração automatizada de mensagens de commit representa uma oportunidade promissora para melhorar a consistência e qualidade da documentação de alterações em projetos de software. A escolha do repositório TensorFlow para a análise foi motivada por características que o tornam ideal para o estudo de padrões de commit e geração de mensagens automatizadas. O TensorFlow é uma biblioteca de código aberto para computação numérica e aprendizado de máquina, mantida por uma comunidade global de desenvolvedores. Como um dos projetos mais ativos e influentes no ecossistema de tecnologia, apresenta alta frequência de commits, diversidade de tipos de alterações, como correções de bugs, novas funcionalidades e melhorias de performance, além de uma base de código complexa que abrange múltiplas linguagens de programação e diferentes níveis de abstração. O repositório gera uma quantidade expressiva de atividade de desenvolvimento, com centenas de commits realizados mensalmente por uma equipe distribuída. Esta alta frequência de alterações proporciona um conjunto de dados rico e diversificado para análise, permitindo capturar diferentes padrões de mudança, estilos de mensagem e contextos de desenvolvimento. A complexidade técnica do projeto, que envolve otimizações de baixo nível e interfaces de alto nível, oferece uma variedade de cenários que testam a capacidade dos modelos de linguagem de gerar mensagens apropriadas para diferentes tipos de alteração. Apesar da existência de estudos que discutem boas práticas na redação de mensagens, ainda são raras as análises empíricas aplicadas a repositórios de grande porte e impacto. A literatura carece de investigações que combinem métricas quantitativas e qualitativas para avaliar a qualidade de mensagens em projetos desse nível de complexidade. Nesse sentido, o estudo contribui ao realizar uma análise explícita e sistemática no repositório TensorFlow, explorando como modelos de linguagem podem apoiar a padronização e clareza das mensagens.
A metodologia adotada possui natureza aplicada, fundamentada na abordagem documental e quantitativa, com o objetivo de investigar a viabilidade e eficácia da geração automatizada de mensagens de commit utilizando modelos de linguagem. O processo metodológico é estruturado em três fases principais: coleta e preparação de dados, geração automatizada de mensagens e análise comparativa dos resultados. Na primeira fase, foram extraídos commits reais do repositório TensorFlow através da interface de programação de aplicações do GitHub, especificamente utilizando o endpoint REST que retorna informações detalhadas sobre cada alteração, incluindo o identificador único, a mensagem original, o autor, a data e as modificações realizadas nos arquivos, conhecidas como diffs. Para realizar a extração, utilizou-se um script em linguagem Python, versão 3.11.11, estruturado de forma modular para permitir a coleta programática de dados históricos. Considerando que o repositório possui mais de 100.000 commits desde sua criação em 2015, a extração foi delimitada às últimas 300 mensagens registradas até o dia 17 de agosto de 2025, garantindo uma base de dados robusta e representativa do desenvolvimento recente, mantendo a factibilidade computacional. O conteúdo do diff é fundamental para fornecer contexto aos modelos de linguagem, permitindo que compreendam as alterações específicas realizadas no código. No entanto, diferenças de código extensas podem exceder os limites de processamento de texto dos modelos, necessitando de estratégias de truncamento e seleção de conteúdo que priorizam as partes mais relevantes das alterações. A segunda fase envolveu a aplicação de múltiplos modelos de linguagem para gerar mensagens automatizadas baseadas nas alterações de código identificadas. Foram utilizados modelos proprietários, acessados via interface de programação em nuvem, como o GPT-3.5 e o Gemini Pro, além de modelos de código aberto executados localmente por meio da ferramenta Ollama, incluindo LLaMA 2, Mistral 7B, Phi-2 e CodeLLama. A execução local permitiu avaliar o desempenho dos modelos sem dependência de serviços externos, oferecendo controle total sobre os parâmetros de execução. A engenharia de prompt foi uma etapa crítica, envolvendo a criação de instruções que orientam o modelo sobre a tarefa e o formato de saída esperado. Utilizou-se a técnica de atribuição de papel, definindo o modelo como um desenvolvedor de software profissional. As instruções incluíram requisitos específicos: iniciar com um resumo curto de 50 a 72 caracteres, utilizar o tempo verbal presente no modo imperativo e descrever o que foi alterado e o porquê da mudança. Essa estrutura segue as boas práticas estabelecidas na literatura técnica (Chacon e Straub, 2014). A terceira fase consistiu na avaliação das mensagens geradas em comparação com as humanas, utilizando métricas de similaridade e legibilidade. A similaridade de Jaccard foi empregada para medir a sobreposição léxica entre os conjuntos de palavras das mensagens e dos diffs, variando de zero para nenhuma similaridade a um para conjuntos idênticos. Para a legibilidade, aplicou-se o índice de facilidade de leitura de Flesch, que utiliza o comprimento médio das frases e o número médio de sílabas por palavra para determinar a clareza do texto. Além disso, verificou-se a conformidade com o tamanho do resumo e a presença de verbos de ação no início das mensagens.
Os experimentos demonstraram que os modelos de linguagem são capazes de gerar mensagens de commit com estrutura clara e descritiva, apresentando frequentemente maior detalhamento do que as mensagens originais coletadas no repositório. Os modelos proprietários exibiram desempenho superior em múltiplas dimensões, destacando-se pela capacidade de inferir contexto implícito e manter maior aderência ao estilo convencional, especialmente em alterações complexas que exigem alta compreensão semântica. Por outro lado, os modelos de código aberto executados localmente apresentaram limitações em eficiência computacional e maior variabilidade na qualidade dos resultados, exigindo recursos significativos para processar tarefas que os modelos via interface de programação resolvem com maior estabilidade. Durante a fase inicial, identificou-se que os modelos tendiam a gerar mensagens excessivamente longas ou genéricas. Para mitigar esse comportamento, adotou-se uma estratégia iterativa de ajuste nos prompts, reforçando a necessidade de concisão e proibindo extrapolações além do que estava explicitamente descrito no código. A configuração do parâmetro de temperatura também se mostrou essencial; valores moderados, entre 0,3 e 0,5, ofereceram o melhor equilíbrio entre variação linguística e conformidade estrutural. A análise comparativa revelou que as mensagens escritas por humanos, embora mais curtas, frequentemente omitiam a razão da mudança, possivelmente devido à pressão por produtividade e ao caráter repetitivo da tarefa. Em contrapartida, as mensagens geradas por inteligência artificial, ao fornecerem descrições mais completas, melhoram a rastreabilidade, embora corram o risco de sobrecarregar o histórico com informações excessivamente literais. Observou-se que, em diversos casos, o commit original não apresentava informação útil sobre o código, enquanto o modelo de linguagem conseguiu extrair dados relevantes do diff para compor uma documentação pertinente. No critério de tamanho do resumo, dos 300 commits analisados, 99 casos foram cumpridos corretamente apenas pela inteligência artificial, enquanto 60 foram cumpridos apenas por humanos. Apenas 36 casos foram bem-sucedidos em ambos os grupos, e 105 casos não atenderam ao limite de 50 a 72 caracteres em nenhuma das versões. Esse resultado reforça que os modelos de linguagem conseguem seguir restrições estruturais com mais consistência do que desenvolvedores, que muitas vezes priorizam a rapidez em detrimento de normas estilísticas. No que tange ao uso do tempo verbal, a inteligência artificial superou os humanos significativamente, com 171 acertos contra 76. Enquanto os desenvolvedores tendem a adotar estilos variados e informais, os modelos seguem rigorosamente as instruções gramaticais fornecidas no prompt. Entretanto, a falha em aproximadamente um terço dos casos indica que os modelos não internalizam as regras de forma absoluta, sugerindo a necessidade de mecanismos de validação automática ou revisão humana.
A análise da legibilidade, baseada no índice de Flesch, indicou que os resumos gerados por modelos de linguagem são, em média, mais fáceis de ler do que os resumos humanos. A mediana da inteligência artificial posicionou-se acima da dos humanos, cujos textos exibiram maior dispersão e presença de valores extremamente baixos de legibilidade, refletindo o uso de estruturas complexas ou linguagem excessivamente técnica sem a devida organização. Mensagens com maior legibilidade favorecem a colaboração em equipes diversas, facilitando a integração de novos membros que podem não estar familiarizados com jargões específicos de uma parte do código. Contudo, a alta legibilidade pode resultar de uma simplificação excessiva que reduz o conteúdo técnico necessário para desenvolvedores experientes, evidenciando o desafio de equilibrar clareza e precisão informativa. A similaridade de Jaccard revelou que a distribuição das pontuações é assimétrica à esquerda, indicando que a maioria das mensagens possui baixa similaridade léxica direta com o código. Ao comparar os diffs com as mensagens, notou-se que a inteligência artificial apresenta maior sobreposição lexical (até 0,40) do que os humanos (próximo a zero). Isso indica que os modelos tendem a reutilizar termos presentes no código, resultando em descrições mais literais, enquanto humanos optam por abstrações e omissões. Essa proximidade lexical não implica necessariamente maior qualidade, mas revela um estilo de geração que prioriza a fidelidade ao conteúdo alterado (Xu et al., 2019). A capacidade de gerar mensagens a partir de diffs utilizando técnicas de processamento de linguagem natural tem sido explorada como uma forma de reduzir o esforço manual e aumentar a consistência do histórico de versões (Jiang et al., 2017). O estudo no TensorFlow confirmou que, embora a automação seja viável, a escolha do modelo e a calibração do prompt são determinantes para o sucesso da implementação. A diversidade de tipos de alterações no projeto, desde correções de defeitos até novos algoritmos, testou a robustez dos modelos em diferentes níveis de abstração. A utilização de ferramentas como o Ollama para modelos locais e interfaces de programação para modelos proprietários permitiu uma visão abrangente das tecnologias disponíveis. A prática de commits frequentes e menores é encorajada na engenharia de software para facilitar a revisão e a documentação (Robertson, 2012). Diffs excessivamente longos não apenas dificultam a análise humana, mas também prejudicam o desempenho dos modelos de linguagem devido ao limite de processamento de tokens. Portanto, a eficácia da geração automatizada está intrinsecamente ligada à adoção de boas práticas de versionamento por parte dos desenvolvedores. A integração de modelos de linguagem no fluxo de trabalho de desenvolvimento pode servir como um assistente de documentação, sugerindo mensagens que o desenvolvedor pode revisar e ajustar, promovendo uma evolução incremental da qualidade do histórico ao longo do tempo. As limitações encontradas, como a restrição a um único repositório e a dependência de métricas léxicas, sugerem que pesquisas futuras devem expandir o escopo para múltiplos domínios e incluir avaliações qualitativas baseadas na percepção de desenvolvedores reais sobre a utilidade das mensagens geradas. O uso de métricas semânticas mais avançadas também poderia fornecer uma compreensão mais profunda do alinhamento entre a intenção da mudança e a descrição gerada.
Conclui-se que o objetivo foi atingido, demonstrando que os modelos de linguagem de grande escala são ferramentas eficazes para apoiar a automação da geração de mensagens de commit, superando desenvolvedores humanos em critérios de padronização formal, como o uso do tempo verbal imperativo e a adesão aos limites de caracteres. A análise no repositório TensorFlow evidenciou que, embora os modelos proprietários apresentem maior estabilidade e capacidade de síntese, a abordagem automatizada tende a ser mais literal e detalhada, melhorando a rastreabilidade das alterações no código. Apesar das limitações de escopo e da necessidade de mecanismos de validação para evitar redundâncias, a integração dessas tecnologias no processo de desenvolvimento promete reduzir o esforço manual e aumentar a consistência da documentação técnica em projetos de software de grande porte.
Referências Bibliográficas:
Chacon, S.; Straub, B. 2014. Pro Git. 2. ed. Berkeley: Apress. 456 p.
Dhamija, Y.; Uzun, E. 2014. What makes a good commit message? In: Proceedings of the 11th Working Conference on Mining Software Repositories, Hyderabad, Índia. Anais… New York: ACM. p. 199-202.
Hou, X. et al. 2023. Large language models for software engineering: a systematic literature review. arXiv:2308.10620.
Jiang, S. et al. 2017. Automatically generating commit messages from diffs using neural machine translation. Proceedings of the 32nd IEEE/ACM International Conference on Automated Software Engineering (ASE), p. 135–146.
Robertson, S. 2012. Commit Often, Perfect Later, Publish Once: Git Best Practices. Disponível em: https://sethrobertson.github.io/GitBestPractices/. Acesso em: 26 mai. 2025.
Torvalds, L.; Hamano, J. 2005. Git: a distributed version control system. Disponível em: https://git-scm.com/. Acesso em: 15 mar. 2025.
Xu, S. et al. 2019. Commit message generation for source code changes. Proceedings of the 28th International Joint Conference on Artificial Intelligence (IJCAI), p. 3975–3981.
Resumo executivo oriundo de Trabalho de Conclusão de Curso da Especialização em Engenharia de Software do MBA USP/Esalq
Para saber mais sobre o curso, clique aqui e acesse a plataforma MBX Academy




























