diff --git a/docs-src/development/session_ownership_model_v1.md b/docs-src/development/session_ownership_model_v1.md index 932fdf41..815e262e 100644 --- a/docs-src/development/session_ownership_model_v1.md +++ b/docs-src/development/session_ownership_model_v1.md @@ -148,3 +148,35 @@ Output: je Feature die Lücken — fehlende Capability · fehlende Procedure · Zeigt sofort, was schon vollständig modelliert ist und wo Domäne 2 als Nächstes nacharbeiten muss. Traversal-Logik gehört Domäne 2 (cap.*→Obligation→Procedure→Evidence); der Feature→cap.*-Input kommt read-only von Domäne 3. Gated auf Feature Library v1. + +## RESOLVED (2026-06-26): Ownership-Konflikt #1 — Capability ist ein GETEILTER Knoten + +Konflikt: die Reasoning/Company-Session beanspruchte `Feature→Capability`/`Certificate→Capability` +für Domäne 2. **User-Entscheidung: beide bleiben bei Domäne 3 (Feature Knowledge Graph).** + +``` +Feature ------+ +Certificate --+──▶ CAPABILITY ──▶ Obligation ─▶ Procedure ─▶ Control ─▶ Evidence + (Domäne 3: (Domäne 2: (Domäne 2: ausgehende Kanten) + eingehende Knoten + + Kanten) IDs) +``` +- **Knoten + ausgehende Kanten = Domäne 2:** Capability Registry · Capability-IDs (`cap.*`) · + `Capability→Obligation` (realizes) · `Capability→Procedure→Control→Evidence`. +- **eingehende Kanten = Domäne 3:** `Feature→Capability` (requires) · `Certificate→Capability` · + `Product Profile→Features`. + +**Begründung:** „Fernwartung→transport_encryption" oder „IEC 62443-4-2→Capabilities" sind PRODUKT-/ +Technik-Aussagen — kein Jurist weiß das → Produktwissen (Domäne 3). „Capability→Obligation" ist +regulatorisches Wissen (Domäne 2). Gleiches Objekt, andere Kante, andere Domäne. + +**EXPLIZITER VERTRAG:** *Domäne 2 besitzt NIEMALS Wissen darüber, welche Produkte oder Zertifikate +welche Capabilities benötigen. Sie besitzt ausschließlich das Wissen, welche Capabilities +regulatorische Pflichten erfüllen.* (Verhindert, dass Domäne 2 zur Produktmodellierung abdriftet.) + +| Thema | Owner | +|---|---| +| Capability Registry · Capability-IDs | Domäne 2 | +| Capability → Obligation · Capability → Procedure → Control → Evidence | Domäne 2 | +| `proposed → canonical obligation_id` (Reasoning#1) | Domäne 2 | +| **Feature → Capability** · **Certificate → Capability** · Product Profile → Features | **Domäne 3** | diff --git a/obligations/proposed_obligation_canonical_map.json b/obligations/proposed_obligation_canonical_map.json new file mode 100644 index 00000000..6d830a25 --- /dev/null +++ b/obligations/proposed_obligation_canonical_map.json @@ -0,0 +1,22 @@ +{ + "schema_version": "proposed_obligation_canonical_map_v1", + "purpose": "Reasoning#1: Re-Link der proposed=True-Obligations der Reasoning-Session auf kanonische obligation_ids der Registry (Domaene 2). DISZIPLIN: obligation_id RE-LINKEN, NIE neu vergeben — Reasoning ersetzt ihre proposed_id durch canonical_id.", + "owner": "Domaene 2 (Compliance Execution / Obligation Registry)", + "canonicalized": { + "machine_risk_assessment": "risk_assessment_machinery_lifecycle", + "machine_safety_control_systems": "safety_functions_design", + "machine_protection_against_corruption": "protection_against_corruption", + "machine_instructions_for_use": "operating_instructions", + "machine_ce_conformity": "eu_declaration_ce_marking" + }, + "pending_no_target": { + "data_act_data_access_by_design": "Data-Act-Registry nicht geschnitten", + "data_act_user_data_access": "Data-Act-Registry nicht geschnitten", + "cra_secure_by_design": "CRA-Prozesspflicht ohne eigene Obligation (Annex-I-Umbrella)", + "cra_risk_assessment": "CRA-weite Risikobeurteilung nicht als eigene Obligation geschnitten", + "cra_technical_documentation": "CRA-Technische-Doku nicht als eigene Obligation", + "cra_ce_conformity_assessment": "CRA-Konformitaetsbewertung nicht als eigene Obligation", + "cra_instructions_for_use": "CRA-Betriebsanleitung nicht als eigene Obligation" + }, + "note": "Sobald Data-Act/CRA-Prozess als Registry-Familien geschnitten sind, werden die pending_no_target-Eintraege kanonisiert. machine_* gegen cra_machinery (MaschVO) validiert." +} \ No newline at end of file