Help · Changelogs

Changelog conventions

Use these conventions to keep skill updates clear, consistent, and trustworthy.

Guide

Changelog Conventions for Jeffrey's Skills

Why changelogs matter

A changelog is the user-facing summary of what changed since the last version. It should answer:

  • What is new that I should be excited about?
  • What changed that might affect my workflow?
  • What was fixed that was broken before?

Good changelogs build trust and reduce update anxiety.

Format specification

Use standard headings. Include only the sections that apply.

Added

New capabilities or content that did not exist before.

Changed

Modifications to existing behavior. Users may need to adjust.

Deprecated

Features that still work but will be removed in a future version.

Removed

Features that no longer exist. This is a breaking change.

Fixed

Bug fixes or corrections to existing behavior.

Security

Security-related updates. Include a CVE when applicable.

Example

### Added

- Support for TypeScript 6.0 syntax examples
- New troubleshooting section for common errors

### Fixed

- Corrected example that used a deprecated API
- Fixed typo in configuration path

### Changed

- Updated recommended Node.js version to 22.x

Writing guidelines

Do

  • Start each bullet with a verb (Added, Fixed, Changed, Removed).
  • Be specific and user-centric.
  • Keep one change per bullet.
  • Mention impact when relevant ("No restart required").

Do not

  • Do not write "various improvements" or "misc fixes".
  • Do not list internal refactors unless users are affected.
  • Do not dump raw commit messages.
  • Do not use excessive jargon.

Length guidelines

  • Minimum: 10 characters
  • Recommended: 50 to 500 characters for a typical update
  • Maximum: 10,000 characters

If a changelog is long, consider splitting the release.

Initial release format

For v1, keep it simple:

Initial release of [Skill Name].

Features:

- [Key feature 1]
- [Key feature 2]
- [Key feature 3]

Common examples

Added

### Added

- Support for async/await patterns in all examples
- New section on error handling patterns

Fixed

### Fixed

- Example code now compiles on Rust 1.75+
- Corrected port in Docker config (was 8000, now 8080)

Changed

### Changed

- Default timeout increased from 30s to 60s
- Reorganized sections for clearer learning progression

Removed

### Removed

- Deprecated --legacy flag (use --compat instead)
- Python 2.7 examples (end of life)

FAQ

Q: Do I need every section every time? A: No. Include only what applies to that release.

Q: What if I only fixed a typo? A: That is still a valid changelog. Example: "Fixed typo in section 3.2".

Q: Can I use emoji? A: Prefer not to. Keep it professional and accessible.

Template

Changelog

[Unreleased]

Added

Changed

Deprecated

Removed

Fixed

Security

[v1] - YYYY-MM-DD

Added

Examples

Changelog Examples

Small fix

### Fixed

- Corrected typo in the database connection example (port was 5342, now 5432)

Feature update

### Added

- Migration guide for SQLite to PostgreSQL
- Connection pooling examples

### Changed

- All examples now use parameterized queries for security

Major update

### Added

- Full TypeScript 6.0 support with new syntax examples
- New chapter on advanced type inference
- Interactive playground links for all examples

### Changed

- Reorganized from 5 chapters to 8 for better pacing
- Updated all code to strict mode

### Removed

- Deprecated any[] examples

### Fixed

- Multiple typos and broken links