Skills

Create Release

Create releases with proper versioning, release notes, and Git tags

Install

npx skills add GetBindu/Bindu --skill create-release -g -a claude-code -y
Repository
GetBindu/Bindu10k
Category
Git and review
Updated
2mo ago
License
See repository
Context cost
Mediumabout 1,873 tokens
Runs scripts
No, instructions only

What it does

Create releases with proper versioning, release notes, and Git tags

Create Release Skill

Overview

Create a new Bindu release with CalVer versioning, comprehensive release notes, and Git tags.

Inputs

  • Optional: Version number (defaults to current date in YYYY.Week.Day format)
  • Optional: Release title

Safety

  • Never create release without passing tests
  • Verify no uncommitted changes
  • Ensure on main branch
  • Generate deterministic release notes
  • Create annotated Git tags

Execution Contract

  1. Validate pre-release conditions
  2. Determine version number
  3. Generate release notes
  4. Create Git tag
  5. Push tag to remote
  6. Create GitHub release
  7. Generate release record

Steps

1. Pre-Release Validation

# Ensure all tests pass
echo "==> Running tests..."
uv run pytest || { echo "❌ Tests failed"; exit 1; }

# Run pre-commit hooks
echo "==> Running pre-commit hooks..."
uv run pre-commit run --all-files || { echo "❌ Pre-commit hooks failed"; exit 1; }

# Check for uncommitted changes
if [ -n "$(git status --porcelain)" ]; then
    echo "❌ Error: Uncommitted changes detected"
    git status --short
    exit 1
fi

# Verify on main branch
CURRENT_BRANCH=$(git branch --show-current)
if [ "$CURRENT_BRANCH" != "main" ]; then
    echo "❌ Error: Not on main branch (currently on $CURRENT_BRANCH)"
    exit 1
fi

# Pull latest changes
git pull origin main

2. Determine Version Number

# Use provided version or generate from date
if [ -z "$1" ]; then
    VERSION=$(date +%Y.%W.%-d)
else
    VERSION=$1
fi

echo "Version: $VERSION"

# Check if tag already exists
if git rev-parse "$VERSION" >/dev/null 2>&1; then
    echo "❌ Error: Tag $VERSION already exists"
    exit 1
fi

# Get last release tag
LAST_TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo "")
echo "Last release: $LAST_TAG"

3. Collect Changes Since Last Release

Read the whole SKILL.md on GitHub

More in Git and review