# Create Release

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

- Repository: https://github.com/GetBindu/Bindu (10015 stars)
- Category: Git and review
- License: see repository
- Last updated: 2026-09-06
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add GetBindu/Bindu --skill create-release -g -a claude-code -y`
Codex: `npx skills add GetBindu/Bindu --skill create-release -g -a codex -y`
Cursor: `npx skills add GetBindu/Bindu --skill create-release -g -a cursor -y`
Gemini CLI: `npx skills add GetBindu/Bindu --skill create-release -g -a gemini-cli -y`

## Description

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

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# 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

```bash
# 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

```bash
# 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

The rest: https://github.com/GetBindu/Bindu/blob/HEAD/.agents/skills/create-release/SKILL.md
