release-prep
Ensures version and changelog consistency across multiple project files before a release is committed.
Install
mkdir -p .claude/skills/release-prep-fu-jie && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/10648" && unzip -o skill.zip -d .claude/skills/release-prep-fu-jie && rm skill.zipInstalls to .claude/skills/release-prep-fu-jie
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Orchestrates the full release preparation flow for a plugin — version sync across 7+ files, bilingual release notes creation, and commit message drafting. Use before submitting a PR. Does NOT push or create a PR; that is handled by pr-submitter.Key capabilities
- →Synchronize versions across files
- →Draft bilingual release notes
- →Verify consistency across locations
- →Stage and commit release changes
How it works
Orchestrates version synchronization across multiple files and generates bilingual release notes before committing.
Inputs & outputs
When to use release-prep
- →Preparing plugin release
- →Syncing version across files
- →Creating bilingual release notes
- →Drafting release commits
About this skill
Release Prep
Overview
This skill drives the complete pre-PR release pipeline. It enforces the repository rule that every release must synchronize the version number and changelog across at least 7 locations before a commit is created.
Scope
This skill covers:
- Version sync (delegates detail to
version-bumperif needed) - Bilingual release notes file creation
- 7-location consistency verification
- Conventional Commits message drafting
git add -A && git commitexecution
It stops before git push or gh pr create. Use the pr-submitter skill for those steps.
Temporary File Convention
Any temporary files created during release prep (e.g., draft changelogs) must:
- Be written to the project's
.temp/directory, NOT system/tmp - Be cleaned up before commit using
rm -f .temp/file_name - Never be committed to git (add
.temp/to.gitignore)
Workflow
Step 1 — Collect Release Info
Ask the user (or infer from current state) the following:
- Plugin name and type (actions / filters / pipes / tools)
- New version number (e.g.,
0.8.0) - Key changes in English and Chinese (1-5 bullet points each)
If a What's New section already exists in README.md, extract it as the source of truth.
Step 2 — Sync Version Across 7 Locations
Verify AND update the version string in all of the following. Mark each as ✅ or ❌:
| # | File | Location |
|---|---|---|
| 1 | plugins/{type}/{name}/{name}.py | version: in docstring |
| 2 | plugins/{type}/{name}/README.md | **Version:** x.x.x metadata line |
| 3 | plugins/{type}/{name}/README_CN.md | **Version:** x.x.x metadata line |
| 4 | docs/plugins/{type}/{name}.md | **Version:** x.x.x metadata line |
| 5 | docs/plugins/{type}/{name}.zh.md | **Version:** x.x.x metadata line |
| 6 | docs/plugins/{type}/index.md | version badge for this plugin |
| 7 | docs/plugins/{type}/index.zh.md | version badge for this plugin |
Additionally update the root-level updated date badge in:
README.md—README_CN.md— same badge format
Use today's date (YYYY-MM-DD) for the badge.
Step 3 — Update What's New (All 4 Doc Files)
The What's New / 最新更新 section must contain only the most recent release's changes. Previous entries should be removed from this section (they live in CHANGELOG or release notes files).
Update these 4 files' What's New / 最新更新 block consistently:
plugins/{type}/{name}/README.mdplugins/{type}/{name}/README_CN.mddocs/plugins/{type}/{name}.mddocs/plugins/{type}/{name}.zh.md
Step 4 — Create Bilingual Release Notes Files
Create two versioned release notes files:
Path: plugins/{type}/{name}/v{version}.md
Path: plugins/{type}/{name}/v{version}_CN.md
Required Sections
Each file must include:
- Title:
# v{version} Release Notes(EN) /# v{version} 版本发布说明(CN) - Overview: One paragraph summarizing this release
- New Features / 新功能: Bulleted list of features
- Bug Fixes / 问题修复: Bulleted list of fixes
- Migration Notes / 迁移说明: Breaking changes or Valve key renames (omit section if none)
- Companion Plugins / 配套插件 (optional): If a companion plugin was updated
If a release notes file already exists for this version, update it rather than creating a new one.
Full Coverage Rule (Mandatory)
Release notes must cover all updates in the current release scope and not only headline features.
Minimum required coverage in both EN/CN files:
- New features and capability enhancements
- Bug fixes and reliability fixes
- Documentation/README/doc-mirror updates that affect user understanding or usage
- Terminology/i18n/wording fixes that change visible behavior or messaging
Before commit, cross-check release notes against git diff and ensure no meaningful update is omitted.
Step 5 — Verify Consistency (Pre-Commit Check)
Run the consistency check script:
python3 scripts/check_version_consistency.py
If issues are found, fix them before proceeding. Do not commit with inconsistencies.
Step 6 — Draft Conventional Commits Message
Generate the commit message following commit-message.instructions.md rules:
- Language: English ONLY
- Format:
type(scope): subject+ blank line + body bullets - Scope: use plugin folder name (e.g.,
github-copilot-sdk) - Body: 1-3 bullets summarizing key changes
- Explicitly mention "READMEs and docs synced" if version was bumped
Present the full commit message to the user for review before executing.
Step 7 — Stage and Commit
After user approval (or if user says "commit it"):
git add -A
git commit -m "<approved commit message>"
Confirm the commit hash and list the number of files changed.
Checklist (Auto-Verify Before Commit)
-
version:in.pydocstring matches target version -
**Version:**in all 4 README/docs files matches - Both
index.mdversion badges updated - Root
README.mdandREADME_CN.mddate badges updated to today -
What's New/最新更新contains ONLY the latest release - Release notes include all meaningful updates from the current diff (feature + fix + docs/i18n)
-
v{version}.mdandv{version}_CN.mdcreated or updated -
python3 scripts/check_version_consistency.pyreturns no errors - Commit message is English-only Conventional Commits format
- If release originates from a contributor PR: Contributor attribution section added (see below)
Contributor PR Handling (External Contributor Releases)
When the release was triggered by merging a PR from an external contributor (someone other than Fu-Jie), additional steps are required to ensure proper attribution in both the release notes and the home README.
Step A — Update v{version}.md Release Notes File
Add a ## New Contributors section at the bottom of the release notes file, before the footer links:
## New Contributors
- @{github_username} made their first contribution in #{pr_number} 🎉
If the contributor has prior merged PRs (not a first-timer), use:
## New Contributors
- @{github_username} contributed in #{pr_number}
The workflow (release.yml) will detect and inject this automatically when triggered by push. However, if creating release notes manually (e.g., workflow_dispatch), this section must be added manually.
Step B — Update Home README Contributors Table
Before committing, verify that the contributor appears in both:
README.md—<!-- ALL-CONTRIBUTORS-LIST:START -->tableREADME_CN.md— corresponding贡献者 ✨table.all-contributorsrc— contributors array
If the contributor is missing, add them following this template (README.md):
<td align="center" valign="top" width="14.28%">
<a href="https://github.com/{login}">
<img src="https://avatars.githubusercontent.com/u/{uid}?v=4?s=100" width="100px;" alt="{login}"/>
<br /><sub><b>{display_name}</b></sub>
</a>
<br />
<a href="https://github.com/Fu-Jie/openwebui-extensions/commits?author={login}" title="Code">💻</a>
</td>
Update the badge count in README.md line 3:
[](#contributors-)
Also add the contributor to .all-contributorsrc:
{
"login": "{login}",
"name": "{display_name}",
"avatar_url": "https://avatars.githubusercontent.com/u/{uid}?v=4",
"profile": "https://github.com/{login}",
"contributions": ["code"]
}
⚠️ Root cause of past incidents: When adding a contributor to an already-patched README, always count existing entries first and set the badge to
existing + 1. Never assume the badge number is accurate; verify by counting<td align="center"occurrences.
Anti-Patterns to Avoid
- ❌ Do NOT add extra features or refactor code during release prep — only version/doc updates
- ❌ Do NOT push or create PR in this skill — use
pr-submitter - ❌ Do NOT use today's date in commit messages; only in badge URLs
- ❌ Do NOT leave stale What's New content from prior versions
- ❌ Do NOT assume the current
all_contributorsbadge count is correct — always re-count<td>entries before incrementing
When not to use it
- →Pushing changes to remote
- →Creating PRs
Prerequisites
Limitations
- →Does not push or create PRs
- →Requires 7+ locations to be synchronized
How it compares
Automates the multi-file consistency check required for plugin releases instead of manual updates.
Compared to similar skills
release-prep side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| release-prep (this skill) | 0 | 2mo | Review | Beginner |
| release-prep | 0 | 3mo | No flags | Intermediate |
| sdk-release-checklist | 0 | 1mo | Review | Advanced |
| release | 0 | 5mo | Review | Intermediate |
Try saying
Example prompts that trigger this skill in your AI assistant.
You might also like
release-prep
NickCrew
Use when preparing a production release or release candidate - provides a checklist-driven workflow for validation, versioning, build optimization, documentation updates, and deployment readiness.
sdk-release-checklist
macalbert
>-
release
akiojin
Execute the release workflow when the user asks `release` or `/release`: sync develop, update version/changelog, create `chore(release)` commit, collect closing issues, create develop->main release PR, and verify release/publish artifacts.
pdlc-deploy
kanfu-panda
创建部署文档
agent-workflow-automation
ruvnet
Agent skill for workflow-automation - invoke with $agent-workflow-automation
project-os
Peiiii
AI project OS for autonomous loop, automated orchestration, and rule-driven execution.