name: ivy-create-release-notes description: > Generate release notes / weekly notes for the Ivy Framework by analyzing git commits and code diffs since the last tag or a specific commit. Use when the user wants to compile patch notes, changelogs, or weekly updates for the project. allowed-tools: Bash(git:*) Read Write Edit Glob Grep effort: high argument-hint: "[optional start tag or commit hash]"
ivy-create-release-notes
Analyze recent changes and generate structured release/weekly notes for the Ivy Framework.
Pre-flight: Read Learnings
If the file .ivy/learnings/ivy-create-release-notes.md exists in the project directory, read it first and apply any lessons learned from previous runs of this skill.
Workflow
1. Plan and Determine Range
- Check git tags in the repository using
git tag --sort=-v:refname. - Identify the latest tag (e.g.
v1.2.67) and the previous tag (e.g.v1.2.66). - Ask the user to confirm the tag/commit range. By default, analyze changes from the previous release tag to the latest release tag.
2. Extract and Filter Commits
- Run the PowerShell script
src/.releases/GeneratePatchNotes.ps1to extract non-frontend commits for the selected range into a JSON file:pwsh src/.releases/GeneratePatchNotes.ps1 -FromRef <FromRef> -ToRef <ToRef> -Output src/.releases/Commits.json
3. Generate Release Notes File
- Parse the generated
src/.releases/Commits.jsonfile. - Filter and categorize the commits (ignoring internal refactors, merge commits, or test-only changes that do not affect users of the framework/CLI).
- Group changes into sections (e.g.,
New Features,Bug Fixes and Improvements, etc.). - Write clear, user-facing descriptions for each change.
- Provide concise C# usage code blocks for new features or major API additions.
- Initialize/write the release notes file
src/.releases/weekly-notes-YYYY-MM-DD.md(e.g.,weekly-notes-2026-06-18.md) with the header:# Ivy Framework Weekly Notes - Week of YYYY-MM-DD > [!NOTE] > We usually release on Fridays every week. Sign up on [https://ivy.app/](https://ivy.app/auth/sign-up) to get release notes directly to your inbox. - Commit and push the generated
weekly-notes-YYYY-MM-DD.mdfile to thedevelopmentbranch, and remove the temporaryCommits.jsonfile.
4. Update GitHub Release Notes
- Retrieve the existing body of the GitHub release:
gh release view <tag> --json body -q .body - Combine the new weekly release notes text and the existing body, placing the new weekly notes at the top, before the "What's Changed" section.
- Update the GitHub release description using
gh:gh release edit <tag> --notes-file <path_to_combined_notes_file>