<< All versions

Skill v1.0.1

currentAutomated scan100/100
voodootikigod/antigravity-booster/release

+4 new

──Details
PublishedOctober 26, 2026 at 12:30 AM
Content Hashsha256:3841d086a9686e3a...
Git SHA1315c16c0b2e
Bump Typepatch
Compare with v1.0.0
──Files
Files (1 file, 5.4 KB)
SKILL.md5.4 KBactive
SKILL.md · 136 lines · 5.4 KB

version: "1.0.1" name: release description: "[Maintainer workflow for the antigravity-booster repository only] Release a new version of antigravity-booster (bumps version, tags git, pushes, triggers npm publish)" license: MIT user-invocable: true metadata: version: 1.0.0 internal: true last-verified: 2026-07-21


Release

Use this skill to release a new version of antigravity-booster. It is plain git, npm and gh steps, so it runs the same in Claude Code, Codex and agy.

Arguments

  • First positional argument: Version bump type — "patch", "minor", or "major". Defaults to "minor" if not specified.

Steps

  1. Determine the new version. Read the current version from ./package.json. Apply the requested semver bump (default "minor") to compute the new version number.
  1. Verify preconditions — all must pass before any changes are made:

a. Working tree is clean: ``bash git status --porcelain `` Must be empty. If not, abort and tell the user to commit or stash changes first.

b. On the main branch: ``bash git branch --show-current `` Must return main. If not, abort.

c. Up to date with remote: ``bash git fetch origin git status -uno `` Output must not contain "Your branch is behind". If it does, abort and tell the user to pull first.

d. repository.url is set in ./package.json: ``bash node -e "const p=JSON.parse(require('fs').readFileSync('package.json','utf8')); process.exit(p.repository?.url ? 0 : 1)" ` Must exit 0. If missing, abort and print: > **repository.url** is required for --provenance publishing. Add it to ./package.json: > "repository": { "type": "git", "url": "https://github.com/ORG/REPO.git" }`

e. No file: dependencies in ./package.json: ``bash grep -c '"file:' package.json ` Must return 0. If any file: deps are found, abort and print: > file: dependencies cannot be published to npm. Replace them with registry versions before releasing. > Found: (list each file:` dep and its key)

f. Tests pass: ``bash npm test `` Must exit 0. If tests fail, abort — do not proceed.

g. Build and generated artifacts verification: ``bash npm run build git status --porcelain --untracked-files=all dist/ vendor/ `` Must exit 0 and git status must be empty. If any dist/ or vendor/ files were modified or untracked, abort and inspect build artifacts first.

  1. Bump version and update changelog:

``bash npm version <patch|minor|major> --no-git-tag-version ` This atomically updates the "version" field in both ./package.json and ./package-lock.json. Also update ./plugin.json to match (lockstep integrity requirement): `bash node -e 'const fs = require("node:fs"); const p = "./plugin.json", j = JSON.parse(fs.readFileSync(p, "utf8")), v = JSON.parse(fs.readFileSync("./package.json", "utf8")).version; j.version = v; fs.writeFileSync(p, JSON.stringify(j, null, 2) + "\n");' ` Move the ## [Unreleased] entries in ./CHANGELOG.md under a new ## [X.Y.Z] — YYYY-MM-DD heading. Then regenerate reference documentation: `bash node website/scripts/gen-reference.mjs ``

  1. Commit the bump on a release branch. main is protected by the

main-protection ruleset (1 approving review + code-owner review), and its only bypass is pull_request mode — so a direct git push origin main is rejected for everyone, including admins. The bump has to land via a PR. ``bash git checkout -b release/vX.Y.Z git add package.json package-lock.json plugin.json CHANGELOG.md website/generated/*.mdx git commit -m "chore: bump version to X.Y.Z" git push -u origin release/vX.Y.Z gh pr create --title "chore: release X.Y.Z" --body "Version bump + changelog for X.Y.Z." ``

  1. Get the PR reviewed and merged. Wait for CI and an approval, then merge.

Do not tag before it lands: .github/workflows/publish.yml refuses to publish a tag that is not an ancestor of main, so a tag on an unmerged commit fails the release.

  1. Tag the merged commit on main and push the tag:

``bash git checkout main && git pull origin main # Confirm you are tagging the bump you just merged. node -p "require('./package.json').version" # must equal X.Y.Z git tag vX.Y.Z git push origin vX.Y.Z ` Tag creation is restricted by the **release tags** ruleset (refs/tags/v*`), which grants an always-bypass to the maintainer role — so this push succeeds for a maintainer and is refused for everyone else. That tag push is what triggers the publish.

  1. Confirm completion. Print a summary stating the released version

(was A.B.C, now X.Y.Z) and that tag vX.Y.Z was pushed to origin, then remind the user:

> GitHub Actions will publish to npm on tag push, but the job waits for > approval first: it runs under the npm-publish protected environment, > which requires a reviewer. Approve it under the repo's Actions tab. > > The publish job verifies the tag is an ancestor of main and that it > matches the version in ./package.json, then publishes with > --provenance --access public via npm OIDC trusted publishing (no > long-lived npm token). > > If the publish job fails with ENEEDAUTH, trusted publishing is not > configured for antigravity-booster on npmjs.com. See > docs/github-rulesets/README.md § "npm trusted publishing (OIDC)".

← v1.0.0All versions