# 02 – Entscheidungs- und Branchinglogik

## Mechanik

Jede Frage kann ein Prädikat `showIf(v)` tragen. `v(id)` liefert den aktuellen Antwortwert (oder `undefined`). Die Sichtbarkeit wird bei **jeder** Antwortänderung neu berechnet; nicht sichtbare Fragen

* werden im Kapitel ausgeblendet (mit Zähler „n Folgefrage(n) automatisch ausgeblendet“),
* zählen nicht zum Fortschritt,
* erzeugen keine Restfrage,
* behalten aber ihre gespeicherte Antwort (Rücksprung möglich).

Unbeantwortete Steuerfragen blenden abhängige Fragen **nicht** aus (Prädikate sind so formuliert, dass nur explizite Verneinung/Verbot ausblendet). So bleibt der Katalog vollständig, solange nichts bekannt ist.

## Verzweigungen im Katalog

| Steuerfrage | Bedingung | Folgefragen |
|---|---|---|
| B01 Domänenmitglied | = nein | B02, B03, B04, B07, B08, B10 ausgeblendet |
| B03 Windows-Auth-Rolle / B04 Modell | B03 = ja oder B04 = sso_ad | B05 Kerberos/NTLM |
| B04 Auth-Modell | = sso_ad | B06 Delegation, B12 SSO auf MDM-Clients |
| B08 AD-Gruppen | eigene/bestehende | B09 Pflegeprozess |
| C06 Zertifikatsquelle | ≠ kein_https | C07 Zertifikatsprozess |
| C06 Zertifikatsquelle | interne_ca oder selbstsigniert | L11 Vertrauen im MDM |
| C29 ARR | ≠ nicht_installiert | C30 Reverse Proxy organisatorisch erlaubt |
| D_php_tech / D_python_tech | installiert oder installierbar | C31 FastCGI |
| D_*_tech (jede Laufzeit) | ≠ nicht_installierbar | D_*_org organisatorischer Status |
| D_*_tech | = installiert | D_*_ver Version |
| D_hosting_tech | = installiert | D_hosting_inproc (Core bereits produktiv?) |
| D_php_tech + D_php_org | installiert und nicht verboten | D_php_ext Extensions/Limits |
| F01…F11 (Schnittstelle) | vorhanden/erreichbar/ungeklärt | F0x_det Auth/Verantwortlicher/Doku |
| K07 Gerätetypen | enthält dashboard_monitor | K08 Dashboard-Monitore |
| L01 Zugriffspfade / J02 | enthält mdm_tunnel oder atwork_browser | L02 MDM-Version, L03 MDM-Browser, L04 Tunnel-Art |

Beispiele aus der Anforderung: Ist PHP weder vorhanden noch zulässig (`D_php_tech = nicht_installierbar` oder `D_php_org = verboten`), verschwinden D_php_ver, D_php_ext und C31 (sofern nicht Python sie hält). Ist das Hosting Bundle installiert, erscheint D_hosting_inproc; die Stackbewertung vertieft Hosting/Deployment automatisch. Bei Windows Authentication werden B05/B06/B12 (AD/SSO) sichtbar. WebSockets (C27) und ARR (C29/C30) verzweigen in der Bewertung (Realtime-/Reverse-Proxy-Optionen) und im Client-Test.

## Verzweigungen in der Bewertung (nicht im Fragebogen)

* **Organisatorische Verbote (J12)** setzen die zugehörigen Client-Capabilities auf ROT, unabhängig vom Testergebnis: keine_cdn → CDN/extern; kein_websocket → WebSockets; kein_local_storage → LocalStorage/IndexedDB; kein_pwa → Service Worker/PWA; keine_kamera → Kamera/Geolocation.
* **Antwortstatus** `forbidden`/`na` → jede Fähigkeit, die diese Frage referenziert, wird ROT.
* **Pflichtclients**: Client-Capabilities werden nur über Profile mit `mandatory = true` aggregiert; fehlen Pflichtprofile, über alle Profile; fehlen Profile, GRAU.
* **Frontend-Baseline (L4)**: siehe 04-bewertungslogik.md.

## Restfragen

Eine sichtbare Frage wird zur Restfrage, wenn sie (a) unbeantwortet ist, (b) mit „Unbekannt“ beantwortet wurde oder (c) `status = open` bzw. `later = true` gesetzt ist. Die Restfrage enthält Kapitel, Frage, Grund, GUI-Pfad und den lesenden Befehl – als Markdown kopierbar.
