Skip to content

docs: add prepare-release-notes skill and document it in the release how-to - #1100

Draft
tbouffard wants to merge 3 commits into
mainfrom
docs/claude_skill_prepare_release_notes
Draft

docs: add prepare-release-notes skill and document it in the release how-to#1100
tbouffard wants to merge 3 commits into
mainfrom
docs/claude_skill_prepare_release_notes

Conversation

@tbouffard

@tbouffard tbouffard commented Jul 8, 2026

Copy link
Copy Markdown
Member

What

Add a prepare-release-notes Claude Code skill (.claude/skills/prepare-release-notes) that drafts the GitHub release notes body for a maxGraph release, and document how to use it in the release how-to page.

Why

Preparing release notes is a manual, error-prone step: gathering breaking changes, deprecations and highlights from the commit history, cross-checking the CHANGELOG, computing the example bundle sizes, and finally updating the GitHub draft release without clobbering its auto-generated content. This skill encodes that workflow so it is repeatable and consistent.

What the skill does

  • Determines the target and previous versions and the commit range.
  • Drafts breaking changes and deprecations, cross-checked against CHANGELOG.md, with before/after migration snippets.
  • Drafts feature highlights from feat commits and their linked PRs (mining the PR body for context, code examples and screenshots), validated with the user before writing.
  • Excludes bug fixes by default, listing them for a case-by-case decision.
  • Drafts the one-line summary reused in the CHANGELOG entry and on the release page.
  • Computes the example bundle size table (current version, plus the previous version for comparison).
  • Wraps prose at 160 characters and never invents PR numbers or content not backed by commits/PRs.
  • Finalizes the GitHub draft release while preserving the Resources section and the actual release date set by the workflow.

Docs

packages/website/docs/development/release.md now documents the two-phase usage: prepare the content during the preparation step, then finalize the GitHub release after the tag is pushed and the npm package is published. A few related anchors and wording were fixed while there.

Notes

The skill was refined against a real dry run of the upcoming 0.24.0 release. The local RELEASE_NOTES_DRAFT.md output is added to .gitignore.

Summary by CodeRabbit

  • Documentation

    • Expanded and reorganized the release process guide with milestone management and a detailed release-notes preparation workflow.
    • Added instructions for drafting and finalizing GitHub releases, including preserving release dates and resource content.
    • Documented validated summaries, changelog cross-checks, breaking changes, deprecations, and bundle-size reporting.
  • Chores

    • Added a guided workflow for preparing release notes and updating drafts after approval.
    • Updated ignore rules so local release-note drafts are not committed.

…how-to

Add a Claude Code skill (.claude/skills/prepare-release-notes) that drafts a GitHub release notes body for maxGraph from
the commit history, the CHANGELOG and the linked pull requests, and optionally updates the GitHub draft release.

The skill:
- determines the target and previous versions and the commit range
- drafts breaking changes and deprecations, cross-checked against CHANGELOG.md, with before/after migration snippets
- drafts feature highlights from feat commits and their linked PRs, validated with the user, with real code examples
- excludes bug fixes by default, listing them for a case-by-case decision
- drafts the one-line summary reused in the CHANGELOG and on the release page
- computes the example bundle size table (current version, plus the previous version for comparison)
- wraps prose at 160 characters and never invents PR numbers or content not backed by commits/PRs
- finalizes the GitHub draft release, preserving the Resources section and the actual release date

Also document the two-phase usage in packages/website/docs/development/release.md (prepare the content during
preparation, finalize the GitHub release after tag and npm publish) and ignore the local RELEASE_NOTES_DRAFT.md output.
@tbouffard tbouffard added the chore Build, CI/CD or repository tasks (issues/PR maintenance, environments, ...) label Jul 8, 2026
@coderabbitai

coderabbitai Bot commented Jul 8, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 2945c117-2a5b-477b-b3f7-915696cc57e8

📥 Commits

Reviewing files that changed from the base of the PR and between 60b8ec9 and 8653478.

📒 Files selected for processing (1)
  • .claude/skills/prepare-release-notes/SKILL.md
🚧 Files skipped from review as they are similar to previous changes (1)
  • .claude/skills/prepare-release-notes/SKILL.md

Walkthrough

Adds a Claude Code skill for preparing GitHub release notes. Updates release-process documentation for the skill. Ignores the local draft file used by the workflow.

Changes

Release notes preparation workflow

Layer / File(s) Summary
Skill metadata and evidence rules
.claude/skills/prepare-release-notes/SKILL.md
Defines skill metadata, evidence requirements, source reconciliation, template handling, formatting rules, and ## Resources preservation.
Release-note content workflow
.claude/skills/prepare-release-notes/SKILL.md
Specifies version discovery, summary approval, changelog checks, breaking-change and feature extraction, API examples, and optional bug-fix selection.
Bundle-size collection
.claude/skills/prepare-release-notes/SKILL.md
Defines current-version bundle-size generation and previous-version size extraction or fallback handling.
Draft finalization and release documentation
.claude/skills/prepare-release-notes/SKILL.md, packages/website/docs/development/release.md, .gitignore
Defines approval-gated draft updates, release-date and ## Resources preservation, release finalization steps, and exclusion of RELEASE_NOTES_DRAFT.md.

Estimated code review effort: 3 (Moderate) | ~20 minutes

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Description check ⚠️ Warning The description explains the purpose and implementation, but it omits the required PR Checklist and does not address issue, review, tests, or screenshots. Add the PR Checklist with applicable boxes checked and explain exceptions, including issue linkage, maintainer discussion, tests, and screenshots.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly identifies the documentation change and the new prepare-release-notes skill.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1


ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: dc8066fc-a166-4352-a816-3dab4c7151fa

📥 Commits

Reviewing files that changed from the base of the PR and between 9e573d4 and 8e1bf63.

📒 Files selected for processing (3)
  • .claude/skills/prepare-release-notes/SKILL.md
  • .gitignore
  • packages/website/docs/development/release.md

Comment thread .claude/skills/prepare-release-notes/SKILL.md
GitHub renders a single newline in release notes as a visible line break, so hard-wrapping paragraphs shows
mid-sentence breaks in the published notes. Reverse the earlier 160-character wrap rule: keep each paragraph and list
item on a single line (code fences and tables are naturally multi-line and unaffected).
@sonarqubecloud

sonarqubecloud Bot commented Jul 8, 2026

Copy link
Copy Markdown

The commit lookups of the release notes skill exit with code 1 when a release has no breaking change, no
feature or no fix. Nothing aborts (they are run one at a time by the agent, not from a script with
`set -e`), but the non-zero exit can be mistaken for a failure and trigger pointless retries with looser
patterns. Document the empty result as a valid outcome instead of adding `|| true`, which would also hide
a genuine `git log` failure such as a wrong tag name.
@sonarqubecloud

Copy link
Copy Markdown

@tbouffard
tbouffard marked this pull request as draft August 12, 2026 14:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

chore Build, CI/CD or repository tasks (issues/PR maintenance, environments, ...)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants