docs(citability): generische Legal-Reference-Hülle als Phase-B-Design-Vorgabe

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 <noreply@anthropic.com>
This commit is contained in:
Benjamin Admin
2026-07-01 14:35:56 +02:00
parent 2a8abb6235
commit 62da36872f
@@ -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. 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"`. 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**". 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.