Skip to content
Back to skills

2573 Release Workflow 16b8c9a5

ASecurity

Detailed reference for the tag-push-release mechanics.

  • 9 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 11, 2026
documentationbashnodegit

Security analysis

A100/100

Scanned October 11, 2026

npx -y skills add tools-only/X-Skills --skill 2573-release-workflow_16b8c9a5 --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of 2573 Release Workflow 16b8c9a5?

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

Security grade badge for 2573 Release Workflow 16b8c9a5
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/tools-only-2573-release-workflow-16b8c9a5/badge)](https://www.skillsdirectory.com/skills/tools-only-2573-release-workflow-16b8c9a5)

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

SKILL.md
# Release Workflow

Detailed reference for the tag-push-release mechanics.

## Version Detection

Check `package.json` first:

```bash
node -p "require('./package.json').version" 2>/dev/null
```

If no package.json, ask user for version. Always prefix with `v` (e.g., `v1.0.0`).

## Monorepo Tags

In monorepos, use scoped tags:

```bash
# Single repo
git tag -a v1.0.0 -m "Release v1.0.0"

# Monorepo
git tag -a mypackage-v1.0.0 -m "Release mypackage v1.0.0"
```

## Tag Conflicts

If tag already exists locally:

```bash
# Delete local tag
git tag -d v1.0.0

# If also on remote (dangerous — confirm with user)
git push origin :refs/tags/v1.0.0
```

## Push Sequence

Always push branch first, then tags:

```bash
BRANCH=$(git branch --show-current)
git push origin ${BRANCH}
git push origin --tags
```

If push fails:
- Set upstream: `git push -u origin ${BRANCH}`
- Check auth: `gh auth status`
- Verify remote: `git remote -v`

## Release Notes

Generate from commits since last tag:

```bash
LAST_TAG=$(git describe --tags --abbrev=0 HEAD^ 2>/dev/null || echo "")

if [ -z "$LAST_TAG" ]; then
  git log --oneline --no-merges HEAD
else
  git log --oneline --no-merges ${LAST_TAG}..HEAD
fi
```

Format as markdown bullet list under `## What's New`.

## gh release create

```bash
# Standard release
gh release create v1.0.0 --title "Release v1.0.0" --notes "## What's New
- Feature A
- Bug fix B"

# Pre-release (beta/rc)
gh release create v1.0.0-beta.1 --title "v1.0.0 Beta 1" --notes "..." --prerelease

# Draft (not published)
gh release create v1.0.0 --title "Release v1.0.0" --notes "..." --draft
```

## Post-Release

Depending on project type:
- **npm package**: `npm publish`
- **Announce**: Social media, relevant communities
- **Update docs**: Ensure README references latest version

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…