changelog
sakuro/dotfiles
Génère des entrées de journal des modifications à partir des commits effectués depuis la dernière version. À utiliser lorsque l'utilisateur souhaite mettre à jour le fichier CHANGELOG.md, ajouter des entrées au journal des modifications ou documenter les modifications apportées.
...Développer toutÀ propos changelog
La compétence « changelog » automatise le processus de génération des entrées changelog à partir des commits Git effectués depuis la dernière version. Elle est conçue pour aider les équipes de développement à maintenir un historique cohérent et axé sur l’utilisateur des modifications apportées à leurs projets. En analysant les messages de commit et en distinguant les modifications visibles par les utilisateurs de celles internes, cette compétence garantit que le fichier ` CHANGELOG.md` reflète des mises à jour pertinentes pour les utilisateurs finaux. Cela réduit le travail manuel, évite que des modifications ne soient négligées et garantit que la documentation de la version reste précise et à jour.
Cette compétence fournit un workflow structuré pour extraire les informations de commit, catégoriser les modifications et formater les entrées selon un style standardisé. Parmi ses principales fonctionnalités, on peut citer l’identification des modifications destinées aux utilisateurs, telles que les nouvelles fonctionnalités, les corrections de bogues, les améliorations de performances, les dépréciations et les mises à jour de sécurité, tout en excluant les modifications purement internes comme la refactorisation, les tests ou les modifications CI/CD. Elle extrait automatiquement les références aux tickets à partir des messages de commit et organise les entrées en catégories prédéfinies (Ajouté, Modifié, Corrigé, Supprimé, Obsolète, Sécurité). De plus, il détermine la section appropriée de l’ changelog en fonction de la branche actuelle, prenant en charge à la fois les versions publiées et une section « Non publiée ». Cette compétence utilise des commandes Bash et l’outil Edit pour lire et mettre à jour l’ changelog en toute transparence.
Cette skill est idéale pour les développeurs, les responsables de versions et les équipes chargées de la maintenance de projets logiciels open source ou internes qui souhaitent rationaliser la gestion de l’ changelog. Elle est particulièrement utile pour les projets comportant des commits fréquents ou de multiples contributeurs, car elle garantit que toutes les modifications pertinentes pour les utilisateurs sont documentées de manière cohérente. Les utilisateurs bénéficient d’un gain de temps, d’une réduction des erreurs et d’une « changelog » professionnelle et structurée qui communique clairement les mises à jour aux utilisateurs finaux, aux parties prenantes et aux contributeurs.
FAQ
Comment utiliser la compétence « changelog » ?
Commencez par exécuter la skill sur le dépôt de votre projet. Elle détectera automatiquement les commits effectués depuis la dernière version, classera les modifications visibles par les utilisateurs, extraira les références aux tickets et mettra à jour le fichier ` CHANGELOG.md` dans la section appropriée (version non publiée ou version publiée).
Quels types de modifications sont inclus dans le fichier « changelog » ?
La skill inclut les modifications visibles par les utilisateurs, telles que les nouvelles fonctionnalités, les corrections de bogues, les améliorations de performances, les changements de compatibilité, les dépréciations et les correctifs de sécurité. Les modifications internes, telles que la refactorisation, les tests, le CI/CD ou les mises à jour du style de code, sont exclues, sauf si elles affectent le comportement visible par les utilisateurs.
Peut-elle traiter des dépôts ne comportant pas de balises de version antérieures ?
Oui, s’il n’existe aucune balise de version antérieure, la skill analyse les commits les plus récents (jusqu’à 50) pour générer des entrées « changelog » et les place dans la section « Non publié ».
Fusionne-t-il automatiquement les nouvelles entrées avec le contenu existant d’ changelog?
Oui, la skill lit le fichier .md actuel d’ CHANGELOG, crée la section cible si elle n’existe pas et fusionne les nouvelles entrées tout en évitant les doublons.
Les références aux tickets sont-elles obligatoires dans les messages de commit ?
Non, les références aux tickets sont facultatives. Lorsqu’elles sont présentes, elles sont incluses dans l’entrée au format « (#123) ». Les références multiples sont fusionnées sous la forme « (#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.
Installer changelog
Téléchargez et décompressez les fichiers de compétences dans votre répertoire .claude/skills/.
Télécharger le ZIPClonez le dépôt et copiez les fichiers de compétence dans votre projet.
git clone https://github.com/sakuro/dotfiles/blob/main/.config/claude/skills/changelog/SKILL.md # Copy SKILL.md to your .claude/skills/ directory
Copier





Maison
