| 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
3. Generate Release Notes File
- Parse the generated
src/.releases/Commits.json file.
- 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.md file to the development branch, and remove the temporary Commits.json file.
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>