Brainversum · tuxametrics Graph Admin

adr vertraulich owner: matus

ADR-0010: „Kataloge & Regelwerk" (R-Praxis-Governance) als Scope-Erweiterung — Mechanismus statt Fachzahl

ADR-0010: „Kataloge & Regelwerk" (R-Praxis-Governance) als Scope-Erweiterung — Mechanismus statt Fachzahl

Status

Angenommen (2026-08-24)

Kontext

agentic-engineering/backlog/hifi-prototyp-daniel-review.md stuft Screen 09 Kataloge & Regelwerk des Hi-Fi-Prototyps als Stufe D ein: „steht gegen gold-path-scope.md (R-Praxis P2, draußen) … Scope-Entscheidung nötig, nicht anfassen." gold-path-scope.md listet FACH-061FACH-063 (R-Praxis) explizit unter „Ausdrücklich NICHT im Schnitt" — Begründung: „P2; FACH-063 ist P0, aber als Dokument, nicht als Funktion."

Der Product Owner hat am 2026-08-24 entschieden, diese Scope-Erweiterung jetzt vorzunehmen: ein eigenes ADR statt eines stillen Commits, wie es gold-path-scope.md selbst verlangt („ein Feature ohne Zeile hier braucht ein ADR, keinen Commit").

Die entscheidende Unterscheidung, die dieses ADR trifft: gold-path-scope.md schließt R-Praxis als fachlichen Bestandteil des Gold-Path-Schnitts E1/E3 aus — es gibt im Material keinen Beleg für konkrete Praxis-Regelwerte, keinen Freigabeprozess (FACH-119/FACH-120 „kommt später", siehe Regelkatalog.java-Klassenjavadoc) und keine Spezifikation, wie ein Regelkandidat aus der Fallarbeit entsteht. Was hier ins Scope kommt, ist nicht eine fachlich validierte R-Praxis-Instanz, sondern der Verwaltungsmechanismus dafür: Versionierung, Entwurf/Freigabe/Ablehnung, Sichtbarkeit gegenüber dem bestehenden R-Global-Katalog. Ein Mechanismus ist keine Fachzahl — er braucht keinen Beleg im Quellmaterial, weil er nichts über Zink, Magnesium oder Vitamin D behauptet. Er behauptet nur: „eine Praxis kann einen eigenen Wert vorschlagen, versionieren und freigeben."

Entscheidung

Was ins Scope kommt

  1. Lesezugriff auf Regelkatalog.java — der Grund, warum navConfig.ts den Menüpunkt bisher durch „Systemsteckbrief" ersetzt hat, entfällt: GET .../regelkatalog liefert Dosisobergrenzen, kritische Schwellen, Kontraindikationszuordnungen, Sicherheitshinweise und Reevaluationsintervalle — unverändert aus Regelkatalog.java, keine zweite Quelle. Das bestehende R-Global-SYNTH-0 bleibt die einzige Wahrheit, die in die Auswertungslogik einfließt; dieser Endpunkt liest sie nur.
  2. R-Praxis als eigene, leere Domäne mit echtem Freigabe-Workflow. Eine Praxis kann einen eigenen Katalogeintrag (Element, Obergrenze, Einheit, Begründung) anlegen (ENTWURF), ihn freigeben (GUELTIG, nur USER — siehe unten) oder ablehnen (ABGELEHNT, mit Pflichtbegründung). Die R-Praxis-Version ist die Anzahl gültiger Einträge — eine bewusste Vereinfachung gegenüber dem Mockup-Bild R-PRAXIS 0.4, siehe „Bewusst offen gelassen" unten.
  3. Kein Rückkanal in die Auswertungslogik. Ein freigegebener R-Praxis-Eintrag wirkt nicht auf TherapieplanService oder eine laufende Auswertung — das wäre die eigentliche R-Praxis-Funktion aus FACH-061063 und bräuchte eine Vorrangregel (R-Praxis vs. R-Global), die im Material nicht spezifiziert ist. Diese Verwaltungsfläche ist reine Governance, keine Wirkung.

Was ausdrücklich draußen bleibt

GM-7-Analogie, nicht GM-7 selbst

Die drei GM-7-Capabilities (txm.empfehlung.decide, txm.uebersteuerung.create, txm.freigabe.grant) sind unverändert und bleiben die einzige Kette, die Gm7Schutz erzwingt. R-Praxis-Freigabe ist keine Therapieentscheidung und damit fachlich kein GM-7-Fall. Sie bekommt trotzdem allowedActors=[USER] (txm.regelwerk.rpraxis.freigeben) — nicht aus GM-7-Zwang, sondern aus derselben Erwägung wie bei txm.demo.cleanup (ADR-CapabilityRegistrar-Javadoc): eine Änderung an einem Katalog, der später Empfehlungen beeinflussen könnte, hat eine andere Tragweite als Lesen, auch ohne dass GM-7 sie verlangt.

Bewusst offen gelassen

Konsequenzen

Nachtrag UI-Vereinfachung (2026-08-26)

Status bleibt Angenommen. Die Entscheidung selbst (kein Rueckkanal fuer den Kandidatenfluss, ehrliche Leermeldung statt simulierter Ableitung) ist unveraendert gueltig. Geaendert hat sich nur die Darstellung, nicht die Aussage.

Die eigene Box „Freigabe von Kandidaten aus der Fallarbeit" (§„Was ausdruecklich draussen bleibt") ist aus KatalogeRegelwerkPage.tsx entfernt. Sie hatte keinen eigenen Zustand — kein Query, kein Prop — und konnte strukturell nie etwas anderes zeigen als exakt den einen Leertext. Eine Erklaerung im Layout einer Datenansicht ist keine Nettigkeit mehr, sondern eine Verwechslungsquelle: drei gerahmte Abschnitte untereinander (wirksamer Regelwert, wirkungsloser Kandidatenfluss, staendig leere Box) sahen gleichrangig aus, obwohl nur zwei davon etwas TUN. Der Product Owner selbst konnte die beiden unteren Bereiche nach der Umsetzung nicht mehr auseinanderhalten — ein Formattbefund, kein Missverstaendnis, das man wegerklaeren sollte.

Der Inhalt ist nicht verloren gegangen, nur die Form: der Satz ueber die fehlende Ableitungsregel aus der Fallarbeit steht jetzt im Erklaertext von „Regelkandidaten der Praxis" (derselben Box, die auch den wirkungslosen Kandidatenfluss traegt), mit Verweis auf GM-7.4.

Zusaetzlich wurde der Button, der das Kandidaten-Formular oeffnet, von „Regel hinzufuegen" auf „Regelkandidat anlegen" umbenannt — der alte Name behauptete, es entstehe eine Regel; tatsaechlich entsteht ein wirkungsloser Kandidat. Das Formular oeffnet seither in einem Modal statt unterhalb der Regeltabelle: es klappte dort ohne Scroll oder Fokus-Sprung auf und war praktisch unsichtbar, wenn der Viewport die Tabelle zeigte — vermutlich der eigentliche Grund, warum der Button nie mit seinem Ziel in Verbindung gebracht wurde.

Verweise