Install any skill in seconds. Free to start, no credit card required.
Get Started Free →openai/release-candidate-prep
Preflight and prepare an OpenAI Agents Python release candidate in a dedicated worktree from exact origin/main, gate readiness before branch creation, freeze the released API contract, create or replace the local release branch with one release commit, enforce final release review as a checker, and produce release-specific PR text. Use only when explicitly invoked with a version. Never push, open a PR, or mutate GitHub.
Passed 17 of 22 test cases with the skill, and 5 of 22 without it.
and 16 more in the full report
12 fixed5 passed either way5 still failing0 broke3 errored
Tokens, turns and time describe resource use, not a dollar price.
One of 12 test cases the skill fixed. Same model, same prompt, with and without the skill.
When handoff is complete for VERSION=0.19.8 and release/v0.19.8 already exists on the remote repository at commit abc1234, what exact git push command must be provided to the user?
| Checked | Without skill | With skill |
|---|---|---|
| Provides git push --force-with-lease=refs/heads/release/v0.19.8:abc1234 origin release/v0.19.8. | Missed | Passed |
The instructions your model reads when the skill loads.
Use this skill only when the user explicitly invokes $release-candidate-prep and supplies a release version without a leading v, for example VERSION=0.20.1. This skill is the manual fallback for the GitHub Actions release workflow. Ordinary bot releases use .github/workflows/release-candidate.yml; do not invoke this local worktree procedure inside Actions.
For normal Release Please releases, use $final-release-review <release PR URL> instead.
Do not create a manual candidate to review or finish the bot PR.
origin/main, create one dedicated detached release worktree, run branch-free release-readiness gates there, create or replace the local release/v<version> in that worktree only after those gates pass, update the five release-owned files, and create one local commit. If the branch already exists locally or remotely, the required final local state is still exact current origin/main plus only the new release commit; an existing local branch may be replaced only when it is not checked out in another worktree.main commit. Do not fast-forward it, switch its branch, or materialize release files there. Leave the dedicated release worktree in place for green handoff, blocked review, or recoverable failure.gh.pyproject.toml, uv.lock, .release-please-manifest.json, src/agents/version.py, and tests/fixtures/released_api_contract.json. Runtime, documentation, workflow, or other repository changes must land on main before release preparation.main, the dedicated worktree is not clean and detached at refreshed origin/main, an existing local release branch is checked out in another worktree, the prospective packaged-contract gate fails after the allowed dependency-bootstrap recovery, the planning review blocks, or origin/main advances after those gates run.$final-release-review as the controlling release checker, not only as a report generator. Its planning gate must be green before branch creation, and its final-candidate gate must inspect the materialized worktree and be green before PR-ready handoff. Any candidate content, commit, or base change invalidates the previous green result.OPENAI_API_KEY from every child command. Release preparation does not require a live OpenAI API request.Require one semver-like version without a leading v. Do not infer a version from milestones, branch names, or local modifications. Announce that the skill will create and retain a dedicated release worktree with one local commit, keep the source checkout unchanged, and not write to GitHub.
Read $final-release-review completely before starting. Its final-candidate report is the release pull request description. Do not use $pr-draft-summary for the release candidate itself; this skill owns the fixed release branch, commit subject, title, and description. Continue to use $pr-draft-summary normally when implementing changes to this skill or other repository behavior.
From the repository root, run:
env -u OPENAI_API_KEY -u GITHUB_TOKEN -u GH_TOKEN UV_DEFAULT_INDEX=https://pypi.org/simple uv run --frozen python .agents/skills/release-candidate-prep/scripts/prepare.py preflight --version <version> --worktree-root <codex-worktree-root>
The helper must complete all of these operations or fail with an actionable error while leaving the source checkout on its original main commit:
main branch, and clean working tree.release/v<version> exists locally or remotely. Permit replacement, but fail if the local branch is checked out in another worktree.main into origin/main without merging or switching the source checkout.git worktree list; never reuse or delete a collision.origin/main, then require that worktree to be clean, detached, and at the exact 40-character base commit.main at its original commit.test cases passed, vs 5 / 22 without
More skills from the same source and nearby in the registry, with their headline benchmark lift.