Prepare an Invokta Release
Establish the release branch
- Read
.agents/skills/invokta-delivery/SKILL.md, docs/README.md, the
release gates in docs/implementation-plan-and-acceptance-criteria.md, and
the ADRs represented by the unreleased changes.
- Inspect the working tree, current branch, local and remote mainline refs,
recent tags,
CHANGELOG.md, and commits since the latest release. Preserve
unrelated changes and stop if they make the release slice ambiguous.
- Select the next semantic version from the compatibility of the Unreleased
changes and the repository's prior release policy. Request a decision when
the correct increment is ambiguous.
- Confirm the intended mainline base. If local
main and origin/main
diverge, resolve the base explicitly before continuing.
- Create or switch to
chore/release-X.Y.Z from the confirmed mainline before
editing any release file. Never prepare or commit a release on main.
Synchronize release metadata
- Bump the root version and every public package version to
X.Y.Z.
- Bump every exact internal
@invokta/* dependency pin in public packages and
examples. Update version assertions and protocol client self-identification
constants that intentionally track the release.
- Search the repository for the previous version. Classify every match as
current release metadata, historical release documentation, or an unrelated
dependency before changing it.
- Synchronize committed example lockfiles. For unpublished Invokta packages,
derive integrity values from the exact locally packed
X.Y.Z artifacts;
never retain old integrity hashes or invent new ones. Recheck the hashes if
package contents change afterward.
- Move the Unreleased notes under
## [X.Y.Z] - YYYY-MM-DD, update the
Unreleased comparison base, and add the release link. Preserve historical
entries and write all release content in English.
- Refresh
docs/validation-record.md only with evidence produced during this
release run, including the review date, accepted ADRs, test totals,
coverage, and audit count.
Do not change a public contract merely to prepare the release. If preparation
reveals a missing or conflicting contract, stop and apply
$invokta-contract-review before continuing.
Run the release gates
Run the canonical commands from a clean dependency state:
yarn install --frozen-lockfile --non-interactive
yarn run check
yarn audit
cd apps/docs
yarn install --frozen-lockfile --non-interactive
yarn validate
Return to the repository root and then:
- Update the validation record with the exact results and stage only the
cohesive release slice.
- Inspect
git diff --cached, run git diff --cached --check, and confirm all
package versions and internal pins equal X.Y.Z.
- Run
yarn release:verify. This verifier archives the Git index, so release
files must be staged first; unstaged changes are intentionally excluded.
- If a packed consumer tries to resolve
@invokta/*@X.Y.Z from the registry,
treat that as a pre-publish verifier defect. Record the failing command as
RED, install the complete matching local tarball dependency closure in the
fixture, and rerun the verifier for GREEN.
- Rerun
yarn run check after any executable verifier change. Reinspect the
staged diff and confirm the working tree has no unstaged release changes.
Do not claim readiness while any typecheck, lint, formatting, test, coverage,
build, audit, documentation, package, or diff gate fails.
Commit and hand off
- Create one commit named
chore(release): prepare X.Y.Z on the release
branch.
- Confirm
main still points to the confirmed mainline, the release branch
contains the commit, and the working tree is clean.
- Report the version, branch, commit hash, RED/GREEN evidence or metadata-only
exception, validation results, risks, and pending work.
- Do not tag, push, publish packages, or create a pull request unless the user
explicitly requests that separate action.
1---2name: prepare-invokta-release3description: Prepare Invokta versioned releases on dedicated release branches with synchronized package metadata, changelog and validation evidence, complete repository gates, and one cohesive commit. Use when asked to prepare, cut, stage, or validate an Invokta release or release candidate.4---56# Prepare an Invokta Release78## Establish the release branch9101. Read `.agents/skills/invokta-delivery/SKILL.md`, `docs/README.md`, the11 release gates in `docs/implementation-plan-and-acceptance-criteria.md`, and12 the ADRs represented by the unreleased changes.132. Inspect the working tree, current branch, local and remote mainline refs,14 recent tags, `CHANGELOG.md`, and commits since the latest release. Preserve15 unrelated changes and stop if they make the release slice ambiguous.163. Select the next semantic version from the compatibility of the Unreleased17 changes and the repository's prior release policy. Request a decision when18 the correct increment is ambiguous.194. Confirm the intended mainline base. If local `main` and `origin/main`20 diverge, resolve the base explicitly before continuing.215. Create or switch to `chore/release-X.Y.Z` from the confirmed mainline before22 editing any release file. Never prepare or commit a release on `main`.2324## Synchronize release metadata25261. Bump the root version and every public package version to `X.Y.Z`.272. Bump every exact internal `@invokta/*` dependency pin in public packages and28 examples. Update version assertions and protocol client self-identification29 constants that intentionally track the release.303. Search the repository for the previous version. Classify every match as31 current release metadata, historical release documentation, or an unrelated32 dependency before changing it.334. Synchronize committed example lockfiles. For unpublished Invokta packages,34 derive integrity values from the exact locally packed `X.Y.Z` artifacts;35 never retain old integrity hashes or invent new ones. Recheck the hashes if36 package contents change afterward.375. Move the Unreleased notes under `## [X.Y.Z] - YYYY-MM-DD`, update the38 Unreleased comparison base, and add the release link. Preserve historical39 entries and write all release content in English.406. Refresh `docs/validation-record.md` only with evidence produced during this41 release run, including the review date, accepted ADRs, test totals,42 coverage, and audit count.4344Do not change a public contract merely to prepare the release. If preparation45reveals a missing or conflicting contract, stop and apply46`$invokta-contract-review` before continuing.4748## Run the release gates4950Run the canonical commands from a clean dependency state:5152```sh53yarn install --frozen-lockfile --non-interactive54yarn run check55yarn audit56cd apps/docs57yarn install --frozen-lockfile --non-interactive58yarn validate59```6061Return to the repository root and then:62631. Update the validation record with the exact results and stage only the64 cohesive release slice.652. Inspect `git diff --cached`, run `git diff --cached --check`, and confirm all66 package versions and internal pins equal `X.Y.Z`.673. Run `yarn release:verify`. This verifier archives the Git index, so release68 files must be staged first; unstaged changes are intentionally excluded.694. If a packed consumer tries to resolve `@invokta/*@X.Y.Z` from the registry,70 treat that as a pre-publish verifier defect. Record the failing command as71 RED, install the complete matching local tarball dependency closure in the72 fixture, and rerun the verifier for GREEN.735. Rerun `yarn run check` after any executable verifier change. Reinspect the74 staged diff and confirm the working tree has no unstaged release changes.7576Do not claim readiness while any typecheck, lint, formatting, test, coverage,77build, audit, documentation, package, or diff gate fails.7879## Commit and hand off80811. Create one commit named `chore(release): prepare X.Y.Z` on the release82 branch.832. Confirm `main` still points to the confirmed mainline, the release branch84 contains the commit, and the working tree is clean.853. Report the version, branch, commit hash, RED/GREEN evidence or metadata-only86 exception, validation results, risks, and pending work.874. Do not tag, push, publish packages, or create a pull request unless the user88 explicitly requests that separate action.