Skip to content
Back to skills

Release Notes Generator

ASecurity

Generate user-facing release notes from a plain-language sprint summary file — no git required. Produces 4 ready-to-use formats: changelog, email, in-app push, and social post. Triggers: 'generate release notes', 'write release notes', 'create release notes from', 'turn sprint results into release notes', 'сгенерируй release notes', 'напиши release notes', 'создай релизные заметки', 'оформи итоги спринта'.

  • 18 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added May 27, 2026
data-aigogitdatabaseci/cdperformance

Works with

  • cli

Security analysis

A100/100

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

Scanned September 6, 2026

npx -y skills add KirKruglov/claude-skills-kit --skill release-notes-generator --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Release Notes Generator?

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

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

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-generator
description: "Generate user-facing release notes from a plain-language sprint summary file — no git required. Produces 4 ready-to-use formats: changelog, email, in-app push, and social post. Triggers: 'generate release notes', 'write release notes', 'create release notes from', 'turn sprint results into release notes', 'сгенерируй release notes', 'напиши release notes', 'создай релизные заметки', 'оформи итоги спринта'."
version: 1.0.0
---

# Release Notes Generator

This skill transforms a plain-language sprint summary or product update file into polished, user-facing release notes for 4 communication channels — without git, CLI, or developer tooling. Designed for non-technical PMs, product owners, and team leads who write sprint results in plain text and need to distribute them across multiple channels.

**Input:**
- One local file (`.md` or `.txt`) with sprint results or product update notes
- Optional: product name, version / sprint number, audience type (`users` | `customers` | `internal`)

**Output:**
- **Changelog entry** — markdown-formatted, ready to paste into CHANGELOG.md
- **Email announcement** — subject line + body (2–4 paragraphs)
- **In-app / push notification** — 1–2 sentences, max 160 characters
- **Social post** — LinkedIn / X version, conversational tone

---

## Language Detection

Detect the language of the **input file**:
- If the file content is in Russian: generate all 4 output formats in Russian
- If the file content is in English: generate all 4 formats in English
- If mixed-language content: default to English; add note "Mixed-language input detected — generated in English. Say 'по-русски' to switch."
- If the user's trigger phrase is in Russian but the file is in English: use English for outputs (follow the file)

---

## Instructions

### Step 1: Find and Read the Input File

1. Look for the file the user mentioned by name
   - If no filename given: scan the Cowork workspace for `.md` and `.txt` files; if exactly one such file exists, use it; if multiple exist, list them and ask which one to use
2. Read the file
3. Validate:
   - If no file found: stop — "No input file found. Please place your sprint summary or product update notes (.md or .txt) in the Cowork workspace and try again."
   - If the file is empty or contains fewer than 3 meaningful lines: stop — "The file is too short to generate release notes from. Add at least a few bullet points describing what was released."
   - If file is `.docx` or `.pdf`: stop — "release-notes-generator works with .md and .txt files. Please export your document to text format and try again."

### Step 2: Extract Context

1. Scan the first 5–10 lines for:
   - Product name
   - Version number or sprint number (e.g., `v1.4.2`, `Sprint 23`, `Release 2026-05`)
   - Date (release date or sprint end date)
   - Audience type (look for signals: "for customers", "internal only", "user-facing")

2. If product name, version, or date cannot be inferred:
   - Ask in **one consolidated question**: "A few quick details: What's the product name? What version or sprint number is this? What's the release date? (Feel free to skip any you don't need.)"
   - Do not ask multiple separate questions

3. Set audience type:
   - Default: `users`
   - Override if the file explicitly states `internal` or `customers`

### Step 3: Filter for User-Facing Content

1. Read all update items in the file
2. Classify each item:
   - **Include — New:** new features or capabilities (user-visible)
   - **Include — Improved:** enhancements to existing features, performance gains users notice, UI/UX changes
   - **Include — Fixed:** bug fixes that affected users
   - **Exclude:** internal refactors, technical debt cleanup, infrastructure changes, developer tooling updates, CI/CD changes, database migrations, dependency upgrades with no user impact

3. Do NOT silently drop excluded items — collect them for the "Internal Changes" note at the end of output

4. If **all items** are technical/internal:
   - Stop and ask: "All items appear to be internal technical changes (refactors, infrastructure). These are typically not suitable for user-facing release notes. Should I write internal-team notes instead, or do you have user-facing changes to add?"

