Gerador de Keep a Changelog
Gera um CHANGELOG.md no formato Keep a Changelog 1.1.0 com seções Added, Changed, Deprecated, Removed, Fixed, Security.
Keep a Changelog: um changelog feito para humanos
Keep a Changelog é uma convenção criada por Olivier Lacan em 2014 (mantida em github.com/olivierlacan/keep-a-changelog) que define como estruturar um arquivo CHANGELOG.md na raiz do projeto. O princípio é que changelog é escrito para humanos, não para máquinas: um log de commits cru não é um changelog. Cada versão tem sua própria seção, mudanças semelhantes ficam agrupadas e o release mais novo aparece no topo.
Um arquivo canônico começa com cabeçalho, descrição, uma seção ## [Unreleased] que acumula mudanças pendentes e depois as versões em ordem cronológica inversa. Cada versão agrupa entradas sob títulos fixos:
# Changelog
## [Unreleased]
### Added
- Novo webhook para eventos de assinatura.
## [1.2.0] - 2026-05-20
### Added
- Endpoint de importação em lote.
### Fixed
- Parser de data quebrava em leap seconds.
### Security
- Atualizado lodash para corrigir CVE-2026-1234.
[Unreleased]: https://github.com/acme/app/compare/1.2.0...HEAD
[1.2.0]: https://github.com/acme/app/compare/1.1.0...1.2.0
As seis categorias de mudança
- Added — novas funcionalidades.
- Changed — alterações em funcionalidade existente.
- Deprecated — recursos ainda funcionando, marcados para remoção.
- Removed — recursos removidos no release.
- Fixed — correções de bug.
- Security — vulnerabilidades e patches de CVE.
Por que um changelog cultivado ainda importa
Usuários decidem se atualizam lendo o changelog, não folheando git log. Um arquivo bem cuidado constrói confiança nos mantenedores e em contextos regulados (segurança, auditoria, compliance) o changelog costuma ser o registro oficial do que foi entregue e quando — sobretudo para CVEs e breaking changes. Os links de comparação no rodapé ([1.2.0]: .../compare/1.1.0...1.2.0) levam direto para o diff do git de qualquer release.
Cultivado vs auto-gerado
Duas culturas convivem. Ferramentas Conventional Changelog parseiam Conventional Commits e emitem o arquivo automaticamente — é rápido, mas o texto é tão bom quanto suas mensagens de commit. Keep a Changelog é escrito à mão e lê melhor, mas custa tempo editorial. Muitos projetos misturam: gerar um rascunho dos commits e revisar antes de tagear o release. CLIs como kacl, o parser npm keepachangelog e GitHub Actions conseguem fazer lint do arquivo em pull requests para que o formato nunca quebre.
Changelog vs git tags vs release notes
Git tags marcam versões em commits, mas não dizem nada sobre o conteúdo. Release notes são o markdown livre exibido na UI de releases do GitHub/GitLab, em geral marketing por release. O changelog é um arquivo versionado dentro do repo, com histórico, que complementa os dois: tags apontam para commits, release notes vendem o valor, e o changelog explica o diff em um lugar estável.
Perguntas frequentes
Preciso escrever uma entrada por commit? Não. Você escreve no momento do release. Durante o desenvolvimento, acumule sob ## [Unreleased] e mova para o título versionado no momento de tagear.
Posso gerar dos commits? Sim, se você seguir Conventional Commits, ferramentas como conventional-changelog ou git-cliff produzem saída compatível com Keep a Changelog. Revisar o rascunho antes de publicar ainda é recomendado.
Um item depreciado fica para sempre? Não. Quando o recurso é removido de fato, a entrada migra de Deprecated no release antigo para Removed no release que o tira.
Devo traduzir o changelog? A convenção é manter uma fonte única em inglês e linkar traduções a partir de um site de docs separado. Cópias divergentes de CHANGELOG.md por idioma se desincronizam rápido.
Ferramentas Relacionadas
Gerador de Liquibase changelog a partir de tabela
Gera um changelog Liquibase (YAML) com changeSet createTable — a partir do nome da tabela.
Gerador SVG Padrão Favo de Mel
Gere um padrão de favo de mel (hexágonos) em SVG repetível, ajustando tamanho e cores. Ideal para fundos de sites, texturas e design — copie o código.
Paleta Análoga
Gere uma paleta de cores análogas a partir de uma cor base — três tons vizinhos na roda HSL que combinam naturalmente. Ideal para sites, design e branding.