# Zustandsmodell Vor jeder Arbeit an Badges, Status, Filtern oder Zeilendarstellung lesen. Der haeufigste Fehler in Security-Oberflaechen: mehrere fachlich verschiedene Zustaende werden in ein Badge oder eine Farbe gepresst. In ASSESSOR sind sie getrennt und formal unterscheidbar. ## Inhaltsverzeichnis 1. Die sieben Dimensionen 2. Formfamilien 3. Severity 4. IOE 5. Outcome 6. Confidence 7. Review State und Action State 8. Data Completeness 9. Bookmark, Auswahl, Fokus 10. Kombination an einem Objekt 11. Farbrollenmatrix --- ## 1. Die sieben Dimensionen | Dimension | Fachliche Frage | Wertebereich | |-------------------|------------------------------------------------|--------------| | Severity | Wie schwer waere die Ausnutzung? | critical, high, medium, low, info, unknown | | IOE | Wurde der problematische Zustand festgestellt? | gefunden, nicht gefunden | | Outcome | Was meldet das Quellwerkzeug? | pass, fail, warning, not_run, not_applicable, execution_error | | Confidence | Wie belastbar ist die Aussage? | hoch, mittel, niedrig | | Review State | Wie wurde fachlich bewertet? | unreviewed, in review, bestaetigt, verworfen, Risiko akzeptiert | | Action State | Welche Massnahme laeuft? | offen, in Arbeit, blockiert, erledigt | | Data Completeness | Sind alle Pflichtfelder vorhanden? | vollstaendig, unvollstaendig | Severity und Outcome sind nicht dasselbe. Ein Finding mit `severity=critical` und `outcome=pass` ist eine bestandene Pruefung eines kritischen Kriteriums. Das darf nie wie ein kritischer Befund aussehen. Entscheidend fuer die Priorisierung ist die Kombination `IOE gefunden` plus Severity. Der Standardfilter in `Work` bildet genau das ab. --- ## 2. Formfamilien Die Form traegt die Bedeutung. Farbe ist immer nur das zweite Signal. | Familie | Form | Reserviert fuer | |------------------|---------------------------------------------|----------------------| | Severity-Badge | gefuellt, rechteckig, Versalien, 18 px hoch | ausschliesslich Severity | | Meta-Badge | neutral gefuellt, 1-px-Rahmen, Versalien | IOE, Kategorie, Tool, MITRE, Weight, Score, Confidence | | Workflow-Chip | Outline, 6-px-Punkt, 20 px hoch | Review State, Action State | | Outcome-Text | Textfarbe plus Glyph, kein Hintergrund | ausschliesslich Outcome | | Kante | 3-px-Inset links oder rechts | links Severity, rechts Bookmark | | Rahmenstil | durchgezogen oder gestrichelt | gestrichelt = unvollstaendig oder Risiko akzeptiert | Wer eine gefuellte Farbflaeche fuer etwas anderes als Severity verwendet, bricht das System. --- ## 3. Severity Darstellung: `.sev[data-sev="..."]` plus `.sev-edge[data-sev="..."]` am umgebenden Objekt. - Das Badge zeigt immer den Textwert in Versalien. Nie nur ein Farbpunkt. - Die linke Kante wiederholt die Information ohne Farbabhaengigkeit fuer die Zeilenposition. - In Tabellen steht Severity in einer eigenen Spalte als Badge, nicht als Klartext. - `unknown` wird als eigenes Badge dargestellt, nie weggelassen und nie zu `info` umgedeutet. - Sortierreihenfolge immer: critical, high, medium, low, info, unknown. Der bestehende sechseckige Severity-Glyph darf als Signaturelement erhalten bleiben. Er ist 12 px gross, uebernimmt die Severity-Farbe und ersetzt weder Badge noch Kante. --- ## 4. IOE `IOE FOUND` ist ein neutrales Meta-Badge, kein Severity-Badge. Es bekommt keine Signalfarbe, weil die Signalfarbe bereits von der Severity belegt ist. Ist kein IOE gefunden, erscheint kein Badge. Ein Badge `IOE NOT FOUND` erzeugt visuelles Rauschen in einer Liste, die zu 73 Prozent aus Nichtbefunden besteht. Die Information kommt ueber den Filter und ueber Outcome. --- ## 5. Outcome Darstellung ausschliesslich `.outcome[data-outcome="..."]`: Glyph plus Textfarbe, nie gefuellt. | Wert | Glyph | Farbrolle | |-------------------|-------|---------------------| | fail | ● | `--outcome-fail` | | pass | ○ | `--outcome-pass` | | warning | ◐ | `--outcome-warning` | | execution_error | ✕ | `--outcome-error` | | not_run | – | `--outcome-idle` | | not_applicable | – | `--outcome-idle` | `pass` ist bewusst neutral eingefaerbt, nicht gruen. Gruen ist der Severity-Stufe `low` und dem Action State `erledigt` vorbehalten. Ein bestandener Test ist der Normalfall und braucht keine Erfolgsfarbe. Das entfernt die haeufigste Farbkollision in Scannerdaten. `not_run` und `not_applicable` teilen sich Glyph und Farbe, unterscheiden sich aber im Text. --- ## 6. Confidence Meta-Badge mit Text: `CONF: HOCH`, `CONF: MITTEL`, `CONF: NIEDRIG`. Bei `niedrig` erhaelt das Objekt zusaetzlich einen gestrichelten Rahmen. Ein Finding mit niedriger Confidence darf nie so aussehen wie ein belastbarer Befund derselben Severity. Das ist eine Audit-Anforderung, keine Stilfrage. --- ## 7. Review State und Action State Beide als `.chip[data-state="..."]`. Sie stehen nebeneinander und tragen jeweils ein Praefix, damit die Dimension eindeutig ist. | Chip | data-state | Punktfarbe | |-----------------------|------------|---------------------| | `REVIEW: OFFEN` | (Standard) | `--state-open` | | `REVIEW: IN PRUEFUNG` | progress | `--state-progress` | | `REVIEW: BESTAETIGT` | done | `--state-done` | | `REVIEW: VERWORFEN` | accepted | `--state-accepted`, gestrichelt | | `RISIKO AKZEPTIERT` | accepted | `--state-accepted`, gestrichelt | | `AKTION: OFFEN` | (Standard) | `--state-open` | | `AKTION: IN ARBEIT` | progress | `--state-progress` | | `AKTION: BLOCKIERT` | blocked | `--state-blocked` | | `AKTION: ERLEDIGT` | done | `--state-done` | `erledigt` darf die Severity nicht optisch entwerten. Das Severity-Badge bleibt unveraendert, das Objekt wird nicht ausgegraut. Ein erledigtes kritisches Finding bleibt kritisch. --- ## 8. Data Completeness Unvollstaendige Datensaetze erhalten `.is-incomplete` (gestrichelter Rahmen) plus im Inspector eine Liste der fehlenden Pflichtfelder. Keine Ausblendung, keine stille Vorbelegung. Fuer Auditierbarkeit muss sichtbar sein, dass Daten fehlen. --- ## 9. Bookmark, Auswahl, Fokus Drei verschiedene Mechanismen mit drei verschiedenen Farbrollen und drei verschiedenen Formen. Sie treten gleichzeitig auf und duerfen sich nie gegenseitig verdecken. | Zustand | Traeger | Farbrolle | Form | |-----------|-----------------------------|---------------------|-------------------------------| | Bookmark | Nutzermarkierung, persistent| `--state-bookmark` | gefuelltes Icon plus rechte 3-px-Kante | | Auswahl | aktuelles Arbeitsobjekt | `--selection-border`| 2-px-Rahmen plus `--surface-selected` | | Fokus | Tastaturposition | `--focus-ring` | 2-px-Outline mit Offset | Die Fokusfarbe ist bewusst ein eigenstaendiges Cyan beziehungsweise Blau und mit keiner Severity-, Akzent- oder Bandfarbe verwechselbar. --- ## 10. Kombination an einem Objekt Ein kritisches, mit Bookmark markiertes, ausgewaehltes und fokussiertes Finding zeigt gleichzeitig: ```text ┌ 3 px Severity-Kante links (critical) │ ┌ 2 px Auswahlrahmen, Flaeche --surface-selected │ │ ┌ 2 px Fokus-Outline aussen │ │ │ │ │ │ ⬢ Permission changes on AdminSDHolder object ⚑│ │ │ │ [CRITICAL] [IOE FOUND] [AD DELEGATION] [WEIGHT: 10] │ │ │ │ ● fail REVIEW: OFFEN AKTION: OFFEN │ │ │ │ 3 px Bookmark-Kante┘ ``` Reihenfolge der Badges ist fest und ansichtsuebergreifend identisch: 1. Severity 2. IOE 3. Kategorie 4. Tool beziehungsweise Quelle 5. Weight 6. Score 7. MITRE-Zuordnungen 8. Confidence Passt die Reihe nicht in die verfuegbare Breite, wird von hinten abgeschnitten und mit `+n` zusammengefasst. Nie umbrechen, nie neu sortieren, nie Severity abschneiden. --- ## 11. Farbrollenmatrix Eine Farbe hat genau eine Zustaendigkeit. | Rolle | Token | Ausschliesslich fuer | |----------------------|-----------------------------------------|----------------------| | Akzent Violett | `--accent` | Primaeraktion, aktive Ansicht, Auswahl | | Band Bernstein | `--band-surface` | Controls im Command Band | | Severity | `--sev-*` | gefuellte Severity-Badges und -Kanten | | Outcome | `--outcome-*` | Outcome-Text und -Glyph | | Workflow | `--state-open/progress/done/blocked/accepted` | Punkte in Workflow-Chips | | Bookmark Teal | `--state-bookmark` | Bookmark-Icon und -Kante | | Fokus | `--focus-ring` | Tastaturfokus | | Systemstatus | `--state-online`, `--state-offline` | Verbindungsanzeige in der Status Bar | | Datenvisualisierung | `--viz-1` bis `--viz-6` | kategoriale Diagrammserien | | Struktur | `--surface-*`, `--border-*`, `--text-*` | Chrome und Flaechen | Eine Farbe darf niemals gleichzeitig Auswahl, Severity, Erfolg und Markenakzent ausdruecken. Genau dieser Fehler erzeugt den Eindruck einer uneinheitlichen Applikation.