# Loop 0 — Befunde gegen das echte Repository

Stand: 2026-08-03, `main` = `d639c0b` · Node v22.22.2, npm 10.9.7
Regel: Repo-Code ist die technische Quelle der Wahrheit (Quellenhierarchie #1).

## B-01: V2_AREAS hat 19 Bereiche, nicht 24 — Audit bestätigt, Stand-und-Plan widerlegt

`lib/qaf-differences/internal/v2-export.ts:25` — die Konstante enthält 19 Einträge.

Gegenüber dem 24-Bereiche-Ziel (Master-Spec §0.6) fehlen:

1. `capabilities_and_coverage`
2. `formula_and_value_changes`
3. `logistics_and_customs_analysis`
4. `local_content_and_co2e_analysis`
5. `negotiation_and_actions`

Konsequenz: Der Governance-Widerspruch (Kernlücke #9 der Master-Spec) ist real.
Die Behauptung „Envelope mit 24 Bereichen" aus der Session-Übergabe vom 03.08.
(#412) war falsch.

**Auflösung (gegen das echte Golden File verifiziert):** Das Referenz-JSON
`QAF_Vergleich_HICE_220705_vs_260401.json` hat exakt die 19 Bereiche der
Repo-Konstante (plus `html_companion`, plus 3 Envelope-Felder). Die 19 sind
also golden-file-treu; die 24 der Master-Spec §0.6 sind eine bewusste
ERWEITERUNG um `capabilities_and_coverage`, `formula_and_value_changes`,
`logistics_and_customs_analysis`, `local_content_and_co2e_analysis`,
`negotiation_and_actions`. Entscheidung Loop 6: auf 24 heben (Spec ist
Zielbild), `html_companion`-Status klären, Schema/Code/Doku gleichziehen.

## B-02: D15/D16/D17 nur als Typ deklariert, keine Detektor-Logik

`data-quality.ts:37-39` führt die IDs im Type-Union + Severity-Matrix,
aber es existiert kein Implementierungscode. Lücke bestätigt, Vorarbeit da.

## B-03: scope_removed explizit als NOT_YET_IMPLEMENTED markiert

`material-mapping-fixture.test.ts:104` — `NOT_YET_IMPLEMENTED = new Set(['scope_removed'])`.
Lücke bestätigt, im Test dokumentiert.

## B-04: Source-Artifact-Lücke ist KLEINER als dokumentiert

- Originale bleiben nach Analyse im Bucket („Objects of ANALYZED files are
  deliberately kept (re-ingest)", actions.ts:288ff)
- `qaf_file.storage_key` existiert seit der qaf-differences-Migration als
  Spalte — wird aber vom Code NIE geschrieben (0 Fundstellen)
- `file_hash` (SHA-256) wird berechnet und persistiert ✓
- Fehlt: storage_key-Befüllung beim Ingest + Reparse-Pfad + Rückverknüpfung
  für Bestandsdaten. KEINE Schema-Migration nötig. Loop 5 deutlich billiger.

## B-05: ViewModel-Export bestätigt

`qaf-export-controls.tsx:62` — „identisch zur Ansicht", clientseitig
`buildViewModelExport` + Web-Crypto-Hash. `buildV2Export` hat 0 Produktions-
Aufrufer. Kernlücke #1 bestätigt.

## B-06: Golden-Infrastruktur existiert operator-lokal auf DIESEM Server

`/home/aria/work/qaf-compare-v2-golden/` — manifest.json, beide HICE-Inputs
(SHA-256-identisch mit den Handover-Kopien), Referenz-JSON, v1-runs vom
31.07. (3 Teile), Anonymisierungs-Skripte. Die 40 `*.real-files.test.ts`
laufen hier also ECHT (skipIf greift nicht). CI hat sie nicht (kein
Verzeichnis auf Runnern) — env-gated-Kernabnahme-Befund bestätigt, aber
lokal ist die Abnahme vollständig möglich.

## B-08: Lint auf main rot — aber vorbestehend und app-weit, nicht QAF

`npm run lint`: 61 Errors / 239 Warnings. Klassen: security/detect-non-literal-fs
(84), react-hooks/* (72), react/no-unescaped-entities (12) — verteilt über
admin/, assessment/, layout/ etc. CI: `continue-on-error: true`
(„Informational until the React-19 migration cleanup lands",
portability-matrix.yml:84). Kein QAF-Befund, aber Loop-0-Baseline-Fakt:
Lint ist als Gate derzeit wirkungslos.

## B-09: Loop-1-Vorbefunde (Architektur-Hygiene, quantifiziert)

- Deep Imports am Barrel vorbei (UI/app → internal): 11 Dateien, konzentriert
  auf die V2-Bausteine (`qaf-v2-*`, `[id]/v2/page.tsx`, supplier-benchmark)
- Zelladressen in UI: keine gefunden (einzig ein Badge-Vergleich, kein
  Zellbezug) — besser als dokumentiert
- Harte Modus-Gates AUSSERHALB der comparison-mode-Registry: 22 Stellen
  (8× qaf-differences-client.tsx, 7× actions.ts, 4× [id]/page.tsx,
  1× baseline.ts, 1× qaf-comparison-detail.tsx, 1× kalkulator/page.tsx)
- Parallel-Registries real: `HEADER_TO_KEY` (lib/qaf-parser.ts) lebt neben
  `canonical-fields.ts`; template-fingerprint und rule-engine referenzieren
  beide — Konsolidierungsbedarf bestätigt

## B-11: Zoom-Verbot real (UI-006) + enger Container bestätigt

`app/layout.tsx:51-52` — `maximumScale: 1, userScalable: false` im
Root-Layout: WCAG-Verstoß, betrifft die GANZE App, nicht nur QAF.
`max-w-screen-lg` an 5 Stellen in `[id]/page.tsx` — die Spec-Hypothese
zum Tabellenüberlauf (§6.5) ist im Code verankert.

## B-12: 18 Import-Zyklen im Kern (Loop 1, module-graph.json)

190 Produktionsdateien, 679 interne Kanten, 18 Zyklen. Zentrum:
`canonical-fields → lccn-parser → canonical-fields` (+ workbook-adapter,
sbm-parser, rule-engine, candidate-sheet-plausibility im Ring). Die
FELD-REGISTRY importiert aus einem PARSER — Abhängigkeitsrichtung invertiert.
Caveat: Messung inkludiert `import type` (Typ-Zyklen weniger kritisch zur
Laufzeit, aber gleiche Kopplung). Konsolidierungsziel für Loop 3/6: Registry
importfrei von Parsern machen. Graph: `audit/architecture/module-graph.json`.

## B-10: E2E nur Scaffold

`docs/E2E.md`: „scaffold only — all tests are marked test.fixme. None run
in CI." Playwright nicht in npm install enthalten.

## B-07: Anonymisierte CI-Fixtures breiter als dokumentiert

Nicht nur Material: `material-mapping-fixture.test.ts`,
`data-quality-fixture.test.ts`, `tooling-analysis-fixture.test.ts`,
`cross-language-fixtures.test.ts` + e2e/fixtures/*.xlsx (Multi-QAF).

## Offen zu verifizieren (Arbeitsliste Inspektion)

- [ ] Modulinventar 190 Module / 76.881 Zeilen gegen Repo zählen
- [ ] differences-from-material.ts / differences-from-manufacturing.ts existieren nicht (laut Doku) — bestätigen
- [ ] D15/D16/D17, R-03, scope_removed fehlen — gegen data-quality.ts + Registry greppen
- [ ] qaf_file ohne Storage-Pfad (Source-Artifact-Lücke) — Supabase-Schema prüfen
- [ ] actions.ts Zeilenzahl + Verantwortlichkeiten
- [ ] Export-Route: erzeugt qaf-comparison-detail.tsx den Export (ViewModel) — bestätigen
- [ ] comparison-mode.ts Registry: 5 Modi
- [ ] Batch: wählt pro Gruppe genau ein ALT/NEU-Paar
- [ ] CI-Workflows: welche Gates laufen wirklich, Golden env-gated?
- [ ] Flaky-Tests components/wertstrom (vsm-editor, vsm-quick-start-wizard)
