# Release Generate Release Notes

> Generate Yaak release notes from git history and PR metadata, including feedback links and full changelog compare links. Use when asked to run or replace the old Claude generate-release-notes command.

- Skill: `mountain-loop/release-generate-release-notes` (Agent Skill)
- Install (CLI): `npx skillmds@latest add mountain-loop/release-generate-release-notes`
- Raw SKILL.md: https://api.skillmd.com/api/skills/mountain-loop/release-generate-release-notes/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: mountain-loop (https://skillmd.com/u/mountain-loop)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/mountain-loop/release-generate-release-notes

---


# Generate Release Notes

Generate formatted markdown release notes for a Yaak tag.

## Workflow

1. Determine target tag.
2. Determine previous comparable tag:
   - Beta tag: compare against previous beta (if the root version is the same) or stable tag.
   - Stable tag: compare against previous stable tag.
3. Collect commits in range:
   - `git log --oneline <prev_tag>..<target_tag>`
4. For linked PRs, fetch metadata:
   - `gh pr view <PR_NUMBER> --json number,title,body,author,url`
5. Extract useful details:
   - Feedback URLs (`feedback.yaak.app`)
   - Contributor GitHub handles from `author.login`
   - Plugin install links or other notable context
6. Format notes using Yaak style:
   - Changelog badge at top
   - Bulleted items with PR links where available
   - Contributor handles for external PRs
   - Feedback links where available
   - Full changelog compare link at bottom

## Formatting Rules

- Wrap final notes in a markdown code fence.
- Keep a blank line before and after the code fence.
- Output the markdown code block last.
- Append contributor attribution to PR-backed bullets for non-`@gschier` authors, using `by [@handle](https://github.com/handle)`.
- Do not append `by @gschier` for PRs authored by `@gschier`.
- These are app release notes. Exclude CLI-only changes (commits prefixed with `cli:` or only touching `crates-cli/`) since the CLI has its own release process.

## Release Creation Prompt

After producing notes, ask whether to create a draft GitHub release.

If confirmed and release does not yet exist, run:

`gh release create <tag> --draft --prerelease --title "Release <version_without_v>" --notes '<release notes>'`

If a draft release for the tag already exists, update it instead:

`gh release edit <tag> --title "Release <version_without_v>" --notes-file <path_to_notes>`

Use title format `Release <version_without_v>`, e.g. `v2026.2.1-beta.1` -> `Release 2026.2.1-beta.1`.

