release · diff
git:20260701.f2b68b3 to git:20260701.d3b2a78
11 added, 11 removed. Audit A to A.
---
name: release
description: Bump the unified JobPilot version (host + plugin), commit, and tag a new release
user-invocable: true
---
# Release Skill
Cut a new JobPilot release. Host and plugin share **one version** and ship from
- **one tag** (`vX.Y.Z`), which triggers `.github/workflows/release.yml` — it builds
+ **one tag** (`vX.Y.Z`), which triggers `.github/workflows/release.yml` - it builds
the terminal binaries for all RIDs, publishes the GitHub Release (terminal
archives + `jobpilot-plugin.tar.gz`), and syncs the plugin tree into the
`claude-plugins` marketplace.
## Usage
The user provides a version (e.g. `2.1.0`) or a bump type (`major`, `minor`,
`patch`). With no argument, default to a `patch` bump.
## Context
- **Version source of truth (must stay in lockstep):**
- - `apps/terminal/JobPilot.Terminal.csproj` — the `<Version>` element
- - `plugin/.claude-plugin/plugin.json` — `"version"`
- - `plugin/.codex-plugin/plugin.json` — `"version"`
- - `package.json` — `"version"`
+ - `apps/terminal/JobPilot.Terminal.csproj` - the `<Version>` element
+ - `plugin/.claude-plugin/plugin.json` - `"version"`
+ - `plugin/.codex-plugin/plugin.json` - `"version"`
+ - `package.json` - `"version"`
- **Tag format:** `vX.Y.Z` (matches the `v*` trigger in `release.yml`).
- - **Release notes:** the workflow sets `generate_release_notes: true` — no
+ - **Release notes:** the workflow sets `generate_release_notes: true` - no
CHANGELOG needed.
## Steps
1. **Determine the new version:**
- Read the current version from all four files above.
- If they differ, report the mismatch and reconcile to the highest before bumping.
- Use the user's explicit version, else compute from the bump type, else bump patch.
- Verify the new version is strictly greater than the current highest.
- 2. **Pre-flight checks** (stop and report on any failure — do not paper over):
+ 2. **Pre-flight checks** (stop and report on any failure - do not paper over):
- Working tree is clean (`git status`).
- Current branch is `main` (or ask if on another branch).
- No existing tag `vX.Y.Z` (`git tag -l`).
3. **Bump version:** set the new version in all four files.
4. **Commit:** stage the four files, commit `chore: release vX.Y.Z`.
5. **Tag:** `git tag -a vX.Y.Z -m "JobPilot vX.Y.Z"`.
6. **Report:** show the new version and tag, and remind the user to run
`git push && git push origin vX.Y.Z` to trigger `release.yml`.
## Do NOT
- - Do not push — the user pushes when ready.
- - Do not let the four version fields drift — bump all to the same value.
- - Do not use `--no-verify` / `--no-gpg-sign` if hooks fail — report instead.
- - Do not amend a previous commit to roll the version — always a new commit.
+ - Do not push - the user pushes when ready.
+ - Do not let the four version fields drift - bump all to the same value.
+ - Do not use `--no-verify` / `--no-gpg-sign` if hooks fail - report instead.
+ - Do not amend a previous commit to roll the version - always a new commit.