Streamlines release workflows by automating versioning and changelog synchronization. Designed for the throttled-py project.

Install

mkdir -p .claude/skills/pre-release && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/7167" && unzip -o skill.zip -d .claude/skills/pre-release && rm skill.zip

Installs to .claude/skills/pre-release

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.

Automates release preparation for throttled-py. Triggers when user message contains: - "release vX.Y.Z" with a GitHub release draft URL - "release vX.Y.Z" followed by changelog content Tasks: update version numbers, sync CHANGELOG_EN.rst and CHANGELOG.rst, run dependency sync.
277 chars✓ has a “when” triggerlonger than Claude Code's old 250-char listing cap (fine on current versions)
Intermediate

Key capabilities

  • Update version strings in pyproject.toml and package init files
  • Synchronize CHANGELOG_EN.rst and CHANGELOG.rst with new entries
  • Translate changelog categories and entries between English and Chinese
  • Generate cross-references between English and Chinese changelog documents
  • Execute dependency synchronization using uv lock
  • Verify consistency of version numbers and changelog formatting

How it works

The skill parses version and changelog data from the user input, updates version numbers in specific files, appends formatted entries to RST changelogs, and runs dependency locking.

Inputs & outputs

You give it
Release version string and either a GitHub release draft URL or raw changelog text
You get back
Updated project files, synchronized changelogs, and an updated uv.lock file

When to use pre-release

  • Bump version for a new release
  • Update project changelog
  • Prepare release metadata
  • Sync release configuration files

About this skill

Pre-Release Workflow

{REPO} = https://github.com/ZhuoZhuoCrayon/throttled-py

Input Format

# With release draft URL
release v3.2.0 {REPO}/releases/tag/untagged-xxxxx

# With changelog content directly
release v3.2.0
<paste release draft content here>

Workflow Overview

flowchart TD
    A[Parse Input] --> B[Get Release Changelog]
    B --> C[Update Version Numbers]
    C --> D[Update CHANGELOG_EN.rst]
    D --> E[Translate & Update CHANGELOG.rst]
    E --> F[Sync Dependencies]
    F --> G[Verification]

Step 1: Parse Input

Extract from user input:

  • Version: vX.Y.ZX.Y.Z
  • Release Date: Use today's date (YYYY-MM-DD)
  • Changelog: From URL or directly provided content

Step 2: Get Release Changelog

  • If URL provided: Fetch content from the release draft URL
  • If content provided: Use the changelog content directly
  • If neither accessible: Ask user to provide the content

Step 3: Update Version Numbers

Update version string in these files:

FileLocation
pyproject.tomlversion = "X.Y.Z"
throttled/__init__.py__version__ = "X.Y.Z"
throttled/asyncio/__init__.py__version__ = "X.Y.Z"

Step 4: Update CHANGELOG_EN.rst

Insert new entry after the title section:

vX.Y.Z - YYYY-MM-DD
---------------------

`简体中文 (vX.Y.Z) <{GITHUB_REPOSITORY}/blob/main/CHANGELOG.rst#vxyz---YYYY-MM-DD>`_ | English

**{emoji} {category_title}**

- {change_entries}

**Full Changelog**: {GITHUB_REPOSITORY}/compare/vPREV...vX.Y.Z

Reference: Read .github/release-drafter-config.yml for:

  • Category titles and their emojis
  • Entry format template

Step 5: Translate & Update CHANGELOG.rst

Insert translated entry after the title section:

vX.Y.Z - YYYY-MM-DD
---------------------

`English Documents Available (vX.Y.Z) <{GITHUB_REPOSITORY}/blob/main/CHANGELOG_EN.rst#vxyz---YYYY-MM-DD>`_ | 简体中文

**{emoji} {category_title_zh}**

- {translated_change_entries}

**完整更新日志**: {GITHUB_REPOSITORY}/compare/vPREV...vX.Y.Z

Translation Reference

EN CategoryZH Category
Breaking Changes破坏性变更
New Features功能
Improvements优化
Bug FixesBug 修复
Dependencies依赖项更新
Documentation文档
Tests测试
Maintenance维护工作

Common Translations

EnglishChinese
add / add support for添加 / 添加对 ... 的支持
fix / resolve修复
update / improve / optimize更新 / 改进 / 优化
implement实现
remove移除
refactor重构

Note: Preserve technical terms, @author mentions, and PR numbers.

Step 6: Sync Dependencies

Run the following command to update uv.lock:

uv lock

This ensures uv.lock reflects the updated version in pyproject.toml.

Step 7: Verification

  • Version numbers consistent across all 3 files
  • uv.lock updated successfully
  • Cross-references between EN/ZH changelogs are correct
  • RST anchor format: #vxyz---YYYY-MM-DD (no dots, lowercase)
  • All categories from release draft included
  • Only include sections that have content
  • CRITICAL At the beginning of the verification summary, include:

    ✓ Conducted skill defined in .agents/skills/pre-release/SKILL.md.

Format Reference

Refer to existing entries in CHANGELOG.rst and CHANGELOG_EN.rst for exact formatting.

When not to use it

  • When the release draft URL or changelog content is inaccessible
  • When the project does not use the specified RST file structure

Prerequisites

uv

Limitations

  • Requires specific RST file structure for changelog updates
  • Only supports the predefined translation categories and mappings
  • Requires manual intervention if the changelog source is not accessible

How it compares

Unlike manual updates, this workflow automates the translation of changelog entries and ensures consistent versioning across multiple project files.

Compared to similar skills

pre-release side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
pre-release (this skill)13moReviewIntermediate
dev26moReviewAdvanced
autogluon-conda-upgrade06moReviewIntermediate
emitter-package-update12moReviewIntermediate

Try saying

Example prompts that trigger this skill in your AI assistant.

You might also like

dev

atopile

LLM-focused workflow for working in this repo: compile Zig, run the orchestrated test runner, consume test-report.json/html artifacts, and discover/debug ConfigFlags.

28

autogluon-conda-upgrade

autogluon

Automate AutoGluon conda-forge feedstock version upgrades. Use when the user wants to upgrade AutoGluon to a new version in conda-forge, create PRs for AutoGluon conda feedstocks, or update autogluon.common, autogluon.core, autogluon.features, autogluon.tabular, autogluon.multimodal, autogluon.timeseries, or autogluon meta-package feedstocks.

02

emitter-package-update

Azure

Automate bumping typespec-python version in emitter-package.json for the Azure SDK for Python repository. Use this skill when the user wants to update @azure-tools/typespec-python to the latest version, create a PR for the version bump, or manage emitter-package.json updates.

10

klingai-ci-integration

jeremylongshore

Execute integrate Kling AI video generation into CI/CD pipelines. Use when automating video content generation in build pipelines. Trigger with phrases like 'klingai ci', 'kling ai github actions', 'klingai automation', 'automated video generation'.

01

uv

julianobarbosa

Guide for using uv - an extremely fast Python package and project manager written in Rust. Use when installing Python, managing virtual environments, adding dependencies, running scripts, building packages, or working with pyproject.toml. Replaces pip, pip-tools, pipx, poetry, pyenv, twine, and virt

00

airflow

ComeOnOliver

Apache Airflow lets you define workflows as Directed Acyclic Graphs (DAGs) in Python. Each DAG consists of tasks connected by dependencies, scheduled and monitored via a web UI.

00

Search skills

Search the agent skills registry