Skip to content
Back to skills

Release

ASecurity

Cut an aidemo release: bump package.json, commit, push to main — CI (release.yml) then creates the vX.Y.Z tag, moves `stable`, and publishes the GitHub Release. Use when the user says "cut a release", "release vX.Y.Z", "bump and release", "ship a new version", or "move stable". Knows the gotchas: the version lives ONLY in package.json, pushing a version bump to main IS the ship trigger, CI tagging is idempotent, npm caches the moving `stable` tag (--prefer-online to force-fresh). Do NOT use f...

  • 9 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 22, 2026
ai-agentsgobashnodegitdatabase

Security analysis

A100/100

Scanned September 22, 2026

npx -y skills add tandryukha/aidemo --skill release --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Release?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Release
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/tandryukha-release/badge)](https://www.skillsdirectory.com/skills/tandryukha-release)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: release
description: >
  Cut an aidemo release: bump package.json, commit, push to main — CI
  (release.yml) then creates the vX.Y.Z tag, moves `stable`, and publishes the
  GitHub Release. Use when the user says "cut a release", "release vX.Y.Z",
  "bump and release", "ship a new version", or "move stable". Knows the
  gotchas: the version lives ONLY in package.json, pushing a version bump to
  main IS the ship trigger, CI tagging is idempotent, npm caches the moving `stable` tag
  (--prefer-online to force-fresh). Do NOT use for: publishing to npm (the
  engine is npx-from-git only), or installing/updating the skill in consumer
  repos (that's `aidemo skill update`).
allowed-tools: Bash, Read, Grep
metadata:
  internal: true
---

# release — bump + push, CI does the tagging

Your job: cut a release safely. [RELEASING.md](../../../RELEASING.md) is the
authoritative runbook — if it contradicts this skill, it wins. Be terse;
surface only failures + final status.

## Phases

1. **Preflight** — clean tree, green smoke:
   ```bash
   git status --porcelain        # must be empty
   npm run typecheck
   ```
   For engine changes since the last tag, run the `verify` skill (fixture e2e)
   before releasing.

2. **Bump** (version lives in one place — package.json):
   ```bash
   npm version patch --no-git-tag-version    # or minor / major
   git commit -asm "release: v$(node -p "require('./package.json').version")"
   ```

3. **Push** — this is the ship step: once CI sees the version bump on main,
   the release goes out. Make sure the user actually wants a release cut (a
   routine end-of-session push must NOT include a version bump):
   ```bash
   git push origin main
   ```

4. **Watch CI do the rest** — `release.yml` creates `vX.Y.Z`, moves `stable`,
   publishes the Release (only when the version actually changed):
   ```bash
   gh run watch --exit-status "$(gh run list --workflow=release.yml -L1 --json databaseId -q '.[0].databaseId')"
   gh release view "v$(node -p "require('./package.json').version")"
   ```

5. **Manual fallback** (CI unavailable) — from RELEASING.md:
   ```bash
   v=vX.Y.Z
   git tag -a "$v" -m "$v" && git push origin "$v"
   git tag -f stable && git push -f origin stable
   gh release create "$v" --generate-notes
   ```

## Gotchas

- CI is idempotent: an existing `vX.Y.Z` tag is skipped, but `stable` still
  moves and the Release is still created.
- Workflow permission failures → Settings → Actions → General → Workflow
  permissions → Read and write.
- Consumers on `npx ...#stable` may keep resolving the old commit from the npm
  cache right after `stable` moves — `npx --prefer-online` force-freshens; pin
  `#vX.Y.Z` for determinism.
- Commits must be signed off (`-s`) like everything else in this repo (DCO).

## Report

```
release: vX.Y.Z cut | blocked
push: done | held (not requested)
ci: tag + stable + Release verified (url) | manual fallback used | failed: <step>
```

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.