diff --git a/CLAUDE.md b/CLAUDE.md index 1689b2f..10ef991 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -520,8 +520,25 @@ die Live-Seiten (Tabellen/News/Ergebnisse/Vorschau) bei jedem Aufruf frisch aus Stand als `snapshot`-Feld ein (`stadionzeitung_build_snapshot()`, dieselbe Berechnung wie die Entwurfs-Vorschau — `stadionzeitung_live_data()` in `helpers.php` entscheidet snapshot vs. live) und setzt `status: veroeffentlicht`. Ab dann ändert sich die Ausgabe nie mehr („gedruckt = fixiert"); -sinnvoller Zeitpunkt: Spieltagmorgen nach dem letzten Matchcenter-Sync. `--entwurf` zieht zurück -(Snapshot wird verworfen). Ein erneuter `stadionzeitung-add.php`-Lauf setzt eine veröffentlichte +sinnvoller Zeitpunkt: Spieltagmorgen nach dem letzten Matchcenter-Sync — **auf dem Server**, dort +liegt der frische Sync-Stand (`data/matchcenter.json` ist gitignored, lokal also älter). +`--entwurf` zieht zurück (Snapshot wird verworfen). + +**Mit dem Snapshot werden auch die BILDER eingefroren** (seit 31.07.2026): das Skript kopiert +alles, worauf er zeigt (`img/crests/`, `img/instagram/`, `img/news/`), als `fix-*` in den +Ausgaben-Ordner und schreibt die Pfade um. **Grund:** vorher fror nur die Daten ein, die Pfade +zeigten weiter in Ordner, die die Sync-Skripte verwalten — `matchcenter-sync` räumt Wappen weg, +die der BFV nicht mehr führt (eine Saison), `instagram-sync` ältere Posts (Wochen). Am 31.07.2026 +nachgewiesen: ein Lauf löschte 18 Wappen und 3 Bilder. Eine archivierte Ausgabe wäre also von +selbst zerfallen. `img/news` ist mit dabei, weil ein Artikelbild im Chat ersetzt werden kann. +**Varianten-Sets** (`{base, widths}`) werden über alle Breiten kopiert und nur umgeschrieben, wenn +**alle** da sind — ein halbes `srcset` wäre schlimmer als der alte Pfad. Fehlt eine Quelle, bleibt +der Pfad stehen und es gibt eine WARN (die `crest`-Komponente fällt auf Initialen zurück; ein +fehlendes Bild darf das Veröffentlichen nicht verhindern). Flache `fix-*`-Dateinamen statt eines +Unterordners, weil die Aufräum-Logik in `stadionzeitung-add.php` nur Dateien entfernt und ein +Unterordner als Waise bliebe. `--entwurf` löscht sie wieder, sie gehören zum Snapshot. +`bin/preflight.php` warnt, wenn eine veröffentlichte Ausgabe noch auf `img/crests` oder +`img/instagram` zeigt — Reparatur: `--entwurf`, dann neu veröffentlichen. Ein erneuter `stadionzeitung-add.php`-Lauf setzt eine veröffentlichte Ausgabe zurück auf Entwurf (Seiten ersetzt = Stand muss neu geprüft und veröffentlicht werden). Ausgaben ohne `status`-Feld gelten als veröffentlicht (Bestandsschutz). Die Kontakt-Seite ist bewusst NICHT im Snapshot: sie liest immer `data/ansprechpartner.json` (ein Snapshot würde nur