{ "schema_version": 1, "diagram_type": "architecture", "meta": { "title": "Zielarchitektur: Divi-Freigabe je Fähigkeit", "output": "2026-10-18-architektur-divi-faehigkeiten.html", "quality_profile": "showcase", "legend": { "mode": "hidden" } }, "components": [ { "id": "client", "type": "external", "label": "MCP-Client", "sublabel": "KI-Assistent", "pos": [ 40, 190 ], "size": [ 150, 64 ] }, { "id": "registrar", "type": "backend", "label": "AbilityRegistrar", "sublabel": "AbilityGuard-Liste", "pos": [ 250, 350 ], "size": [ 150, 64 ], "tag": "kein Divi-Import" }, { "id": "core_tools", "type": "backend", "label": "Kern-Tools", "sublabel": "WordPress · Media · Core", "pos": [ 250, 510 ], "size": [ 150, 64 ] }, { "id": "ports", "type": "backend", "label": "Ports", "sublabel": "Builder · Logo · Status", "pos": [ 40, 510 ], "size": [ 150, 64 ], "tag": "Divi implementiert" }, { "id": "feature_gate", "type": "security", "label": "DiviFeatureGate", "sublabel": "lehnt je Fähigkeit ab", "pos": [ 470, 190 ], "size": [ 150, 64 ] }, { "id": "release_gate", "type": "security", "label": "ReleaseGate", "sublabel": "Matrix je Fähigkeit", "pos": [ 690, 190 ], "size": [ 150, 64 ] }, { "id": "resolver", "type": "backend", "label": "ReleaseResolver", "sublabel": "Manifest · Fingerabdrücke", "pos": [ 910, 190 ], "size": [ 150, 64 ], "tag": "Auto-Freigabe" }, { "id": "status", "type": "frontend", "label": "Anzeige", "sublabel": "site-status · Tab · CLI", "pos": [ 690, 40 ], "size": [ 150, 64 ] }, { "id": "divi_tools", "type": "backend", "label": "Divi-Tools", "sublabel": "erklären Fähigkeiten", "pos": [ 470, 350 ], "size": [ 150, 64 ] }, { "id": "adapters", "type": "backend", "label": "Divi-Adapter", "sublabel": "assertFeature()", "pos": [ 690, 350 ], "size": [ 150, 64 ], "tag": "fail closed" }, { "id": "divi", "type": "external", "label": "Divi 5", "sublabel": "Theme-Code", "pos": [ 910, 510 ], "size": [ 150, 64 ] } ], "boundaries": [ { "kind": "region", "label": "Kern (ohne Divi-Import)", "wraps": [ "registrar", "core_tools", "ports" ] }, { "kind": "region", "label": "Divi-Integration", "wraps": [ "feature_gate", "release_gate", "resolver", "status", "divi_tools", "adapters" ] } ], "connections": [ { "id": "call", "from": "client", "to": "registrar", "label": "Tool-Aufruf", "variant": "emphasis" }, { "id": "guard", "from": "registrar", "to": "feature_gate", "label": "Guard", "variant": "security", "fromSide": "top", "toSide": "left" }, { "id": "ask", "from": "feature_gate", "to": "release_gate", "label": "frei?", "variant": "security" }, { "id": "matrix", "from": "resolver", "to": "release_gate", "label": "Matrix" }, { "id": "probe", "from": "resolver", "to": "divi", "label": "Signaturen", "variant": "dashed", "labelDy": 24 }, { "id": "show", "from": "status", "to": "release_gate", "label": "liest", "labelDy": 24 }, { "id": "run_divi", "from": "registrar", "to": "divi_tools", "label": "führt aus" }, { "id": "run_core", "from": "registrar", "to": "core_tools" }, { "id": "use_ports", "from": "core_tools", "to": "ports" }, { "id": "use_adapters", "from": "divi_tools", "to": "adapters" }, { "id": "assert", "from": "adapters", "to": "release_gate", "label": "assertFeature", "variant": "security" }, { "id": "divi_api", "from": "adapters", "to": "divi", "label": "Divi-API" } ], "cards": [ { "dot": "emerald", "title": "Kern entkoppelt", "items": [ "Registrar kennt nur AbilityGuard und ToolRefusal", "WordPress, Media, Core rufen Divi über Ports", "CoreIndependenceTest verbietet Divi-Importe" ] }, { "dot": "cyan", "title": "Fähigkeiten", "items": [ "Manifest-Einträge gehören zu Fähigkeiten", "Signatur- und Mirror-Fingerabdrücke je Aufruf", "Neue Divi-Version: Freigabe je Fähigkeit" ] }, { "dot": "rose", "title": "Sperre", "items": [ "Gate lehnt nur Tools mit gesperrter Fähigkeit ab", "Lesen wie Schreiben; Tools bleiben registriert", "Adapter prüfen zusätzlich vor jedem Schreiben" ] } ] }