gwoe-antragspruefer/docs/adr
Dotty Dotter f0f1c39911 Docs: Feld-Mapping-Tabelle pro Adapter + ADR 0005 + Auth-Tests
Adapter-Capabilities-Matrix (#93) erweitert um detailliertes Feld-
Mapping: Pro Adapter welches API-/HTML-/JSON-Feld zu welchem
Drucksache-Feld wird (title, datum, fraktionen, drucksache, link, typ)
mit konkreten Beispielwerten. 12 Adapter-Sektionen.

ADR 0005: Keycloak SSO mit Dev-Bypass — dokumentiert die Entscheidung
für Read/Write-Trennung (GET offen, POST mit JWT) und den Dev-Modus
(Auth deaktiviert wenn KEYCLOAK_URL nicht gesetzt).

Auth-Tests: 7 neue Tests für Token-Extraction, Auth-Enabled-Detection,
_pick_best_title (letztere skipped wenn slowapi nicht installiert).

201 passed, 5 skipped.
2026-04-10 16:29:28 +02:00
..
0001-llm-citation-binding.md #62 Phase 1+3: ADRs + Doku-Struktur in webapp/docs/ 2026-04-10 01:38:03 +02:00
0002-adapter-architecture.md #62 Phase 1+3: ADRs + Doku-Struktur in webapp/docs/ 2026-04-10 01:38:03 +02:00
0003-citation-property-tests.md #62 Phase 1+3: ADRs + Doku-Struktur in webapp/docs/ 2026-04-10 01:38:03 +02:00
0004-deployment-workflow.md #62 Phase 1+3: ADRs + Doku-Struktur in webapp/docs/ 2026-04-10 01:38:03 +02:00
0005-keycloak-sso-with-dev-bypass.md Docs: Feld-Mapping-Tabelle pro Adapter + ADR 0005 + Auth-Tests 2026-04-10 16:29:28 +02:00
index.md #62: API-Reference + Datenmodelle + Embeddings-Pipeline (mkdocstrings) 2026-04-10 14:14:15 +02:00
README.md #62 Phase 1+3: ADRs + Doku-Struktur in webapp/docs/ 2026-04-10 01:38:03 +02:00
template.md #62 Phase 1+3: ADRs + Doku-Struktur in webapp/docs/ 2026-04-10 01:38:03 +02:00

Architecture Decision Records (ADRs)

ADRs dokumentieren signifikante Architektur-Entscheidungen mit Kontext, Optionen und Konsequenzen. Format inspiriert von Michael Nygard.

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 LLM-Citations server-seitig binden statt prompt-seitig accepted 2026-04-10
0002 Adapter-Pattern mit ParlamentAdapter-Basisklasse + Registry accepted 2026-04-10
0003 Sub-D Property-Verification: Zitate als Substring der zitierten PDF-Seite accepted 2026-04-10
0004 Docker Compose Deploy mit DB-/Reports-Volume und SN-XML-Sonderpfad accepted 2026-04-10

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.