Changelog Linter
/install changelog-linter
Changelog Linter
Validate CHANGELOG.md files against the Keep a Changelog specification.
Commands
All commands use the bundled Python script at scripts/changelog_linter.py.
1. Lint a changelog
python3 scripts/changelog_linter.py lint \x3Cfile> [--strict] [--format text|json|markdown]
Run all validation rules against a CHANGELOG.md file.
Flags:
--strict— exit code 1 on any warning (not just errors)--format— output format:text(default),json,markdown
2. List versions
python3 scripts/changelog_linter.py versions \x3Cfile> [--format text|json]
Extract and display all versions with dates and change counts.
3. Validate version ordering
python3 scripts/changelog_linter.py order \x3Cfile> [--format text|json]
Check that versions are in descending semver order.
4. Check links
python3 scripts/changelog_linter.py links \x3Cfile> [--format text|json]
Verify that all version headers have corresponding link references at the bottom.
Lint Rules (16 total)
Structure (5 rules)
- missing-title — File doesn't start with
# Changelog - missing-description — No description paragraph after title
- no-versions — No version entries found
- empty-version — Version section has no change entries
- unreleased-missing — No
[Unreleased]section
Versions (4 rules)
- invalid-version — Version doesn't follow semver (MAJOR.MINOR.PATCH)
- invalid-date — Date doesn't follow ISO 8601 (YYYY-MM-DD)
- version-order — Versions not in descending order
- duplicate-version — Same version appears twice
Sections (3 rules)
- invalid-section — Section type not in spec (Added/Changed/Deprecated/Removed/Fixed/Security)
- empty-section — Section header with no list items
- section-order — Sections not in recommended order
Formatting (4 rules)
- missing-link-ref — Version header has no corresponding link reference
- broken-link-ref — Link reference exists but URL is empty or malformed
- inconsistent-bullets — Mixed bullet styles (
-and*) - trailing-whitespace — Lines with trailing whitespace
Output Formats
Text (default)
CHANGELOG.md:15 error [invalid-date] Version 1.2.0 has invalid date: "March 2024" (expected YYYY-MM-DD)
CHANGELOG.md:28 warning [empty-section] Section "Deprecated" under 1.1.0 has no entries
CHANGELOG.md:45 warning [missing-link-ref] Version 1.0.0 has no link reference
3 issues (1 error, 2 warnings)
JSON / Markdown
Standard structured output with issues, summary, and version list.
CI Integration
- name: Lint Changelog
run: python3 scripts/changelog_linter.py lint CHANGELOG.md --strict
Exit codes: 0 = valid, 1 = issues found.
- 确保已安装 OpenClaw(本地或 Docker 部署)
- 在对话框中输入安装命令:
/install changelog-linter - 安装完成后,直接呼叫该 Skill 的名称或使用
/changelog-linter触发 - 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
Changelog Linter 是什么?
Validate CHANGELOG.md files against the Keep a Changelog format (keepachangelog.com). Checks version ordering, date formats, section types, link references,... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 86 次。
如何安装 Changelog Linter?
在 OpenClaw 或 Claude Code 对话框中运行命令「/install changelog-linter」即可一键安装,无需额外配置。
Changelog Linter 是免费的吗?
是的,Changelog Linter 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。
Changelog Linter 支持哪些平台?
Changelog Linter 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。
谁开发了 Changelog Linter?
由 charlie-morrison(@charlie-morrison)开发并维护,当前版本 v1.0.0。