feat: Pass 0b prompt v2 — container detection, merge-key, evidence separation, actionable titles

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Benjamin Admin
2026-04-26 00:00:59 +02:00
parent ea30ceb1f1
commit 7a53f5bee1

View File

@@ -394,18 +394,40 @@ ANALYSE-SCHRITTE (intern durchfuehren, NICHT im Output!):
4. Bestimme den Nachweis (welches Dokument/Artefakt belegt Compliance?) 4. Bestimme den Nachweis (welches Dokument/Artefakt belegt Compliance?)
WICHTIGE REGELN: WICHTIGE REGELN:
- Ein Control = EINE pruefbare Handlung. Nicht mehrere Handlungen mischen.
- Dokumentation/Nachweis gehoert ins "evidence" Feld, NICHT als eigenes Control. 1. ATOMARITAET: Ein Control = EINE pruefbare Handlung. Nicht mehrere mischen.
FALSCH: "SBOM fuehren" + "SBOM dokumentieren" = 2 Controls
RICHTIG: "SBOM fuehren" = 1 Control, Dokumentation = Evidence 2. EVIDENCE ≠ CONTROL: Dokumentation, Nachweis, Auditbericht, Zertifizierung,
- Zertifizierung, Abdeckungspruefung, Audit-Berichte = Evidence, KEIN eigenes Control. Screenshot, Export = Evidence-Feld. KEIN eigenes Control daraus machen.
- Security-Lifecycle sauber trennen: identifizieren, bewerten, beheben, ueberwachen FALSCH: "SBOM fuehren" + "SBOM dokumentieren" = 2 Controls
sind je EIGENE Controls (verschiedene Handlungen, verschiedene Verantwortliche). RICHTIG: "SBOM fuehren" = 1 Control, Dokumentation im Evidence-Feld.
- "Vertraulichkeit Unterauftragnehmer" + "Vertraulichkeit vertraglich sichern" = 1 Control
(die vertragliche Sicherung ist die Umsetzungsmassnahme, nicht ein separates Control). 3. CONTAINER ≠ ATOMAR: Abstrakte Oberbegriffe sind KEINE atomaren Controls.
- Der Titel muss die HANDLUNG enthalten, nicht nur den Gegenstand. FALSCH als atomares Control: "Sichere Sitzungsverwaltung", "Token-Schutz",
FALSCH: "Vertraulichkeit Mitarbeiter" "Sorgfaltspflicht Drittkomponenten", "Umfassendes Risikomanagement".
RICHTIG: "Mitarbeiter zur Vertraulichkeit verpflichten" Wenn die Pflicht ein Container ist, zerlege sie in die konkreten Massnahmen.
4. LIFECYCLE TRENNEN: identifizieren, bewerten, beheben, ueberwachen
sind je EIGENE Controls (verschiedene Handlungen, verschiedene Verantwortliche).
5. GLEICHER GEGENSTAND MERGEN: Gleicher Akteur + gleiche Handlung + gleicher
Gegenstand = 1 Control mit mehreren Requirements/Evidence.
FALSCH: "Unterauftragnehmer zur Vertraulichkeit verpflichten" +
"Vertraulichkeit vertraglich sichern" = 2 Controls
RICHTIG: 1 Control, vertragliche Sicherung = Requirement.
6. TITEL = SUCHANFRAGE: Der Titel wird als Suchanfrage gegen Kundendokumente
und Quellcode verwendet. Er muss die HANDLUNG enthalten.
FALSCH: "Vertraulichkeit Mitarbeiter"
RICHTIG: "Mitarbeiter zur Vertraulichkeit und Geheimhaltung verpflichten"
7. MERGE-KEY: Erzeuge im JSON-Output ein zusaetzliches Feld "merge_key" mit
dem Format: "action_type:normalized_object:control_phase"
Beispiele:
- "implement:api_rate_limiting:technical"
- "define:access_control_policy:governance"
- "monitor:third_party_vulnerabilities:operations"
- "test:authentication_mechanism:verification"
Das Control muss UMSETZBAR sein — keine Gesetzesparaphrase. Das Control muss UMSETZBAR sein — keine Gesetzesparaphrase.
Antworte NUR als JSON. Keine Erklaerungen.""" Antworte NUR als JSON. Keine Erklaerungen."""
@@ -2077,13 +2099,14 @@ Quellreferenz: {source_ref}
Antworte als JSON: Antworte als JSON:
{{ {{
"title": "Kurzer Titel (max 80 Zeichen, deutsch)", "title": "Kurzer Titel (max 80 Zeichen, deutsch, HANDLUNG enthalten)",
"objective": "Was muss erreicht werden? (1-2 Sätze)", "objective": "Was muss erreicht werden? (1-2 Sätze)",
"requirements": ["Konkrete Anforderung 1", "Anforderung 2"], "requirements": ["Konkrete Anforderung 1", "Anforderung 2"],
"test_procedure": ["Prüfschritt 1", "Prüfschritt 2"], "test_procedure": ["Prüfschritt 1", "Prüfschritt 2"],
"evidence": ["Nachweis 1", "Nachweis 2"], "evidence": ["Nachweis/Dokument/Artefakt 1", "Nachweis 2"],
"severity": "critical|high|medium|low", "severity": "critical|high|medium|low",
"category": "security|privacy|governance|operations|finance|reporting" "category": "security|privacy|governance|operations|finance|reporting",
"merge_key": "action_type:normalized_object:control_phase"
}}""" }}"""
@@ -2168,13 +2191,14 @@ Antworte als JSON-Objekt. Fuer JEDE Pflicht ein Key (die Pflicht-ID):
Jedes Control hat dieses Format: Jedes Control hat dieses Format:
{{ {{
"title": "Kurzer Titel (max 80 Zeichen, deutsch)", "title": "Kurzer Titel (max 80 Zeichen, deutsch, HANDLUNG enthalten)",
"objective": "Was muss erreicht werden? (1-2 Sätze)", "objective": "Was muss erreicht werden? (1-2 Sätze)",
"requirements": ["Konkrete Anforderung 1", "Anforderung 2"], "requirements": ["Konkrete Anforderung 1", "Anforderung 2"],
"test_procedure": ["Prüfschritt 1", "Prüfschritt 2"], "test_procedure": ["Prüfschritt 1", "Prüfschritt 2"],
"evidence": ["Nachweis 1", "Nachweis 2"], "evidence": ["Nachweis/Dokument/Artefakt 1", "Nachweis 2"],
"severity": "critical|high|medium|low", "severity": "critical|high|medium|low",
"category": "security|privacy|governance|operations|finance|reporting" "category": "security|privacy|governance|operations|finance|reporting",
"merge_key": "action_type:normalized_object:control_phase"
}}""" }}"""