Skip to content
Back to skills

Release

ASecurity

Ship releases with rich, auto-written notes instead of hand-typed bullet points. Use when cutting a release — promote the changelog, synthesize notes from your CHANGELOG, ADRs and commits, tag the release, and optionally publish via the gh CLI. Degrades gracefully to a notes file when gh is absent, and adapts to any repo via config.

  • 4 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added June 4, 2026
ai-agentsbashnodegit

Works with

  • cli

Security analysis

A100/100

Scanned June 4, 2026

npx -y skills add sp-daewoon/chronicle --skill release --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Release?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Release
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/sp-daewoon-release/badge)](https://www.skillsdirectory.com/skills/sp-daewoon-release)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: release
description: Ship releases with rich, auto-written notes instead of hand-typed bullet points. Use when cutting a release — promote the changelog, synthesize notes from your CHANGELOG, ADRs and commits, tag the release, and optionally publish via the gh CLI. Degrades gracefully to a notes file when gh is absent, and adapts to any repo via config.
license: MIT
---

# Release Workflow

Cut a release end to end.

## 1. Promote the changelog

```bash
node "${CLAUDE_PLUGIN_ROOT}/scripts/changelog-parse.mjs" release --version <X.Y.Z> --date <today>
```

## 2. Gather context for notes

Find the previous tag and the commits/ADRs since then:

```bash
PREV=$(git describe --tags --abbrev=0 2>/dev/null || echo "")
COMMITS=$( [ -n "$PREV" ] && git log "$PREV"..HEAD --pretty=format:'%s' || git log --pretty=format:'%s' )
```

Collect new ADRs by diffing the ADR directory since `$PREV` (use `git diff --name-only --diff-filter=A "$PREV"..HEAD -- <adr.dir>`). Build a JSON object `{ "adrs": [{number,title,file}], "commits": ["..."] }`.

## 3. Synthesize notes

Pipe the JSON into the helper:

```bash
echo "$JSON" | node "${CLAUDE_PLUGIN_ROOT}/scripts/release-notes.mjs" --version <X.Y.Z>
```

This writes `RELEASE_NOTES.md` and prints the notes. The notes combine the changelog section for this version, new ADRs, and a collapsed commit list.

## 4. Tag and publish

```bash
git tag <tagPrefix><X.Y.Z>     # tagPrefix from config, default "v"
```

If `gh` is installed and a remote exists, publish:

```bash
gh release create <tagPrefix><X.Y.Z> --notes-file RELEASE_NOTES.md
```

If `gh` is unavailable, stop here and tell the user the notes are in `RELEASE_NOTES.md` for manual upload.

## Rules

- Never tag before the changelog is promoted (step 1 must precede step 4).
- `gh` is optional — degrade gracefully to the notes file.
- Use the real version and date; confirm the version bump with the user if ambiguous.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.