Change Summarizer

This documentation was generated with the assistance of AI. Please report any inaccuracies.

A custom agent that, given a git commit/tag range, reads the actual commits and diffs in that range and returns a short bullet list of real, user-facing changes — filtering out tooling/CI/formatting-only noise, and grouping into Keep a Changelog categories when asked.

Purpose

iru-change-summarizer generalizes a fan-out pattern iru-setup-changelog needs when backfilling a long tag history: reading every past release’s full diff serially, in the caller’s own context, doesn’t scale once a repository has a few dozen releases or more. Dispatching one iru-change-summarizer agent per release (or small batch of releases) instead lets each read its own commit range and diffs in an isolated context, and hand back only the distilled, Keep-a-Changelog-ready bullet list — not the raw git log/diff output.

It applies the same judgment iru-setup-changelog itself would: confirm via git diff --stat whether a range touched real source at all versus being purely docs/CI/tooling, and say so plainly rather than inventing a feature that didn’t happen.

Tools

Bash, Read — enough to run git log/git diff/git diff --stat against the range it’s given and read whatever source it needs to understand a terse commit’s real effect; no Skill/Edit/Write access, since this agent only reads history and reports a summary.

Used by

  • Setup Changelog — Step 3, one agent per past release (or small batch), when the repository’s tag history is long enough that reading every diff inline would be context-heavy.

  • Release — Step 10, one agent for the single range since the previous release, to draft whats-new.adoc/CHANGELOG.md without reading the raw git log/diff content inline.

Why this one specifically

This is a parallelizable-fan-out shape, not a context-isolation-of-one-noisy-report shape like Gate Runner or a whole-skill-delegation shape like Isolated Skill Executor — many independent ranges can be summarized concurrently, each agent blind to the others' output, and the results collected afterward. Naming it lets any future skill that needs the same "summarize a commit/tag range into user-facing bullets" behavior (e.g. drafting release notes, summarizing a large PR’s history) reuse it directly instead of re-deriving the same filtering judgment calls.

Source

change-summarizer.md on GitHub — the file this page was generated from.