跳到正文
cccskills
免费在 GitHub 公开

keep-a-changelog

Maintain CHANGELOG.md — add new version entries, keep the Unreleased section, cut a release, or restructure the whole file — following the Keep a Changelog format and Semantic Versioning.

中文简介正在准备中。当前显示原文说明。

查看安装方法

包含的文件(1)

  • SKILL.md6.4 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

Keep a Changelog

Use this skill when the user wants to add a new version entry to a CHANGELOG.md, maintain the Unreleased section, cut a release, or restructure the changelog following the Keep a Changelog format and Semantic Versioning.

Principles

  • Changelogs are for humans, not machines. They are curated: record notable, user-facing changes only — a changelog is not a commit log.
  • Machines can draft; humans curate. When generating from commits, summarize from the reader's point of view; never paste git log output.
  • List the latest version first. Show the release date (YYYY-MM-DD). Write plainly — many readers are not native speakers.
  • Never guess dates — always retrieve the current date programmatically (date +%Y-%m-%d).

Structure

File header

Pin the link to the spec version the file follows (2.0.0 unless the repo pins an older one):

# 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/2.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

Unreleased section (top of file)

## [Unreleased]
### Added
- ...

Version blocks and comparison links (bottom of file)

## [1.1.0] - 2025-06-01
### Added
- ...
### Fixed
- ...

[Unreleased]: https://github.com/owner/repo/compare/v1.0.0...HEAD
[1.1.0]: https://github.com/owner/repo/compare/v1.0.0...v1.1.0
[1.0.0]: https://github.com/owner/repo/releases/tag/v1.0.0

[Unreleased] compares the latest tag to HEAD; each version links to the diff vs the one before it; the oldest version links to its tag (nothing earlier to compare). Keep the link out of the heading so the file reads cleanly.


Workflow — Maintain Unreleased

As notable changes land, append them to ## [Unreleased] under the right section. This is the default ongoing workflow.

Workflow — Cut a Release

  1. Confirm the new version with the user (or determine from the spec):
    • MAJOR: breaking changes
    • MINOR: new features, backward-compatible
    • PATCH: bug fixes only
  2. Rename ## [Unreleased] to ## [X.Y.Z] - YYYY-MM-DD (heading and its link at the bottom).
  3. Change the [Unreleased] link to compare the new tag against HEAD; add the new version's comparison link.
  4. Add a fresh, empty ## [Unreleased] section pointing at HEAD.
  5. Get the date via date +%Y-%m-%d — never hardcode.

Workflow — New Version Entry (no Unreleased section / backfill)

  1. Read CHANGELOG.md to identify the last released version and its date.
  2. Find commits since then: git log --oneline <last-tag>..HEAD. If no tag exists for the last version, use git log --oneline and filter manually.
  3. Get today's date programmatically.
  4. Determine the new version number (ask the user if not specified).
  5. Group commits into Keep a Changelog sections (see mapping below), curating: fold several commits into one reader-facing entry where they form one change.
  6. Prepend the new version block after the file header.
  7. Add/update the comparison links at the bottom.
  8. Do NOT remove or alter any existing version entries.

Workflow — Restructure Entire CHANGELOG.md

  1. Read the full file; note all version blocks and their dates.
  2. Rewrite, preserving every version and date, enforcing: correct header, Unreleased section, consistent section names/order, comparison links at the bottom, consistent bullet style (capital letter, no trailing period).
  3. Confirm dates via date +%Y-%m-%d where a version claims today.

Section Rules

Use only these six sections, in this order when multiple are present. Omit any empty section.

SectionWhen to use
AddedNew features or capabilities
ChangedChanges to existing behavior
DeprecatedFeatures marked for future removal
RemovedFeatures removed in this release
FixedBug fixes
SecuritySecurity-related fixes or improvements

Fixed vs Changed — the decision rule: was the old behavior a bug? If yes → Fixed. If it was intentional and you changed it → Changed.

Dependencies are not a type of change. A dependency update can be harmless, a fix, or breaking — describe its effect under the right type, or leave it out.

