# How to Generate Automated Release Notes from Tickets and PRDs with pm-skills

> Automate release note generation from Jira tickets and PRDs using the pm-skills CLI. Streamline your workflow and create polished release notes effortlessly.

- Repository: [Pawel Huryn/pm-skills](https://github.com/phuryn/pm-skills)
- Tags: how-to-guide
- Published: 2026-06-13

---

**The pm-skills repository provides a dedicated release-notes skill that transforms raw technical artifacts like Jira tickets, Linear issues, and PRDs into polished, categorized release notes through the `/sprint` command or direct CLI invocation.**

Generating automated release notes from tickets and PRDs requires extracting the *what*, *who*, and *why* behind each change. The pm-skills open-source repository ships with a modular release-notes skill that categorizes updates into user-facing sections and renders them into publication-ready markdown without hard-coded parsers.

## Understanding the Release-Notes Skill Architecture

The workflow follows three declarative layers defined in the `pm-execution` module. This design keeps the logic interpretation-based rather than using rigid parsers, making it platform-agnostic and composable.

### Skill Definition Layer

The core logic resides in [`pm-execution/skills/release-notes/SKILL.md`](https://github.com/phuryn/pm-skills/blob/main/pm-execution/skills/release-notes/SKILL.md). This file prescribes how to ingest raw material from any ticket export format (CSV, JSON, or plain text), extract the semantic meaning of each change, and categorize items into **New Features**, **Improvements**, **Bug Fixes**, **Breaking Changes**, and **Deprecations**. The skill outputs a markdown template that can be saved directly or converted to HTML and other formats.

### Command Glue Layer

The generic `/sprint` command includes a dedicated *release-notes* mode. When you run `/sprint release-notes <context>`, the command pipelines your provided tickets or PRD content into the skill, applies the transformation rules from [`SKILL.md`](https://github.com/phuryn/pm-skills/blob/main/SKILL.md), and returns formatted notes. This integration is documented in [`pm-execution/commands/sprint.md`](https://github.com/phuryn/pm-skills/blob/main/pm-execution/commands/sprint.md).

### Integration Points

As part of the broader `pm-execution` suite (see [`pm-execution/README.md`](https://github.com/phuryn/pm-skills/blob/main/pm-execution/README.md)), the release-notes skill follows the same pattern as other execution skills: a markdown-driven specification invoked by a command that returns rendered output. This uniformity allows you to chain commands—such as `plan → retro → release-notes`—and extend the skill with custom tones or output formats.

## How to Generate Release Notes from Tickets and PRDs

You can generate release notes using three primary methods, depending on whether you prefer CLI interaction, direct skill invocation, or custom scripting.

### Method 1: Using the `/sprint` Command

The simplest approach uses the built-in sprint command with the release-notes mode. Pass your ticket exports or PRD content as a string argument:

```text
/sprint release-notes \
  "Jira export:
   - EPIC‑123: Add real‑time analytics dashboard (new feature)
   - BUG‑456: Fix crash on checkout page (bug fix)
   - IMP‑789: Improve cache warm‑up time (improvement)"

```

The command processes the input through the skill defined in [`pm-execution/skills/release-notes/SKILL.md`](https://github.com/phuryn/pm-skills/blob/main/pm-execution/skills/release-notes/SKILL.md) and returns categorized markdown:

```markdown

## What's New — v1.4.2 / 2024‑06‑10  

### Highlights  

Dashboards now load up to 3× faster, so you spend less time waiting and more time analyzing.

### New Features

- **Real‑time analytics dashboard** — Gives product managers instant visibility into key metrics without leaving the app.

### Improvements

- **Cache warm‑up** — Reduces initial load time, improving the onboarding experience for new users.

### Bug Fixes

- Fixed an issue where the checkout page could crash during high‑traffic periods.

```

### Method 2: Direct Skill Invocation

For automated pipelines or scripts, invoke the skill directly via the underlying pm-toolkit engine:

```bash

# Assume pm‑toolkit provides a CLI `pm skill run`

pm skill run release-notes \
  --input tickets.txt \
  --output RELEASE_NOTES.md

```

This writes the formatted release notes to [`RELEASE_NOTES.md`](https://github.com/phuryn/pm-skills/blob/main/RELEASE_NOTES.md), applying the same categorization rules as the `/sprint` command but without interactive CLI wrapping.

### Method 3: Custom Tone Configuration

The skill supports tone modifiers to target different audiences. Use the `--tone` flag to generate developer-focused API documentation instead of user-facing marketing copy:

```text
/sprint release-notes \
  --tone "developer" \
  "Git log:
   - feat(auth): add OAuth2 support
   - fix(api): resolve 500 error on /users endpoint"

```

This produces technically precise output:

```markdown

## What's New — v2.0.0 / 2024‑06‑10  

### New Features

- **OAuth2 support** — Enables secure third‑party authentication for API consumers.

### Bug Fixes

- Fixed a 500 error on the `/users` endpoint that could cause client crashes.

```

## Key Files in the Repository

Understanding the file structure helps you customize the release-notes generation:

- **[`pm-execution/skills/release-notes/SKILL.md`](https://github.com/phuryn/pm-skills/blob/main/pm-execution/skills/release-notes/SKILL.md)** — Full specification of the release-notes skill, including categorisation rules, phrasing guidelines, and the markdown template.
- **[`pm-execution/commands/sprint.md`](https://github.com/phuryn/pm-skills/blob/main/pm-execution/commands/sprint.md)** — Documentation for the `/sprint` command that exposes the release-notes mode and shows CLI-style usage examples.
- **[`pm-execution/README.md`](https://github.com/phuryn/pm-skills/blob/main/pm-execution/README.md)** — Overview of the execution module and a complete list of available skills, including the release-notes capability.

## Summary

- **The release-notes skill** in [`pm-execution/skills/release-notes/SKILL.md`](https://github.com/phuryn/pm-skills/blob/main/pm-execution/skills/release-notes/SKILL.md) provides a declarative, markdown-driven approach to transforming tickets and PRDs into release notes.
- **Use the `/sprint release-notes` command** for interactive generation, or invoke the skill directly via `pm skill run` for automation pipelines.
- **The skill categorizes changes** into New Features, Improvements, Bug Fixes, Breaking Changes, and Deprecations automatically.
- **Platform-agnostic design** works with any ticket export format (CSV, JSON, plain text) because it focuses on semantic content rather than structured parsing.
- **Extensible architecture** allows custom tones and output formats by editing the skill definition or using command flags.

## Frequently Asked Questions

### What file formats does the release-notes skill support?

The skill is platform-agnostic and works with any ticket export format including CSV, JSON, and plain text. Because the skill focuses on semantic content extraction rather than hard-coded parsers, it can process Jira exports, Linear issues, Git logs, or PRD documents regardless of their specific file structure.

### How do I customize the tone of generated release notes?

You can customize the tone using the `--tone` flag when invoking the `/sprint release-notes` command. For example, use `--tone "developer"` to generate API-focused documentation, or modify the phrasing rules directly in [`pm-execution/skills/release-notes/SKILL.md`](https://github.com/phuryn/pm-skills/blob/main/pm-execution/skills/release-notes/SKILL.md) to create permanent style changes for your organization.

### Can I invoke the release-notes skill without using the `/sprint` command?

Yes, you can invoke the skill directly from scripts or automation pipelines using the underlying pm-toolkit engine with the command `pm skill run release-notes --input <file> --output <file>`. This bypasses the interactive CLI wrapper while applying the same categorization and formatting rules defined in the skill specification.

### Where is the release-notes skill defined in the repository?

The skill is defined in [`pm-execution/skills/release-notes/SKILL.md`](https://github.com/phuryn/pm-skills/blob/main/pm-execution/skills/release-notes/SKILL.md). This file contains the complete specification for categorizing changes, extracting the *what*, *who*, and *why* from raw artifacts, and rendering the final markdown template used in all release-notes generation workflows.