Skip to content
Back to skills

Release Notes

ASecurity

Generate consistent, well-structured release notes from git history. Triggered on release tags following semver patterns (v*.*.*) to produce categorized changelog with breaking changes, features, fixes, and contributor attribution.

  • 151 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added June 5, 2026
documentationgobashgitdocumentation

Works with

  • cli

Security analysis

A100/100

Pro scans all 10 files and shows the line behind each finding

Scanned June 5, 2026

npx -y skills add OpenHands/extensions --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/openhands-release-notes/badge)](https://www.skillsdirectory.com/skills/openhands-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: Generate consistent, well-structured release notes from git history. Triggered on release tags following semver patterns (v*.*.*) to produce categorized changelog with breaking changes, features, fixes, and contributor attribution.
triggers:
- /release-notes
---

# Release Notes Generator Plugin

Automates the generation of standardized release notes for OpenHands repositories using an OpenHands agent. The agent reviews the release range, judges significance, groups related PRs, and produces concise markdown for GitHub releases or changelogs.

## Features

- **Automatic tag detection**: Finds the previous release tag to determine the commit range
- **Agent-based editing**: Lets the agent decide which changes matter, open with a short conversational summary, and group related PRs into higher-signal summaries while keeping toolkit-maintainer-only details out of the main sections unless they are unusually significant
- **Structured GitHub context**: Supplies PR titles, labels, descriptions, and contributor metadata to guide the agent
- **Contributor attribution**: Includes PR numbers and author usernames for each change
- **Attribution validation**: Verifies every change bullet contains explicit PR/commit references and the matching author handles
- **Full coverage appendix**: Appends a compact `### πŸ”Ž Small Fixes/Internal Changes` section grouped by author when needed so every PR and author in the release range is still listed somewhere in the final markdown
- **New contributor highlighting**: Identifies first-time human contributors from merged PR history and excludes bot accounts
- **Flexible output**: Can update GitHub release notes or generate CHANGELOG.md entries

## Quick Start

### As a GitHub Action

Copy the workflow file to your repository:

```bash
mkdir -p .github/workflows
curl -o .github/workflows/release-notes.yml \
  https://raw.githubusercontent.com/OpenHands/extensions/main/plugins/release-notes/workflows/release-notes.yml
```

Configure required secrets (see the README for details).

### Manual Invocation

Use the `/release-notes` trigger in an OpenHands conversation to generate release notes for the current repository.

## Release Notes Format

Generated release notes follow this structure:

```markdown
## [v1.2.0] - 2026-03-06

### ⚠️ Breaking Changes
- Remove deprecated `--legacy` CLI flag (#456) @maintainer

### ✨ New Features
- Add support for Claude Sonnet 4.6 model (#445) @contributor1

### πŸ› Bug Fixes
- Fix WebSocket reconnection on network interruption (#451) @contributor3

### πŸ“š Documentation
- Update installation guide (#442) @contributor2

### πŸ‘₯ New Contributors
- @contributor3 made their first contribution in #451

**Full Changelog**: https://github.com/org/repo/compare/v1.1.0...v1.2.0
```

## Change Categorization

Changes are categorized based on:

1. **Conventional commit prefixes**: `feat:`, `fix:`, `docs:`, `chore:`, `BREAKING:`
2. **PR labels**: `breaking-change`, `bug`, `enhancement`, `documentation`

| Category | Commit Prefixes | PR Labels |
|----------|-----------------|-----------|
| Breaking Changes | `BREAKING:`, `!:` suffix | `breaking-change`, `breaking` |
| Features | `feat:`, `feature:` | `enhancement`, `feature` |
| Bug Fixes | `fix:`, `bugfix:` | `bug`, `bugfix` |
| Documentation | `docs:` | `documentation`, `docs` |
| Internal | `chore:`, `ci:`, `refactor:`, `test:` | `internal`, `chore`, `ci` |

## Configuration

See the [README](./README.md) for full configuration options and workflow setup instructions.

Files in this skill

  • .plugin/plugin.json535 B
  • README.md10.2 KB
  • SKILL.md3.5 KB
  • action.yml4.1 KB
  • commands/release-notes.md403 B
  • scripts/agent_script.py9.9 KB
  • scripts/generate_release_notes.py23.5 KB
  • scripts/prompt.py4.3 KB
  • scripts/validate_release_notes.py11.5 KB
  • workflows/release-notes.yml2.8 KB

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…