commit-message-storyteller
Ajuda seu agente a criar mensagens de commit que explicam o motivo das alterações. Facilita o acompanhamento do histórico do projeto e a colaboração em equipe.
O que ela faz
Esta ferramenta cria mensagens de 'commit' (registros de alterações em código) que explicam por que uma mudança foi feita, não apenas o que mudou. Ela segue um formato padrão para ajudar outros programadores a entenderem o histórico do código.
Quando usar
- ✓Quando você quer escrever uma mensagem de commit.
- ✓Quando você cola um resumo das suas alterações (diff) e pede para descrever.
- ✓Quando você quer um histórico de código mais claro para projetos em equipe ou de código aberto.
Exemplo do que pedir para a IA
“Escreva uma mensagem de commit para as seguintes alterações: [cole aqui o resumo das suas alterações]”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
A ferramenta analisa o que mudou no código e por que você fez a alteração. Depois, ela usa essas informações para criar uma mensagem de commit clara, seguindo um formato específico que explica o motivo da mudança.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add github/awesome-copilot --skill commit-message-storytellerOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/github/awesome-copilot/main/skills/commit-message-storyteller/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Narrador de Mensagens de Commit
Transforma diffs brutos do git e descrições de alterações em mensagens de commit claras e orientadas por histórias, que seguem a especificação Conventional Commits. Em vez de "atualizar arquivo.js", você obtém mensagens que comunicam intenção, contexto e impacto.
Quando Usar Esta Habilidade
- O usuário diz "escreva uma mensagem de commit", "me ajude a commitar" ou "gere um commit"
- O usuário cola um diff do git ou descreve alterações de código
- O usuário diz "como devo commitar isso?" ou "resuma meu diff"
- O usuário quer um histórico de commits melhor para sua equipe ou projeto de código aberto
- O usuário está preparando um pull request e quer mensagens de commit significativas
Pré-requisitos
Tenha pelo menos um dos seguintes itens prontos:
- Saída de
git diffougit diff --staged - Uma descrição do que você alterou e por quê
- Uma lista de arquivos modificados
Como Funciona
Etapa 1: Reunir o Contexto da Alteração
Pergunte ao usuário (ou infira do diff) sobre:
- O que mudou — arquivos, funções, lógica afetada
- Por que mudou — correção de bug, novo recurso, refatoração, desempenho, etc.
- Quem/o que desencadeou — número do problema, solicitação do usuário, débito técnico, etc.
Se o usuário fornecer um git diff bruto, extraia esse contexto automaticamente do diff.
Etapa 2: Identificar o Tipo de Commit
Mapeie a alteração para um tipo do Conventional Commits usando este guia:
| Tipo | Use Quando |
|---|---|
feat |
Um novo recurso ou capacidade é adicionado |
fix |
Um bug ou comportamento incorreto é corrigido |
refactor |
Código reestruturado sem alterar o comportamento |
perf |
Uma alteração que melhora o desempenho |
docs |
Apenas alterações na documentação |
style |
Formatação, espaços em branco, ponto e vírgula ausentes (sem alteração de lógica) |
test |
Adicionando ou atualizando testes |
chore |
Processo de build, atualizações de dependência, alterações de configuração |
ci |
Alterações no pipeline de CI/CD |
revert |
Revertendo um commit anterior |
Veja references/conventional-commits-guide.md para exemplos detalhados.
Etapa 3: Escrever a Mensagem de Commit
Siga esta estrutura:
<type>(<optional scope>): <short imperative summary>
<body — the story: why this change was made, what problem it solves>
<footer — issue refs, breaking change notices>
Regras para Cada Parte
Linha de assunto (primeira linha):
- Use o modo imperativo: "adicionar", "corrigir", "remover" — não "adicionado" ou "corrige"
- Máximo de 72 caracteres
- Sem ponto no final
- Minúsculas após os dois pontos
Corpo (a história):
- Explique o porquê, não o o quê (o diff já mostra o quê)
- Descreva o problema que existia antes desta alteração
- Mencione quaisquer alternativas consideradas, se relevante
- Mantenha as linhas com menos de 100 caracteres
- Separe do assunto com uma linha em branco
Rodapé:
- Referencie problemas:
Closes #123,Fixes #456,Refs #789 - Marque alterações que quebram compatibilidade:
BREAKING CHANGE: <description>
Etapa 4: Gerar Saída
Produza a mensagem de commit em um bloco de código copiável, seguido por uma explicação em inglês simples de uma linha da história que você contou.
Exemplo de saída:
fix(auth): prevent token refresh loop on expired sessions
When a user's session expired mid-request, the auth middleware was
triggering a token refresh, which itself failed validation and triggered
another refresh — causing an infinite retry loop that crashed the app.
This adds a recursion guard flag that aborts the refresh cycle if a
refresh is already in progress, returning a clean 401 instead.
Closes #312
História contada: Um loop infinito silencioso ao expirar a sessão estava travando o aplicativo; isso interrompe o ciclo mais cedo e retorna um erro limpo.
Múltiplos Commits de Um Único Diff
Se o diff contiver alterações logicamente separadas, divida-as em várias mensagens de commit e informe o usuário. Use esta heurística:
- Arquivos diferentes com propósitos não relacionados → provavelmente commits separados
- Mesmo arquivo, mas preocupações distintas (por exemplo, correção de bug + refatoração) → sugira dividir
- Tudo estritamente acoplado → um commit está bom
Casos de Borda
| Situação | Como Lidar |
|---|---|
| Usuário não fornece contexto além de um diff | Infira tipo e escopo a partir de nomes de arquivos e símbolos alterados |
| Alterações abrangem muitos arquivos sem um tema claro | Pergunte: "Isso é uma mudança lógica ou várias?" |
| Alteração que quebra compatibilidade detectada | Adicione o rodapé BREAKING CHANGE: automaticamente |
| Usuário diz "mantenha curto" | Omita o corpo, apenas escreva uma linha de assunto forte |
| Nenhum número de problema disponível | Omita o rodapé inteiramente |
Referência Rápida
# Obtenha seu diff preparado para colar no Copilot
…
Perguntas frequentes
O que é um 'commit'?
Um commit é como um 'salvar' no histórico de um projeto de programação. Ele registra um conjunto de alterações feitas no código.
O que é 'Conventional Commits'?
É um conjunto de regras simples para criar mensagens de commit. Ajuda a padronizar como as alterações são descritas, facilitando a leitura e a automação.
O que é 'git diff'?
É um comando que mostra as diferenças entre as versões do seu código. É como um 'antes e depois' das suas alterações.
Detalhes
Descrição original do autor
Analyzes git diffs or staged changes and generates narrative commit messages that explain WHY a change was made, not just what changed — following Conventional Commits format. Use when asked to "write a commit message", "generate a commit", "describe my changes", "what should I commit this as", "commit this", "summarize my diff", or "help me commit". Works with git diff output, staged files, or pl
repo: github/awesome-copilot
Popularidade
- Estrelas no GitHub
- 40 mil
- Posição no ranking
- #5057
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
acquire-codebase-knowledge
Ajuda seu agente a entender e documentar um projeto de código existente. É útil para novas pessoas entrarem no projeto ou para ter uma visão geral da arquitetura.
github/awesome-copilot
acreadiness-assess
Faz seu agente avaliar a prontidão de um projeto para IA e gerar um relatório. É útil para entender o quão bem um projeto está preparado para usar ferramentas de IA.
github/awesome-copilot
acreadiness-generate-instructions
Ajuda seu agente a criar instruções para ferramentas de IA baseadas em uma avaliação. É útil para melhorar a forma como a IA interage com o código e fecha lacunas identificadas.
github/awesome-copilot
acreadiness-policy
Faz seu agente ajudar a definir ou aplicar políticas para avaliação de projetos de IA. É útil para padronizar a forma como os projetos são avaliados e garantir conformidade.
github/awesome-copilot
Skills parecidas
benchmark-optimization-loop
Faz seu agente melhorar a velocidade de algo de forma medida. Ele testa várias versões e escolhe a mais rápida que ainda funciona corretamente.
affaan-m/ECC
change-impact
Ajuda seu agente a analisar o impacto de mudanças no código antes de fazê-las. Ele compara o planejado com o real depois, cobrindo caminhos, dados, testes e documentação. É útil para mudanças arriscadas ou que afetam várias partes do sistema.
affaan-m/ECC
click-path-audit
Faz seu agente rastrear todos os botões e interações do usuário para achar bugs. Ele encontra problemas onde funções parecem funcionar sozinhas, mas falham juntas. Útil quando bugs persistem mesmo após depuração.
affaan-m/ECC