Breaking changes — mark with **Breaking:** at the start of the entry, inside its type (usually Changed or Removed), never a separate section:

### Changed
- **Breaking:** `parse()` now returns a result object instead of raising.
- Rename the `color` option to `theme`.

CVEs — lead the entry with the CVE ID so readers and tools can match it:

### Security
- CVE-2024-12345: out-of-bounds read when parsing malformed input.

Deprecate before removing — mark Deprecated in one release, Removed in a later one, and say which version will remove it.

Yanked releases — list, don't hide: ## [0.0.5] - 2014-12-13 [YANKED].


Commit → Section Mapping Heuristics

This mapping assumes Conventional Commits messages produced by the git-commiter skill.

CommitSection
feat: / add / newAdded
refactor: / change / rename / move / update / improveChanged
fix: / bug / patchFixed
remove: / delete / dropRemoved
deprecate:Deprecated
security: / cve / vulnSecurity
docs: / chore: / ci: / test:Omit unless user-facing

When a commit is ambiguous, infer intent from the diff or file name. Remember: several commits often collapse into one entry — write for the reader, not the history.


Style Rules

  • Write in English throughout.
  • Each bullet: capital letter, present tense, no trailing period. Example: Add retry logic for HTTP requests
  • Keep bullets concise — one line per entry where possible.
  • Wrap code identifiers, file paths, and module names in backticks.
  • Never guess dates — always retrieve the current date programmatically.
  • When in doubt about plain wording, follow the simple-english skill.

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

Review the changes since a fixed point (commit, branch, tag, or merge-base) along two axes — Standards (does the code follow this repo's documented coding standards?) and Spec (does the code match what the originating issue/spec asked for?). Runs both reviews in parallel sub-agents and reports them side by side. Use when the user wants to review a branch, a PR, work-in-progress changes, or asks to "review since X".

中文简介正在准备中。当前显示原文说明。

nmdra/Dotfiles282026年8月11日 更新

Execute git commits using the Conventional Commits specification. Use this skill whenever the user says "commit", "git commit", "/commit", "stage and commit", "make a commit", "save my changes", or asks to commit specific files or all changes. Also triggers on phrases like "push my changes" (commit first), "commit everything", "commit with message X", or whenever git diff/status suggests uncommitted work the user wants to save. Handles auto-staging, diff analysis, message generation, breaking change detection, batch splitting of unrelated changes, safe pushes, and pre-commit hook failures gracefully. Always use this skill rather than ad-hoc git commit commands.

中文简介正在准备中。当前显示原文说明。

nmdra/Dotfiles282026年8月11日 更新

graphify

免费

Use for any question about a codebase, its architecture, file relationships, or project content — especially when graphify-out/ exists, where the question should be treated as a graphify query first. Turns any input (code, docs, papers, images, videos) into a persistent knowledge graph with god nodes, community detection, and query/path/explain tools.

中文简介正在准备中。当前显示原文说明。

nmdra/Dotfiles282026年8月11日 更新

grilling

免费

Grill the user relentlessly about a plan, decision, or idea. Use when the user wants to stress-test their thinking, or uses any 'grill' trigger phrases.

中文简介正在准备中。当前显示原文说明。

nmdra/Dotfiles282026年8月11日 更新

implement

免费

Implement a piece of work based on a spec or set of tickets.

中文简介正在准备中。当前显示原文说明。

nmdra/Dotfiles282026年8月11日 更新

Search and explore an Obsidian vault through the NoteBrain CLI (semantic search, tags, backlinks, connections, hidden links, boosted retrieval). Use it whenever the user mentions their notes, knowledge base, Obsidian vault, semantic search, finding connections or unlinked notes, or asks exploratory questions like "what do I know about X", "find notes related to Y", "what connects to Z", or "summarize my notes on W" — even when they never say NoteBrain, vector search, or ChromaDB.

中文简介正在准备中。当前显示原文说明。

nmdra/Dotfiles282026年8月11日 更新

查看 nmdra 的全部技能

报告此技能的问题