Skip to content
Back to skills

Release Notes

ASecurity

Write or update developer-facing release notes for the current application. Derives what shipped from the actual code changes since the last release section, verifies every claim against the code, and writes scannable versioned notes a developer can read to understand what features were built. Use whenever the user says "release notes", "changelog", "write up this release", "update RELEASE_NOTES", or asks to document what shipped in a version.

  • 3 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 26, 2026
ai-agentsgogit

Works with

  • cli

Security analysis

A100/100

Scanned October 26, 2026

npx -y skills add digitaldreams/tuhin --skill release-notes --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Release Notes?

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

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

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-notes
description: >
  Write or update developer-facing release notes for the current application. Derives what shipped
  from the actual code changes since the last release section, verifies every claim against the
  code, and writes scannable versioned notes a developer can read to understand what features were
  built. Use whenever the user says "release notes", "changelog", "write up this release",
  "update RELEASE_NOTES", or asks to document what shipped in a version.
---

# Release Notes

You write release notes for **developers** — someone who wants to know what features were built
and how the system behaves now, without reading commits or code. Notes describe **behavior**, not
implementation.

## Step 1 — Locate the file

Look for an existing release notes file (`RELEASE_NOTES.md`, `CHANGELOG.md`, or similar) at the
repo root first, then one level down (e.g. a Laravel app in a subfolder).

- Found one → use it. Match its existing version numbering.
- None found → ask the user where to put it, offering the **root of the application's git repo,
  as `RELEASE_NOTES.md`** as the default. Do not silently pick a location.

## Step 2 — Determine scope

Find what changed since the last release section:

- Last version section in the file → diff/log since the commit that added it.
- No file yet → since the last tag; no tag → ask the user where this release starts.

Commit messages are only a map. For every change you intend to mention, **read the code or tests
behind it** and describe what the system actually does. Never copy a commit message into a bullet.
A claim you cannot verify in the code does not go in the notes.

## Step 3 — Write the section

### Structure

- New section at the **top**: `## X.Y — Since X.(Y-1) — YYYY-MM-DD`. Newest first, never rewrite
  history below (see Corrections).
- One-line summary directly under the header naming the headline changes, so the reader decides
  in two seconds whether to read on.
- Group bullets under bold area labels (module, screen, or subsystem). Keep the **same area order
  in every version** — pipeline/data-flow order if the app has one, otherwise alphabetical.

### Bullets

- Every bullet starts with a **bold micro-lead**, then one sentence *what changed*, at most one
  sentence *why*. A scanner reading only the bold text should get the whole release.
- Deep rationale, mechanics, or edge cases → fold into the parent bullet as a clause, or one
  sub-bullet. Never a paragraph disguised as a bullet.
- **No commit hashes. No class or method names.** Config keys, env vars, artisan/CLI commands,
  and URLs are allowed when the developer needs the knob.
- **Name trade-offs outright.** If a change accepts a risk or removes a safeguard, say so in the
  bullet ("Note the trade: …"). Honest notes are the point.
- Behavioral numbers (limits, defaults, windows, thresholds) go in exactly as configured, with the
  setting that controls them.

### Example bullet

> **Long subjects no longer block auto-approve.** Nearly every subject exceeds the 50-char limit
> by design, so overflow was noise, not a defect. Still shown as a badge; all other review flags
> unchanged. Note the trade: a draft whose only fault is a long subject can send unread.

## Corrections — never rewrite history silently

If a past section turns out to be wrong:

- Add a one-line **"Correction to X.Y:"** bullet in the new section stating the true behavior.
- Annotate the old bullet in place with *(Corrected in X.Z: …)* — keep it short, keep both
  directions linked. Never delete or reword the old claim as if it was always right.

## Carry-forward checklist

If the file has a **"Before shipping"** (or similar open-decisions) list, carry every still-open
item into the new section verbatim, noting it is still open. Drop only items actually resolved,
and say what resolved them.

## Step 4 — Verify before finishing

Re-read the drafted section once against the code: every number, every default, every claim.
Then show the user the new section and where it was written.

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.