From 62da36872f93d48e0cd99f048d5ef9a08f945514 Mon Sep 17 00:00:00 2001 From: Benjamin Admin Date: Wed, 1 Jul 2026 14:35:56 +0200 Subject: [PATCH] =?UTF-8?q?docs(citability):=20generische=20Legal-Referenc?= =?UTF-8?q?e-H=C3=BClle=20als=20Phase-B-Design-Vorgabe?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit User-Ergänzung: norm_ids sind nur die erste Rechtsreferenz-Art. Runtime-Vertrag (Phase B) soll eine erweiterbare Hülle tragen (legal_reference: {norm_ids, citation_units, recital_ids, guidance_ids, case_law_ids, interpretation_ids}), damit neue Referenz-Arten additiv als optionale Keys landen ohne erneuten Vertrags-/Go-Struct-Umbau. Naming-Hinweis: NICHT "legal_basis" (kollidiert mit dem Obligation-Array). Bindend ⊥ Guidance bleibt erhalten. Phase B baut NUR norm_ids; Rest = reservierter Platz, kein Bauauftrag. Nur Spec, kein Code. Co-Authored-By: Claude Opus 4.7 --- .../development/obligation_registry_v1.md | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/docs-src/development/obligation_registry_v1.md b/docs-src/development/obligation_registry_v1.md index cc665573..fc4cb1bf 100644 --- a/docs-src/development/obligation_registry_v1.md +++ b/docs-src/development/obligation_registry_v1.md @@ -179,3 +179,23 @@ Automatische Reclassification ist verboten, solange kein explizites Review-Go vo 1. **Data-Prep** (nicht-UI, Domäne 2): `norm_ids` in `export_join_keys.py` → `obligation_join_keys.json` exportieren. 2. **Build** (ai-sdk, koordiniert): `NormIDs` in `ObligationKey`; `AssessObligationStatus` füllt `CitationSpans` aus `norm_ids` statt `"pending"`. 3. **UI** (später): „Diese Pflicht beruht auf **CRA Anhang I / Art. 13**". + +**Design-Vorgabe für Phase B (Runtime-Vertrag): generische Legal-Reference-Hülle statt flachem +`norm_ids`.** `norm_ids` sind nur die ERSTE Rechtsreferenz-Art. Damit der Runtime-Vertrag +(`obligation_join_keys.json` + Go `ObligationKey`) bei neuen Referenz-Arten NICHT erneut geändert +werden muss, trägt jeder Eintrag eine **erweiterbare Hülle** (optionale Keys, additiv): +```json +"legal_reference": { // Hülle — NICHT "legal_basis" (kollidiert mit dem Obligation-Array) + "norm_ids": [...], // bindendes Primärrecht (Artikel/Anhang) ← Phase B baut nur DAS + "citation_units": [...], // menschliche Anker-Strings (Interim-Brücke) + "recital_ids": [...], // Erwägungsgründe (später, additiv) + "guidance_ids": [...], // Leitlinien EDPB/DSK (später, additiv) + "case_law_ids": [...], // Gerichtsurteile (später, additiv) + "interpretation_ids": [...] // Interpretationshilfen (später, additiv) +} +``` +Prinzip: neue Referenz-**Art** = neuer optionaler Key in der Hülle → Vertrag/Go-Struct bleiben +stabil (wie die `scope`-Achse: erweitern über Attribute, nicht über Strukturumbau). **Bindend ⊥ +Guidance-Trennung bleibt erhalten** (`norm_ids`/`case_law` = bindend · `guidance_ids` = Soft-Law) — +konsistent mit `legal_basis` ⊥ `guidance_basis` und dem Authority-Router. In Phase B wird NUR +`norm_ids` befüllt; die übrigen Keys sind reservierter Platz, kein Bauauftrag.