changelog
sakuro/dotfiles
Gera entradas no changelog a partir dos commits realizados desde o último lançamento. Use essa função quando o usuário quiser atualizar o arquivo CHANGELOG.md, adicionar entradas ao changelog ou documentar as alterações.
...Expandir tudoSobre changelog
A habilidade “ changelog ” automatiza o processo de geração de entradas no arquivo ` changelog ` a partir dos commits do Git realizados desde o último lançamento. Ela foi projetada para ajudar as equipes de desenvolvimento a manter um registro consistente e focado no usuário das alterações em seus projetos. Ao analisar mensagens de commit e distinguir entre alterações visíveis ao usuário e alterações internas, essa skill garante que o arquivo CHANGELOG.md reflita atualizações significativas e relevantes para os usuários finais. Isso reduz o trabalho manual, evita que alterações sejam ignoradas e garante que a documentação de lançamento permaneça precisa e atualizada.
A skill oferece um fluxo de trabalho estruturado para extrair informações de commits, categorizar alterações e formatar entradas em um estilo padronizado. Os principais recursos incluem a identificação de alterações voltadas para o usuário, como novos recursos, correções de bugs, melhorias de desempenho, descontinuações e atualizações de segurança, ao mesmo tempo em que exclui alterações puramente internas, como refatoração, testes ou modificações de CI/CD. Ela extrai automaticamente referências a issues a partir de mensagens de commit e organiza as entradas em categorias predefinidas (Adicionado, Alterado, Corrigido, Removido, Obsoleto, Segurança). Além disso, determina a seção apropriada do changelog com base no branch atual, oferecendo suporte tanto a versões lançadas quanto a uma seção “Não lançado”. A skill utiliza comandos Bash e a ferramenta Edit para ler e atualizar o changelog de maneira integrada.
Essa skill é ideal para desenvolvedores, gerentes de lançamento e equipes que mantêm projetos de software de código aberto ou internos e desejam otimizar a manutenção do changelog. É especialmente útil para projetos com commits frequentes ou vários colaboradores, pois garante que todas as alterações relevantes para o usuário sejam documentadas de forma consistente. Os usuários se beneficiam da economia de tempo, da redução de erros e de um “ changelog ” profissional e estruturado, que comunica as atualizações de forma clara aos usuários finais, partes interessadas e colaboradores.
Perguntas frequentes
Como uso a skill “ changelog ”?
Comece executando a skill no repositório do seu projeto. Ela detectará automaticamente os commits desde o último lançamento, categorizará as alterações visíveis ao usuário, extrairá referências a issues e atualizará o arquivo ` CHANGELOG.md` na seção apropriada (Lançamento não publicado ou lançamento versionado).
Que tipos de alterações estão incluídas no ` changelog`?
A skill inclui alterações visíveis ao usuário, como novos recursos, correções de bugs, melhorias de desempenho, alterações compatíveis, descontinuações e correções de segurança. Alterações internas, como refatoração, testes, CI/CD ou atualizações de estilo de código, são excluídas, a menos que afetem o comportamento visível ao usuário.
Ela consegue lidar com repositórios sem tags de lançamento anteriores?
Sim, se não houver nenhuma tag de lançamento anterior, a skill analisa os commits mais recentes (até 50) para gerar entradas de “ changelog ” e as coloca na seção “Não lançado”.
Ele mescla automaticamente novas entradas com o conteúdo existente do ` changelog `?
Sim, a skill lê o arquivo .md atual de “ CHANGELOG ”, cria a seção de destino caso ela não exista e mescla as novas entradas, evitando duplicatas.
As referências a issues são obrigatórias nas mensagens de commit?
Não, as referências a issues são opcionais. Quando presentes, elas são incluídas na entrada no formato ‘(#123)’. Várias referências são mescladas como ‘(#123, #124)’.
Changelog Generation Skill
Analyzes commits since the last release and adds user-facing changes to CHANGELOG.md.
Instructions
IMPORTANT: When using this skill, announce to the user: "Using changelog skill to generate changelog entries."
1. Get Last Release Tag
# Get the most recent release tagLAST_TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo "")if [ -z "$LAST_TAG" ]; then echo "No previous release tag found. Will analyze all commits."fi
2. Get Commits Since Last Release
# If tag existsgit log --format="%H %s" "$LAST_TAG"..HEAD# If no tag, get recent commitsgit log --format="%H %s" -50
3. Analyze Each Commit
For each commit, determine if it has user-facing impact:
Include (user-facing):
- New features (
:sparkles:) - Bug fixes (
:bug:) - Performance improvements (
:zap:) - Breaking changes (
:boom:) - Deprecations
- Security fixes (
:lock:)
Exclude (internal):
- Refactoring (
:recycle:) - unless it changes behavior - Tests (
:white_check_mark:) - CI/CD changes (
:construction_worker:) - Documentation (
:memo:) - unless user-facing docs - Code style (
:art:) - Merge commits
4. Extract Issue References
Look for issue references in commit messages:
#123Fixes #123Closes #123Related to #123
5. Categorize Changes
Group entries by category:
### Added- New features### Changed- Changes to existing functionality### Fixed- Bug fixes### Removed- Removed features### Deprecated- Soon-to-be removed features### Security- Security fixes
6. Format Entries
Each entry should:
- Start with imperative verb (Add, Fix, Change, Remove)
- Be concise (one line)
- Include issue reference at end if available
Examples:
- Add list formatting support (#42)- Fix memory leak in data provider (#88)- Change default locale to en-US
7. Determine Target Section
# Get current branchBRANCH=$(git branch --show-current)# Determine target sectionif [[ "$BRANCH" =~ ^release-v([0-9]+\.[0-9]+\.[0-9]+)$ ]]; then # On release branch → target is that version TARGET_SECTION="[${BASH_REMATCH[1]}]"else # Not on release branch → target is Unreleased TARGET_SECTION="[Unreleased]"fi
8. Update CHANGELOG.md
- If target section doesn't exist, create it
- Add/merge entries under the target section
Creating new section if needed:
- For
[Unreleased]: Add after the header, before first version section - For version
[X.Y.Z]: Add after[Unreleased], before previous versions
Example structure:
## [Unreleased]## [0.7.0] - 2024-01-15### Added- New feature description (#123)## [0.6.0] - 2024-01-01...
Use the Edit tool to update CHANGELOG.md.
Workflow
- Get last release tag
- List commits since that tag
- For each commit:
- Read commit message
- Determine if user-facing
- Extract issue references
- Categorize (Added/Changed/Fixed/etc.)
- Determine target section:
- On
release-vX.Y.Zbranch →[X.Y.Z] - Otherwise →
[Unreleased]
- On
- Read current CHANGELOG.md
- Create target section if it doesn't exist
- Merge new entries with existing content in target section
- Update CHANGELOG.md using Edit tool
Guidelines
Entry Writing
- Use imperative mood: "Add" not "Added" or "Adds"
- Be specific but concise
- Focus on user impact, not implementation details
- One logical change per entry
Issue References
- Always include if available
- Format:
(#123)at end of line - Multiple issues:
(#123, #124)
Avoiding Duplicates
- Check existing [Unreleased] entries before adding
- Merge or update if similar entry exists
Example Output
## [Unreleased]### Added- Implement DecimalFormatter for number formatting (#42)- Add locale fallback support### Changed- Update default collation strength to tertiary### Fixed- Fix crash when parsing invalid locale string (#55)- Resolve memory leak in DataProvider (#58)
Arguments
This skill takes no arguments. It always analyzes commits from the last release tag to HEAD.
Instalar changelog
Baixe e extraia os arquivos de habilidades para o diretório .claude/skills/.
Baixar ZIPClone o repositório e copie os arquivos da habilidade para o seu projeto.
git clone https://github.com/sakuro/dotfiles/blob/main/.config/claude/skills/changelog/SKILL.md # Copy SKILL.md to your .claude/skills/ directory
Copiar





Lar
