release

Automates versioned releases of the dev-ready package from version bump to PyPI publish.

2|Updated Jul 11, 2026
One-click install
npx skills add https://github.com/MoofonLi/dev-ready --skill release-moofonli
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: release
Source: https://github.com/MoofonLi/dev-ready/tree/main/.agents/skills/release
Command: npx skills add https://github.com/MoofonLi/dev-ready --skill release-moofonli

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Releasing a Python package involves many error-prone manual steps: keeping multiple version files in sync, running full test suites, writing release documentation, staging Conventional Commits, waiting on CI, and tagging correctly so the publish workflow fires. This Skill turns that into a single gated, step-by-step workflow for the dev-ready repository. ## Core Features & Use Cases - Synchronized version bumping: Updates the version in all four locations (src/dev_ready/__init__.py, pyproject.toml, .claude-plugin/plugin.json, .codex-plugin/plugin.json) plus uv.lock so the CLI, wheel, and plugin manifests never disagree. - Gated verification and documentation: Runs unit, lint, and network-marked integration tests before allowing a release, then guides writing the docs/version_overview/<version>-overview.md record and a doc status sweep. - Staged commits, CI gating, and tagging: Groups changes into Conventional Commits, waits for all six CI jobs to pass, then tags and pushes to trigger the release.yml PyPI publish, with troubleshooting for failed CI, stale git locks, and tag/version mismatches. - Use Case: After finishing a development phase, tell your agent "release v0.3.0" and it will bump versions, verify everything, prepare the overview and commit commands, and walk you through tagging and publishing. ## Quick Start Ask your agent to release version X.Y.Z of the dev-ready repo, for example by saying "release v0.3.0", and follow the gated steps it prepares.

Frequently Asked Questions about release

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I release a new version of the dev-ready package?

State the target version (e.g. "release v0.3.0") and follow the gated workflow: bump the version in four files, run pytest and ruff locally, write the version overview, stage Conventional Commits, push, wait for all six CI jobs, then tag and push the tag to trigger PyPI publishing.

How do I keep pyproject.toml and package __version__ in sync?

Update all four version locations together: src/dev_ready/__init__.py, pyproject.toml, .claude-plugin/plugin.json, and .codex-plugin/plugin.json. The CLI prints __version__ while the release workflow validates the tag against pyproject.toml, so any mismatch ships a CLI reporting the wrong version.

What happens if CI fails after I push the release tag?

Fix the problem, commit it, then delete the local and remote tag, re-tag the fixed commit, and push again to re-trigger the release pipeline. This is only safe before PyPI publishes; if the version already published, release the next patch version instead.

Why does the release workflow reject my git tag?

release.yml refuses to publish when the pushed tag does not match the version in pyproject.toml. Fix the version files, commit the correction, and re-tag with the matching vX.Y.Z tag before pushing again.

How do I fix git index.lock file exists errors?

The lock file remains after a git process died, often following an editor or agent crash. Confirm no git process is running, then delete .git/index.lock (del on Windows, rm -f on macOS/Linux) and retry the command.

Can I re-upload the same version to PyPI after a failed release?

No, PyPI rejects re-uploading a version that already published. If PyPI already has X.Y.Z, do not re-tag; bump to X.Y.Z+1 and release that instead. If only the GitHub Release step failed, create it manually with gh release create.