跳到正文
cccskills
免费在 GitHub 公开

release-notes

Turn Git commits and pull request details into release notes in three formats: a changelog section, a release PR description, and a user announcement. Group changes, explain user impact, and flag database migrations.

中文简介正在准备中。当前显示英语简介。

原文查看原文说明

Generate release notes in multiple formats from git commits

集成工具SlackGitHub
查看安装方法

适用场景

  • Prepare a changelog for a release
  • Draft a release pull request description
  • Explain updates to users in plain language
  • Check for database migrations before release

包含的文件(1)

  • SKILL.md7.6 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

Release notes generator

Generate release notes in 3 formats from git commits for production releases.

Process

  1. Analyze Git History: Scan commits since last release tag
  2. Fetch PR Details: Get titles, descriptions via gh api
  3. Categorize Changes: Group by type (feat, fix, perf, etc.)
  4. Check Migrations: Detect database migration files
  5. Generate 3 Outputs: CHANGELOG, PR body, communication message
  6. Transform Language: Convert tech jargon to product language

Output formats

1. CHANGELOG.md Section

## [X.Y.Z] - YYYY-MM-DD

### Summary
[1-2 sentence overview of this release]

### New Features
#### [Feature Name] (#PR)
- **Description**: User-facing functionality added
- **Impact**: How it benefits users

