changelog-rewrite-aggressivelylisted
Install: claude install-skill tony/skills
# Rewrite Changelog Entries Aggressively
Remove the changelog commits this branch accumulated, then regenerate
its entries from the branch's **current net change**. With `--commit`,
the regenerated entries land as one fresh commit at the tip; otherwise
they are left as an uncommitted edit for the user to commit. Where
the `changelog-refresh` skill stacks a correcting commit on top,
this skill rewrites the branch so its changelog
history collapses to a single clean commit.
Hard scope rule: only the branch's own changelog content is rewritten.
Changelog content from the base branch — earlier releases, or
unreleased entries from other work — is never modified. The branch's
**code** history is never modified either; only changelog commits are
touched.
Additional context from user: $ARGUMENTS
---
## Phase 1: Safety checks and scope
1. **Preconditions** — refuse to proceed (report why) if any fail:
- Working tree dirty (`git status --porcelain` non-empty)
- Detached HEAD, or an in-progress rebase/merge/cherry-pick
- Currently on the base/trunk branch
2. **Detect the base.** If the branch has a PR
(`gh pr view --json baseRefName`), the base is its `baseRefName` —
stack-aware. Otherwise detect trunk via
`git symbolic-ref refs/remotes/origin/HEAD` (fall back to `master`).
3. **Find the changelog file** the same way `/changelog` does (scan for
`CHANGES`, `CHANGES.md`, `CHANGELOG.md`, `HISTORY.md`, `NEWS.md`, …).
4. **Partition the branch's commits** touchi