5. Group user-facing items into 3 categories: **New**, **Improved**, **Fixed**
   - Omit any category with zero items (do not print empty sections)

### Step 4: Generate All 4 Formats

Generate formats in this order. Use clearly delimited sections with emoji labels.

**Format 1 — Changelog Entry**
- Markdown code block, valid CHANGELOG.md format
- Version header with date: `## [version] — YYYY-MM-DD`
- Grouped by: `### New`, `### Improved`, `### Fixed`
- Each item: `- [Feature/fix name]: [one-line plain-language description of the user benefit]`
- No technical jargon; no commit hashes; no dev abbreviations

**Format 2 — Email Announcement**
- Subject line: specific, benefit-first (e.g., "Sprint 23 updates: new report filters, faster exports")
  - Do NOT use: "Newsletter", "Update", "Announcement", "We are pleased to announce"
- Body structure:
  - Opening sentence: lead with the biggest user benefit ("Starting today, you can...")
  - Paragraph 1: highlight 2–3 top improvements in plain language
  - Paragraph 2: list remaining changes briefly
  - Closing: 1 sentence CTA or "thank you" — keep it short
- Tone: professional but direct; no corporate fluff

**Format 3 — In-App / Push Notification**
- Exactly 1–2 sentences
- Maximum 160 characters (count carefully)
- Structure: verb-first + specific benefit + optional CTA
- Example shape: "[Feature] is now live — [what users can do]. [CTA]"
- If character limit is hard to hit with multiple items: pick the single most impactful update

**Format 4 — Social Post (LinkedIn / X)**
- 3–5 sentences
- Conversational tone — not a press release
- Opens with a hook (a question, a surprising stat, or a direct statement of value)
- Names 2–3 highlights by name
- Ends with one CTA or question
- No emojis unless user specifically requested them

**After generating all 4 formats:**
- List excluded technical items under `### Internal Changes (not in user-facing notes)`
- If list is empty: omit this section

### Step 5: Offer Blog Intro

After the 4 formats, add a single line:
> "Want me to add a blog intro paragraph? Just say so."

Do not generate it unless requested.

---

## Negative Cases

- **File not found:** Stop — "No input file found. Please place your sprint summary (.md or .txt) in the Cowork workspace and try again."
- **File too short:** Stop — "The file is too short to generate release notes from. Add at least a few bullet points describing what was released."
- **All items are internal/technical:** Stop and ask — "All items appear to be internal technical changes. Should I write internal-team notes instead, or do you have user-facing changes to add?"
- **No version or sprint number found:** Ask once (consolidated with other missing fields in Step 2).
- **Hotfix / patch release:** Detected from keywords (`hotfix`, `patch`, `urgent fix`) in the **filename or the first 3 lines of the file** — adjust email tone to reassurance-first: "We've just pushed a fix for [issue]. Everything is back to normal."
- **File is .docx or .pdf:** Stop — "release-notes-generator works with .md and .txt files. Please export your document to text format and try again."
- **User asks for a format not in the list (e.g., Slack message):** After generating the 4 standard formats, offer: "I can also write a Slack announcement — want me to add it?"

---

## Output Format

```
## Release Notes — [Product Name] [Version] · [Date]

---

### 📋 Changelog Entry

[markdown code block]

---

### 📧 Email Announcement

**Subject:** [Subject line]

[Email body]

---

### 📱 In-App / Push Notification

[1–2 sentences, ≤ 160 characters]

---

### 🔗 Social Post (LinkedIn / X)

[3–5 sentences]

---

### Internal Changes (not in user-facing notes)
- [List of excluded technical items — omit section if empty]
```

---

## Edge Cases

- **Single-item release:** Generate all 4 formats even for one feature — scale length proportionally
- **Hotfix release:** Detected from keywords (`hotfix`, `patch`, `urgent fix`) in the filename or the first 3 lines of the file — reassurance-first tone; email opens with "We've resolved [issue]"; push says "Fixed: [issue] — all systems normal"
- **Major release (many items, "major" keyword):** Add a note after outputs: "This looks like a major release — a dedicated blog post might be worth the effort. Want me to draft an intro?"
- **Mixed EN/RU file:** Default to English; note "Mixed-language input detected — generated in English. Say 'по-русски' to switch."

Files in this skill

  • README.md3 KB
  • README.ru.md4.6 KB
  • SKILL.md8.7 KB
  • docs/USER-GUIDE.md5 KB
  • docs/USER-GUIDE.ru.md8.4 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…

Newsletter

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