# Loop-Roadmap — aktualisiert nach ausgeführtem Loop 0

Stand: 03.08.2026 · Basis: 06_Autonomous_Loop_Roadmap_v1.0 + Repo-Evidenz.
Änderungen gegenüber dem Paket sind mit **[NEU]** / **[BILLIGER]** / **[PRÄZISIERT]** markiert.

## Loop 0 — Reproduzierbare Ausgangsbasis ✅ ERLEDIGT (03.08.)

Exit-Kriterien erfüllt:
- [x] Build reproduzierbar (Typecheck/Build/Portability grün, Lint-Rot klassifiziert als vorbestehend)
- [x] Tests ausführbar: 6.916 grün / 124 skipped, real-files 17/18 echt
- [x] HICE-Vergleich erzeugt: 4/4, Brücke exakt, deterministisch (2 Läufe = 1 Hash)
- [x] Exporte archiviert: `baseline/current-exports/` + v1-runs vom 31.07.
- [x] Kein Produktcode geändert
- Artefakte: gates-log.txt · befunde-loop0.md (B-01…B-11) · ADR-000 · hice-reproduction.test.ts

Offen übertragen: UI-Screenshots (braucht laufende App + Auth) → mit Loop 8/9.

## Loop 1 — Architektur- und Abhängigkeitsgraph 🟡 KERN ERLEDIGT

- [x] Modulinventar verifiziert: 131 Kern / 54 UI / 10 Routen, 77.949 Z.
- [x] Hotspots bestätigt: actions.ts 4.771 · detail 1.743 · multi-detail 1.809 · index 1.436 · canonical-fields 4.399
- [x] Harte Gates katalogisiert: 22 außerhalb der Registry (B-09)
- [x] Parallel-Registries: HEADER_TO_KEY neben canonical-fields (B-09)
- [x] Deep Imports: 11 Dateien (B-09)
- [x] Persistenz + Source-Artifact-Lifecycle dokumentiert (B-04, ist-architektur.md)
- [x] Exportpfade dokumentiert (B-05)
- [ ] Maschinenlesbarer Importgraph (module-graph.json) — nachziehen, wenn für Zerlegung gebraucht
- Exit: jede Kernaussage der Deliverables trägt Datei+Zeile ✓

## Lint-Baseline **[NEU, vor Loop 2]**

61 vorbestehende Errors einfrieren (Baseline-Datei), CI blockt nur NEUE
Errors. Exit: `npm run lint` differenziell hart, Bestand dokumentiert.

## Loop 2 — Golden Corpus und Testhärtung **[PRÄZISIERT]**

Ausbau, kein Neubau: anonymisierte Fixtures existieren für Material,
Data-Quality, Tooling, Cross-Language; Anonymisierungs-Skripte liegen im
Golden-Verzeichnis (build-anonymised-fixture.mjs, build-tooling-fixture.mjs).

Aufgaben: Fixtures je QAF-Familie (8.8 ✓ via HICE-anonym, 9.1 Standard,
9.1 Zeilen, G60, Multi-QAF) + Fehlerfall-Korpus (Spec-Liste) + Hash-Golden.
Die 2 flaky Wertstrom-Tests reparieren oder isolieren (Kais-Frage offen).

Exit: keine Kernabnahme env-gated · jede Familie ≥1 reale anonymisierte
Fixture in CI · HICE-Hash als Golden-Test · 2 CI-Läufe = 1 Hash.

## Loop 3 — Vollständiger Differenzkatalog

differences-from-material.ts + differences-from-manufacturing.ts (schaltet
laut Stand-und-Plan drei Export-Bereiche frei) · scope_removed mit
Registry-Regel + Doppelachse Struktur/Kosten · Traceability-Validierung.

Exit: jede Material-/Fertigungsaussage trägt Difference-ID mit SourceRef ·
Gruppen-, nicht Summenvergleich gegen Referenz · Mutations- + Gegenprobe je Regel.

## Loop 4 — D15/D16/D17 + R-03

Typen existieren (B-02) — Detektorlogik bauen. Live-Beweisfall für D15/D16
liegt vor: Datei „260401" trägt Angebotsdatum 07.04.2025.

Exit: HICE-Lauf erzeugt den D15-Befund · comparison_type ≠ undetermined
mit Evidenzliste · je Regel Positiv-, Negativ-, Mutations-, Gegenprobe.

## Loop 5 — Source Artifact und Reparse **[BILLIGER]**

storage_key befüllen (Spalte existiert) · Reparse aus Bucket-Original ·
Hash-Konsistenzprüfung Rehydrat vs. Original · Bestandsdaten per
Storage-Listing rückverknüpfen oder sichtbar als eingeschränkt markieren ·
Formeln + Blattnamen im V2-Detail.

Exit: neuer Vergleich jederzeit aus Original reproduzierbar · `K10` wird
`SUMMARY!K10` · fehlende Legacy-Quelle explizit angezeigt.

## Loop 6 — Kanonischer JSON-Vertrag **[PRÄZISIERT]**

Erste Handlung: Governance-Entscheid 24 Bereiche (19 golden-treu + 5
Spec-Erweiterung), html_companion-Beschluss. Dann: Bereiche aus Kernmodulen
füllen (Abhängigkeitstabelle in Stand-und-Plan §2.1), Schema v1.0 gegen
03_Schema, serverseitige Export-Route, ViewModel-Export als Legacy markieren.

Exit: schema-valide · gleicher Input = gleicher Hash · kein Bereich still
fehlend · analysis_status=complete nur bei vollständigen Zuständen ·
UI und Export lesen dieselbe Quelle.

## Loops 7–15 — wie Paket-Roadmap

7 ComparisonSet 1–6 (Exit: n=2-Set byte-identisch zum Paarvergleich) ·
8 Capability-Navigation (Exit: 22 harte Gates auf 0) · 9 Header ·
10 UI-Zerlegung (Exit: kein Modul > 800 Z., keine Client-Berechnung) ·
11 BMW Design System (Token-Verdrahtung aus 04_Tokens; Zoom-Verbot
app/layout.tsx:51 fällt hier — betrifft die ganze App, eigener PR) ·
12 Exporte · 13 KI-Schicht · 14 Wertstrom · 15 Migration/Abschaltung
(Exit: Paritätsmatrix vollständig, Rollback getestet).

## Reihenfolge-Begründung

Lint-Baseline und Loop 2 vor allem Produktiven: Ohne CI-Golden ist jedes
„grün" während der Konsolidierung ein lokales Versprechen. Loop 3+4 vor
Loop 6: Der Vertrag kann nur füllen, was der Katalog liefert. Loop 5
parallel zu 3/4 möglich (disjunkte Module).
