release-prep
Prepare a release for this repository when the user says "release". Use to review changes since the last release, choose and confirm the semver bump, run tests, update version files, tag, push, and dr
SKILL.md.codex/skills/release-prep/SKILL.md
GitHubRelease Prep
Overview
Prepare code-index-mcp releases from a verified commit with an explicit version and release target. The reference checklist owns exact commands; this file owns the decision points and safety gates.
When to Use
- Implementation is complete and ready for a versioned release.
- The user requests a semver recommendation, version bump, release notes, tag, or GitHub release.
- A release candidate needs a final repository and test check.
Do not use during ordinary implementation or when the user has excluded release work.
Required Gates
- Stop on a dirty working tree or an unintended branch.
- Confirm the target version and release branch with the user before editing.
- Confirm release notes before creating a tag or GitHub release.
- Treat pushes, tags, package publication, and GitHub releases as separate external actions requiring user authorization.
Workflow
- From the repository root, run
uv run python .agents/skills/release-prep/scripts/run_release_checks.py; resolve every failed precondition. - Review changes since the latest
v*tag and recommend:patch: bug fixes or user-visible corrections without new surface areaminor: backward-compatible features or capability expansionsmajor: breaking API/behavior changes or migration-required releases
- After confirmation, run the full test suite using the checklist command.
- Update all four release artifacts:
pyproject.toml,src/code_index_mcp/__init__.py,.well-known/mcp.llmfeed.json, anduv.lock. Regenerateuv.lock; never hand-edit it. - Review a release-only diff and rerun the preflight checks.
- Commit with
chore(release): vX.Y.Z. - Draft user-facing release notes and obtain confirmation.
- Only when authorized, create the annotated tag, push the branch and tag, and create the GitHub release.
- Verify the remote tag, release, and related CI or publication jobs.
Resources
| Resource | Use |
|---|---|
scripts/run_release_checks.py |
Check repository state, latest tag, and version files; invoke it with the command above. |
references/release_checklist.md |
Follow the exact commands and file checklist, resolving paths relative to this skill directory. |
Common Mistakes
- Choosing a version from commit count instead of user-visible compatibility.
- Updating only three of the four release artifacts.
- Including unrelated changes in the release commit.
- Treating a local tag as proof that the release was published.