gate_v1_in_ci/rollout_criteria/README.md

158 lines
4.9 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Rollout-Kriterien für GateV1 im CISystem
## Purpose
Festlegung der Rollout-Kriterien und Entscheidungslogik für den GateV1Step im Continuous Integration (CI).
**Problemstellung:** Fehlende standardisierte Entscheidungskriterien bei der Integration von GateV1 in automatisierte CIPipelines.
**Ziele:**
- Operationelle Einführung von GateV1 als CIStep
- Definition von Bewertungs- und Eskalationslogik (PASS, WARN, REVIEW)
- Dokumentation der stabilen Rollout-Phasen und Schwellenwerte
## Kontext & Hintergrund
Die GateV1Komponente wertet Metriken aus den Policy-Berechnungen aus und erzeugt daraus ein `gate_result.json`.
**Gruppierung:**
- pro CIRun
- pro PolicySet
**Trace-Metadaten / zusätzliche Tags:**
- policy_hash zur Nachverfolgbarkeit der Policy-Konfiguration
**Domänenkontext:**
- CIWorkflows
- kontinuierliche Qualitätssicherung
- automatisierte PolicyValidierung
**Outlier-Definition:**
- Methode: Schwellenwertbasiert
- Beschreibung: Runs mit UnknownRate > 1% werden als Ausreißer und REVIEWFälle markiert.
- Metrik: UnknownRate
**Motivation:**
- Transparente, nachvollziehbare Entscheidungen in CIPipelines
- Konsistentes Evaluationsverhalten über mehrere Runs hinweg
- Reduktion des logbasierten manuellen Prüfaufwands
## Methode / Spezifikation
**Übersicht:**
- Der GateV1Step erhält `policy_constants.json` und den daraus berechneten `policy_hash`.
- Er erzeugt ein `gate_result.json` mit Outcome, Hash, CountMetriken und TopReasons.
- Er ergänzt den CILauf um einen kompakten PRKommentar mit diesen Daten.
**Algorithmen / Verfahren:**
- Ermitteln der Unknown, WARN und Sichtbarkeitsraten aus PolicyErgebnissen.
- Zuweisung eines Outcomes (PASS, WARN, REVIEW) anhand fester Schwellen.
- Speichern der Resultate in `gate_result.json`.
- Posten eines standardisierten CIKommentars mit Hash, Outcome und Begründung.
## Input / Output
### Input-Anforderungen
**Hardware:**
**Software:**
- CIUmgebung mit JSONSupport
- Zugriff auf PolicyAuswertungsartefakte
**Konfiguration:**
- Bereitstellung von `policy_constants.json`
- Berechnung eines stabilen `policy_hash`
### Erwartete Rohdaten
**Felder pro Run:**
- policy_hash
- outcome
- unknown_rate
- visibility
- top_reasons
**Formatbeispiele:**
- {"policy_hash": "abcd1234", "outcome": "PASS", "unknown_rate": 0.009, "visibility": 0.995, "top_reasons": ["Sichtbarkeit ≥99%", "Unknown ≤1%"]}
**Trace-Daten:**
- Format: JSON
- Hinweis: Keine Zusatzfelder oder Telemetrie; minimalistische Struktur für diffbasierte Vergleiche.
### Analyse-Ausgaben
**Pro Gruppe / pro Governor:**
- UnknownRate
- VisibilityWert
- WarnRate
- Trace-Muster: Stabilität des `policy_hash` über wiederholte Runs prüfen.
## Workflow / Nutzung
**Analyse-Workflow:**
- Ausführen des GateV1Steps in der CIPipeline.
- Erzeugen des `gate_result.json`.
- Kommentieren des PRs mit kompaktem Ergebnisblock.
- Bewerten der Resultate über mehrere Runs.
### Trace-Template-Anforderungen
**Ziel:** Stabilität und Nachvollziehbarkeit der CIErgebnisse.
**Erforderliche Tags & Metadaten:**
- policy_hash
- outcome
- CountsMetriken (Unknown, Visibility, etc.)
**trace-cmd-Setup:**
- Keine zusätzlichen Tracepunkte im commentonlyModus.
**Run-Design für Contributors:**
- Mindestens zwei RunKategorien (Baseline, Degradiert).
- Kein ParameterTuning während der Validierung.
## Interpretation & erwartete Ergebnisse
**Kernbefunde:**
- PASS bei stabiler UnknownRate ≤1% und Sichtbarkeit ≥99%.
- REVIEW bei erhöhter UnknownRate.
- Bytestabile Resultate zwischen Runs sind Indikator funktionaler Stabilität.
**Implikationen für Experimente:**
- GateV1 kann reproduzierbare und erklärbare CIEntscheidungen liefern.
- Die UnknownKategorie dient als Trigger für manuelle Prüfung.
**Planungsziel:**
- Ziel: Schrittweiser Rollout des GateMechanismus mit sicherer Eskalationslogik.
- Vorgehen:
- Phase1: commentonly
- Phase2: WARNGate bei definierten Kriterien
- Option3: blockend mit harten Bedingungen
## Limitationen & Fallstricke
**Datenbezogene Limitationen:**
- Abhängigkeit von Genauigkeit der PolicyMetriken.
- Keine Datenvalidierung außerhalb der definierten Counts.
**Kausalität & Generalisierbarkeit:**
- Bewertungen gelten nur für getestete PolicyKonfigurationen.
**Praktische Fallstricke:**
- Falsche UnknownKlassifizierung kann zu unnötigen REVIEWs führen.
- HashÄnderungen ohne sichtbare PolicyDifferenz erschweren Vergleichbarkeit.
## Nächste Schritte & Erweiterungen
**Geplante Experimente:**
- Einführung des WARNGates nach stabilen 40 Runs.
**Analyseziele:**
- Quantifizierung der UnknownRateVerteilung über längere Zeiträume.
**Regression & Modellierung:**
- Beobachtung der OutcomeVerteilung über PolicyVersionen hinweg.
**Community-Beiträge:**
- Best Practices für commentonly Gates in CIUmgebungen dokumentieren.