release-mashay

Installation
SKILL.md

Release mashay

This pipeline's irreversible boundary is a single step: git push --follow-tags. It publishes the release commit and tag to the shared origin remote and triggers .github/workflows/publish.yml, which publishes @draekien/mashay to the public npm registry (via OIDC trusted publishing) and cuts a GitHub release. A pushed tag is shared history and a published version can't be silently replaced, so treat the push as needing explicit confirmation, even if the version-bump and changelog step ran without asking. Publishing is CI-owned — never run pnpm publish or npm publish locally, that double-publishes.

If the user invoked this skill asking only for a --dry-run preview, run just the dry-run in step 1, show the output, and stop — do not proceed to steps 2–4.

Preflight

Before bumping anything, confirm the release will be built from what's actually intended. If any check fails, stop and report it to the user rather than trying to fix it as part of the release:

  • git status — the working tree must be clean. commit-and-tag-version commits the version bump and changelog itself; uncommitted changes lying around get swept into that commit or block it outright. If it isn't clean, stop and ask whether to commit, stash, or abort.
  • Confirm the current branch is main, then git fetch origin && git log origin/main..HEAD --oneline — a release should ship only reviewed, already-merged work, so this should be empty. If it isn't, confirm with the user that those commits are intended before continuing.
  • pnpm lint && pnpm test — both must pass. If either fails, stop and report the failure — a release built on red is worse than not releasing, and fixing lint/test issues is a separate task from cutting a release.
  • git log <last-tag>..HEAD --oneline — read the commits since the last tag. If this is empty, tell the user there's nothing new to release and stop. Otherwise, commit-and-tag-version infers the version bump (major/minor/patch) purely from conventional-commit types in these messages, so this is the only way to catch a bump about to be wrong — a feat: that should have been fix:, or a breaking change without a BREAKING CHANGE: footer. If the intended bump looks ambiguous or wrong, say so before continuing rather than letting the tool decide silently.

Pipeline

Run in order — this sequence is fragile and each step assumes the last one succeeded:

Installs
1
Repository
draekien/mashay
GitHub Stars
1
First Seen
Sep 6, 2026