Add an entry to the changelog in readme.txt following the project's changelog format. Use when updating readme.txt, adding to Unreleased section, documenting changes for a release, or when the user says "add changelog" or "update changelog".
Installs into .claude/skills of the current project.
Are you the author of Changelog 12?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/david-li0406-changelog-12)
---
name: changelog
description: Add an entry to the changelog in readme.txt following the project's changelog format. Use when updating readme.txt, adding to Unreleased section, documenting changes for a release, or when the user says "add changelog" or "update changelog".
---
# Add Changelog Entry
Add a changelog entry to the Simple History plugin's readme.txt file.
## Instructions
1. Ask the user for the changelog entry text (one line summary of the change)
2. **Determine the category** - Each entry must be in one of these categories:
- **Added** - New features or functionality
- **Changed** - Changes to existing functionality
- **Fixed** - Bug fixes
- **Deprecated** - Features marked for removal
- **Removed** - Features that were removed
- **Security** - Security-related fixes or improvements
3. Read the `readme.txt` file to find the `## Changelog` section
4. Locate the `### Unreleased` subsection
5. Add the new entry under the appropriate category within Unreleased, or at the top if no categories exist yet
6. Follow the exact format:
- Start with hyphen and 3 spaces: `- `
- Begin with the category verb: "Fixed...", "Added...", "Changed...", etc.
- Be concise and user-focused (explain the user-facing issue/feature, not technical implementation)
- End with a period
7. Show the user the added entry and confirm it looks correct
## Format Examples
Good examples from existing changelog:
- `- Fixed post creation via Gutenberg autosave not being logged, causing email reports to show 0 posts created.`
- `- Add developer mode badge to the page header.`
- `- Fixed timezone and date handling issues in email reports.`
- `- Add WordPress VIP Go coding standards for enterprise compatibility.`
- `- Fixed post creation via Gutenberg autosave not being logged. [#599](https://github.com/bonny/WordPress-Simple-History/issues/599)`
## Guidelines
- **Be specific**: Mention the feature/component affected (e.g., "email reports", "Gutenberg autosave")
- **User-focused**: Explain what users will notice, not how it was implemented
- **Concise**: Keep to one line when possible
- **Active voice**: "Fixed X" not "X was fixed"
- Link to GitHub issue or pull request if available
## WordPress Changelog Best Practices
Based on [WordPress Developer Blog guidance](https://developer.wordpress.org/news/2025/11/the-importance-of-a-good-changelog/):
### Writing Style
- **Write for end-users, not developers** - Avoid technical jargon
- **Be specific, not vague** - "Fixed a PHP 8.2 deprecation warning causing admin dashboard errors" NOT "Bug fixes"
- **Explain the impact** - Include context about why changes matter (performance, security, workflow improvements)
- **Use accessible language** - Avoid cultural references or overly technical terminology
### Structure
- Use clear category labels: Added, Changed, Fixed, Deprecated, Removed, Security
- Maintain consistency across releases
- Each entry should be actionable and descriptive
### Good vs Bad Examples
❌ **Problematic:**
- "Bug fixes"
- "Various improvements"
- "Updated code"
✅ **Effective:**
- "Fixed post creation via Gutenberg autosave not being logged, causing email reports to show 0 posts created"
- "Added developer mode badge to improve debugging workflow"
- "Fixed timezone handling issues that caused email reports to show incorrect dates"
## File Location
- File: `readme.txt` (in project root)
- Section: `## Changelog` → `### Unreleased`
## Notes
- If "Unreleased" section doesn't exist, create it right after "## Changelog"
- Entries use format from https://keepachangelog.com and WordPress best practices
- Most recent entries appear first in the list