feat(cra): Maßnahmen-Provenienz + Lizenzklasse je Normquelle

Jede Normreferenz einer Maßnahme wird lizenzklassifiziert (eu_law /
public_domain / open / paid_reference) — paid-reference-Normen werden nur als
Verweis geführt, nie im Text gespeichert (idea/expression). Kuratierte
Maßnahmen tragen Tier 'core', KI-/Fallback-Maßnahmen 'review' (indikativ).
Frontend zeigt Quellen-Badges + "indikativ"-Kennzeichnung. Methodik in
docs-src/development/mapping-methodology.md (Szenario C, Due-Diligence).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
Benjamin Admin
2026-06-16 10:10:20 +02:00
parent 6c619ecc42
commit 7a4f086151
8 changed files with 204 additions and 3 deletions
@@ -24,8 +24,10 @@ def _measure_obj(mid: str) -> dict:
d = MEASURE_DETAILS.get(mid)
if d:
return {"id": mid, "name": d.get("name", ""), "description": d.get("description", ""),
"norm_refs": d.get("norm_refs", [])}
return {"id": mid, "name": MEASURES.get(mid, ""), "description": MEASURES.get(mid, ""), "norm_refs": []}
"norm_refs": d.get("norm_refs", []), "norm_sources": d.get("norm_sources", []),
"tier": d.get("tier", "core"), "provenance": d.get("provenance", "")}
return {"id": mid, "name": MEASURES.get(mid, ""), "description": MEASURES.get(mid, ""),
"norm_refs": [], "norm_sources": [], "tier": "review", "provenance": ""}
_REQ_INDEX = {r["req_id"]: r for r in ANNEX_I_REQUIREMENTS}