# How to Generate Release Notes from Tickets or PRDs Using pm-skills

> Effortlessly generate release notes from tickets and PRDs using the pm-skills release-notes skill. Transform raw data into polished markdown for your next sprint with the /sprint command.

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

---

**The pm-skills repository provides a dedicated "release-notes" skill that transforms raw tickets, PRDs, and Git commits into categorized, user-friendly markdown release notes through the `/sprint` command or direct skill invocation.**

The open-source pm-skills project offers a structured approach to generate release notes from tickets or PRDs without hard-coded parsers. By leveraging a declarative markdown-based skill system, it extracts semantic meaning from various inputs—Jira exports, Linear tickets, plaintext PRDs, or Git logs—and formats them into polished, publication-ready documents.

## How the Release Notes Skill Works

The architecture rests on three distinct layers that process your raw technical artifacts into final output.

### 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 the ingestion rules, extraction patterns for the *what*, *who*, and *why* of each change, and categorization logic. It automatically buckets items into **New Features**, **Improvements**, **Bug Fixes**, **Breaking Changes**, or **Deprecations**, then renders them through a markdown template that can be converted to HTML or other formats.

### Command Glue Layer

The generic `/sprint` command provides 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 markdown. This integration is defined in [`pm-execution/commands/sprint.md`](https://github.com/phuryn/pm-skills/blob/main/pm-execution/commands/sprint.md).

### Integration Architecture

As part of the broader `pm-execution` suite documented in [`pm-execution/README.md`](https://github.com/phuryn/pm-skills/blob/main/pm-execution/README.md), the release-notes skill follows a uniform pattern: markdown specification → command invocation → rendered output. This design allows you to chain commands (e.g., `plan → retro → release-notes`) and ensures all execution skills remain composable and platform-agnostic.

## Using the Release Notes Generator

You can generate release notes through multiple interfaces depending on your workflow needs.

### Method 1: The /sprint Command

The simplest approach uses the built-in sprint command with the release-notes mode. Provide your raw ticket data 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 system outputs structured 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 CLI Invocation

For automation scripts or CI/CD pipelines, invoke the skill directly via the pm-toolkit CLI:

```bash

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

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

```

This reads the file [`tickets.txt`](https://github.com/phuryn/pm-skills/blob/main/tickets.txt) and writes the formatted sections to [`RELEASE_NOTES.md`](https://github.com/phuryn/pm-skills/blob/main/RELEASE_NOTES.md), applying the same categorization rules defined in the skill specification.

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

```

Result:

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

```

## Customization and Extensibility

The pm-skills implementation prioritizes flexibility over rigid formatting.

- **Modular categories**: Adding a new section or custom tone requires only editing [`pm-execution/skills/release-notes/SKILL.md`](https://github.com/phuryn/pm-skills/blob/main/pm-execution/skills/release-notes/SKILL.md).
- **Platform-agnostic**: The skill processes any ticket export format—CSV, JSON, or plain text—because it operates on semantic content rather than specific file schemas.
- **Composable**: Other commands or scripts can invoke `release-notes` directly from code, allowing integration into larger product management workflows.

The underlying *pm-toolkit* engine interprets the skill's instructions, extracts bullet points from provided files, and writes the final markdown without requiring custom parsers for each input source.

## 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) defines transformation rules for converting raw tickets into structured markdown.
- Use **`/sprint release-notes <context>`** for quick, command-line generation from text inputs.
- Invoke **`pm skill run release-notes`** directly for file-based automation and CI/CD integration.
- The **three-layer architecture** (skill definition, command glue, integration) ensures the system remains modular, composable, and platform-agnostic.
- Custom tones and categories are configurable by editing the skill's markdown specification, not application code.

## Frequently Asked Questions

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

The skill accepts any text-based format including CSV exports, JSON files, and plain text documents. Because the pm-toolkit engine extracts semantic content rather than parsing specific schemas, it works with Jira, Linear, GitHub Issues, or custom PRD formats as long as they contain readable text describing the changes.

### Can I modify the default categories like "New Features" and "Bug Fixes"?

Yes. The categorization rules live in [`pm-execution/skills/release-notes/SKILL.md`](https://github.com/phuryn/pm-skills/blob/main/pm-execution/skills/release-notes/SKILL.md). Editing this file allows you to rename existing categories, add new ones (such as "Security Updates" or "Performance"), or adjust the trigger keywords that route items into each section.

### How does the release-notes skill differ from traditional changelog generators?

Unlike conventional tools that parse Git commit conventions or require strict formatting, this skill uses the pm-toolkit engine to interpret natural language descriptions from tickets and PRDs. It focuses on the *user impact* and *business value* rather than technical implementation details, producing notes suitable for end-users rather than just developers.

### Can I chain the release-notes command with other pm-skills commands?

Absolutely. The `pm-execution` suite is designed for composability. You can sequence commands such as `/sprint plan` followed by `/sprint retro` and finally `/sprint release-notes` to move from sprint planning through retrospective documentation to final release publication within a single workflow.