chore(repo): add release-pr skill#2657
Conversation
Project-level Claude Code skill at .claude/skills/release-pr/SKILL.md for opening release PRs. Invoked via `/release-pr <version>` (e.g. `/release-pr 9.24.0`). - Auto-derives base branch from version shape: stable -> master, `-beta.N` -> v10.0.0, other suffix -> asks for the feature branch. - Walks version bumps in melos.yaml + 5 pubspecs, then `melos bs`. - Finalises CHANGELOGs via a 4-rule decision tree (rename upcoming, describe user-facing changes, dep-bump line, or minor fixes). - Generates the PR body from GitHub's release-notes API (read-only, matches the "Generate release notes" button in the release UI). - For beta/named pre-releases, surfaces the manual tag-push reminder. disable-model-invocation: true so Claude can't autonomously decide to cut a release. Read-only with respect to publishing: never creates GitHub releases, never pushes tags, never merges. The release_tag.yml + release_publish.yml workflows handle tagging and pub.dev publishing after merge. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
📝 WalkthroughWalkthroughThis PR introduces a comprehensive Claude skill document that codifies the release pull request workflow for stream-chat-flutter. The skill defines input validation, pre-flight checks, version/changelog update procedures, GitHub API-based PR body generation, and post-merge tag handling instructions, along with explicit prohibited actions to prevent common release mistakes. ChangesRelease PR Skill Documentation
Estimated code review effort🎯 2 (Simple) | ⏱️ ~12 minutes Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
There was a problem hiding this comment.
🧹 Nitpick comments (1)
.claude/skills/release-pr/SKILL.md (1)
60-61: ⚡ Quick winClarify the CI green check criteria.
The instruction fetches 5 runs but says "no failures on the most recent runs" without specifying how many must pass. Consider clarifying to either "no failures in the latest run" or "no failures in any of the 5 most recent runs" to ensure consistent pre-flight validation.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In @.claude/skills/release-pr/SKILL.md around lines 60 - 61, Clarify the CI green check sentence that currently reads "Latest CI on the base-branch tip is green: `gh run list --branch <base> --limit 5` — no failures on the most recent runs." by making the pass criterion explicit: update the phrasing to either "no failures in the latest run" or "no failures in any of the 5 most recent runs" (or choose a different fixed count) so the intent is unambiguous; modify the SKILL.md line containing the "Latest CI on the base-branch tip is green" text to reflect the chosen explicit criterion.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Nitpick comments:
In @.claude/skills/release-pr/SKILL.md:
- Around line 60-61: Clarify the CI green check sentence that currently reads
"Latest CI on the base-branch tip is green: `gh run list --branch <base> --limit
5` — no failures on the most recent runs." by making the pass criterion
explicit: update the phrasing to either "no failures in the latest run" or "no
failures in any of the 5 most recent runs" (or choose a different fixed count)
so the intent is unambiguous; modify the SKILL.md line containing the "Latest CI
on the base-branch tip is green" text to reflect the chosen explicit criterion.
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 8b6be64b-2310-4cf7-94c4-2e715bac7fc3
📒 Files selected for processing (1)
.claude/skills/release-pr/SKILL.md
Linear: FLU-
CLA
Description of the pull request
Adds a project-level Claude Code skill at
.claude/skills/release-pr/SKILL.md.Invoked locally via
/release-pr <version>(e.g./release-pr 9.24.0). The skill walks the maintainer through the established release-PR flow:X.Y.Z→master,X.Y.Z-beta.N→v10.0.0, any other suffix → asks for the feature branch.melos.yaml(thecommand.bootstrap.environment.dependenciesblock) and the 5packages/*/pubspec.yamlversion:fields, then runsmelos bsto propagate to every other workspace pubspec and regeneratepackages/stream_chat/lib/version.dartvia the existing post-bootstrap hook.CHANGELOG.mdfiles via a 4-rule decision tree (rename## Upcoming Changes, add user-facing bullets, add the dep-bump line, or fall back to- Minor bug fixes and improvements).melos run analyze+melos run lint:pub.chore(repo): release v<X.Y.Z>message (parsed byrelease_tag.ymlafter merge).releases/generate-notesAPI — exactly what the "Generate release notes" button produces in the release UI. Read-only; creates no release.git tag+ push reminder (release_tag.ymlonly fires onmaster).Safety rails
disable-model-invocation: true— Claude can't autonomously decide to cut a release; user invokes manually.melos run release:pub, never merges the PR. The existingrelease_tag.yml+release_publish.ymlworkflows own tagging and pub.dev publishing after merge.allowed-toolsis minimal:git,gh,melos,which,grep, plusRead/Edit/Write.Test plan
/release-pr <version>and confirm the resulting PR diff matches the shape of recent release PRs (e.g. chore(repo): release v9.23.0 #2492 for v9.23.0).ghauth, existing release branch, red CI on base).Summary by CodeRabbit