releaselisted
Install: claude install-skill agigante80/forge-kit
<!-- release-version: 5 -->
# Release
Promote the current code to a versioned release: bump semver, keep every version source in
sync, verify the pipeline is green, tag, and close the tickets the release ships. Honest
reporting throughout - **never claim "released" until the publish/CI pipeline is actually green.**
> **Generic template.** `forge-adapt` adapts the version sources, branching model (trunk vs
> develop-to-main), tag format, and publish-pipeline checks to the project.
>
> **This skill is the *invoked* ship.** To make its "bumped past the last tag" precondition
> *unforgettable* (enforced on every PR, not just when someone runs a release), install the
> `release-automation` skill (the CI gate + auto-release lanes built on the same version↔tag math).
## Version sources (single source of truth + mirrors)
A project has one canonical version and usually several places that must agree. Identify them
during adaptation:
| Ecosystem | Canonical | Mirrors that must match |
|---|---|---|
| Node / TS | `package.json` `version` (or a `VERSION` file) | lockfile, doc markers (`**Version:**`), container labels |
| Python | `pyproject.toml` `project.version` (or `__version__`) | `__init__.py`, docs |
| Rust | `Cargo.toml` `package.version` | `Cargo.lock`, docs |
| Go / generic | a `VERSION` file or git tag | docs, embedded build var |
**Rule:** one source is canonical; everything else is derived and must be kept equal to it.
## The version-check guard (wire into CI + pre-c