# Release 2026-08-10 (zweiter) — Sprachwahl beim Installieren

## Was ausgeliefert wurde

| Feld | Wert |
|---|---|
| Commit auf `main` | `d656afa6aa5b95a770accafefdd113e7c449d78e` |
| Commit auf `gh-pages` | `c1c94d5970efb15cad2495e0c4489c68ab599ee6` |
| Vorheriger Stand auf `gh-pages` | `31a74f01b6044f774f4abb66b53a4bbbf5352271` |
| Zielumgebung | GitHub Pages, https://deltatree.github.io/BestAiConfig |
| Zeitpunkt | 2026-08-10, 11:07 UTC (Workflow-Start) |
| Ausgelöst von | `deltatree` über `gh workflow run deploy.yml --ref main` |
| Workflow-Lauf | https://github.com/deltatree/BestAiConfig/actions/runs/31382672738 |
| Dauer | 3 Minuten 13 Sekunden |
| Pull Request | https://github.com/deltatree/BestAiConfig/pull/3 |

## Abhängigkeiten

Unverändert gegenüber dem ersten Release des Tages. Das Projekt hat keine
Laufzeitabhängigkeiten (`dependencies = []`).

| Werkzeug | Version | Quelle |
|---|---|---|
| Python | 3.12 | `actions/setup-python@v6`, gepinnt im Workflow |
| `actions/checkout` | v7 | gepinnt im Workflow |
| `peaceiris/actions-gh-pages` | v4 | gepinnt im Workflow |

## Konfiguration, die der Build liest

Unverändert. Siehe
[2026-08-10-reply-language.md](2026-08-10-reply-language.md).

Neu ist eine Konfiguration, die der **Installer** beim Anwender liest:

| Schlüssel | Vorgabe | Herkunft |
|---|---|---|
| `RULES_LANGUAGE` | leer | Umgebung des Anwenders |
| `--language <name>` | leer | Aufrufzeile des Anwenders |
| `DEFAULT_RULES_LANGUAGE` | `German` | `src/bootstrap.sh` |

Der Wert landet beim Anwender in `AGENTS.local.md`. Er verlässt dessen
Rechner nicht.

## Reproduzierbarkeit

```
build 1: de4d18fcb4724149d76b41e4e6b6d0edd5ac22780ab8201e7bfef1dc93a15e4f
build 2: de4d18fcb4724149d76b41e4e6b6d0edd5ac22780ab8201e7bfef1dc93a15e4f
```

Die Bauläufe sind byteweise identisch. Es gibt keine bekannte Abweichung.

## Datenmigration

Keine im Sinne einer Datenbank. Eine Sache ist trotzdem zu wissen: der
Installer legt beim Anwender die Datei `AGENTS.local.md` an oder erweitert
sie. Der Rückwärtsschritt dafür steht unten als Schritt 6.

## Rollback

Der Rollback dauert etwa 4 Minuten. Du brauchst Schreibrechte auf das
Repository und `git`.

**Schritt 1 — Hole den aktuellen Stand.**

```
git fetch origin gh-pages
```

Erwartete Ausgabe: keine Fehlermeldung, Status 0. Bei einer Fehlermeldung
prüfe die Netzverbindung und `gh auth status`.

**Schritt 2 — Prüfe den vorherigen Stand.**

```
git log --oneline -3 origin/gh-pages
```

Erwartete Ausgabe: oberste Zeile `c1c94d5 deploy: d656afa...`, zweite Zeile
`31a74f0 deploy: c5682eb...`. Weicht die oberste Zeile ab, hat jemand nach
dir ausgeliefert. Halte an und kläre das zuerst.

**Schritt 3 — Setze `gh-pages` zurück.**

```
git push --force-with-lease origin 31a74f01b6044f774f4abb66b53a4bbbf5352271:gh-pages
```

Erwartete Ausgabe: eine Zeile mit `forced update`. Bei `stale info`
wiederhole Schritt 1 und 2.

**Schritt 4 — Warte auf das Auslieferungsnetz.**

```
until ! curl -fsS "https://deltatree.github.io/BestAiConfig/bootstrap.sh?cb=$$" \
  | grep -q "DEFAULT_RULES_LANGUAGE"; do sleep 10; done
```

Erwartete Ausgabe: der Befehl endet. Dann liefert GitHub Pages wieder den
Installer ohne die Sprachoption aus. Das dauert bis zu 2 Minuten. Endet der
Befehl nach 5 Minuten nicht, prüfe
https://github.com/deltatree/BestAiConfig/deployments.

**Schritt 5 — Nimm den Code auf `main` zurück, falls nötig.**

```
git revert -m 1 d656afa6aa5b95a770accafefdd113e7c449d78e
git push origin main
```

Erwartete Ausgabe: ein neuer Commit `Revert "Merge pull request #3"`. Ohne
diesen Schritt liefert der nächste nächtliche Lauf den Stand wieder aus.

**Schritt 6 — Entferne den Sprachblock bei den Anwendern.**

Nur nötig, wenn der Block weg soll. Er steht in `AGENTS.local.md` zwischen
den beiden Marken. Der Installer entfernt ihn selbst:

```
curl -fsSL https://deltatree.github.io/BestAiConfig/bootstrap.sh \
  | bash -s -- --yes --language ask
```

Erwartete Ausgabe: `[bootstrap] language: removed the pin from AGENTS.local.md`
oder `[bootstrap] language: no pin written`. Alles andere in der Datei
bleibt unberührt. Erscheint keine dieser Zeilen, prüfe, ob der Installer aus
Schritt 4 schon der alte ist — der kennt die Option nicht.

## Rollback-Probe

| Datum | Dauer | Ergebnis |
|---|---|---|
| noch nicht durchgeführt | — | — |

Dieser Rollback ist ein Plan, keine bewiesene Prozedur. Führe ihn einmal
gegen die laufende Auslieferung aus, spätestens bis 2026-11-08, und trage
Datum und gemessene Dauer hier ein.

## Ausgerollt auf

| Projekt | Ergebnis |
|---|---|
| `BestAiConfig` (dogfood) | 123 Artefakte, Sprache `German` gepinnt |
| `lys_landingpage` | 123 Artefakte, Sprache `German` gepinnt, `AGENTS.local.md` neu angelegt |
| `linkyourskill.ai` | 123 Artefakte, Sprache `German` gepinnt, die 552 vorhandenen Zeilen in `AGENTS.local.md` byteweise unverändert |
