Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
305 lines
5.6 KiB
JSON
305 lines
5.6 KiB
JSON
{
|
|
"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"
|
|
]
|
|
}
|
|
]
|
|
}
|