agentsclimarketplace

Release notes generator

Skill KirKruglov/claude-skills-kit/skills/launch-and-releases/release-notes-generator

70+ curated agent skills for Claude Cowork and Claude.ai — ready-to-use tools for non-technical users: project management, productivity, and AI workflow automation

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

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 14 stars14 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

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', 'создай релизные заметки', 'оформи итоги спринта'.

SKILL.md

8.7 KB, as published. Nobody here has run it

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."

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.