--- description: Finales Commit → Push → PR erstellen → Mergen → Aufräumen. Explizit vom User aufzurufen wenn ein Feature abgeschlossen ist. context: fork --- # /ship — Commit, PR, Merge, Cleanup Führe diese Schritte der Reihe nach aus. Bei jedem Fehler: Abbruch mit klarer Fehlermeldung. ## Schritt 1: Commit Prüfe ob es uncommittete Änderungen gibt: ``` git status git diff --stat ``` Falls ja: Erstelle einen Commit. Leite den Commit-Titel aus den geänderten Dateien und `git diff --stat` ab. Nutze das HEREDOC-Format: ``` git add -p ← nur wenn sinnvoll, sonst: git add git commit -m "..." ``` Falls nichts zu committen: weiter mit Schritt 2. ## Schritt 2: Push ``` git push ``` Falls der Branch noch kein Remote-Tracking hat: ``` git push -u origin ``` ## Schritt 3: PR erstellen Ermittle Branch-Namen und Commits seit main: ``` git branch --show-current git log --oneline origin/main..HEAD ``` Erstelle den PR via `mcp__gitea__pull_request_write` (method: create): - `owner`: aus git remote URL ermitteln - `repo`: aus git remote URL ermitteln - `head`: aktueller Branch - `base`: main - `title`: Erster Commit-Titel des Branches - `body`: Alle Commits als Aufzählung + Akzeptanzkriterien als Checkboxen (was wurde geändert, wie verifiziert) Merke dir den PR-Index aus der Antwort. ## Schritt 4: PR freigeben (Approve) Genehmige den PR via `mcp__gitea__pull_request_review_write` (method: create_review): - `review_type`: APPROVED - `body`: "Automatisch freigegeben via /ship" ## Schritt 5: PR mergen Merge via `mcp__gitea__pull_request_write` (method: merge): - `merge_style`: merge - `delete_branch`: true ← löscht Remote-Branch automatisch ## Schritt 6: Checkout main + Pull ``` git checkout main git pull ``` ## Schritt 7: Lokale Branches aufräumen ``` git branch -d git remote prune origin ``` Falls `git branch -d` scheitert (Branch nicht vollständig gemergt laut git): trotzdem löschen mit `-D`, da wir wissen dass der PR gemergt wurde. ## Abschluss Gib aus: - PR-URL - Welche Branches gelöscht wurden - Aktueller Stand von `git log --oneline -3`