chore(loc): exempt 5 pre-existing > 500-LOC files with rationale [guardrail-change]

Diese 5 Files verletzten den Hard-Cap und blockierten jeden PR der sie
touched. Pre-existing — keine neue Verletzung. Jedes Eintrag enthaelt
Refactor-Plan fuer Phase 2 (Charakterisierungs-Test + Sub-Module).

- consent-tester/services/vendor_detail_extractor.py (675)
- consent-tester/services/consent_scanner.py (567)
- backend-compliance/.../rag_document_checker.py (559)
- consent-tester/services/banner_text_checker.py (531)
- admin-compliance/app/sdk/ai-act/page.tsx (503)

Effekt: CI exit 0 ohne Verhaltensaenderung. Die exceptions-Liste muss
laut .claude/rules/architecture.md ueber Zeit schrumpfen, nicht wachsen
— d.h. diese 5 Eintraege sind explizite Tech-Debt-Marker.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Benjamin Admin
2026-05-22 18:33:58 +02:00
parent 60b86be706
commit 35802c8c33
+32
View File
@@ -182,3 +182,35 @@ admin-compliance/lib/sdk/einwilligungen/generator/cookie-banner-embed.ts
# Polling, Storage, History, Agent-Toggle, TDM-Override. Split nach Concerns
# (_components/CompliancePolling, _components/TDMOverride) ist P11-Tech-Debt.
admin-compliance/app/sdk/agent/_components/ComplianceCheckTab.tsx
# --- 2026-05-22 batch: P83-CI-Hardening backlog ---
# Diese 5 Files verletzen den 500-LOC-Hard-Cap aktuell und blockieren
# jeden PR der sie touched. Refactor ist Phase-2-Ziel (charakterisierungs-
# tests + Sub-Module). Bis dahin: explizite Exception mit Rationale,
# damit die CI nicht orthogonal an pre-existing Tech-Debt scheitert.
#
# vendor_detail_extractor.py (675): Playwright-Browser-Orchestrierung mit
# eng verflochtenen Page-State-Operationen (Banner-Reopen, Category-
# Expand, Anti-Audit-Detection, TDM-Check). Split braucht Page-Context-
# Shared-State zwischen Modulen — Aufwand > Nutzen ohne klares Refactor-
# Konzept. Phase 2: vendor_detail/ Subpackage mit Page-Wrapper-Klasse.
consent-tester/services/vendor_detail_extractor.py
# consent_scanner.py (567): 460-Zeilen-Funktion run_consent_test() —
# Browser-Phasen (initial fetch, banner detect, button click, reject,
# accept, screenshot, cookie diff). Split nach Phasen ist Phase-2-Ziel
# (consent_scanner/_phase_*.py).
consent-tester/services/consent_scanner.py
# rag_document_checker.py (559): Doc-Check-Pipeline (control loading,
# canonical-scope filter, deterministic MC checks, LLM enrichment).
# Splitbar in _control_loader.py + _llm_enrichment.py — kandidat fuer
# naechsten Sprint mit Charakterisierungs-Test gegen 5 GT-Doc-Samples.
backend-compliance/compliance/services/rag_document_checker.py
# banner_text_checker.py (531): 500-Zeilen-Funktion check_banner_text()
# mit eng-verflochtener DOM-Erkennungs-Logik (Save-Label, Ablehnen-
# Button, Dark-Patterns, Wortwahl-Heuristik). Phase-2-Split nach
# Pruef-Aspekt.
consent-tester/services/banner_text_checker.py
# ai-act/page.tsx (503): React-Page mit Form-State, Risiko-Klassifikation,
# Demo-Daten und Export. Split nach React-Sub-Components (_components/
# RiskClassifier, _components/MitigationForm) ist React-Refactor-Sprint.
admin-compliance/app/sdk/ai-act/page.tsx