release-process

Publishes new versions of your software to release them to users.

Installation
Run `npx skills add "https://github.com/processcube-io/processcube.agent.skills" --skill "release-process"` to install this skill, then follow its SKILL.md instructions for my next request.

Paste this into Claude Code, Cursor, or any agent that can run commands.

SKILL.mdShow the author's original SKILL.md
---
name: release-process
description: Erstellt Releases (Stable, Insiders, Development) mit Single-Branch-Workflow (nur main). Nutze diesen Skill wenn der Benutzer eine Version erstellen oder releasen möchte.
allowed-tools: Bash, Read, Write, Edit, Glob, Grep
disable-model-invocation: true
---

# Release Process

Du bist ein Release-Manager und erstellst Releases nach Semantic Versioning mit einem Single-Branch-Workflow (nur `main` Branch).

## Release-Typen

Der Benutzer sagt dir welche Version er erstellen will:

| Typ | Format | Beispiel |
|-----|--------|----------|
| **Stable** | `MAJOR.MINOR.PATCH` | `1.0.0`, `1.1.0`, `2.0.0` |
| **Insiders** | `X.Y+1.0-insiders.N` | Stable `1.0.0` → `1.1.0-insiders.1`, `1.1.0-insiders.2` |
| **Development** | `X.Y+1.0-develop.N` | Stable `1.0.0` → `1.1.0-develop.1`, `1.1.0-develop.2` |

**Wichtig**: Insiders und Development basieren immer auf der letzten Stable-Version mit erhöhtem Minor!

## Allgemeiner Ablauf

### 1. Vorbereitung (IMMER zuerst)

```bash
# Prüfe aktuellen Branch
git branch --show-current

# Prüfe auf uncommitted changes
git status --porcelain
```

- Falls nicht auf `main`: Frage ob gewechselt werden soll
- **Falls uncommitted changes vorhanden**: Führe `git stash` aus und merke dir dies
- Aktualisiere: `git pull origin main`

### 2. Version ermitteln

- Lies aktuelle Version aus `package.json` oder anderen Versionsdateien
- Suche nach existierenden Tags: `git tag -l "v*"`

### 3. Neue Version bestimmen

**Für Stable Release:**
- Analysiere Commits seit letztem stabilen Tag: `git log v{LAST_VERSION}..HEAD --oneline`
- Analysiere Code-Änderungen: `git diff v{LAST_VERSION}..HEAD`
- Bestimme Release-Typ:
  - **MAJOR**: Breaking Changes (entfernte APIs, geänderte Signaturen, `BREAKING CHANGE` in Commits, `feat!:` oder `fix!:`)
  - **MINOR**: Neue Features (`feat:` Commits, neue exportierte Funktionen)
  - **PATCH**: Bug Fixes, interne Änderungen

**Für Insiders Release:**
- Finde letzte Stable-Version: `git tag -l "v[0-9]*.[0-9]*.[0-9]*" | grep -v "-" | sort -V | tail -1`
- Berechne Basisversion: Letzte Stable + Minor erhöht, Patch auf 0
  - Beispiel: Stable `1.0.0` → Basis `1.1.0`
  - Beispiel: Stable `2.3.5` → Basis `2.4.0`
- Suche existierende Insiders-Tags für diese Basis: `git tag -l "v{BASIS}-insiders.*" | sort -V | tail -1`
- Wenn Tags existieren: Nummer hochzählen (z.B. `1.1.0-insiders.3` → `1.1.0-insiders.4`)
- Wenn keine existieren: Starte mit `.1` (z.B. `1.1.0-insiders.1`)

**Für Development Release:**
- Finde letzte Stable-Version: `git tag -l "v[0-9]*.[0-9]*.[0-9]*" | grep -v "-" | sort -V | tail -1`
- Berechne Basisversion: Letzte Stable + Minor erhöht, Patch auf 0
  - Beispiel: Stable `1.0.0` → Basis `1.1.0`
  - Beispiel: Stable `2.3.5` → Basis `2.4.0`
- Suche existierende Develop-Tags für diese Basis: `git tag -l "v{BASIS}-develop.*" | sort -V | tail -1`
- Wenn Tags existieren: Nummer hochzählen (z.B. `1.1.0-develop.5` → `1.1.0-develop.6`)
- Wenn keine existieren: Starte mit `.1` (z.B. `1.1.0-develop.1`)

### 4. Changelog generieren (PFLICHT)

**Führe vor dem Release den Changelog-Skill aus.** Lies dazu die Datei `skills/changelog/SKILL.md` und befolge die darin beschriebenen Anweisungen vollständig.

- Zielgruppe: **Anwender** (Changelog aus Nutzersicht)
- Modus: **Aktualisieren** (nur neue Änderungen seit letztem Eintrag)
- Stelle sicher, dass alle Commits seit dem letzten Tag im Changelog dokumentiert sind
- **Erst wenn der Changelog erfolgreich aktualisiert wurde, fahre mit Schritt 5 fort**

### 5. Version aktualisieren

- Aktualisiere `package.json` und andere Versionsdateien
- Commite: `git commit -am "chore: release v{VERSION}"`

### 6. Tag erstellen und pushen

```bash
git tag v{VERSION}
git push origin main
git push origin v{VERSION}
```

### 7. Änderungen wiederherstellen

- **Falls in Schritt 1 gestasht wurde**: `git stash pop`
- Informiere den Nutzer

### 8. Zusammenfassung

Zeige:
- Alte Version → Neue Version
- Release-Typ
- Wichtigste Änderungen
- Git Tag Name

Mirrored from the author's public source. Install counts from the open skills registry.

The systems behind these skills get built for partners every week.

Partner with us