
slim-changelog
by NASA-AMMOS
Software Lifecycle Improvement & Modernization
SKILL.md
name: slim-changelog description: Create and maintain human-readable changelogs for software projects using Keep a Changelog standards. Use when creating project changelogs, documenting releases, managing version history, or establishing transparent communication about software changes for users and contributors.
Changelog Writer
Overview
A changelog is a vital tool for documenting significant changes in software over time in a format accessible to humans. Unlike developer-oriented commit messages or GitHub's auto-generated release notes, changelogs focus on feature changes rather than code-level details, making them essential for transparency and user communication.
This skill helps you create and maintain professional CHANGELOG.md files following the Keep a Changelog standard, ensuring your project's evolution is clearly communicated to users, contributors, and stakeholders.
When to Use This Skill
- Starting a new project that needs version tracking and change documentation
- Preparing for software releases and need to communicate changes clearly
- Establishing transparency in software development and release cycles
- Complementing GitHub releases with human-readable feature summaries
- Onboarding contributors who need to understand project evolution
- Meeting documentation requirements for enterprise or open-source projects
Prerequisites
- Semantic versioning familiarity: Understanding of version numbering (MAJOR.MINOR.PATCH)
- Markdown knowledge: Basic Markdown formatting for consistent documentation
- Release process awareness: Understanding of your project's release workflow
Why Changelogs Matter
Q: Why maintain a CHANGELOG.md if GitHub has auto-generated release notes?
A: They are complementary tools serving different audiences:
- GitHub releases: Commit-oriented, developer-focused, platform-dependent
- Changelogs: Feature-oriented, user-focused, platform-independent
Changelogs ensure:
- Future-proof accessibility of change information
- Broader audience understanding beyond developers
- Feature-centric communication rather than commit-level details
- Independence from code hosting platforms
Workflow
Step 1: Team Agreement
Before implementing changelogs, discuss their importance with your team:
- Value proposition: Explain benefits for transparency and user communication
- Maintenance responsibility: Assign ownership for changelog updates
- Integration timing: Decide when to update (during development, at release, etc.)
- Audience consideration: Define who the changelog serves (users, contributors, stakeholders)
Step 2: Create the Changelog
-
Copy the template:
cp assets/CHANGELOG.md CHANGELOG.md -
Customize the header:
- Replace project-specific information
- Ensure Keep a Changelog and Semantic Versioning references remain
-
Add your first release entry:
- Replace
[INSERT SEMANTIC VERSION...]with actual version (e.g.,[1.0.0] - 2024-01-15) - Fill in the change categories with actual changes
- Replace
Step 3: Maintain the Changelog
For each release, add a new section above previous releases:
## [1.1.0] - 2024-02-15
### Added
- New dashboard feature for user analytics
- Export functionality for reports
### Changed
- Improved performance of search queries
- Updated user interface design
### Fixed
- Fixed login issue with special characters
- Resolved memory leak in background processing
### Removed
- Deprecated legacy API endpoints
Step 4: Integrate with Documentation
-
Link from README.md:
## Changelog See [CHANGELOG.md](CHANGELOG.md) for a detailed history of changes. -
Reference in release communications:
- Include changelog excerpts in release announcements
- Link to changelog from GitHub releases
- Reference in project documentation
Keep a Changelog Best Practices
Standard Categories
Use these categories consistently:
- Added: New features and functionality
- Changed: Changes to existing functionality
- Deprecated: Soon-to-be removed features
- Removed: Features removed in this version
- Fixed: Bug fixes
- Security: Security-related changes
Writing Guidelines
- Write for humans: Use clear, non-technical language when possible
- Focus on impact: Explain what users will experience, not implementation details
- Group related changes: Organize similar changes together
- Be specific: Avoid vague descriptions like "various improvements"
- Include breaking changes: Clearly mark and explain breaking changes
Version Management
- Use semantic versioning: MAJOR.MINOR.PATCH format
- Keep dates consistent: Use YYYY-MM-DD format
- Latest first: Most recent changes at the top
- Unreleased section: Track upcoming changes before release
Template Usage
The provided CHANGELOG.md template includes:
- Header: Standard Keep a Changelog format
- Version section: Template for release entries
- Change categories: Added, Changed, Removed sections
- Placeholders:
[INSERT...]markers for easy customization
Customization Steps
- Replace placeholders: Fill in all
[INSERT...]sections - Add relevant categories: Include Deprecated, Fixed, Security if needed
- Update project information: Customize header if project-specific details needed
- Establish format consistency: Maintain formatting across all entries
Examples and References
Demo Implementations
- Terraformly Changelog - Real project example
- Keep a Changelog Example - Reference implementation
Additional Resources
- Keep a Changelog - Official standard and examples
- Semantic Versioning - Version numbering guidelines
- SLIM Documentation - Comprehensive changelog guide
Common Patterns
Breaking Changes
### Changed
- **BREAKING**: Authentication now requires API keys (see migration guide)
- Updated user permissions model
Security Updates
### Security
- Fixed XSS vulnerability in user input validation
- Updated dependencies to address security advisories
Deprecation Notices
### Deprecated
- Legacy API endpoints (will be removed in v2.0.0)
- Old configuration format (use new YAML format)
Assets Available
CHANGELOG.md: Complete Keep a Changelog template with standard sections and placeholders for easy customization
Troubleshooting
Q: How often should I update the changelog? A: Update for every release, or maintain an "Unreleased" section for ongoing changes.
Q: What if I forgot to document changes in previous releases? A: You can retroactively add changelog entries, but mark them clearly as retrospective updates.
Q: Should I include every small change? A: Focus on user-facing changes. Minor bug fixes and internal refactoring may not need detailed changelog entries.
Q: How do I handle breaking changes? A: Mark them clearly with BREAKING labels and provide migration guidance or links to documentation.
Score
Total Score
Based on repository quality metrics
SKILL.mdファイルが含まれている
ライセンスが設定されている
100文字以上の説明がある
GitHub Stars 100以上
1ヶ月以内に更新
10回以上フォークされている
オープンIssueが50未満
プログラミング言語が設定されている
1つ以上のタグが設定されている
Reviews
Reviews coming soon


