CH

changelog-collect

Creates thematic weekly changelogs from git history while filtering out operational noise.

Install

mkdir -p .claude/skills/changelog-collect && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/18880" && unzip -o skill.zip -d .claude/skills/changelog-collect && rm skill.zip

Installs to .claude/skills/changelog-collect

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

Generate a weekly changelog entry from git history. Collects commits for a date range, filters noise, clusters by theme, writes an editorial summary, and outputs a ChangelogEntry file. Default behavior stops for review; pass --commit to also commit.
249 charsno explicit “when” trigger
Intermediate

Key capabilities

  • →Resolve date range for changelog generation
  • →Collect git commits within a specified period
  • →Strip operational noise from commit lists
  • →Cluster commits by theme and scope
  • →Write editorial summary and field notes for changelog

How it works

The skill resolves a date range, collects and filters git commits, clusters them by theme, and then generates a changelog entry with a headline, summary items, and field notes.

Inputs & outputs

You give it
date range (e.g., 2026-03-17 2026-03-24) and optional --commit flag
You get back
ChangelogEntry file or printed changelog for review

When to use changelog-collect

  • →Generate weekly changelog
  • →Summarize recent commits
  • →Prepare release entry

About this skill

Read docs/editorial-style.md; its release-note register governs prose. Read Blog Publishing §Changelog and reference.md for the output context and editorial models.

Changelog Collection

Every entry covers exactly one ISO week: from is a Monday, to is the following Sunday (from + 6 days), both inclusive UTC calendar days. Never write a partial, multi-week, or off-weekday range, and never derive to as “today” on a non-Sunday; check:editorial-content rejects anything else.

Accept an optional ISO week (any date inside the target week) and --commit only when the user authorized a commit. Without week, target the current week when today (UTC) is Sunday, otherwise the most recently completed Monday–Sunday week. If the target week already has an entry, revise that file instead of creating a second one. If one or more complete weeks lie between the newest entry and the target, report the gap and write one entry per missing week.

Collect And Curate

  1. Treat from and to as inclusive UTC calendar days (derive today in UTC too). Collect newest-first, non-merge commits with eight-character hashes:
git log --no-merges --abbrev=8 --since="<from> 00:00:00 +0000" --until="<to> 23:59:59 +0000" --format="%h %s"
  1. Remove generated-refresh, ratchet/baseline, dependency-bump, [skip ci], documentation-cleanup, and revert-of-revert noise from both analysis and the manifest. Scan subject frequencies first so new dominant automation wording is not mistaken for product work. If more than half is filtered, warn the reviewer.
  2. Cluster surviving work by story and user impact, normally 5–8 groups. Check stablecoin-count crossings, methodology versions, reserve/source additions, and security/auth milestones against their source files. A new external source also needs about-page coverage.
  3. Write a ≤120-character factual headline; 45–80 words of interpretive fieldNotes; and a summary item per cluster with a 2–4 word noun label, allowed tag from shared/types/editorial-content.ts, ≤220-character description, and methodology href when applicable.
  4. Set stats.totalCommits to the full filtered count. Store only the newest min(totalCommits, 20) filtered commits, unchanged and newest-first; git history remains the archive.

Write And Verify

Create src/data/changelogs/<to>.json with the ChangelogEntry shape. Before writing, confirm the Monday–Sunday range, non-overlap with neighbouring entries, field-note length, summary tags/descriptions, headline length, commit hashes, manifest cap, source-backed numbers, and existing methodology routes.

Regenerate rather than hand-edit the barrel and refresh the Markdown fixture:

node --import tsx scripts/maintenance/generate-changelog-registry.ts
npm run check:generated-artifacts -- --only=changelog-registry
npm run check:editorial-content
npm run refresh:markdown-fixtures
npm run typecheck
npm test -- scripts/__tests__/generate-changelog-registry.test.ts
npm test -- scripts/__tests__/generate-markdown-exports.test.ts

Run npm run check:stablecoin-data only when citing registry counts. Default handoff reports the path, headline, field notes, labels/tags, total commits, filtered count, and warnings, then stops for review. If --commit was authorized and checks pass, commit only the entry, generated barrel, and refreshed fixture as one changelog change; use pharos-release-runner for publication.

When not to use it

  • →When needing to generate a changelog for a range that overlaps an existing entry without `--force`
  • →When writing a purely infrastructure headline unless it's the main story
  • →When using bullets, commit hashes, or Markdown in field notes

Limitations

  • →Refuses to generate for overlapping date ranges unless `--force` is passed
  • →Field notes must be 45-80 words, one paragraph, without bullets or Markdown
  • →Summary items have character limits for label and description

How it compares

This skill automates the creation of structured changelog entries from git history, including noise filtering and thematic clustering, providing a consistent and editorialized output unlike raw commit logs.

Compared to similar skills

changelog-collect side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
changelog-collect (this skill)03moReviewIntermediate
openspec-archive-change48moReviewIntermediate
session-wrap19moReviewIntermediate
semantic-commits07moReviewBeginner

Try saying

Example prompts that trigger this skill in your AI assistant.

Search skills

Search the agent skills registry