gwoe-antragspruefer/docs/adr/index.md
Dotty Dotter 89b82b1627 docs(adr): 0013 — Programme + Legislaturen mit zeitpunktiger Bewertung
Architektur-Doku zum Schema-Refactor der letzten Session:
- Begruendung fuer programme.py + legislaturen.py
- Optionen-Vergleich (zentrale Registry vs. Liste-im-Schema vs. Status quo)
- Migrationsweg via _migrate_from_legacy() und Lazy-Init
- Datenstand (86 Wahlprogramme + 12 Grundsatzprogramme + 56 Legislaturen
  + 70 Regierungen)
- Offene Folgearbeiten: historische Wahlprogramme indizieren,
  analyzer.py-Migration, wahlprogramme.py-Compat-Shim

Index aktualisiert.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-08 01:04:04 +02:00

46 lines
3.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Architecture Decision Records (ADRs)
ADRs dokumentieren signifikante Architektur-Entscheidungen mit Kontext, Optionen
und Konsequenzen. Format inspiriert von [Michael Nygard](https://cognitect.com/blog/2011/11/15/documenting-architecture-decisions).
## Workflow
1. Neue Entscheidung steht an → Kopie von `template.md` mit nächster freier
Nummer (`NNNN-kebap-titel.md`).
2. Status `proposed` → diskutiert in Issue/PR → bei Akzeptanz auf `accepted`.
3. **Niemals editieren nach `accepted`.** Wenn eine Entscheidung sich ändert,
neuer ADR mit `Supersedes: NNNN-…` im Header und der alte ADR bekommt
`Superseded by: MMMM-…`.
4. Status `deprecated` für Entscheidungen, die ohne Nachfolger auslaufen.
## Index
| ID | Titel | Status | Datum |
|---|---|---|---|
| [0001](0001-llm-citation-binding.md) | LLM-Citations server-seitig binden statt prompt-seitig | accepted | 2026-04-10 |
| [0002](0002-adapter-architecture.md) | Adapter-Pattern mit ParlamentAdapter-Basisklasse + Registry | accepted | 2026-04-10 |
| [0003](0003-citation-property-tests.md) | Sub-D Property-Verification: Zitate als Substring der zitierten PDF-Seite | accepted | 2026-04-10 |
| [0004](0004-deployment-workflow.md) | Docker Compose Deploy mit DB-/Reports-Volume und SN-XML-Sonderpfad | accepted | 2026-04-10 |
| [0005](0005-keycloak-sso-with-dev-bypass.md) | Keycloak SSO mit Dev-Bypass-Fallback | accepted | 2026-04-10 |
| [0006](0006-embedding-model-migration-v3-to-v4.md) | Embedding-Modell-Migration text-embedding-v3 → v4 | accepted | 2026-04-11 |
| [0007](0007-test-taxonomy.md) | Test-Taxonomie (Unit / Integration / E2E / Property / Smoke) | accepted | 2026-04-28 |
| [0008](0008-ddd-lightweight-migration.md) | DDD-Lightweight-Migration (Repository, LLM-Port, Domain-Verhalten) | accepted | 2026-04-20 |
| [0009](0009-protokoll-parser-registry.md) | Plenarprotokoll-Parser-Registry pro Bundesland | accepted | 2026-04-28 |
| [0010](0010-stimmverhalten-gwoe-aggregat.md) | Stimmverhalten × GWÖ-Bewertung als JOIN-Aggregat (Heuchelei + Konsistenz) | accepted | 2026-05-06 |
| [0011](0011-aktuelle-themen-pm-generator.md) | Aktuelle-Themen-Dashboard mit PM-Generator (Persona-Prompt + Versionierung) | accepted | 2026-05-06 |
| [0012](0012-debug-auth-token-bypass.md) | DEBUG_AUTH_TOKEN-Bypass für Diagnose-Sessions auf dev | accepted | 2026-05-06 |
| [0013](0013-programme-legislaturen-zeitpunktige-bewertung.md) | Programme + Legislaturen mit zeitpunktiger Bewertung | accepted | 2026-05-08 |
## Wann ADR, wann nicht
| ADR-würdig | nicht ADR-würdig |
|---|---|
| Wahl zwischen mehreren plausiblen Architekturen mit Trade-offs | Bug-Fix |
| Strukturelle Konsequenzen für mehrere Module | Refactoring innerhalb eines Moduls |
| Reverse-Engineering-Findings die andere Adapter beeinflussen | Stiländerungen, Linting-Konventionen |
| Neue externe Abhängigkeiten oder APIs | Dependency-Bumps ohne API-Änderung |
| Workflow-Konventionen die mehrere Sessions überdauern müssen | Tagesgeschäft, Issue-Tracking |
Faustregel: Wenn ein neuer Kollege (oder eine neue Session) die Entscheidung
sonst rückgängig machen würde, gehört sie in einen ADR.