How to Generate Release Notes from Tickets or PRDs Using pm-skills
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. 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, and returns formatted markdown. This integration is defined in pm-execution/commands/sprint.md.
Integration Architecture
As part of the broader pm-execution suite documented in 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:
/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:
## 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:
# 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 and writes the formatted sections to 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:
/sprint release-notes \
--tone "developer" \
"Git log:
- feat(auth): add OAuth2 support
- fix(api): resolve 500 error on /users endpoint"
Result:
## 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. - 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-notesdirectly 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.mddefines 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-notesdirectly 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. 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.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →