release-notes
Structured release notes creation that translates technical changes into user-benefit-oriented communication.
What this skill does
# Release Notes Expert ## Overview Transform raw technical changes -- tickets, changelogs, git logs, PRDs -- into clear, user-benefit-oriented release notes. This skill ensures every release communicates value to the right audience in the right tone. ### When to Use - **Product Releases** -- Announcing new versions to customers, partners, or internal stakeholders. - **Sprint Demos** -- Summarizing what shipped for sprint review audiences. - **Changelog Maintenance** -- Keeping a running log of changes across releases. - **Customer Communication** -- Preparing release announcements for email, in-app, or documentation. ## Methodology ### Step 1: Gather Raw Input Collect all changes from the release cycle: - **Jira/Linear tickets** -- Completed stories, bugs, and tasks - **Git log** -- Merge commits since last release tag - **PRD references** -- Feature specs that shipped - **Hotfix records** -- Emergency fixes deployed between releases ### Step 2: Classify Each Change Assign every change to exactly one category: | Category | Definition | Example | |----------|-----------|---------| | **New Features** | Net-new capabilities that did not exist before | New export-to-PDF option | | **Improvements** | Enhancements to existing functionality | Faster dashboard loading | | **Bug Fixes** | Corrections to broken or incorrect behavior | Fixed login redirect loop | | **Breaking Changes** | Changes that require user action to adapt | API v2 replaces v1 endpoints | | **Deprecations** | Features scheduled for future removal | Legacy CSV import will be removed in v4.0 | **Classification rules:** - If a change adds something entirely new, it is a **New Feature**. - If it makes something existing better (faster, easier, more reliable), it is an **Improvement**. - If it fixes something that was wrong, it is a **Bug Fix**. - If users must change their behavior, configuration, or integration, it is a **Breaking Change**. - If a feature still works but will be removed later, it is a **Deprecation**. ### Step 3: Rewrite for User Benefit The most critical step. Every entry must lead with the benefit to the user, not the technical change. **Rewriting principles:** 1. **Lead with the outcome.** What can the user do now that they could not before, or what is better for them? 2. **Use plain language.** Avoid internal jargon, code references, or implementation details. 3. **Keep it to 1-3 sentences.** One sentence for minor items, up to three for significant features. 4. **Include context when needed.** If users need to take action, tell them exactly what to do. **Before and after examples:** | Technical (Bad) | User-Benefit (Good) | |----------------|-------------------| | Implemented Redis caching layer for dashboard queries | Dashboards now load up to 3x faster | | Refactored authentication module to use OAuth 2.0 PKCE flow | Sign-in is now more secure and works reliably across all browsers | | Fixed null pointer exception in report export handler | Report exports no longer fail when date ranges include empty days | | Migrated user preferences API from v1 to v2 schema | **Action required:** Update your API calls to use the new `/v2/preferences` endpoint by April 30. See migration guide. | | Added feature flag for beta dashboard | You can now opt into the redesigned dashboard from Settings > Beta Features | **Red flags that an entry needs rewriting:** - Mentions a class name, function, or library - Starts with "Refactored," "Migrated," or "Updated" without stating impact - Uses acronyms the target audience would not know - Describes what the team did instead of what the user gains ### Step 4: Adjust Tone for Audience | Audience | Tone | Style Notes | |----------|------|-------------| | **B2B / Enterprise** | Professional, precise | Emphasize reliability, security, compliance. Avoid casual language. | | **Consumer** | Friendly, conversational | Use "you" and "your." Celebrate new features. Keep it light. | | **Developer / API** | Technical, direct | Include endpoint names, SDK versions, code snippets. Be specific. | | **Internal** | Detailed, context-rich | Include ticket IDs, team names, technical details as needed. | ### Step 5: Assemble the Release Notes Use the output template below. Include only categories that have entries -- do not show empty sections. ## Output Template ```markdown # [Product Name] v[X.Y.Z] Release Notes **Release Date:** [YYYY-MM-DD] --- ## New Features - **[Feature Name]** -- [1-3 sentence description of user benefit]. ([TICKET-ID]) ## Improvements - **[Improvement Name]** -- [1-2 sentence description of what is better]. ([TICKET-ID]) ## Bug Fixes - **[Bug Fix Name]** -- [1 sentence describing what was broken and that it is now fixed]. ([TICKET-ID]) ## Breaking Changes > **Action Required:** The following changes require updates on your end. - **[Change Name]** -- [Description of what changed and exactly what the user must do]. ([TICKET-ID]) ## Deprecations > **Planned Removal:** The following features will be removed in a future release. - **[Feature Name]** -- [What is being deprecated and when it will be removed. Recommend alternative if available]. ([TICKET-ID]) --- **Full changelog:** [link] **Questions?** [support link or contact] ``` ## Python Tool Use `scripts/release_notes_generator.py` to generate formatted release notes from structured input. ```bash # Generate from JSON input python scripts/release_notes_generator.py --input changes.json --product-name "Acme App" --version "2.5.0" # Run with demo data python scripts/release_notes_generator.py --demo --product-name "Acme App" --version "1.0.0" # Output as JSON instead of markdown python scripts/release_notes_generator.py --input changes.json --format json --product-name "Acme App" --version "2.5.0" ``` See `scripts/release_notes_generator.py --help` for full usage. ## Integration with Other Skills - Use `summarize-meeting/` to capture release planning discussions. - Use `job-stories/` or `wwas/` to trace features back to their original motivation. - Pair with `../senior-pm/` for stakeholder communication planning around major releases. ## Troubleshooting | Symptom | Likely Cause | Resolution | |---------|-------------|------------| | Tool flags too many entries as "technical language" | TECHNICAL_PATTERNS regex is broad, catching common words like "update" or "add" | Review the flagged entries; the tool provides suggestions, not mandates -- ignore false positives for user-facing descriptions | | All entries classified as same type | Input JSON uses wrong type values or inconsistent casing | Use exact lowercase types: `feature`, `improvement`, `bugfix`, `breaking`, `deprecation` | | Empty sections appear in output | No entries of that type exist but template still renders the section | The tool only renders sections with entries; empty sections indicate a data issue in input | | Breaking changes not highlighted prominently | Entries marked as `improvement` instead of `breaking` | Review classification rules: if users must change behavior, config, or integration, it is `breaking`, not `improvement` | | Release notes sound like commit messages | Descriptions written from developer perspective, not user perspective | Apply the rewriting principles: lead with outcome, use plain language, 1-3 sentences per entry | | `--demo` flag requires `--product-name` and `--version` | These are required arguments regardless of input source | Always provide both: `--demo --product-name "App" --version "1.0.0"` | | JSON output missing rewriting suggestions | No entries triggered technical language detection patterns | This is expected behavior; suggestions only appear when TECHNICAL_PATTERNS match entry descriptions | ## Success Criteria - Every release has structured notes published within 24 hours of deployment - All entries lead with user benefit, not technical implementation details - Breaking changes include explicit migration instructions with deadl
Related in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.