
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
- Validate pre-release conditions
- Determine version number
- Generate release notes
- Create Git tag
- Push tag to remote
- Create GitHub release
- 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"

