# ADR-003: Capability Delta Engine — one delta, many renderers

- **Status:** Accepted
- **Datum:** 2026-06-27
- **Typ:** Architektur-Entscheidung
- **Bezug:** [ADR-002](ADR-002-transition-is-data-not-architecture.md), [`../transition-reasoning-spec-v1.md`](../transition-reasoning-spec-v1.md), Architektur-Freeze v1.0, [[transition-reasoning]], [[regulatory-intelligence-vision]]

## Kontext

GAP-Analyse („Was fehlt mir / welche Informationen brauche ich noch?") und
Maßnahmenpriorisierung („Womit soll ich anfangen?") wurden bisher als zwei Features gedacht.
Sie sind aber **dieselbe Berechnung**:

```
Required Capabilities  −  Known Capabilities  =  Capability Delta
```

`Known` entsteht aus Company Profile + Zertifizierungen + Nachweisen + beantworteten Fragen
(Company 2A). `Required` entsteht aus den Zielregelwerken (CRA, MaschinenVO, Data Act, …).
Die Differenz ist das **Capability Delta**. Erst beim Output verzweigt es sich nach Zielgruppe.

Das Risiko: das Delta in mehreren Engines getrennt neu zu berechnen (eine „Gap Engine", eine
„Roadmap Engine"). Dann driften die Sichten auseinander und es gibt mehr als eine Wahrheit.

## Entscheidung

1. **Es gibt genau EINE Capability Delta Engine** (`compliance/transition_reasoning`, RS-005).
   Sie berechnet `Required − Known = Capability Delta` ein einziges Mal.

2. **Alle Zielgruppen-Outputs sind RENDERER über demselben Delta — keine zweite Berechnung:**
   - **Interview Renderer** — fehlende *Informationen* → Fragen (`TransitionQuestionRequest`, gebaut).
   - **Roadmap / Management Renderer** — fehlende *Capabilities* → Maßnahmen nach regulatorischem
     Hebel (`compliance/optimization`, gebaut).
   - **Evidence Renderer** — fehlende *Evidence* → Nachweis-Upload (später).
   - **(Ticket/Control Renderer)** — fehlende *Controls* → Tickets (später).

3. **Abhängigkeitsrichtung:** Renderer hängen von der Delta-Engine ab, nie umgekehrt
   (`optimization → transition_reasoning`, azyklisch). Die Delta-Engine bleibt hermetisch
   (0 Fremd-Import), damit sie die einzige Quelle der Wahrheit bleibt.

4. **Begriff:** „Gap" → **„Capability Delta"**. Es beschreibt präziser, was berechnet wird
   (eine Differenz von Fähigkeiten), und trägt durch alle Renderer.

## Konsequenzen

- **Eine Wahrheit, viele Sichten.** Jede neue Capability, jedes neue Regelwerk und jeder neue
  Nachweis verbessert automatisch ALLE Renderer gleichzeitig — kein Sicht-Drift.
- **Kundenreise in drei Fragen, eine Datenbasis:** (1) *Was gilt für mich?* → Reasoning/Scope →
  (2) *Was fehlt mir?* → Capability Delta → (3) *Womit anfangen?* → Optimierungsplan.
- **Regulatory Leverage** (Roadmap-Renderer): `leverage(Maßnahme) = Anzahl Regelwerke/Anforderungen,
  die sie gleichzeitig schließt`. Ranking nach Hebel + kumulative Abdeckung + Budget-Auswahl.
- **Welt-1-Disziplin:** der Prozentwert des Roadmap-Renderers ist ein exakter Abzählwert über die
  **identifizierten** Anforderungen (bekanntes Delta), **kein** „% gesetzeskonform" (Welt 2).
- **Freeze-konform:** kein neues Metamodell, kein neuer Graph — Renderer sind reine, deterministische
  Sichten (computed-not-stored). Neue Regelwerke bleiben ein Datenproblem (ADR-002).
- Diese ADR ist non-runtime → kein Deploy (siehe [ADR-001](ADR-001-runtime-deploy-policy.md)).
