# Split-Workflow fuer HistoricBits

## Ziel

Die Website wird in drei Bereiche getrennt, damit grosse Bildbestaende nicht bei jedem Projekt hoch- und heruntergeladen werden muessen.

## Static

Static ist der stabile Serverbestand:

- Bilder
- Thumbnails
- fertige Projektordner
- veroeffentlichte Archivdaten
- stabile gemeinsame Runtime

Static wird nur durch kontrollierte Merges aktualisiert.

## Fluid

Fluid ist der aktive Projektbereich:

- Projekt-Metadaten
- manuelle Overrides
- Theme-Konfiguration
- neue Projektbilder vor der Veroeffentlichung
- projektbezogene Design- und Interaktionsfunktionen

Fluid bleibt klein. Es enthaelt nicht den gesamten Archivbestand.

## Home

Home ist die separat editierbare Startseite. Sie darf auf Static und fertige Projekte verlinken, soll aber keine laufenden Fluid-Dateien benoetigen.



## Startseiten-Aenderungen / Home-Update

Bei Aenderungen an der Startseite gilt eine besonders enge Regel:

```text
Die vorhandene funktionierende index.html ist immer die Basis.
Es darf keine neue Startseite aus einer Vorlage, aus einer Online-Ansicht oder aus einem anderen Projektstand gebaut werden.
Nur der konkret beauftragte Bereich wird eingefuegt, geaendert oder entfernt.
```

### Ziel

Eine Startseitenaenderung veraendert nur den beauftragten Bereich, zum Beispiel:

```text
neuen Abschnitt einfuegen
Text aendern
Link aendern
Bild austauschen
kleine CSS-Ergaenzung fuer genau diesen Abschnitt
```

Alles andere bleibt unveraendert.

### Ohne ausdruecklichen Auftrag nicht veraendern

```text
Header
Navigation
Hero-Bereich
Datenbank-Button
Timeline
Suche
Jahres-Bildleiste
bestehende Intro-Texte
bestehende Rubriken
bestehende Kacheln
Footer
Archivdaten
Projektordner
grosse Bildbestaende
```

### Arbeitsbasis fuer Home-Updates

Fuer ein Home-Update braucht die KI nur die kleinen Startseiten-Dateien:

```text
index.html
index-en.html, falls vorhanden
styles.css, falls vorhanden
app.js, falls vorhanden
app-en.js, falls vorhanden
assets/ nur soweit auf der Startseite benoetigt
```

Nicht benoetigt:

```text
archive/
shared/
thumbs/
uploads/
grosse Sammlungsordner
Datenbankdateien
```

### Pflichtablauf bei Home-Updates

```text
1. Bestehende index.html als Basis oeffnen.
2. Bestehende Struktur erkennen.
3. Nur die beauftragte Aenderung einfuegen.
4. Keine neue Startseitenstruktur erzeugen.
5. Keine vorhandenen Bereiche umgestalten.
6. Vorschau-Screenshot oder lokal sichtbare Vorschau erstellen, wenn der Nutzer sehen will, wie es aussieht.
7. Erst danach ZIP mit den tatsaechlich geaenderten Dateien liefern.
```

### Pflichtausgabe vor dem Bauen

Vor dem Erstellen einer ZIP fuer ein Home-Update muss die KI sichtbar sagen:

```text
Ich aendere nur:
- index.html
- index-en.html, falls vorhanden und betroffen
- styles.css, falls noetig
- neue Asset-Dateien, falls noetig

Ich aendere nicht:
- archive/
- shared/
- Datenbankdateien
- Projektordner
- grosse Bildordner
```

### Ergebnis-ZIP bei Home-Updates

Das Ergebnis-ZIP enthaelt nur die relevanten Dateien, zum Beispiel:

```text
index.html
index-en.html
styles.css
assets/neues-bild.jpg
UPLOAD-HINWEIS.txt
```

`UPLOAD-HINWEIS.txt` muss klar sagen, welche Dateien auf dem Server ersetzt oder ergaenzt werden.

### Harte Home-Regel

