agentleFS
open-edge-platformopen-edge-platform/edge-ai-libraries/.github/skills/generate-release-notes/SKILL.md

generate-release-notes

Skill177 starsChanged 7 months agoApache-2.0View on GitHub

Generate formatted release notes for a specific folder/module in a repository by comparing two git branches or tags. Use this skill whenever the user mentions release notes, changelog, what changed between branches, version summary, release prep, or wants to document what is new or fixed in a release, especially when they mention a component folder or subproject path. Compares commits and diffs between a base branch or tag and a release branch or tag for the requested folder only, then produces structured Markdown release notes with New, Improved, and Fixed bold-heading sections, bold bullet titles, and an intro summary sentence, following the Time Series Analytics product style. Always use this skill rather than writing release notes freehand.

We split this skill into the rules it gives an agent

9 rules. 0 are common, 8 are distinctive, and 1 is very specific to this project.

  • 0

    Common

    Most of the 10 edited versions we read keep these.

  • 8

    Distinctive

    This author's own choices. Worth a look.

  • 1

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Before starting, ask the user for these values if not already provided:

    line 20
  2. Distinctive:

    Run these commands against the repo being released and scope to the requested folder path:

    line 40
  3. Distinctive:

    If the change volume is large, scope the diff further to key subdirectories under the selected folder:

    line 53
  4. Very specific:

    Security dependency bumps: always call out under Improved with a Security: bullet, naming the package and CVE or vulnerability description …

    line 72
  5. Distinctive:

    Follow the release notes format template exactly.

    line 76
  6. Distinctive:

    Do NOT include code blocks, tables, bash commands, or environment variable listings in release notes — keep entries high-level and …

    line 99
  7. Distinctive:

    If the file does not exist, create it.

    line 117
  8. Distinctive:

    When uncertain about formatting or section structure, re-read that file.

    line 127
  9. Distinctive:

    After drafting, ask the user to confirm:

    line 131

“Common” is measured: kept by at least 6 in 10 of the 10 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Generate Release Notes

When to Use

  • Preparing a new release and need formatted release notes
  • Comparing changes between two branches (e.g., main vs release-2026.1.0)
  • Summarizing what is new, improved, or fixed in a version
  • Appending a new version section to an existing release notes file

Inputs Required

Before starting, ask the user for these values if not already provided:

InputExampleNotes
product nameTime Series AnalyticsRequired
Base branchmain, release-2026.0Required
Release branchrelease-2026.1.0Required
Version number2026.1Optional — auto-derived from the release branch name if not provided (see Step 3)
Release month and yearJune 2026Required
Folder path in repomicroservices/time-series-analyticsRequired

If the user has not specified the product name, ask them: "What is the product name to include in the release notes? (e.g., Time Series Analytics)"


Procedure

Step 1: Gather Git History

Run these commands against the repo being released and scope to the requested folder path:

# All commits unique to the release branch (no merge commits)
git log <base-branch-or-tag>..<release-branch-or-tag> --oneline --no-merges -- <folder-path>

# Files changed and their change volumes
git diff <base-branch-or-tag>..<release-branch-or-tag> --stat -- <folder-path>

# Full diff for detailed analysis
git diff <base-branch-or-tag>..<release-branch-or-tag> -- <folder-path>

If the change volume is large, scope the diff further to key subdirectories under the selected folder:

git diff <base-branch-or-tag>..<release-branch-or-tag> -- <folder-path>/<path/to/component>

Step 2: Categorize Changes

Group every change into one of the three categories below. When in doubt, prefer Improved over New unless the feature is entirely absent from the base branch.

CategoryWhat belongs here
NewBrand-new features, APIs, components, scripts, or capabilities that did not exist in the base branch
ImprovedEnhancements, refactors, performance improvements, dependency/image upgrades, documentation updates, security patches, renames
FixedBug fixes and error corrections — omit this section entirely if there are no bug fixes

Handling ambiguous changes:

  • Downgrades or reversals (e.g., base image rolled back from 24.04 to 22.04, a feature removed): still list under Improved if the change was intentional, and describe why (e.g., "updated to align with supported baseline"). If the change removes user-visible functionality, note it plainly.
  • Very small changes (typo fix, single-line config tweak): group several into one bullet rather than listing each separately.
  • Security dependency bumps: always call out under Improved with a **Security**: bullet, naming the package and CVE or vulnerability description if known.

Step 3: Write the Release Notes

Follow the release notes format template exactly.

Formatting rules:

  • File heading: # Release Notes: <product_name> — use the product name supplied by the user (e.g., # Release Notes: Time Series Analytics).
  • Version heading: ## Version <X.Y> — always ##, never # or ###

    Versioning strategy: The version number follows the YYYY.MINOR scheme where YYYY is the calendar year and MINOR is the sequential release number within that year (starting at 0). Derive it from the release branch name by stripping the release- prefix and any trailing patch segment (.0):

    • release-2026.0 → 2026.0
    • release-2026.1.0 → 2026.1
    • release-2026.2.0 → 2026.2

    MINOR increments sequentially within a calendar year (e.g., 2026.0, 2026.1, 2026.2, …). If the user has not specified the version number, derive it from the release branch using this rule and confirm with the user before writing.

  • Date line immediately below: **<Month Year>** (bold, on its own line, NOT embedded in the heading)
  • One-sentence introductory paragraph that names the 2–4 most significant highlights in bold inline, ending with and various fixes and documentation improvements. (or similar closing clause)
  • Each category as a bold paragraph heading — write exactly **New**, **Improved**, **Fixed** — these are NOT markdown ## or ### headers, just bold text on its own line
  • Each bullet: - **Feature Name**: Description sentence(s).
    • The bold title is the short name of the feature/change
    • The colon goes outside the bold markers: **Name**: not **Name:**
    • The description follows a colon, starts lowercase (unless a proper noun), and ends with a period
    • Group related small changes into a single bullet rather than splitting into many bullets
  • Separate versions with a --- horizontal rule
  • Do NOT include code blocks, tables, bash commands, or environment variable listings in release notes — keep entries high-level and human-readable

Intro sentence patterns (choose the one that fits):

This release introduces **X**, **Y**, and **Z**, along with various fixes and documentation improvements.

This release introduces **X** and **Y**, along with **updated Z** and **documentation improvements**.

Step 4: Locate or Create the Release Notes File

For a folder-scoped release, the canonical path is:

<folder-path>/docs/user-guide/release-notes.md

If the file does not exist, create it. If it already exists, prepend the new version section above the previous most-recent version entry (do not replace existing content).

Step 5: Reference Example

The authoritative format example is the existing release notes file for the selected folder:

<folder-path>/docs/user-guide/release-notes.md

When uncertain about formatting or section structure, re-read that file.

Step 6: Review with User

After drafting, ask the user to confirm:

  1. Are all significant changes captured?
  2. Are the categorizations (New / Improved / Fixed) correct?
  3. Is the intro summary accurate?
  4. Are there any sensitive internal details that should be removed?

Apply any corrections before writing to disk.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.