# Release-Record 1.10.0 — Token sparen

Datum: 2026-09-18. Version `1.10.0` in `pyproject.toml`. Commit-Hash:
siehe Merge-Commit des Pull Requests. Ausgeliefert nach dem Merge durch
`deploy.yml`.

## Was sich ändert

Grundlage ist der Bericht
`_bmad-output/planning-artifacts/research/2026-09-18-erkenntnisse-token-sparen.md`. Er wertet den
Spotify-Artikel vom 2026-09-03 und das Plugin Shunt aus. Kern: Der
teure Hauptkontext bekommt kein Rohmaterial und keinen vorhersehbaren
Output. Denken bleibt drinnen. Die Spec steht unter
`_bmad-output/specs/spec-token-sparen/SPEC.md`.

| Bereich | Änderung | Wirkung für Nutzer |
|---|---|---|
| Skill neu | `context-budget` (Owner-Tier, Trigger-Key): gezielt lesen, große Reads delegieren, Denken nie delegieren, Original vor jedem Edit, Output direkt in Dateien, strikter Rückgabe-Vertrag, stabile Teile vorn, Kompression nur für Prosa, messen mit Qualitätstor. 60 von 80 Zeilen | Jeder Assistent schont den Kontext |
| Router | Step 2 nennt `context-budget` | Der Skill wird gefunden |
| Hook neu | `read-gate.sh` (nur Claude Code): lehnt einen vollen Read über 350 Zeilen im Hauptagenten ab. Ausschnitt, kleine Datei, Binärdatei, Subagent laufen durch. Exit immer 0. Schwelle und Abschalter: `BESTAICONFIG_READ_GATE_LINES` | Große Dateien fluten den Kontext nicht mehr |
| Seed | `settings.json` hängt das Tor an `Read`. Der Hash von 1.9.0 steht in `known_hashes` | Unveränderte Installationen bekommen das Tor beim Update |
| Test | `tests/test_read_gate.py` (12 Fälle); `test_write_gate.py` akzeptiert beide Tore im Seed | Das Tor blockiert nie aus Versehen |
| Doku | `docs/technik.md`: Abschnitt "Token sparen" mit Schwelle und Abschalter | Nutzer wissen, was passiert |

## Entscheidungen

- **Subagent statt eigener Dienst.** Spotify nutzt einen eigenen
  Arbeiter-Dienst. Hier ist der Subagent des Assistenten der Arbeiter.
  Keine neue Rechnung, kein neuer Dienst.
- **Kein Tor für Shell-Reads.** Regex über Shell-Befehle ist lückenhaft.
  Der Skill verbietet den Umweg per Regel.
- **Kein Hinweis an den Menschen.** Das Tor spricht nur mit dem Modell.
  Der Mensch muss nichts tun; eine Meldung bei jeder langen Datei wäre
  Lärm.
- **Keine Kompression, kein neues Datenformat, kein Token-Eval in CI.**
  Wirkung hängt vom Modell ab; das Projekt hat keine Laufzeit zum Messen.

## Nachweise

- Compile: 270 Prüfungen ok, 0 FAIL.
- Live im eigenen Repo: voller Read von `src/compiler_emit.py` (1480
  Zeilen) abgelehnt; Read mit `offset`/`limit` lief durch.
- Suite lokal und CI: siehe Pull Request.

## Abhängigkeiten (gepinnt)

Unverändert gegenüber 1.9.0: `bmad-method@6.12.0`, `cis=v0.3.2`,
`tea=v1.24.0`, `cisco-ai-skill-scanner==2.0.14`.

## Rollback

Schneller Weg für einen Nutzer: `BESTAICONFIG_READ_GATE_LINES=0` setzen.
Das schaltet das Tor ab, ohne Neuinstallation.

Voller Rollback, Dauer etwa 20 Minuten (davon 15 Minuten CI und Deploy):

1. Branch anlegen und den Stand 1.9.0 anwenden:
   ```sh
   git checkout -b rollback-1.10.0 main
   git diff --binary main c154988 | git apply
   git add -A && git commit -m "rollback: Stand c154988 (v1.9.0)"
   git push -u origin rollback-1.10.0
   ```
   Erwartete Ausgabe: `git diff --stat c154988 HEAD` ist leer.
2. Pull Request öffnen und mergen. Erwartete Ausgabe: das CI-Gate ist grün.
3. Der Deploy startet nach dem Merge von selbst.
