From 2a8abb62351adc2c0160cb58a06e6bb71ebaf241 Mon Sep 17 00:00:00 2001 From: Benjamin Admin Date: Wed, 1 Jul 2026 14:31:32 +0200 Subject: [PATCH] docs(citability): Weg-1 Datenbereitschaft dokumentiert (Obligation->Norm), UI deferred MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit User-Auftrag: Datenbereitschaft für Weg 1 bestätigen + dokumentieren, KEIN UI bauen. Neuer Spec-Abschnitt "Weg 1 — Obligation->Norm-Zitierfähigkeit": - Zwei Zitierebenen getrennt: RAG-Evidence-Zitat (Advisor heute, /retrieve) ⊥ Obligation->Norm-Zitat (norm_id-Join, diese Registry) — beide langfristig nötig. - Datenbereitschaft: obligation norm_ids READY (62/64 joinbar) + KB-v2-Ziele bestätigt; GAP = Runtime-Vertrag obligation_join_keys.json trägt norm_ids NICHT (nur citation_units), Go ObligationKey ohne NormIDs, AssessObligationStatus setzt CitationSpans:"pending" hart. - Deferred-Sequenz (nicht gebaut): 1 Data-Prep norm_ids->join_keys (Domäne 2) -> 2 Go-Build (CitationSpans aus norm_ids, koordiniert) -> 3 UI ("Diese Pflicht beruht auf ..."). Co-Authored-By: Claude Opus 4.7 --- .../development/obligation_registry_v1.md | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/docs-src/development/obligation_registry_v1.md b/docs-src/development/obligation_registry_v1.md index d9482726..cc665573 100644 --- a/docs-src/development/obligation_registry_v1.md +++ b/docs-src/development/obligation_registry_v1.md @@ -156,3 +156,26 @@ Automatische Reclassification ist verboten, solange kein explizites Review-Go vo **non-fatal Warnung** (blockt nicht, mutiert nicht). - `apply_scope_classification.py` — **mutiert** (setzt `scope`), läuft NUR nach explizitem Review-Go (ändert `join_keys` + Compliance-Execution-Sync → menschlich/koordiniert). + +## Weg 1 — Obligation→Norm-Zitierfähigkeit (Datenbereitschaft; UI deferred) + +**Zwei Zitierebenen — NICHT verwechseln (beide langfristig nötig):** +- **RAG-Evidence-Zitat** (heute im Advisor sichtbar): `Frage/Antwort → Evidence-Chunk` + (KB-v2 `article_label`/`source_url`, `[n]`-Citations). Quelle = Compliance/KB-Session `/retrieve`. +- **Obligation→Norm-Zitat** (der `norm_id`-Join): `Pflicht → konkrete Rechtsgrundlage` (KB-v2-Unit). + Quelle = diese Registry. **Weg 1** = dieses Zitat sichtbar machen. + +**Datenbereitschaft (Stand 2026-07-01):** + +| Baustein | Status | +|---|---| +| `obligations/*.json` → `legal_basis.norm_ids` | ✅ 62/64 joinbar (53 annex + 16 article, KB-v2-verifiziert) | +| KB-v2-Join-Ziele (CRA Art1-71 · MaschVO Art1-54 · Annexe) | ✅ bestätigt | +| `obligation-status`-Endpoint + Traversal (`obligation_id→citation_unit→Controls→Evidence`) | ✅ vorhanden; exponiert `LegalBasis = citation_units` | +| Runtime-Vertrag `obligation_join_keys.json` trägt `norm_ids` | ❌ nur `citation_units` (Anker-Strings), KEINE `norm_ids` | +| Go `ObligationKey`-Struct / `CitationSpans` | ❌ kein `NormIDs`-Feld; `AssessObligationStatus` setzt `CitationSpans:"pending"` hart (compliance_status.go) | + +**Deferred-Sequenz (UI zuletzt) — bewusst NICHT gebaut:** +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**".