---
description: "ship – Commit, Build-Test, Push. Erstellt einen Conventional-Commits-konformen Commit, führt Gradle-Tests aus, pusht auf origin. Auftretende Build- oder Test-Fehler werden direkt behoben."
name: "ship"
agent: agent
tools: [read, search, execute/runInTerminal, execute/sendToTerminal, execute/getTerminalOutput, edit]
---

Lies **zuerst** die Git-Skill-Datei `.github/skills/git/SKILL.md` vollständig mit `read_file`.

Führe danach den vollständigen Ship-Workflow durch:

---

## Schritt 1 – Aufräumen

Vor dem Commit: temporäre und nicht mehr benötigte Dateien identifizieren.

1. Prüfe `git status --short` auf untracked Dateien (`??`), die offensichtlich temporär sind.
2. **Keine produktiven Dateien entfernen** – nur offensichtlichen Ballast.

---

## Schritt 2 – Build & Test (Quality Gate)

```
./gradlew assembleDebug test
```

Werte das Ergebnis aus:

- **BUILD SUCCESSFUL** → weiter mit Schritt 3.
- **Fehler** → weiter mit Schritt 5.

---

## Schritt 3 – Commit

1. Ermittle mit `git status` und `git diff --stat HEAD` alle Änderungen.
2. Stage alle relevanten Änderungen mit `git add` (Build-Artefakte wie `build/`, `.gradle/` ausschließen).
3. Erstelle eine Commit-Message nach **Conventional Commits** (Typ, Kurzbeschreibung ≤ 72 Zeichen, Body mit „was und warum").
4. Führe `git commit` aus.

---

## Schritt 4 – Push (Quality Gate)

1. Zeige dem User kurz: welche Dateien geändert + Commit-Message.
2. Führe `git push` aus.

---

## Schritt 5 – Fehler beheben (nur bei Build/Test-Fehler)

1. Analysiere die Fehlerausgabe.
2. Unterscheide:
   - **Compilerfehler** → betroffene Quelldatei lesen, korrigieren.
   - **Test-Fehler** → Ursache im Produktions- oder Testcode beheben.
   - **Lint-Fehler** → Zeile korrigieren.
3. Nach dem Fix erneut mit Schritt 2 fortfahren.
4. Maximal **3 Korrekturzyklen** – danach User informieren.

---

## Abschluss

Berichte kurz:

- Commit-Hash und -Message
- Build/Test-Status (✅ / ❌)
- Push-Status (✅ / ❌)
