# GitHub Copilot – Workspace Instructions

## Projekt

**Bollwerk Inventar-App** – Eine Android-App (Kotlin) zur Verwaltung eines Bollwerks-Inventars mit lokaler Datenhaltung und Sharing-Möglichkeit.

## Technischer Stack

| Komponente | Technologie |
|---|---|
| Sprache | Kotlin (aktuell) |
| Plattform | Android (aktuelles API-Level) |
| UI | Jetpack Compose |
| Architektur | MVVM + Clean Architecture |
| Persistenz | Room (SQLite) |
| Build | Gradle (Kotlin DSL) |
| DI | Hilt |
| Async | Kotlin Coroutines + Flow |
| Datenexport/-import | JSON (kotlinx.serialization) |

---

## Git-Operationen

**`git commit` ist autonom erlaubt. `git push` ist das Quality Gate und erfordert User-Bestätigung.**

- `git add` und `git commit` dürfen ohne User-Bestätigung ausgeführt werden.
- `git push` **muss vor der Ausführung kurz angekündigt werden** (geänderte Dateien + Commit-Message anzeigen). Kein explizites „Ja" nötig – aber der User muss die Möglichkeit haben, es abzubrechen.
- **Weiterhin verboten ohne explizite User-Bestätigung:** `git reset --hard`, `git rebase`, `git push --force`, `git revert` auf bereits gepushte Commits, Branch-Löschungen.
- Diese Regel gilt für alle Agenten, Prompts und direkte Chat-Interaktionen in diesem Workspace.

---

## VPS-Verzeichnis (PFLICHT)

**Das App-Verzeichnis auf dem VPS heißt `/opt/bollwerk/` – niemals `/opt/krisenvorrat/`.**

- Der String `krisenvorrat` ist vollständig veraltet und darf **nirgendwo** verwendet werden: nicht in Pfaden, nicht in Namen, nicht in Kommentaren, nicht in Befehlen.
- Korrekt: `/opt/bollwerk/`, `bollwerk-server`, `bollwerk.online`
- Falsch: `/opt/krisenvorrat/`, `krisenvorrat`

---

## Versionierung (PFLICHT)

- `versionName` muss immer strikt dem Muster `x.y.z` folgen (z. B. `1.7.13`).
- Das dritte Segment (`z`) muss dem `versionCode` entsprechen.
- Formate wie `1.7 (build 13)` sind verboten.
- Bei Release-Commit-Messages darf kein Klammer-`build`-Format verwendet werden.