### Bug Fixes
- **[Module]**: Description (#issue, tracking-ID)

### Technical Improvements
- [Internal improvements, refactoring, performance]

### Database Migrations
[If applicable - list migration files]

### Statistics
- PRs: X | Features: Y | Fixes: Z | Files changed: N

2. PR release body

Uses your project's release template:

  • .github/PULL_REQUEST_TEMPLATE/release.md
  • .github/pull_request_template_release.md
  • Or custom location specified in project config

3. Communication announcement

Generate user-facing announcement (Slack, email, etc.):

  • Non-technical language
  • Focus on user impact
  • Readable formatting (emojis optional)

Template location examples:

  • .github/COMMUNICATION_TEMPLATE/slack-release.md
  • docs/templates/release-announcement.md

Migration alert

If migrations detected:

╔══════════════════════════════════════════════════════════════════╗
║  ⚠️  [ATTENTION] DATABASE MIGRATIONS REQUIRED                    ║
╠══════════════════════════════════════════════════════════════════╣
║  This release contains X migration(s):                           ║
║  • 20250110_add_user_preferences                                 ║
║  • 20250112_create_audit_log_table                               ║
║  Action required: Run migration command after deployment         ║
╚══════════════════════════════════════════════════════════════════╝

If no migrations:

✅ [OK] No database migrations required

Tech-to-product transformation

Convert technical commits to user-friendly descriptions:

TechnicalProduct/User Language
"Optimize N+1 queries with DataLoader""Faster loading times for lists"
"Implement AI embeddings with pgvector""New intelligent search feature"
"Fix permissions scope bug""Resolved access issue for certain users"
"Migration webpack -> Turbopack"Internal only - don't communicate
"Refactor React hooks architecture"Internal only - don't communicate
"Add rate limiting to API endpoints""Improved system stability and security"

Commit categories

PrefixCategoryInclude in Announcement?
feat:New FeaturesYes
fix:Bug FixesYes (if user-facing)
perf:PerformanceYes (simplified)
security:SecurityYes
refactor:ArchitectureNo
chore:MaintenanceNo
docs:DocumentationNo
test:TestsNo
build:Build SystemNo
ci:CI/CDNo

Commands to execute

# 1. Get last release tag
LAST_TAG=$(git tag --sort=-v:refname | grep -E '^v[0-9]+\.[0-9]+\.[0-9]+$' | head -n 1)

# 2. List commits since tag (excluding merges)
git log $LAST_TAG..HEAD --oneline --no-merges

# 3. Get commit details with PR numbers
git log $LAST_TAG..HEAD --format="%h %s" --no-merges

# 4. Check for migrations (adjust path to your ORM)
# Prisma:
git diff $LAST_TAG..HEAD --name-only -- prisma/migrations/
# Sequelize:
git diff $LAST_TAG..HEAD --name-only -- migrations/
# Django:
git diff $LAST_TAG..HEAD --name-only -- '**/migrations/*.py'
# Alembic:
git diff $LAST_TAG..HEAD --name-only -- alembic/versions/

# 5. Get PR details via GitHub CLI
gh api repos/{owner}/{repo}/pulls/{number}

# 6. Count statistics
TOTAL_PRS=$(git log $LAST_TAG..HEAD --oneline --merges | wc -l)
FEATURES=$(git log $LAST_TAG..HEAD --oneline --no-merges | grep -c 'feat:')
FIXES=$(git log $LAST_TAG..HEAD --oneline --no-merges | grep -c 'fix:')

Semantic versioning

Determine version number based on changes:

Change TypeVersion BumpExample
Breaking changeMAJOR (X.0.0)API removed, incompatible change
New featureMINOR (0.X.0)New functionality, backward-compatible
Bug fix / patchPATCH (0.0.X)Bug fixes only

Indicators:

  • BREAKING CHANGE: in commit body → MAJOR
  • feat: commits present → MINOR
  • Only fix: / perf: → PATCH

Workflow integration

Typical release workflow:

1. Verify all PRs merged to develop branch
2. Run: /release-notes (or specify version/range)
3. Review generated outputs for accuracy
4. Create PR: develop -> main with "release" label
5. Add generated CHANGELOG section to CHANGELOG.md
6. Use generated PR body as PR description
7. After merge: Create and push git tag
8. Post communication announcement (Slack/email/etc.)
9. Monitor deployment and migrations

Git tag creation

After PR merge, create annotated tag:

# Create annotated tag
git tag -a v1.2.3 -m "Release v1.2.3: Brief description"

# Push tag to remote
git push origin v1.2.3

# Or push all tags
git push --tags

Project-specific customization

Adapt these paths to your project:

# Migration detection (adjust ORM path)
prisma/migrations/        → Your ORM migration directory
db/migrate/               → Rails migrations
alembic/versions/         → Alembic migrations

# Template files (create if needed)
.github/PULL_REQUEST_TEMPLATE/release.md
.github/COMMUNICATION_TEMPLATE/announcement.md
docs/templates/release-notes.md

Tips

  • Run from repository root: Ensures git commands work correctly
  • Authenticate GitHub CLI: Run gh auth login if needed
  • Review before publishing: Always verify generated content
  • Breaking changes: Search commit messages for BREAKING CHANGE:
  • Linked issues: Include issue/ticket numbers for traceability
  • Database migrations: Test in staging before production

Edge cases

ScenarioBehavior
No tags foundStart from first commit
No commits since last tagError: "No changes to release"
Multiple tags on same commitUse most recent by date
Pre-release tags (v1.0.0-beta.1)Exclude from "last release" search
Commits without conventional formatCategorize as "Other Changes"

Usage examples

# Generate release notes from last tag to HEAD
/release-notes

# Specify version manually
/release-notes v1.5.0

# Specify range
/release-notes from v1.4.0 to HEAD

# Preview without creating files
/release-notes --preview

# Include pre-release commits
/release-notes --include-pre-release

Version/Range: $ARGUMENTS

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

Evaluate Claude Code agents, skills, and commands with weighted quality criteria. Get scores, readiness grades, template comparisons, and practical improvement suggestions in Markdown or JSON reports to guide reviews before release.

中文简介正在准备中。当前显示英语简介。

  • Review skills before release
  • Compare agent definitions with reference templates
  • Quickly check critical quality criteria
FlorianBruniaux/claude-code-ultimate-guide62062026年10月20日 更新

Assess a codebase across seven areas, including exposed credentials, security, dependencies, structure, and tests. Receive category scores, findings tied to file locations, and a prioritized improvement plan with smaller tasks that can be completed quickly.

中文简介正在准备中。当前显示英语简介。

  • Assessing the overall health of an inherited project
  • Reviewing exposed credentials and security risks
  • Identifying dependency and test coverage gaps
FlorianBruniaux/claude-code-ultimate-guide62062026年10月20日 更新

Measure code patterns such as casts to any or disabled lint rules, then run repeated, targeted edits. Keep changes that improve the chosen metric, revert unsuccessful changes, and track results for each improvement loop.

中文简介正在准备中。当前显示英语简介。

  • Finding code patterns to prioritize for cleanup
  • Preparing measurement files for an improvement loop
  • Repeating targeted edits to reduce casts to any
FlorianBruniaux/claude-code-ultimate-guide62062026年10月20日 更新

best-of-n

免费

Generate several separate solutions, compare them against criteria fixed in advance, and verify the selected result through executable checks or an independent reviewer. Keep a proof log documenting candidates, evidence, failures, and remaining limits.

中文简介正在准备中。当前显示英语简介。

  • Comparing implementation options before choosing one
  • Verifying a solution when a wrong choice would be costly
  • Keeping evaluation evidence for delivery or audit
FlorianBruniaux/claude-code-ultimate-guide62062026年10月20日 更新

canary

免费

Monitor a live application after deployment and compare it with a saved baseline, a record of its earlier state. Check page responses, loading times, and new errors, flag persistent changes, and produce a per-page health report.

中文简介正在准备中。当前显示英语简介。

  • Recording a healthy baseline before deployment
  • Monitoring production immediately after deployment
  • Checking key pages for slower responses or failures
FlorianBruniaux/claude-code-ultimate-guide62062026年10月20日 更新

catchup

免费

Rebuild project context after clearing a conversation or returning to work. Review recent Git history, uncommitted changes, and TODO markers to get a structured summary of project status and suggested next steps.

中文简介正在准备中。当前显示英语简介。

  • Restoring project context after /clear
  • Reviewing recent changes after a long break
  • Checking unfinished work before choosing the next task
FlorianBruniaux/claude-code-ultimate-guide62062026年10月20日 更新

查看 FlorianBruniaux 的全部技能

报告此技能的问题