Agent skill
Changelog Management
Documenting changes to software over time using structured changelog formats, semantic versioning, and clear categorization to help users and developers understand what has changed.
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/data/changelog-management
SKILL.md
Changelog Management
Current Level: Expert (Enterprise Scale) Domain: Documentation / Version Control
Overview
Changelogs document changes to software over time, helping users and developers understand what has changed. Well-maintained changelogs follow structured formats, use semantic versioning, categorize changes clearly, and provide context for breaking changes and migrations.
1. Executive Summary & Strategic Necessity
-
Context: ในปี 2025-2026 Changelog Management ด้วย Semantic Versioning ช่วย Version Control ที่มีอัตโนมาติการทำงานอัตโนมาติ (Changelog Management) ใน Enterprise Scale
-
Business Impact: Changelog Management ช่วยลด Downtime ของระบบ Customer Support ผ่านการตอบคำถามอัตโนมาติการเปลี่ยนแบบ (Reduce support burden), ลดต้นทุนการจัดการทีม (Increase transparency), เพิ่มอัตรากำไร Gross Margin ผ่านการทำงานอัตโนมาติ (Faster communication), และปรับประสบทการทำงาน (Consistent quality)
-
Product Thinking: Changelog Management ช่วยแก้ปัญหา (Pain Point) ความต้องการมีการเปลี่ยนแบบที่ชัดเจน (Users need clear change history) ผ่านการทำงานอัตโนมาติ (Structured changelogs)
2. Technical Deep Dive (The "How-to")
-
Core Logic: Changelog Management ใช้ Semantic Versioning ช่วย Version Control ทำงานอัตโนมาติ:
- Semantic Versioning: กำหนด Version format (MAJOR.MINOR.PATCH)
- Change Categorization: จัดหมวดหมวดของ changes (Added, Changed, Deprecated, Removed, Fixed, Security)
- Conventional Commits: ใช้ Conventional Commits format (feat:, fix:, docs:, etc.)
- Automation: สร้าง Changelog อัตโนมาติจาก Git commits (semantic-release, standard-version)
- Release Notes: สร้าง Release notes สำหรับ end users
-
Architecture Diagram Requirements: แผนผังระบบ Changelog Management ต้องมีองค์ประกอบ:
- Git Repository: Git repository สำหรับการจัดเก็บ Source code และ Version history
- Conventional Commits: Commit message format สำหรับการจัดเก็บ Changes (feat:, fix:, docs:, etc.)
- Semantic Versioning: Version format สำหรับการจัดเก็บ Versions (MAJOR.MINOR.PATCH)
- Changelog Generator: Tool สำหรับการสร้าง Changelog จาก Git commits (semantic-release, standard-version)
- CI/CD Pipeline: CI/CD pipeline สำหรับการสร้าง Release อัตโนมาติ
- Release Notes Generator: Tool สำหรับการสร้าง Release notes สำหรับ end users
- Observability: Logging, Monitoring, Tracing สำหรับการ debug และปรับสิทท
-
Implementation Workflow: ขั้นตอนการนำ Changelog Management ไปใช้งานจริง:
- Planning Phase: กำหนด Requirement และเลือก Changelog format ที่เหมาะสม
- Conventional Commits Setup: ตั้งค่า Conventional Commits format สำหรับ Git repository
- Semantic Versioning Setup: ตั้งค่า Semantic Versioning rules สำหรับ Version bumping
- Changelog Generator Setup: ตั้งค่า Changelog generator (semantic-release, standard-version)
- CI/CD Integration: ผสาน Changelog generator เข้ากับ CI/CD pipeline
- Testing Phase: Unit test, Integration test, E2E test ด้วยจริง Scenario
- Deployment: Deploy ด้วย CI/CD pipeline, Set up automated releases
- Optimization: Optimize changelog generation, Add release notes, Improve UX
- Maintenance: Monitor changelog quality, Update changelog format, Handle edge cases
3. Tooling & Tech Stack
-
Enterprise Tools: เครื่องมือระดับอุตสาหกรรมที่เลือกใช้สำหรับ Changelog Management ใน Enterprise Scale:
- Git: Version control system สำหรับการจัดเก็บ Source code และ Version history
- Conventional Commits: Commit message format สำหรับการจัดเก็บ Changes (feat:, fix:, docs:, etc.)
- semantic-release: Automated changelog และ release generation จาก Git commits
- standard-version: Changelog และ version bumping tool สำหรับ JavaScript projects
- lerna-changelog: Changelog generator สำหรับ monorepos
- Release Drafter: GitHub App สำหรับ automated release notes
- GitHub Actions: CI/CD platform สำหรับ automated releases
- GitLab CI: CI/CD platform สำหรับ automated releases
- Husky: Git hooks สำหรับ enforcing commit message format
- Commitlint: Commit message linter สำหรับ enforcing conventional commits
-
Configuration Essentials: การตั้งค่าสำคัญสำหรับให้ระบบเสถียร Changelog Management:
- Commit Message Format: ตั้งค่า Conventional Commits format (feat:, fix:, docs:, etc.)
- Semantic Versioning Rules: ตั้งค่า Semantic Versioning rules (MAJOR, MINOR, PATCH)
- Changelog Format: เลือก Changelog format ตาม requirement (Keep a Changelog, Conventional Changelog)
- Release Branch: ตั้งค่า Release branch (main, master, develop)
- Tag Format: ตั้งค่า Tag format (v1.0.0, v1.1.0, etc.)
- Release Notes Format: ตั้งค่า Release notes format ตาม target audience
- CI/CD Configuration: ตั้งค่า CI/CD pipeline สำหรับ automated releases
- Husky Hooks: ตั้งค่า Git hooks สำหรับ enforcing commit message format
- Commitlint Rules: ตั้งค่า Commitlint rules สำหรับ enforcing conventional commits
- Release Drafter Configuration: ตั้งค่า Release Drafter สำหรับ automated release notes
4. Standards, Compliance & Security
-
International Standards: มาตรฐานที่เกี่ยวข้อง:
- ISO/IEC 27001: Information Security Management - สำหรับการจัดการ Secrets และ Access Control
- ISO/IEC 27017: Code of Practice for Information Security Controls - สำหรับ Secure Development
- GDPR: General Data Protection Regulation - สำหรับการจัดการ Personal Data และ User Consent
- SOC 2 Type II: Security Controls - สำหรับการ Audit และ Compliance
- Semantic Versioning: Industry standard สำหรับ Versioning (MAJOR.MINOR.PATCH)
-
Security Protocol: กลไกการป้องกัน Changelog Management:
- Input Validation: Validate และ Sanitize ทุก Input ก่อน processing (Prevent XSS, SQL injection)
- Output Sanitization: Filter sensitive information จาก changelog (API keys, Secrets)
- Access Control: RBAC (Role-Based Access Control) สำหรับ changelog access - บาง changelogs internal only
- Audit Trail: Log ทุก changelog access ด้วย Timestamp, User ID, และ Page accessed (สำหรับ Forensics และ Compliance)
- Rate Limiting: Per-user และ Per-IP rate limits สำหรับป้องกัน Abuse (100-1000 requests/hour)
- Secure Communication: TLS 1.3 สำหรับ HTTPS access
- Secret Management: Use Environment variables หรือ Secret Manager (AWS Secrets Manager, HashiCorp Vault)
- Content Security: CSP headers สำหรับ preventing XSS attacks
- Authentication: Implement authentication สำหรับ internal changelogs (SSO, OAuth)
- Data Encryption: Encrypt sensitive data ที่ rest ใน Database (AES-256 หรือ Customer-managed keys)
-
Explainability: (สำหรับ Changelog) ความสามารถในการอธิบายผลลัพธ์ผ่านเทคนิค:
- Clear Structure: เก็บ changelog structure สำหรับ easy navigation
- Detailed Changes: Provide detailed change descriptions สำหรับ common use cases
- Breaking Change Documentation: Document all breaking changes ด้วย clear explanations
- Migration Guides: Provide migration guides สำหรับ breaking changes
- Issue References: Link to issues and PRs สำหรับ traceability
5. Unit Economics & Performance Metrics (KPIs)
-
Cost Calculation: สูตรการคำนวณต้นทุนต่อหน่วย Changelog Management:
- CI/CD Cost = CI/CD minutes × Cost per minute
- GitHub Actions: Free tier + $0.008/minute
- GitLab CI: Free tier + $0.014/minute
- Storage Cost = Changelog storage × Cost per GB/month
- GitHub Pages: Free
- GitLab Pages: Free
- S3: $0.023/GB/month
- Domain Cost = Domain registration ($10-15/year)
- SSL Certificate Cost = $0 (Let's Encrypt) or $50-100/year (paid)
- Total Monthly Cost = CI/CD Cost + Storage Cost + Domain Cost + SSL Cost
- Infrastructure Costs = Compute ($0/month for static sites) + Storage ($0/month for static sites) + Monitoring ($0/month for static sites)
- CI/CD Cost = CI/CD minutes × Cost per minute
-
Key Performance Indicators: ตัวชี้วัดความสำเร็จทางเทคนิค:
- Changelog Usage: จำนวย visitors ต่อเดือน (Target: >1,000 visitors/month)
- Page Load Time: เวลาการโหลดหน้า (Target: <2 seconds p95)
- Release Accuracy: เปอร์เซ็นต์ของ releases ที่สำเร็จ (Target: >98%)
- Change Documentation Coverage: เปอร์เซ็นต์ของ changes ที่มี documentation (Target: >95%)
- User Satisfaction Score: 1-5 rating จาก User feedback (Target: >4.0)
- Error Rate: อัตราการ Error (Target: <1%)
- Release Time: เวลาการสร้าง Release (Target: <30 minutes)
- Changelog Generation Time: เวลาการสร้าง Changelog (Target: <5 minutes)
- Breaking Change Detection Rate: เปอร์เซ็นต์ของ breaking changes ที่ตรวจจับได้ (Target: >95%)
- Migration Guide Availability: เปอร์เซ็นต์ของ migration guides สำหรับ breaking changes (Target: >90%)
6. Strategic Recommendations (CTO Insights)
-
Phase Rollout: คำแนะนำในการทยอยเริ่มใช้งาน Changelog Management เพื่อลดความเสี่ยง:
- Phase 1: MVP (1-2 เดือน): Deploy Simple Changelog Management ด้วย Conventional Commits และ Manual changelog สำหรับ Internal team ก่อนเปิดให้ Public
- Goal: Validate Changelog Management architecture และ gather feedback
- Success Criteria: >80% changelog coverage, <5s generation time
- Risk Mitigation: Internal-only access, Manual review ก่อน Public
- Phase 2: Beta (2-3 เดือน): Expand ด้วย Automated changelog generation และ Semantic Versioning สำหรับ Selected customers
- Goal: Test scalability และ Changelog reliability
- Success Criteria: >90% changelog coverage, <3s generation time
- Risk Mitigation: Canary deployment, Feature flags, Gradual rollout
- Phase 3: GA (3-6 เดือน): Full rollout ด้วย Advanced features (Release notes, Migration guides, Multi-language support)
- Goal: Enterprise-grade changelog และ Performance
- Success Criteria: >95% changelog coverage, <2s generation time, 99.9% uptime
- Risk Mitigation: Load testing, Disaster recovery, Blue-green deployment
- Phase 1: MVP (1-2 เดือน): Deploy Simple Changelog Management ด้วย Conventional Commits และ Manual changelog สำหรับ Internal team ก่อนเปิดให้ Public
-
Pitfalls to Avoid: ข้อควรระวังที่มักจะผิดพลาดในระดับ Enterprise Scale:
- Over-engineering: สร้าง Changelog Management ที่ซ้อนเกินไป (Too many features, Complex automation) → เริ่มจาก Simple และ iterate
- No Rate Limiting: ไม่มี Rate limits ทำให้ Cost blowout และ API abuse → Implement per-IP และ per-user limits
- Outdated Changelogs: Changelogs ไม่ sync กับ releases → Implement automated changelog generation จาก Git commits
- Missing Breaking Changes: ไม่มี Breaking changes documentation ทำให้ users สับสนใจ → Document all breaking changes ด้วย migration guides
- No Version Management: ไม่มี Version management ทำให้ developers สับสนใจ → Implement clear versioning strategy
- No Release Notes: ไม่มี Release notes ทำให้ users ยากในการ understand changes → Provide user-friendly release notes
- No Automation: ไม่มี Automation ทำให้ manual work เยอะมาก → Implement automated changelog generation
- Poor Commit Messages: Commit messages ไม่ follow format ทำให้ changelog generation ล้มเหลว → Enforce conventional commits
- No Migration Guides: ไม่มี Migration guides สำหรับ breaking changes → Provide migration guides สำหรับ all breaking changes
- Single Point of Failure: ไม่มี Redundancy หรือ Fallback → Deploy multiple instances ด้วย CDN
Core Concepts
1. Changelog Importance
Why Changelogs Matter
# Changelog Importance
## Benefits
### 1. User Communication
- Transparent updates
- Clear change documentation
- Better user experience
- Informed decisions
### 2. Developer Coordination
- Track changes across team
- Coordinate releases
- Document decisions
- Enable collaboration
### 3. Support and Debugging
- Identify when issues were introduced
- Track bug fixes
- Reference specific versions
- Reduce support burden
### 4. Compliance and Auditing
- Document all changes
- Track modifications
- Support audits
- Maintain records
## Consequences of Poor Changelogs
### 1. User Confusion
- Unclear what changed
- Unexpected behavior
- Difficulty troubleshooting
- Loss of trust
### 2. Support Burden
- More support tickets
- Longer resolution times
- Repetitive questions
- Frustrated users
### 3. Development Issues
- Unclear version history
- Difficult to track changes
- Lost context
- Repeated mistakes
### 4. Business Impact
- Slower adoption
- More complaints
- Lost users
- Damage to reputation
2. Keep a Changelog Format
Standard Format
# 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]
### Added
- New feature coming soon
### Changed
- Changed something coming soon
### Deprecated
- Something that will be removed soon
### Removed
- Something removed in unreleased
### Fixed
- Bug fix coming soon
### Security
- Security fix coming soon
---
## [2.0.0] - 2024-01-15
### Added
- New feature: User authentication
- New endpoint: `/api/users`
- Support for multiple languages
- Dark mode support
### Changed
- **BREAKING**: API endpoints now require authentication
- **BREAKING**: User ID format changed from integer to UUID
- Updated UI design system
- Improved error messages
### Deprecated
- Old authentication method (use OAuth instead)
- `/api/v1/users` endpoint (use `/api/v2/users`)
### Removed
- **BREAKING**: Legacy authentication removed
- **BREAKING**: Old user endpoints removed
- Deprecated user fields
### Fixed
- Fixed login bug with special characters
- Fixed pagination issue in user list
- Fixed memory leak in background jobs
- Fixed timezone handling
### Security
- Added rate limiting
- Improved input validation
- Updated dependencies for security
---
## [1.1.0] - 2023-12-01
### Added
- New feature: User search
- New filters: date range, status
- Export functionality
- User preferences
### Changed
- Improved search performance
- Updated UI components
- Better error handling
### Deprecated
- Old search API (use new search endpoint)
### Fixed
- Fixed search case sensitivity
- Fixed export formatting
- Fixed preference saving
---
## [1.0.0] - 2023-11-01
### Added
- Initial release
- User management
- Basic authentication
- REST API
3. Semantic Versioning
Version Format
# Semantic Versioning
## Version Format
MAJOR.MINOR.PATCH
### MAJOR
- Incompatible API changes
- Removed functionality
- Breaking changes
### MINOR
- Backward-compatible functionality
- New features
- Enhancements
### PATCH
- Backward-compatible bug fixes
- Small improvements
- Documentation updates
## Examples
### 1.0.0 → 1.0.1
- Bug fix
- No breaking changes
### 1.0.1 → 1.1.0
- New feature
- Backward compatible
### 1.1.0 → 2.0.0
- Breaking changes
- Removed features
## Pre-Release Versions
### Format
MAJOR.MINOR.PATCH-PRERELEASE
### Examples
- 1.0.0-alpha
- 1.0.0-beta.1
- 1.0.0-rc.1
### Order
alpha < beta < rc < release
## Build Metadata
### Format
MAJOR.MINOR.PATCH+BUILD
### Examples
- 1.0.0+20130313144700
- 1.0.0-beta+exp.sha.5114f85
Version Bumping Rules
# Version Bumping Rules
## When to Bump MAJOR
### Breaking Changes
- Removed API endpoints
- Changed parameter types
- Modified return values
- Removed features
### Examples
```markdown
## [2.0.0] - 2024-01-15
### Changed
- **BREAKING**: `/api/users` endpoint now requires authentication
- **BREAKING**: User ID format changed from integer to UUID
- **BREAKING**: Removed `/api/legacy` endpoints
### Removed
- **BREAKING**: Old authentication method removed
When to Bump MINOR
New Features
- New API endpoints
- New functionality
- New options
- New integrations
Examples
## [1.1.0] - 2024-01-15
### Added
- New endpoint: `/api/users/search`
- New feature: User preferences
- New integration: Email service
- New option: Export to CSV
When to Bump PATCH
Bug Fixes
- Fixed bugs
- Small improvements
- Documentation updates
- Performance tweaks
Examples
## [1.0.1] - 2024-01-15
### Fixed
- Fixed login bug with special characters
- Fixed pagination issue
- Fixed memory leak
- Fixed timezone handling
---
## 4. Entry Categories
### Category Definitions
```markdown
# Entry Categories
## Added
- New features
- New functionality
- New endpoints
- New options
- New integrations
### Examples
```markdown
### Added
- New feature: User authentication
- New endpoint: `/api/users`
- New option: Export to CSV
- New integration: Email service
Changed
- Changes to existing functionality
- Backward-compatible modifications
- Feature improvements
- UI/UX updates
Examples
### Changed
- Updated UI design system
- Improved error messages
- Enhanced search performance
- Modified default behavior
Deprecated
- Features that will be removed
- Deprecated endpoints
- Deprecated options
- Deprecated APIs
Examples
### Deprecated
- Old authentication method (use OAuth instead)
- `/api/v1/users` endpoint (use `/api/v2/users`)
- Legacy export format (use new format)
Removed
- Removed features
- Removed endpoints
- Removed options
- Removed APIs
Examples
### Removed
- **BREAKING**: Legacy authentication removed
- **BREAKING**: Old user endpoints removed
- **BREAKING**: Deprecated user fields removed
Fixed
- Bug fixes
- Error corrections
- Issue resolutions
- Patch fixes
Examples
### Fixed
- Fixed login bug with special characters
- Fixed pagination issue in user list
- Fixed memory leak in background jobs
- Fixed timezone handling
Security
- Security fixes
- Vulnerability patches
- Security improvements
- Dependency updates
Examples
### Security
- Added rate limiting
- Improved input validation
- Updated dependencies for security
- Fixed XSS vulnerability
---
## 5. Writing Good Changelog Entries
### Entry Guidelines
```markdown
# Writing Good Entries
## Guidelines
### 1. Be Specific
- Describe what changed
- Include relevant details
- Reference issues/PRs
- Provide examples
**Good**
```markdown
### Added
- New endpoint: `/api/users` for user management (#123)
Bad
### Added
- New stuff
2. Be Concise
- Keep entries short
- Focus on impact
- Avoid fluff
- Get to the point
Good
### Fixed
- Fixed login bug with special characters (#456)
Bad
### Fixed
- Fixed a really annoying bug where users couldn't log in if they had special characters in their password, which was causing a lot of frustration (#456)
3. Be Clear
- Use plain language
- Avoid jargon
- Explain impact
- Provide context
Good
### Changed
- **BREAKING**: User ID format changed from integer to UUID (#789)
Bad
### Changed
- **BREAKING**: Migrated user identifiers from integer-based to UUID-based (#789)
4. Be Consistent
- Use same format
- Follow conventions
- Maintain style
- Use categories
Good
### Added
- New endpoint: `/api/users` (#123)
- New feature: User preferences (#124)
### Fixed
- Fixed login bug (#456)
- Fixed pagination issue (#457)
Bad
### Added
- New endpoint: `/api/users` (#123)
- Added user preferences feature (#124)
### Fixed
- Login bug fixed (#456)
- Fixed pagination (#457)
5. Reference Issues
- Link to issues
- Link to PRs
- Provide context
- Enable traceability
Good
### Added
- New endpoint: `/api/users` for user management (#123)
- Fixed login bug with special characters (#456)
Bad
### Added
- New endpoint: `/api/users`
- Fixed login bug
Entry Template
### [Category]
- [Description of change] ([#issue-number])
Breaking Change Template
### [Category]
- **BREAKING**: [Description of breaking change] ([#issue-number])
Multiple Related Changes
### [Category]
- [Change 1] ([#issue-number])
- [Change 2] ([#issue-number])
- [Change 3] ([#issue-number])
---
## 6. Automation
### Conventional Commits
```markdown
# Conventional Commits
## Format
[optional scope]:
[optional body]
[optional footer(s)]
## Types
### feat
- New feature
- Enhancement
- Addition
### fix
- Bug fix
- Error correction
- Patch
### docs
- Documentation
- README updates
- Comments
### style
- Formatting
- Style changes
- Code style
### refactor
- Refactoring
- Code restructuring
- No functional change
### test
- Tests
- Test updates
- Test fixes
### chore
- Build process
- Dependencies
- Configuration
### perf
- Performance
- Optimization
- Speed improvements
### ci
- CI/CD
- Pipeline changes
- Build automation
### revert
- Revert changes
- Rollback
- Undo
## Examples
### Feature
feat: add user authentication
Implement OAuth2 authentication with support for Google and GitHub providers.
Closes #123
### Bug Fix
fix: resolve login issue with special characters
Users with special characters in their passwords were unable to log in due to improper encoding.
Fixes #456
### Breaking Change
feat!: change user ID format to UUID
User IDs are now UUIDs instead of integers. This change requires database migration.
BREAKING CHANGE: User ID format changed from integer to UUID. All references to user IDs must be updated.
Closes #789
### Documentation
docs: update API documentation
Added new endpoints and updated examples for user management API.
Closes #101
## Commit Message Linting
### ESLint
```json
{
"rules": {
"commitlint-plugin": {
"rules": {
"type-enum": [2, "always", ["feat", "fix", "docs", "style", "refactor", "test", "chore", "perf", "ci", "revert"]],
"subject-case": [2, "always", "sentence-case"]
}
}
}
}
Husky
{
"husky": {
"hooks": {
"commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
}
}
}
Release Notes Generation
# Release Notes Generation
## Tools
### semantic-release
```bash
# Install
npm install -g semantic-release
# Configure
echo "module.exports = {
branches: ['main'],
plugins: [
'@semantic-release/commit-analyzer',
'@semantic-release/release-notes-generator',
'@semantic-release/npm',
'@semantic-release/github'
]
}" > .releaserc
# Run
semantic-release
standard-version
# Install
npm install -g standard-version
# Run
standard-version
# Output
# - Updates CHANGELOG.md
# - Creates git tag
# - Commits changes
lerna-changelog
# Install
npm install -g lerna-changelog
# Run
lerna-changelog
# Output
# - Generates changelog
# - Based on conventional commits
Configuration
semantic-release Configuration
// .releaserc.js
module.exports = {
branches: ['main'],
plugins: [
'@semantic-release/commit-analyzer',
'@semantic-release/release-notes-generator',
'@semantic-release/npm',
'@semantic-release/github',
'@semantic-release/changelog'
],
preset: 'angular',
releaseRules: [
{ type: 'feat', release: 'minor' },
{ type: 'fix', release: 'patch' },
{ type: 'perf', release: 'patch' },
{ breaking: true, release: 'major' }
]
}
standard-version Configuration
{
"types": [
{ "type": "feat", "section": "Features" },
{ "type": "fix", "section": "Bug Fixes" },
{ "type": "perf", "section": "Performance" },
{ "type": "revert", "section": "Reverts" },
{ "type": "docs", "section": "Documentation" },
{ "type": "style", "section": "Styles" },
{ "type": "chore", "section": "Chores" },
{ "type": "refactor", "section": "Refactors" },
{ "type": "test", "section": "Tests" }
]
}
Workflow
Automated Release Workflow
- Developer commits with conventional commits
- PR is merged to main branch
- CI/CD triggers release process
- Version is determined automatically
- Changelog is generated
- Release is created
- Tag is pushed
- Package is published
Manual Release Workflow
- Developer commits with conventional commits
- Run release command
- Version is determined
- Changelog is generated
- Review changelog
- Commit changes
- Create tag
- Push to remote
---
## 7. Release Notes vs Changelog
### Differences
```markdown
# Release Notes vs Changelog
## Changelog
### Purpose
- Document all changes
- Track version history
- Reference issues and PRs
- Maintain complete record
### Audience
- Developers
- Contributors
- Maintainers
- Power users
### Format
- Complete and detailed
- Technical language
- Issue references
- All changes included
### Example
```markdown
## [1.1.0] - 2024-01-15
### Added
- New endpoint: `/api/users/search` (#123)
- New feature: User preferences (#124)
- New integration: Email service (#125)
### Changed
- Improved search performance (#126)
- Updated UI components (#127)
### Fixed
- Fixed search case sensitivity (#128)
- Fixed export formatting (#129)
Release Notes
Purpose
- Communicate value
- Highlight features
- Guide users
- Marketing material
Audience
- End users
- Customers
- Stakeholders
- General public
Format
- User-friendly
- Benefit-focused
- High-level overview
- Notable changes only
Example
# Version 1.1.0
## What's New
### Powerful Search
We've added a powerful new search feature that makes finding users easier than ever. Search by name, email, or any custom field.
### Personalized Experience
Customize your experience with new user preferences. Save your favorite filters, set default views, and more.
### Email Notifications
Stay informed with automatic email notifications for important events and updates.
## Improvements
- Faster search performance
- Updated user interface
- Better error messages
## Bug Fixes
- Fixed search case sensitivity
- Fixed export formatting issues
When to Use Each
Use Changelog When
- Tracking development history
- Referencing specific changes
- Debugging issues
- Maintaining complete record
Use Release Notes When
- Announcing to users
- Marketing new features
- Onboarding new users
- Communicating value
---
## 8. Multi-Language Changelogs
### Localization
```markdown
# Multi-Language Changelogs
## Structure
### Directory Structure
/docs /changelogs /en CHANGELOG.md /es CHANGELOG.md /fr CHANGELOG.md /ja CHANGELOG.md
### File Naming
- Use language codes
- Keep consistent names
- Include in navigation
- Link between versions
## Translation Process
### 1. Create Source
- Write changelog in English
- Follow standard format
- Use clear language
- Avoid idioms
### 2. Extract Strings
- Use translation tools
- Extract all text
- Maintain context
- Include metadata
### 3. Translate
- Use professional translators
- Maintain technical accuracy
- Preserve formatting
- Keep consistent style
### 4. Review
- Review translations
- Test in context
- Verify accuracy
- Get feedback
### 5. Publish
- Publish all languages
- Link between versions
- Update navigation
- Test links
## Translation Tools
### Crowdin
```bash
# Install CLI
npm install -g crowdin-cli
# Configure
crowdin init
# Upload source
crowdin upload sources
# Download translations
crowdin download
Lokalise
# Install CLI
npm install -g lokalise-cli
# Configure
lokalise init
# Upload source
lokalise upload
# Download translations
lokalise download
Best Practices
1. Keep It Simple
- Use simple language
- Avoid complex sentences
- Be direct and clear
- Explain technical terms
2. Maintain Consistency
- Use same terminology
- Follow same format
- Keep style consistent
- Use translation memory
3. Provide Context
- Explain technical terms
- Provide examples
- Include screenshots
- Link to documentation
4. Test Translations
- Test in context
- Verify accuracy
- Check formatting
- Get user feedback
---
## 9. Tools
### Changelog Tools
```markdown
# Changelog Tools
## 1. semantic-release
### Features
- Automatic versioning
- Changelog generation
- Release creation
- CI/CD integration
### Best For
- Automated releases
- CI/CD pipelines
- JavaScript projects
### Pricing
- Free and open source
## 2. standard-version
### Features
- Changelog generation
- Version bumping
- Git tagging
- Commit integration
### Best For
- Manual releases
- JavaScript projects
- Conventional commits
### Pricing
- Free and open source
## 3. lerna-changelog
### Features
- Multi-package support
- Conventional commits
- GitHub integration
- Customizable
### Best For
- Monorepos
- JavaScript projects
- Lerna users
### Pricing
- Free and open source
## 4. Release Drafter
### Features
- GitHub integration
- Automated drafts
- Categorization
- Template support
### Best For
- GitHub projects
- Manual releases
- Team collaboration
### Pricing
- Free (GitHub App)
## 5. Keep a Changelog
### Features
- Standard format
- Best practices
- Guidelines
- Examples
### Best For
- Reference
- Best practices
- Documentation
### Pricing
- Free (website)
## 6. Conventional Changelog
### Features
- Conventional commits
- Preset system
- Customizable
- CLI tool
### Best For
- Conventional commits
- Custom workflows
- CLI users
### Pricing
- Free and open source
10. Best Practices
Changelog Best Practices
# Best Practices
## 1. Keep It Current
- Update with every release
- Don't let it get stale
- Review regularly
- Maintain accuracy
## 2. Be Consistent
- Use standard format
- Follow conventions
- Maintain style
- Use categories
## 3. Be Clear
- Use plain language
- Avoid jargon
- Explain impact
- Provide context
## 4. Be Complete
- Document all changes
- Include breaking changes
- Reference issues
- Provide examples
## 5. Be Honest
- Don't hide breaking changes
- Admit mistakes
- Document deprecations
- Be transparent
## 6. Be User-Friendly
- Write for your audience
- Provide value
- Highlight features
- Guide users
## 7. Be Automated
- Use automation tools
- Generate from commits
- Integrate with CI/CD
- Reduce manual work
## 8. Be Reviewed
- Review before release
- Get peer feedback
- Test links
- Verify accuracy
## 9. Be Accessible
- Use standard location
- Link from documentation
- Support search
- Provide navigation
## 10. Be Maintained
- Keep it updated
- Archive old versions
- Review periodically
- Improve continuously
Quick Reference
Quick Templates
# Quick Templates
## Changelog Entry Template
```markdown
### [Category]
- [Description of change] ([#issue-number])
Breaking Change Template
### [Category]
- **BREAKING**: [Description of breaking change] ([#issue-number])
Release Notes Template
# Version [X.Y.Z]
## What's New
- [Feature 1]
- [Feature 2]
## Improvements
- [Improvement 1]
- [Improvement 2]
## Bug Fixes
- [Fix 1]
- [Fix 2]
Conventional Commit Template
[type]: [description]
[optional body]
[optional footer]
Quick Reference
# Quick Reference
## Semantic Versioning
- MAJOR: Breaking changes
- MINOR: New features
- PATCH: Bug fixes
## Categories
- Added: New features
- Changed: Modifications
- Deprecated: Soon-to-be removed
- Removed: Removed features
- Fixed: Bug fixes
- Security: Security updates
Quick Start
Basic Changelog Format
# 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).
## [1.2.0] - 2024-01-15
### Added
- New user dashboard feature
- Email notifications for important events
### Changed
- Improved API response times
- Updated documentation
### Fixed
- Resolved login issue on mobile devices
- Fixed data export bug
## [1.1.0] - 2024-01-01
### Added
- Initial release
Automated Changelog Generation
# Using standard-version
npm install --save-dev standard-version
# Add to package.json
{
"scripts": {
"release": "standard-version"
}
}
# Generate changelog
npm run release
Production Checklist
- Format: Use consistent changelog format (Keep a Changelog)
- Versioning: Follow semantic versioning (MAJOR.MINOR.PATCH)
- Categories: Use standard categories (Added, Changed, Deprecated, Removed, Fixed, Security)
- Dates: Include release dates for each version
- Breaking Changes: Clearly mark breaking changes
- Links: Link to relevant issues, PRs, or commits
- Migration Guides: Provide migration guides for breaking changes
- Automation: Automate changelog generation from commits
- Review: Review changelog before release
- Accessibility: Make changelog easy to find and read
- History: Maintain full changelog history
- Unreleased: Track unreleased changes
Anti-patterns
❌ Don't: Vague Change Descriptions
# ❌ Bad - Vague
## [1.2.0] - 2024-01-15
- Fixed bugs
- Updated stuff
# ✅ Good - Specific
## [1.2.0] - 2024-01-15
### Fixed
- Fixed login timeout issue on mobile Safari browsers
- Resolved data export failing for files larger than 100MB
❌ Don't: No Version Dates
# ❌ Bad - No dates
## [1.2.0]
- Added new feature
# ✅ Good - With dates
## [1.2.0] - 2024-01-15
- Added new feature
❌ Don't: Mixing Categories
# ❌ Bad - Unclear categories
## [1.2.0] - 2024-01-15
- New feature added
- Bug fixed
- Performance improved
# ✅ Good - Clear categories
## [1.2.0] - 2024-01-15
### Added
- New dashboard feature
### Fixed
- Login timeout bug
### Changed
- Improved API response times
❌ Don't: No Breaking Changes Documentation
# ❌ Bad - Breaking change not documented
## [2.0.0] - 2024-01-15
### Changed
- Updated API endpoints
# ✅ Good - Breaking changes clearly marked
## [2.0.0] - 2024-01-15
### ⚠️ Breaking Changes
- API endpoints changed from `/v1/` to `/v2/`
- Authentication now requires Bearer token instead of API key
### Migration Guide
See [Migration Guide](migration-v2.md) for detailed upgrade instructions.
Integration Points
- API Documentation (
21-documentation/api-documentation/) - Document API changes - Version Control (
01-foundations/git-workflow/) - Link to commits and PRs - Technical Writing (
21-documentation/technical-writing/) - Clear change descriptions
Further Reading
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
Didn't find tool you were looking for?