Release

SkillDev tools

Create a new versioned Gacela release via release.sh (canonical automation)

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Release skill

What this skill tells your AI

The instructions your AI receives, as published by gacela-project/gacela in .claude/skills/release/SKILL.md and read by ahel’s review.

Canonical release automation lives in release.sh. Always delegate to it — do not perform release steps manually. See .github/RELEASE.md for full reference.

Context

!git branch --show-current !git status --porcelain !git describe --tags --abbrev=0 2>/dev/null || echo "no tags"

Instructions

Phase 1: Pre-flight

  1. Abort if not on main. Must be clean tree (in-sync with origin/main).
  2. Confirm gh CLI authenticated: gh auth status.
  3. Confirm ## Unreleased section in CHANGELOG.md has content:
    awk '/^## Unreleased/{flag=1;next} /^## /{flag=0} flag' CHANGELOG.md
    
    Abort if empty.
  4. Determine version:
    • If $ARGUMENTS provides X.Y.Z, validate format.
    • Otherwise, suggest bump based on Unreleased content (breaking → major, feat → minor, fix only → patch).

Phase 2: Dry-run preview

  1. Show planned changes first:
    ./release.sh X.Y.Z --dry-run
    
    Confirm output with user before proceeding.

Phase 3: Release

  1. Execute:

    ./release.sh X.Y.Z
    

    Script handles: bump bin/gacela, rewrite CHANGELOG.md, run composer quality && composer test, commit chore(release): X.Y.Z, tag X.Y.Z (unprefixed), push main + tag, create GitHub release with notes from CHANGELOG section.

  2. On failure mid-script, run:

    ./release.sh --rollback
    

Phase 4: Verify

  1. Confirm release:
    gh release view X.Y.Z
    
  2. Report release URL to user.

Rules

  • Tags unprefixed: 1.14.2, never v1.14.2.
  • Commit format: chore(release): X.Y.Z.
  • Never run manual git tag / gh release create when release.sh available.
  • Never skip composer quality && composer test unless user explicitly passes --skip-tests.
  • See ./release.sh --help for all flags (--dry-run, --force, --skip-tests, --without-gh-release).

Signals

GitHub stars
133
Forks
8
Last commit
Aug 2026
Hacker News mentions
20
Advanced
Catalog kind
skill
Gateway key
release-gacela-project
Source
github.com/gacela-project/gacela