```text
Bei Startseitenaenderungen darf niemals eine neue Startseite aus einer anderen Vorlage gebaut werden.
Die vorhandene Startseite muss erhalten bleiben.
Nur der beauftragte Abschnitt wird eingefuegt, geaendert oder entfernt.
```

## Arbeitsablauf

1. Neues Projekt in `fluid/projects/<projektname>/` anlegen.
2. Daten, Overrides, Geo-Daten, Theme und neue Bilder dort bearbeiten.
3. Projekt lokal testen.
4. Neue Bilder und Thumbnails einmalig in den Static-Serverbestand uebernehmen.
5. Projektdateien in den veroeffentlichten Projektordner mergen.
6. Startseite nur aktualisieren, wenn das Projekt dort sichtbar werden soll.

## Grundregel

Keine Massenbewegung von Bildern. Die Website referenziert stabile Serverpfade. Nur neue oder geaenderte Projektdateien werden bewegt.

## Pflichtausgabe nach jeder Aenderung

Nach jeder Aenderung muss eine KI eine Upload-Liste ausgeben. Die Liste muss immer lokale Datei, Server-Zielpfad ab Webroot und Grund nennen.

Pflichtformat:

```text
lokal:  <pfad in diesem Paket>
server: /<zielpfad auf dem Server ab Webroot>
grund:  <warum diese Datei hochgeladen werden muss>
status: Pflicht oder optional
```

## Projektdatei und Hauptarchiv gemeinsam pruefen

Wenn ein Projekt bereits in der Hauptdatenbank sichtbar ist, gibt es zwei Datenbestaende:

```text
<projektordner>/cdv-data-en.js
archive/cdv-data-en.js
```

Korrekturen an Titeln, Captions, Datierungen, Orten, Autoren, Sammlungen, Tags oder Sichtbarkeit muessen immer in beiden Dateien geprueft werden. Wird nur die Projektdatei korrigiert, bleiben in der Hauptdatenbank alte Texte sichtbar.

Beispiel Chile:

```text
lokal:  chile/cdv-data-en.js
server: /chile/cdv-data-en.js
grund:  korrigierte Titel/Captions auf der Chile-Projektseite
status: Pflicht

lokal:  archive/cdv-data-en.js
server: /archive/cdv-data-en.js
grund:  dieselben korrigierten Titel/Captions in der zentralen Datenbank
status: Pflicht
```

## Upload-Ziele nach Aufgabentyp

Projekt-Textkorrektur:

```text
<projektordner>/cdv-data-en.js -> /<projektordner>/cdv-data-en.js
archive/cdv-data-en.js         -> /archive/cdv-data-en.js, wenn Projekt im Hauptarchiv sichtbar ist
```

Startseite:

```text
index.html    -> /index.html
index-en.html -> /index-en.html, nur wenn Englisch betroffen ist
app.js        -> /app.js, wenn deutsche Startseitenlogik betroffen ist
app-en.js     -> /app-en.js, wenn englische Startseitenlogik betroffen ist
styles.css    -> /styles.css, wenn Layout betroffen ist
assets/<datei> -> /assets/<datei>, nur neue/geaenderte Startseitenbilder
```

Core/Archivfunktion:

```text
shared/archive-core/archive-app.js     -> /shared/archive-core/archive-app.js
shared/archive-core/archive-styles.css -> /shared/archive-core/archive-styles.css
shared/map/cdv-map.js                  -> /shared/map/cdv-map.js
shared/map/map.css                     -> /shared/map/map.css
```

Workflow:

```text
workflow/MASTER-INSTRUCTIONS.md -> /workflow/MASTER-INSTRUCTIONS.md
workflow/ai-instructions.json   -> /workflow/ai-instructions.json
workflow/index.html             -> /workflow/index.html
workflow/<datei>.html           -> /workflow/<datei>.html
workflow/<datei>.md             -> /workflow/<datei>.md
```

Die KI muss ausserdem ausdruecklich nennen, welche grossen Bild- oder Thumb-Ordner nicht erneut hochgeladen werden muessen.
