---
name: ship
description: "CoPuPi-Workflow: Commit, Mac-Build-Test, Push, GitHub-Pipeline beobachten. Verwende diesen Skill für alles rund um das Ausliefern von Code – git push, Pipeline-Status, CI-Fehler beheben, Version hochzählen. Trigger-Phrasen: 'ship', 'push', 'pipeline', 'CI', 'deployen', 'ausliefern', 'version bump'."
---

# Skill: Ship (CoPuPi-Workflow)

Dieser Skill kapselt Tools und Konventionen für den Ship-Workflow – den Weg vom lokalen Commit bis zur grünen CI-Pipeline.

Der vollständige Workflow wird über `.github/prompts/ship.prompt.md` gesteuert.

---

## Enthaltene Tools

### `watch-pipeline.ps1`

Beobachtet den neuesten GitHub Actions Run bis zum Abschluss. Gibt Status, Dauer und Warnungen aus.

**Aufruf:**

```powershell
# Standard: 15s warten, dann neuesten Run beobachten (nach Push)
& ".github/skills/ship/watch-pipeline.ps1"

# Run existiert bereits – sofort starten
& ".github/skills/ship/watch-pipeline.ps1" -WaitForNew 0

# Bestimmten Commit verfolgen (wartet bis Run erscheint)
& ".github/skills/ship/watch-pipeline.ps1" -ExpectedSha abc1234

# Längerer Timeout (Default: 300s)
& ".github/skills/ship/watch-pipeline.ps1" -Timeout 600
```

**Parameter:**

| Parameter      | Default | Beschreibung                                                          |
| -------------- | ------- | --------------------------------------------------------------------- |
| `-WaitForNew`  | 15      | Sekunden Wartezeit nach Push, bis Run erscheint. 0 = sofort.         |
| `-Timeout`     | 300     | Maximale Wartezeit in Sekunden bis zum Abschluss.                    |
| `-ExpectedSha` | –       | Git-SHA (kurz/lang). Wartet bis Run mit diesem SHA erscheint (60s).  |

**Exit-Codes:**

| Code | Bedeutung                                              |
| ---- | ------------------------------------------------------ |
| 0    | Pipeline grün (success)                                |
| 1    | Pipeline fehlgeschlagen (failure/cancelled)            |
| 2    | Timeout – Run läuft noch                               |
| 0    | Kein Run für SHA gefunden (Pfad-Filter, kein Trigger)  |

**Ausgabe:** Run-ID, Name, SHA, Statusmeldung, Warnungen aus Annotations.

---

## Verwendung im Ship-Prompt

Schritt 4 des `ship.prompt.md` ruft das Skript auf:

```powershell
& ".github/skills/ship/watch-pipeline.ps1"
```

Verwende `mode=sync` mit `timeout=300000` beim Aufruf über `run_in_terminal`.
