feat(registry-quality): scope-Achse — 2 out_of_scope + derived_obligation (User Option 2)
User-Entscheidung 2026-07-01 zum Scope-Audit: Adressat der Norm != Handlungspflicht des Herstellers. Neue `scope`-Attribut-Achse (Enum, KEINE neue Objektklasse -> Freeze v1.0 unberuehrt): in_scope (default) / out_of_scope / derived_obligation. - sanctions + market_surveillance_safeguard -> out_of_scope (reine Staats-/Durchsetzungs- bestimmungen; Praezedenz CSIRT/ENISA im CRA-Vuln-Cut). Aus join_keys gefiltert. - notified_body_requirements -> derived_obligation (Norm adressiert primaer die notifizierte Stelle, erzeugt aber mittelbare Herstellerpflichten: NB einbeziehen + Unterlagen + Konformitaetsbewertung) + scope_split_candidate (spaetere Aufspaltung Normadressat <-> abgeleitete Herstellerpflicht). BLEIBT im Set (Prinzip: Wissen nicht zu frueh verwerfen). - export_join_keys.py filtert scope==out_of_scope + fuehrt scope je Eintrag -> join_keys 126->124 (MaschVO 31->29; 123 in_scope + 1 derived_obligation). - scope_audit.py jetzt 3-Wege-klassifikations-bewusst (0 unklassifizierte Reste) + apply_scope_classification.py (deterministisch). Fuer jeden kuenftigen Cut mitlaufen. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -1,20 +1,18 @@
|
||||
{
|
||||
"audit": "obligation scope audit (Adressat: Hersteller vs Behörde/notified_body)",
|
||||
"principle": "Registry modelliert Hersteller-Pflichten; Enforcement/Institutions-Recht = out_of_scope-Kandidat",
|
||||
"principle": "Adressat der Norm != Handlungspflicht des Herstellers; scope-Achse in_scope/out_of_scope/derived_obligation",
|
||||
"false_positive_guard": "Melde-AN-Behörde-Pflichten (applicability=domain:products…) bleiben IN-SCOPE",
|
||||
"obligations_scanned": 126,
|
||||
"out_of_scope_candidates": [
|
||||
"classified": [
|
||||
{
|
||||
"file": "cra_machinery.json",
|
||||
"id": "notified_body_requirements",
|
||||
"name": "Anforderungen an notifizierte Stellen",
|
||||
"tier": "LEGAL_MINIMUM",
|
||||
"applicability": "domain:notified_body",
|
||||
"subdomain": "notified_body",
|
||||
"member_count": 11,
|
||||
"reason": "Adressat ist Behörde/notifizierte Stelle/Mitgliedstaat, nicht Hersteller",
|
||||
"precedent": "CRA-Vuln-Cut: CSIRT/ENISA out_of_scope (Adressat != Hersteller)",
|
||||
"recommendation": "out_of_scope ODER eigene Kategorie 'institutional/enforcement'"
|
||||
"scope": "derived_obligation",
|
||||
"scope_reason": "Norm adressiert primär die notifizierte Stelle (Unabhängigkeit/Kompetenz/Unparteilichkeit), erzeugt aber mittelbare Hersteller-Pflichten: notifizierte Stelle einbeziehen, erforderliche Unterlagen bereitstellen, Konformitätsbewertung korrekt durchführen.",
|
||||
"scope_split_note": "Kandidat für spätere Aufspaltung: 'Normadressat' (Anforderungen AN die notifizierte Stelle = institutional/out_of_scope) ↔ 'abgeleitete Herstellerpflicht' (NB einbeziehen + Unterlagen + Konformitätsbewertung = in_scope). NICHT vorzeitig festziehen."
|
||||
},
|
||||
{
|
||||
"file": "cra_machinery.json",
|
||||
@@ -22,11 +20,8 @@
|
||||
"name": "Marktüberwachung, nationale Schutzmaßnahmen und Korrekturmaßnahmen",
|
||||
"tier": "LEGAL_MINIMUM",
|
||||
"applicability": "domain:authority",
|
||||
"subdomain": "market_surveillance",
|
||||
"member_count": 30,
|
||||
"reason": "Adressat ist Behörde/notifizierte Stelle/Mitgliedstaat, nicht Hersteller",
|
||||
"precedent": "CRA-Vuln-Cut: CSIRT/ENISA out_of_scope (Adressat != Hersteller)",
|
||||
"recommendation": "out_of_scope ODER eigene Kategorie 'institutional/enforcement'"
|
||||
"scope": "out_of_scope",
|
||||
"scope_reason": "Adressat = Marktüberwachungsbehörden/Kommission (Schutzmaßnahmen, Schutzklauselverfahren); keine Hersteller-Handlungspflicht. Präzedenz CSIRT/ENISA."
|
||||
},
|
||||
{
|
||||
"file": "cra_machinery.json",
|
||||
@@ -34,12 +29,10 @@
|
||||
"name": "Sanktionen für Verstöße gegen die Maschinenverordnung",
|
||||
"tier": "LEGAL_MINIMUM",
|
||||
"applicability": "domain:authority",
|
||||
"subdomain": "sanctions",
|
||||
"member_count": 19,
|
||||
"reason": "Adressat ist Behörde/notifizierte Stelle/Mitgliedstaat, nicht Hersteller",
|
||||
"precedent": "CRA-Vuln-Cut: CSIRT/ENISA out_of_scope (Adressat != Hersteller)",
|
||||
"recommendation": "out_of_scope ODER eigene Kategorie 'institutional/enforcement'"
|
||||
"scope": "out_of_scope",
|
||||
"scope_reason": "Adressat = Mitgliedstaaten (legen Sanktionen fest); keine Hersteller-Handlungspflicht. Präzedenz CSIRT/ENISA (CRA-Vuln-Cut)."
|
||||
}
|
||||
],
|
||||
"decision_owner": "User/Registry-Owner — Audit FLAGGT nur, reklassifiziert nicht"
|
||||
"unclassified_candidates": [],
|
||||
"decision_owner": "User/Registry-Owner — Audit FLAGGT nur; für jeden künftigen Cut mitlaufen lassen"
|
||||
}
|
||||
Reference in New Issue
Block a user