Add decision_table/README.md

This commit is contained in:
Mika 2026-02-04 14:46:48 +00:00
parent c1b69dbf8e
commit 906c6e1d37

220
decision_table/README.md Normal file
View file

@ -0,0 +1,220 @@
# Decision-Tabelle zur Klassifizierung von Unknowns und Rerun-Effekt-Analyse (Policy v1.1)
## Purpose
Dokumentiert die Entscheidungstabelle für Unknown-Klassifikationen in der CI und spezifiziert die Rerun-Regeln gemäß Audit-Ergebnissen.
**Problemstellung:** Fehlende Systematik zur Behandlung und Klassifikation von Unknown-Runs führte zu inkonsistenter CI-Analyse und uneinheitlichen Ergebnissen.
**Ziele:**
- Konsistente Klassifizierung bisher unklarer CI-Ergebnisse (Unknowns)
- Definition von klaren Actions (PASS, WARN, FAIL) pro Unknown-Klasse
- Quantitative Bewertung des Rerun-Effekts zur Policy-Ableitung
## Kontext & Hintergrund
audit.csv mit N=112 Run-Einträgen, enthält Protokolle und Diagnoseinformationen zu CI-Runs.
**Gruppierung:**
- pinned
- unpinned
**Trace-Metadaten / zusätzliche Tags:**
- Stratum-Information für Effektanalyse
- Labels für CI-Status und Fehlerursachen
**Domänenkontext:**
- Continuous Integration
- Audit-basierte Klassifikation
- CI-Automatisierung
**Outlier-Definition:**
- Methode: Empirische Klassifikation aus Audit-Daten
- Beschreibung: Unknown-Runs gelten als Abweichungen, wenn Diagnose- oder Contract-Struktur unvollständig oder fehlerhaft ist.
- Metrik: Run-Status versus erwartete Klassifikationsparameter
**Motivation:**
- Bereinigung der Kategorie 'Unknown' in der CI-Auswertung
- Vermeidung von Fehlinterpretationen bei Rerun-Analysen
- Herstellung automatisierter Reproduzierbarkeit der Entscheidungen
## Methode / Spezifikation
**Übersicht:**
- Analyse von N=112 CI-Runs im audit.csv.
- Klassifikation aller Unknowns in vier Ursachenklassen.
- Zuordnung einer eindeutigen CI-Action pro Klasse.
- Bewertung des Rerun-Effekts auf Entscheidungsänderungen nach pinned/unpinned-Stratum.
**Algorithmen / Verfahren:**
- Tabellarische Klassifikation: Zuordnung von Actions und Labels basierend auf Ursache.
- Audit-basierte Aggregation des Rerun-Effekts über Helps, Shifts, Hurts.
- Policy-Ableitung: Rerun-Budget nur bei unpinned wirksam, Exklusion bei Contract- oder Artefakt-Fehlern.
### Bootstrap-Übersicht
Resampling-basierte Stabilisierung geplanter Schwellenwerte (warn_rate, unknown_rate).
**Zielgrößen:**
- WARN-Anteil
- Unknown-Anteil je Stratum
### Resampling-Setup
- pinned
- unpinned
**Stichprobeneinheit:** CI-Run
**Resampling-Schema:**
- Bootstrap mit Wiederholung zur Schätzung der Perzentil-basierten Schwellen
**Konfidenzintervalle:**
- Niveau: 0.95
- Typ: Perzentil-Konfidenzintervall
- Ableitung: Percentile bootstrap
### Abgeleitete Effektgrößen
**Risk Difference (Differenz der Raten):**
- Definition: Differenz der Häufigkeiten von Helps/ Hurts zwischen Strata.
- Bootstrap: Verwendung für Vertrauensintervalle der Rerun-Effekt-Schätzung.
**Risk Ratio:**
- Definition: Quotient der Helps-Rate zwischen unpinned und pinned Runs.
- Bootstrap: Resampling zur Unsicherheitsabschätzung der Risikoverhältnisse.
### C-State-Kontrolle
**Ziel:** Vermeidung von Messverzerrungen durch Systemzustände während Audit-Erhebung.
**Vorgehen:**
- Paarweise Analyse nach pinned/unpinned
- Standardisierung des Zeitraums pro Run
## Input / Output
### Input-Anforderungen
**Hardware:**
- Standard-CI-Infrastruktur ohne spezielle Hardwareanforderungen
**Software:**
- CI-System mit Log- und Trace-Export
- Audit-Tooling für CSV-Analyse
**Konfiguration:**
- aktive Trennung zwischen pinned und unpinned Runs
- Audit-Skript konfiguriert für Unknown-Erkennung
### Erwartete Rohdaten
**Felder pro Run:**
- run_id
- status
- artifact_presence
- contract_status
- parse_status
- pinned_flag
**Formatbeispiele:**
- 11234, UNKNOWN, missing, ok, fail, unpinned
**Trace-Daten:**
- Format: CSV/JSON
- Hinweis: Muss pro Run Log- und Analyse-Metadaten enthalten.
### Analyse-Ausgaben
**Pro Gruppe / pro Governor:**
- Helps-Quote
- Shifts-Quote
- Hurts-Quote pro Stratum
**Vergleichsausgaben:**
- unpinned vs pinned
- Δ: Helps-Differenz in Prozentpunkten
- CI(Δ): 95%-CI via Bootstrap
- RR: Helps_unpinned / Helps_pinned
- CI(RR): 95%-CI via Bootstrap
- Tests: Signifikanztest optional
- C-State-Korrelation: Korrelation CI-Latenz vs. Klassifikationsfehler
- Trace-Muster: Häufige Unknown-Artefaktmuster nach Fehlerklasse
## Workflow / Nutzung
**Analyse-Workflow:**
- Audit-Daten einlesen
- Runs nach Unknown-Klasse gruppieren
- Decision-Tabelle anwenden: Klasse -> PASS/WARN/FAIL
- Rerun-Auswertung getrennt nach pinned/unpinned durchführen
- report.csv mit aktualisierten Klassifikationen erzeugen
### Trace-Template-Anforderungen
**Ziel:** Standardisierte Erfassung von Unknown-Ursachen zur Automatisierbarkeit der Policy-Anwendung.
**Erforderliche Tags & Metadaten:**
- run_id
- pinned_flag
- error_type
- contract_status
- rerun_count
**trace-cmd-Setup:**
- trace-cmd collect --metadata error_type,pinned_flag
**Run-Design für Contributors:**
- Min. 30 Runs pro Stratum zur statistischen Bewertung.
## Interpretation & erwartete Ergebnisse
**Kernbefunde:**
- Unknowns lassen sich in vier stabile Fehlerklassen mit klaren Actions einteilen.
- Rerun bringt bei unpinned Runs signifikante Verbesserung (Helps)
- Bei pinned Runs sind Reruns ineffektiv; meist nur Metrikverschiebungen (Shifts).
**Implikationen für Experimente:**
- Policy v1.1 nutzt Rerun nur als Tie-Breaker bei unpinned.
- Unvollständige Artefakte und Contract-Verstöße erzeugen immer WARN bzw. FAIL ohne Rerun-Korrektur.
**Planungsziel:**
- Ziel: Quantitative Ableitung robuster Warn- und Unknown-Schwellenwerte.
- Vorgehen:
- Perzentil-basierte Schätzung der warn_rate und unknown_rate pro Stratum
- Bootstrap-Verifikation der Stabilität.
## Limitationen & Fallstricke
**Datenbezogene Limitationen:**
- N=112 begrenzte Stichprobe, Risk-of-Overfitting in Schwellenableitung
**Bootstrap-spezifische Limitationen:**
- Stabile Konfidenzintervalle erfordern ≥1000 Resamples pro Stratum
**Kausalität & Generalisierbarkeit:**
- Rerun-Effekt gilt nur innerhalb auditierter Umgebung
- Keine Generalisierung auf andere CI-Systeme ohne Nachprüfung
**Praktische Fallstricke:**
- Fehlende oder falsch gelabelte Runs stören Unknown-Detektion
- Nicht alle Parser-Fehler sind deterministisch reproduzierbar
## Nächste Schritte & Erweiterungen
**Geplante Experimente:**
- Erweiterung des Audit-Datensatzes auf ≥500 Runs
- Validierung der Decision-Tabelle gegen neue CI-Versionen
**Analyseziele:**
- Kalibrierung von warn_rate und unknown_rate via Bootstrap-Perzentile
- Sensitivitätsanalyse nach Artefakt-Typ
**Regression & Modellierung:**
- Einführung logit-basierten Modells zur Unknown-Vorhersage
- Simulation des Rerun-Nutzens pro Klasse
**Community-Beiträge:**
- Veröffentlichung der Decision-Tabelle als YAML für Policy-v1.1-Replikation
- Einbindung in CI-Beobachtungs-Tooling von Mika Code Lab