docs(salvage): benchmark-archive note + impressum ground-truth

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
Benjamin Admin
2026-06-21 12:40:43 +02:00
parent 9cf53090eb
commit 629cb377d5
3 changed files with 698 additions and 0 deletions
@@ -0,0 +1,62 @@
# Benchmark-Archiv & RC-Freeze — `v1` (2026-06-19)
> **Zweck:** Reproduzierbarkeits-Record der Doc-Check-Kalibrierung (DSE / Cookie / Impressum).
> Diese Datei enthält **nur Metadaten + Hashes** — **kein** Drittanbieter-Dokumenttext (Urheber-/Datenbankrecht).
> Die vollständigen Artefakte (Korpora, GTs, Ergebnisse, Skripte) liegen im **internen Audit-Archiv**, getrennt von Repo / RAG / Produkt.
## 1. Daten-Klassen (Retention-Entscheidung 2026-06-19)
Drei Risikoklassen, drei Regeln:
| Klasse | Regel |
|---|---|
| **RAG-Korpus** | Control ableiten → Dokument **verwerfen**. Keine Volltexte als Wissensbasis. |
| **Kundendaten (Prod)** | Speichern: Finding · Evidence · Hash · Version · URL · Zeitpunkt. **Keine** Dauer-Volltextkopie. Datensparsamkeit. |
| **Benchmark/Validierung** | **Versioniert behalten** — sonst sind Messungen nicht reproduzierbar. Intern, off-RAG, off-Produkt. Wie ein Test-/Audit-Archiv, nicht wie eine Wissensbasis. |
Begründung: Das Risiko eines kleinen internen Benchmark-Archivs (öffentlich zugängliche Dokumente) ist geringer als das Risiko, die gesamte Validierung später nicht mehr belegen zu können.
## 2. Release-Candidates (eingefroren)
| RC | doc_type | Opus-GT (Archiv) | Testfirmen | FP / FN | Status |
|---|---|---|---|---|---|
| **DSE_RC_v1** | dse | `gt_opus_dse.json` (5 orig) + `gt_opus_dse_fresh.json` (3 frisch) | 8 (db, otto, ikea, ob, teamviewer + GT-Roster) | FP 11 %→**6 %**, FN ~7 %; frisch FP 7 % / FN 5 % | Release-Candidate |
| **COOKIE_RC_v1** | cookie | `gt_opus_cookie_v2.json` (Mehrfach-Sampling offen) | 7 (db, ikea, lieferando, mediamarkt, ob, tchibo, teamviewer) | Prec 0,81→**0,95**, Rec 0,26→**0,44**, verpasste Lücken→**0 %** | Wave-1 (GT-Rauschen-Vorbehalt) |
| **IMPRESSUM_RC_v1** | impressum | `gt_opus_impressum.json` | 9 (db, ikea, lieferando, mediamarkt, ob, otto, tchibo, teamviewer, zalando) | Text-Check FP **0 %** / FN **2 %** (81 anwendbar, 9 Faktenfeld-Controls) | Release-Candidate |
Detail-Methodik + Fehlerkarte: [`platform_validation_v1.md`](platform_validation_v1.md). Per-Modul-Zahlen: Gedächtnis `project_engine_quality.md`.
## 3. Archiv-Ort + Index
```
macmini:~/bp-benchmark-archive/v1_2026-06-19/
├── MANIFEST.json # 54 Dateien, je SHA256 + Bytes (autoritativ)
├── gt_<firma>_<doctype>.txt # Korpora (Drittanbieter-Volltext — NUR hier)
├── gt_opus_*.json # Opus-Oracle-GTs
├── *_candidates*.json, *_resid.json, *_falsefindings*.json
├── *_criteria_changelog.json / *_criteria_backup.json
└── scripts/ # 46 Mess-Skripte (cc_*.py) = "wie gemessen"
```
**Versionsdefinierende Hashes** (12-stellig gekürzt; voll in `MANIFEST.json`):
| Artefakt | sha256… | Rolle |
|---|---|---|
| `gt_opus_dse.json` | `c5c8975afa42` | DSE-GT (orig) |
| `gt_opus_dse_fresh.json` | `f3940da2e420` | DSE-GT (Anti-Overfit) |
| `gt_opus_cookie_v2.json` | `fcb61dc9b332` | Cookie-GT |
| `gt_opus_impressum.json` | `3e0f2f8d5f5f` | Impressum-GT |
| `dse_criteria_changelog.json` | `d8d461527f5b` | DSE-Kriterien-Diff |
| `cookie_criteria_changelog.json` | `9d29d7b515a5` | Cookie-Kriterien-Diff |
| `impressum_fp_by_cause.json` | `9477f98c0577` | Impressum SCOPE/JUDGE-Split |
## 4. Reproduktion
1. Archiv = Grundwahrheit (Korpus-Hash belegt die damalige Dokumentversion; ändert die Firma ihr Dokument → neuer Hash, alte Messung bleibt über das Archiv belegbar).
2. Mess-Skripte unter `scripts/` gegen die GTs laufen lassen (Pattern: `docker exec -i bp-compliance-backend python3 - < scripts/cc_engine_*.py`).
3. OVH ist stochastisch → Zahlen ±Rauschen; RC-Werte sind Mittel über den dokumentierten Lauf.
## 5. Was NICHT passiert
- Korpus-Volltexte gehen **nicht** ins Repo, **nicht** in Qdrant/RAG, **nicht** ins Produkt.
- Das Archiv ist read-only Referenz; Kalibrierungs-Änderungen sind über die Changelog-Artefakte reversibel.