Files
WP-LIT-MCP/docs/superpowers/plans/2026-10-18-architektur-divi-faehigkeiten.architecture.json
T

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"
]
}
]
}