# Architecture Decision Records Dieses Verzeichnis enthält **ADRs** — kurze Markdown-Dokumente die einzelne Architektur-Entscheidungen festhalten. Das Pattern kommt von Michael Nygard und ist gemeinsamer Standard in vielen Open-Source-Projekten. ## Warum ADRs? - **Warum, nicht Wie:** Der Code ändert sich. Die Intention soll bleiben. Eine ADR erklärt warum etwas so gebaut wurde — in einem halben Jahr weiß niemand mehr sonst. - **Referenz für AI-Sessions:** Wenn die AI morgen eine Änderung vorschlägt, die eine bestehende Entscheidung umkehrt, soll sie das bewusst tun und neue ADR schreiben, nicht versehentlich. - **Audit-Trail:** Jede ADR hat Status, Datum und Entscheider. Das ist Compliance-ready. ## Format Jede ADR folgt grob diesem Schema: ```markdown # ADR-NNNN: Status: Proposed | Accepted | Superseded by ADR-NNNN | Deprecated Datum: YYYY-MM-DD Entscheider: Phase: ## Kontext Was war das Problem? Welche Optionen standen zur Wahl? ## Entscheidung Was wurde gewählt? ## Begründung Warum genau diese Option? Welche Prinzipien waren leitend? ## Konsequenzen - **Positiv:** Was gewinnen wir? - **Negativ/Trade-off:** Was geben wir auf? ## Alternativen Was wurde verworfen und warum? ``` ## Nummerierung Fortlaufend `NNNN` beginnend bei `0001`. **Niemals** alte ADRs ändern — superseden via neue ADR mit Verweis. Die Historie ist die Wahrheit. ## Aktuelle ADRs (alle aus M7.1 — Forgejo Deployment) | # | Titel | Status | |---|---|---| | 0001 | [Forgejo statt Gitea](0001-forgejo-vs-gitea.md) | Accepted | | 0002 | [Forgejo auf ai-apps, nicht separate VM](0002-ai-apps-placement.md) | Accepted | | 0003 | [Natives OIDC statt ForwardAuth](0003-native-oidc-not-forwardauth.md) | Accepted | | 0004 | [Subdomain code.sdda.eu](0004-subdomain-code-sdda-eu.md) | Accepted | | 0005 | [Volume-Mount auf /data](0005-volume-mount-data-not-var-lib.md) | Accepted (Lesson Learned) | | 0006 | [Silent SSO via OAuth2-Initiate-Launch-URL](0006-silent-sso-launch-url.md) | Accepted (Lesson Learned) | | 0007 | [OIDC-Avatar als data-URL bricht Canvas-Renderer](0007-oidc-avatar-data-url-gotcha.md) | Accepted (Lesson Learned) | ## Vorlage für neue ADRs Copy-and-paste Startpunkt: ```markdown # ADR-NNNN: **Status:** Proposed **Datum:** YYYY-MM-DD **Entscheider:** **Phase:** ## Kontext ## Entscheidung ## Begründung ## Konsequenzen ### Positiv ### Negativ / Trade-off ## Alternativen ## Referenzen ```