4.5 KiB
4.5 KiB
description
| description |
|---|
| Initialize a new CHANGELOG.md file following Keep a Changelog format |
Create a new CHANGELOG.md file for the project following the Keep a Changelog format standards.
Context
A CHANGELOG.md file is essential for tracking all notable changes to a project. It should:
- Follow the Keep a Changelog format (https://keepachangelog.com/en/1.0.0/)
- Use Semantic Versioning (https://semver.org/spec/v2.0.0.html)
- Be human-readable and easy to maintain
- Have clear categories for different types of changes
Task
Initialize a new changelog file with proper structure:
- Check if CHANGELOG.md exists: Don't overwrite an existing changelog
- Create the file structure:
- Add the standard header and introduction
- Include an [Unreleased] section for upcoming changes
- Add a template version section (if the project has an initial version)
- Include links to Keep a Changelog and Semantic Versioning
- Ask about initial version: Should we add an initial version entry (e.g., [1.0.0])?
- Customize for the project:
- Check if there's a version number in the project (package.json, pyproject.toml, etc.)
- Include relevant context for the specific project type
- Create the file: Write the CHANGELOG.md to the project root
- Provide guidance: Show the user how to use the new changelog
Standard Changelog Template
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
## [1.0.0] - YYYY-MM-DD
### Added
- Initial release
Categories Explanation
Include a comment in the changelog explaining the categories:
<!--
Categories for changelog entries:
- Added: New features, endpoints, or functionality
- Changed: Changes in existing functionality
- Deprecated: Soon-to-be removed features
- Removed: Removed features or functionality
- Fixed: Bug fixes and error corrections
- Security: Security improvements and vulnerability fixes
Each entry should be concise but descriptive, include technical details,
and reference relevant files, endpoints, or components.
-->
Workflow
User: I need to create a changelog for this project
You: I'll help you initialize a new CHANGELOG.md file. Let me first check if one already exists.
[Check for existing CHANGELOG.md]
Great! I don't see an existing CHANGELOG.md. Let me create one for you.
[Check for version information in package files]
I found your project is using version 1.0.0 from pyproject.toml.
I'll create a CHANGELOG.md with:
- Standard Keep a Changelog header
- [Unreleased] section for upcoming changes
- [1.0.0] section for the initial release
[Create the file]
✅ Created CHANGELOG.md in the project root!
Next steps:
1. Review the initial structure
2. Add any existing changes to the [Unreleased] section
3. Use /changelog-add when you make changes to the project
4. The changelog hook will ensure you update the changelog before each commit
Would you like me to add any specific entries to get you started?
Version Detection
Try to detect the current version from common files:
package.json(Node.js): Check the "version" fieldpyproject.toml(Python): Check [tool.poetry.version] or [project] versionCargo.toml(Rust): Check [package] versionpom.xml(Java/Maven): Check tagbuild.gradle(Gradle): Check version propertysetup.py(Python): Check version parameter__version__.py: Check version variable
Customization Options
Ask the user if they want to:
- Include an initial version entry or just [Unreleased]
- Add any specific categories they commonly use
- Include example entries to guide future updates
- Add project-specific notes or conventions
Important Notes
- Never overwrite an existing CHANGELOG.md without explicit confirmation
- Use the current date (YYYY-MM-DD format) for version entries
- Include helpful comments for first-time users
- Make sure the format is exactly correct (Keep a Changelog is specific about format)
- After creating, suggest adding it to git:
git add CHANGELOG.md
Follow-up
After creating the changelog:
- Show the user the created file
- Explain how to use it
- Mention the /changelog-add command
- Remind them about the changelog hook that will enforce updates
Remember: A good initial changelog structure sets the tone for maintaining it throughout the project's lifetime.