add-changelog
[ADD v0.11.0] Generate or refresh CHANGELOG.md from conventional commits
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
[ADD v0.11.0] Generate or refresh CHANGELOG.md from conventional commits
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
[ADD v0.11.0] Generate or sync a portable AGENTS.md from ADD project state — writes, checks drift, or merges with hand-curated content
[ADD v0.11.0] Declare absence — get autonomous work plan for the duration
[ADD v0.11.0] Return from absence — get briefing on autonomous work
[ADD v0.11.0] View project branding — accent color, palette, drift detection, image gen status
[ADD v0.11.0] Update project branding — new colors, fonts, tone, audit artifacts
[ADD v0.11.0] Plan and execute a work cycle — select features, assess parallelism, define validation
| name | add-changelog |
| description | [ADD v0.11.0] Generate or refresh CHANGELOG.md from conventional commits |
| argument-hint | [--from-scratch] |
Generate or refresh the project's CHANGELOG.md from git history using conventional commit parsing. Follows the Keep a Changelog format.
CHANGELOG.md exists in the project root~/.codex/add/templates/changelog.md.template.add/config.json for changelog.lastProcessedCommit (may be null)--from-scratch flag means full regeneration; otherwise incrementalMap conventional commit prefixes to Keep a Changelog sections:
| Commit Prefix | Changelog Section |
|---|---|
| feat: | Added |
| fix: | Fixed |
| docs: | Documentation |
| refactor: | Changed |
| perf: | Changed |
| deprecate: | Deprecated |
| remove: | Removed |
| security: | Security |
| revert: | Fixed |
These are internal/maintenance commits and should be silently skipped:
chore:test:ci:style:build:Commits that do not match any conventional prefix are categorized under Changed with the full message as the entry text.
Skip merge commits entirely — they duplicate the content of the merged commits.
CHANGELOG.md to understand current state.add/config.json for changelog.lastProcessedCommitlastProcessedCommit is set:
git log --oneline --no-merges {lastProcessedCommit}..HEAD to get new commitslastProcessedCommit is null:
git log --oneline --no-merges to get all commits--from-scratch)git tag --sort=-version:refname to get all version tagsgit log --oneline --no-merges to get full commit history[Unreleased][tag] - date sections (use tag date)CHANGELOG.md entirely (preserve the header from template)For each commit message:
^(feat|fix|docs|refactor|perf|deprecate|remove|security|revert|chore|test|ci|style|build)(\(.+\))?!?:\s*(.+)$chore, test, ci, style, or build, skip this commit(#spec-slug) pattern in the message — preserve these as-is! is present after the scope (e.g., feat!:) or commit body contains BREAKING CHANGE:, prefix the entry with **BREAKING:** - {Sentence-cased description} [(#spec-slug)]
Examples:
feat: add OAuth2 login flow (#auth-oauth) becomes - Add OAuth2 login flow (#auth-oauth) under Addedfix: correct redirect URL becomes - Correct redirect URL under Fixedfeat!: redesign API response format becomes - **BREAKING:** Redesign API response format under AddedBefore adding any entry to the changelog:
CHANGELOG.md content[Unreleased]Within [Unreleased] (and each versioned section), order subsections as:
Only include subsections that have entries — do not write empty subsections.
CHANGELOG.md## [Unreleased] line[Unreleased] to merge with new entries[Unreleased] block[Unreleased] unchangedAfter writing, update .add/config.json:
changelog.lastProcessedCommit to the current HEAD commit hash (run git rev-parse HEAD)Display a summary of what was added:
Changelog updated.
NEW ENTRIES:
Added: {N} entries
Changed: {N} entries
Fixed: {N} entries
{other sections as applicable}
SKIPPED:
Excluded (chore/test/ci/style/build): {N} commits
Duplicates: {N} entries already present
Merge commits: {N} skipped
Total: {N} new entries added to [Unreleased]
Last processed commit: {short hash}
| Case | Behavior |
|---|---|
| No conventional prefix | Categorize under "Changed" with full message |
| Empty push (no new commits) | Exit early with "Changelog is up to date" |
| CHANGELOG.md missing | Create from template, then proceed |
.add/config.json missing | Process all commits (no lastProcessedCommit) |
Scoped commits (e.g., feat(auth):) | Strip scope along with prefix |
| Multiple spec references | Preserve all (#slug) references |
| Very long subject (>100 chars) | Truncate to 100 chars with "..." |