From 57bda55af430f430e3ae5a5b27e8072da21fc7a0 Mon Sep 17 00:00:00 2001 From: Hitonabi Date: Wed, 22 Jul 2026 18:59:53 +0200 Subject: [PATCH] Harte Regeln (Ampel-Pflicht, Spec-Stopp, deploy.sh-only, keine erfundenen APIs) + idempotentes deploy.sh Lehren aus dem Review 22.07.: stille MakeMKV->HandBrake-Abweichung, Doppel-Anlage auf der VM, halluzinierte Celery/abcde-Schnittstellen. --- AGENTS.md | 18 ++++++++++++++++++ deploy.sh | 15 +++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 deploy.sh diff --git a/AGENTS.md b/AGENTS.md index 8fc3ed2..f85cc94 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -7,6 +7,24 @@ **3. Beweisen statt behaupten.** Testen, was gebaut wurde. Keine "es sollte funktionieren"-Commits. **4. Deutsch-Nicht-Entwickler.** Der Commander liest alles — Variablennamen auf Englisch, aber Kommentare und Docs auf Deutsch. +## ⛔ HARTE Regeln (mechanisch geprüft — seit 22.07.2026) + +**A. Die CI-Ampel muss GRÜN sein, bevor irgendetwas „fertig" heißt.** +`.gitea/workflows/ci.yml` läuft bei jedem Push auf dem Gitea-Runner (NICHT löschen, NICHT +abschwächen). Keine Tests = rot = nicht fertig. Der Commander liest die Ampel, nicht den Code. + +**B. Abweichung vom KONZEPT = STOPP + fragen.** Anderes Werkzeug, andere Bibliothek, +gestrichenes Muss-Feature → erst den Commander fragen, NIE still ersetzen. +(Vorgefallen: Muss-Feature „MakeMKV lossless" wurde still durch lossy HandBrake ersetzt.) + +**C. Deployment NUR über `./deploy.sh`.** Idempotent, EIN fester Compose-Projektname +(`rippy`), EIN Pfad (`~/projects/rippy`). Nie freihändig per SSH auf der VM bauen. +(Vorgefallen: Doppel-Anlage `Rippy` + `rippy` auf der arcane-VM.) + +**D. Externe Schnittstellen NIE aus dem Kopf.** Vor Nutzung fremder CLI-Flags oder +Bibliotheks-APIs: `--help`/Doku prüfen und die Fundstelle im Commit nennen. +(Vorgefallen: erfundene Celery-Methode `self.send_task`, erfundene abcde-Flags.) + ## Workflow 1. **Read:** KONZEPT.md + ROADMAP.md lesen. Verstehen, welche Etappe dran ist. diff --git a/deploy.sh b/deploy.sh new file mode 100644 index 0000000..183afe1 --- /dev/null +++ b/deploy.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env bash +# EINZIGER Deploy-Weg für Rippy (Regel C in AGENTS.md, seit 22.07.2026). +# Idempotent: EIN Compose-Projektname (rippy), EIN Pfad auf der VM. +# Nie freihändig per SSH bauen — genau daraus entstand die Doppel-Anlage +# Rippy/rippy am 21.07. +set -euo pipefail + +VM="arcane@192.168.178.162" +PFAD="~/projects/rippy" +DIENST="${1:-}" # optional: nur einen Dienst neu bauen, z.B. ./deploy.sh rippy-ui + +ssh "$VM" "cd $PFAD \ + && git pull --ff-only origin main \ + && docker compose -p rippy up -d --build $DIENST \ + && docker compose -p rippy ps --format 'table {{.Name}}\t{{.Status}}'"