← ClaudeAtlas

write-release-noteslisted

Generate release notes from commits unique to the current branch vs its base
ku5ic/dotfiles · ★ 0 · Data & Documents · score 72
Install: claude install-skill ku5ic/dotfiles
## Context Current branch: !`git branch --show-current` Detected base: !`git-base.sh` Commits on this branch but not on the base: !`git-log-from-base.sh "--no-merges"` ## Procedure 1. Get the scratch directory: `!`scratch-dir.sh``. 2. Interpret $ARGUMENTS: - If it looks like an explicit range (`ref..HEAD`, `sha1..sha2`): trust it. Pull commits with `git log --oneline --no-merges $ARGUMENTS`. - If it is a single ref (e.g. `develop`): use it as the explicit base. Pull commits with `git log --oneline --no-merges "$ARGUMENTS"..HEAD`. - If empty or not a valid git ref: the Context block used the auto-detected base; use those commits. 3. The commit list in the Context block is authoritative unless $ARGUMENTS specified an explicit range. 4. For conventional-commits-style history (subjects like `feat:`, `fix:`, `chore:`), group by type. Otherwise group by inferred category (user-facing, internal, tooling). 5. Filter out noise: formatting-only commits, CI-only changes, revert pairs that cancel out, chore commits with no user impact. 6. Rewrite each kept commit into a user-facing line. "fix: correct date parsing for non-ISO inputs" becomes "Dates in non-ISO formats now parse correctly." ## Output file Write to `$(scratch-dir.sh)/release-notes-<branch-or-range-slug>-<YYYYMMDD-HHMM>.md`. Print the path. Structure: ``` # Release <branch or range> Base: <detected base branch or explicit range> Range: <base>..HEAD (N commits) ## Added <New user-visible capabilities. Imp