Pular para o conteúdo
Skillpedia
Código em geral40 mil · #5057

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

https://github.com/github/awesome-copilot/blob/main/skills/commit-message-storyteller/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/github/awesome-copilot/blob/main/skills/commit-message-storyteller/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
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-storyteller

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/github/awesome-copilot/main/skills/commit-message-storyteller/SKILL.md -o SKILL.md
Conteú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 diff ou git 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:

  1. O que mudou — arquivos, funções, lógica afetada
  2. Por que mudou — correção de bug, novo recurso, refatoração, desempenho, etc.
  3. 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

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas