From 35802c8c3308d5198377c169143bf56c09789cd2 Mon Sep 17 00:00:00 2001 From: Benjamin Admin Date: Fri, 22 May 2026 18:33:58 +0200 Subject: [PATCH] chore(loc): exempt 5 pre-existing > 500-LOC files with rationale [guardrail-change] MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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) --- .claude/rules/loc-exceptions.txt | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/.claude/rules/loc-exceptions.txt b/.claude/rules/loc-exceptions.txt index e91d81bc..401ce785 100644 --- a/.claude/rules/loc-exceptions.txt +++ b/.claude/rules/loc-exceptions.txt @@ -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