Iteration 4 (Maßnahmen) + Risikoanalyse nachgeschärft
Risikoanalyse:
- Risiko direkt aus dem Asset-Popup erstellbar ("+ Risiko erstellen"
→ Anlege-Popup mit vorverknüpftem Asset)
- Brutto-/Rest-Risiko detailliert: Eintrittswahrscheinlichkeit und
Schaden als beschriftete Werte (X × Y = Score-Pille)
- Rest-Risiko wird NICHT mehr manuell erfasst, sondern automatisch aus
den verknüpften Maßnahmen berechnet (Minderung je Dimension, Summe,
Untergrenze 1; src/server/risk-calc.ts); Neuberechnung bei jeder
Änderung an Bewertung oder Maßnahmen-Verknüpfungen
- Risikoregister unterhalb der Heatmap in voller Breite
Maßnahmen-Modul (SPEC §4.4):
- Measure/RiskMeasure-Schema mit RLS, laufende Nummer (M-001),
Status/Priorität/Owner/Fälligkeit
- Kanban-Board mit Drag-and-Drop (dnd-kit): Karten zwischen Offen /
In Umsetzung / Erledigt verschieben aktualisiert den Status per
Server-Action inkl. Audit-Log; überfällige Karten rot markiert
- Maßnahmen-Popups (Detail read-only / Bearbeiten / Anlegen) nach
App-Muster; Detail zeigt verknüpfte Risiken mit Minderung
- Im Risiko-Bearbeiten: bestehende Maßnahme verknüpfen ODER neue
Maßnahme direkt anlegen & verknüpfen (jeweils mit Minderung
Wahrscheinlichkeit/Schaden); "Notwendige Maßnahmen" im Risiko-Detail
jetzt echt
- Seed: 4 Beispiel-Maßnahmen, Rest-Risiken daraus berechnet
Verifiziert im Browser: DnD-Statuswechsel (beide Richtungen, Audit-
Einträge), Rest-Risiko-Berechnung (R-001: 4×5=20 → 2×4=8), Risiko-
Anlage aus dem Asset inkl. automatischer Verknüpfung.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
+47
-1
@@ -243,7 +243,19 @@
|
||||
"legendHigh": "Hoch",
|
||||
"legendCritical": "Kritisch",
|
||||
"axisX": "Eintrittswahrscheinlichkeit →",
|
||||
"axisY": "Auswirkung ↑"
|
||||
"axisY": "Auswirkung ↑",
|
||||
"likelihoodShort": "Eintrittswahrscheinlichkeit",
|
||||
"damageShort": "Schaden",
|
||||
"scoreShort": "Risikowert",
|
||||
"residualAuto": "Ergibt sich automatisch aus den verknüpften Maßnahmen.",
|
||||
"noMeasures": "Noch keine Maßnahmen verknüpft — das Rest-Risiko entspricht dem Brutto-Risiko.",
|
||||
"linkMeasure": "Maßnahme verknüpfen",
|
||||
"newMeasure": "Neue Maßnahme anlegen & verknüpfen",
|
||||
"measureTitle": "Titel der Maßnahme",
|
||||
"reductionL": "Minderung Wahrscheinlichkeit (0–4)",
|
||||
"reductionI": "Minderung Schaden (0–4)",
|
||||
"reduction": "Minderung",
|
||||
"createFromAsset": "Risiko erstellen"
|
||||
},
|
||||
"riskTreatment": {
|
||||
"AVOID": "Vermeiden",
|
||||
@@ -263,5 +275,39 @@
|
||||
"elevated": "Erhöht",
|
||||
"high": "Hoch",
|
||||
"critical": "Kritisch"
|
||||
},
|
||||
"measures": {
|
||||
"title": "Aufgaben & Maßnahmen",
|
||||
"sub": "Kanban-Board · Maßnahmen aus Risiken, Audits und Vorfällen",
|
||||
"crumb": "Betrieb",
|
||||
"newMeasure": "Maßnahme",
|
||||
"board": "Maßnahmen-Board",
|
||||
"empty": "Keine Maßnahmen.",
|
||||
"detailHeading": "Maßnahme · {ref}",
|
||||
"detailSub": "Status, Verantwortung & verknüpfte Risiken",
|
||||
"editTitle": "Maßnahme bearbeiten",
|
||||
"createTitle": "Maßnahme anlegen",
|
||||
"titleField": "Titel",
|
||||
"description": "Beschreibung",
|
||||
"status": "Status",
|
||||
"priority": "Priorität",
|
||||
"owner": "Verantwortlich",
|
||||
"dueDate": "Fällig am",
|
||||
"linkedRisks": "Verknüpfte Risiken",
|
||||
"linkedRisksNote": "Diese Maßnahme mindert folgende Risiken",
|
||||
"noRisks": "Keine Risiken verknüpft.",
|
||||
"close": "Schließen",
|
||||
"overdue": "überfällig",
|
||||
"dragHint": "Karten per Drag-and-Drop zwischen den Spalten verschieben."
|
||||
},
|
||||
"measureStatus": {
|
||||
"OPEN": "Offen",
|
||||
"IN_PROGRESS": "In Umsetzung",
|
||||
"DONE": "Erledigt"
|
||||
},
|
||||
"measurePriority": {
|
||||
"LOW": "Niedrig",
|
||||
"MEDIUM": "Mittel",
|
||||
"HIGH": "Hoch"
|
||||
}
|
||||
}
|
||||
+47
-1
@@ -243,7 +243,19 @@
|
||||
"legendHigh": "High",
|
||||
"legendCritical": "Critical",
|
||||
"axisX": "Likelihood →",
|
||||
"axisY": "Impact ↑"
|
||||
"axisY": "Impact ↑",
|
||||
"likelihoodShort": "Likelihood",
|
||||
"damageShort": "Damage",
|
||||
"scoreShort": "Risk score",
|
||||
"residualAuto": "Derived automatically from the linked measures.",
|
||||
"noMeasures": "No measures linked yet — the residual risk equals the gross risk.",
|
||||
"linkMeasure": "Link measure",
|
||||
"newMeasure": "Create & link new measure",
|
||||
"measureTitle": "Measure title",
|
||||
"reductionL": "Reduction likelihood (0–4)",
|
||||
"reductionI": "Reduction damage (0–4)",
|
||||
"reduction": "Reduction",
|
||||
"createFromAsset": "Create risk"
|
||||
},
|
||||
"riskTreatment": {
|
||||
"AVOID": "Avoid",
|
||||
@@ -263,5 +275,39 @@
|
||||
"elevated": "Elevated",
|
||||
"high": "High",
|
||||
"critical": "Critical"
|
||||
},
|
||||
"measures": {
|
||||
"title": "Tasks & measures",
|
||||
"sub": "Kanban board · measures from risks, audits and incidents",
|
||||
"crumb": "Operations",
|
||||
"newMeasure": "Measure",
|
||||
"board": "Measures board",
|
||||
"empty": "No measures.",
|
||||
"detailHeading": "Measure · {ref}",
|
||||
"detailSub": "Status, responsibility & linked risks",
|
||||
"editTitle": "Edit measure",
|
||||
"createTitle": "Create measure",
|
||||
"titleField": "Title",
|
||||
"description": "Description",
|
||||
"status": "Status",
|
||||
"priority": "Priority",
|
||||
"owner": "Responsible",
|
||||
"dueDate": "Due date",
|
||||
"linkedRisks": "Linked risks",
|
||||
"linkedRisksNote": "This measure reduces the following risks",
|
||||
"noRisks": "No risks linked.",
|
||||
"close": "Close",
|
||||
"overdue": "overdue",
|
||||
"dragHint": "Drag cards between columns to change status."
|
||||
},
|
||||
"measureStatus": {
|
||||
"OPEN": "Open",
|
||||
"IN_PROGRESS": "In progress",
|
||||
"DONE": "Done"
|
||||
},
|
||||
"measurePriority": {
|
||||
"LOW": "Low",
|
||||
"MEDIUM": "Medium",
|
||||
"HIGH": "High"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user