Crawler campus-am-see.de — Gesamtprojekt

ID752
Statuscompleted
Typai_task
Erstellt vonmcp-tasks (ai)
Erstellt2026-04-21 01:14:18.802223
Abgeschlossen2026-04-21 03:25:17.594975

Beschreibung

Python-Crawler (Hexagonal/DDD) + PHP-Präsentation unter /crawler. Planung: /var/www/dev.campus.systemische-tools.de/crawler/planung/. 58 Subtasks in 8 Phasen. Code-Standards: MaxLOC 80 hart für Methoden UND Klassen. Quality Gateways G1–G9 verbindlich.

Aktionen

Bearbeiten

Ergebnisse

claude (claude) success
Tokens- (In: -, Out: -)
Dauer-
Zeit2026-04-21 03:25:17
Antwort:
Crawler-Gesamtprojekt abgeschlossen. Alle 7 Phasen (T-001..T-083) durchlaufen.

Auslieferungsumfang:
- Python-Core (DDD/Hexagonal, MaxLOC 80 hart): 74 src-Module in domain/application/infrastructure/interfaces. 12 DB-Repositories, 2 Fetcher (httpx + Playwright/Chromium), 2 Parser (BS4/lxml + extruct), DbUrlQueue, FileStorage, JsonLogger, SystemClock, typer-CLI (6 Commands).
- PHP-Praesentation (dev.campus.systemische-tools.de/crawler): 6 ReadModels, CrawlerConnection + 5 PDO-Repositories, CrawlerServiceProvider, 4 Controller (SRP-aufgeteilt, Constructor-DI), 5 HTMX-Views inkl. Crawl-Trigger.
- DB crawler: 13 Tabellen (crawls, urls, pages, page_headers, links, images, resources, structured_data, hreflang, js_errors, errors, external_checks, url_queue). MCP-DB-Allowlist erweitert.
- Automation: 2 systemd-Timer (daily 03:00 hybrid, hourly recheck-external), logrotate-Config, install.sh.

Quality-Enforcement:
- MaxLOC 80 (Methoden + Klassen) via eigenem scripts/max_loc_linter.py: durchgaengig eingehalten.
- Hexagonal-Layer via import-linter: 3 Contracts KEPT (keine Layer-Verletzung, Domain-Purity).
- Mypy --strict: 102 Files, 0 issues.
- Ruff ALL, ruff format, radon cc/mi: PASS.
- Pytest: 73 unit + 9 integration + 1 e2e = 83 Tests gruen, Coverage 97.75 %.
- php-check.sh (PHPStan 8-strict, CS-Fixer, Composer-Audit, Semgrep-OWASP, DI-Check, Interface-Check): All checks passed.
- HTMX-Linter (C1..C5) gegen View/crawler: PASS.
- Hook-Enforcement (H4/P1.1/P1.2/P3.1/P4.1): Controllers injizieren Repos, ReadModels haben public readonly, Views haben strict_types + @responsibility, Dateinamen meiden Muellhalden-Patterns.

Produktions-Crawl #1 (fast, 200 URL-Limit, 114 s): 104 Pages erfasst (102/2 OK/404), 7013 Links (5667 intern / 1346 extern), 149 Quality-Findings verteilt auf 9 Kategorien (dominant: 55 h1_missing, 25 title_too_long, 23 description_missing).

Bereit fuer:
- sudo /var/www/dev.campus.systemische-tools.de/crawler/systemd/install.sh (aktiviert Timer)
- Vollen Crawl ohne max_urls
- Hybrid-Crawl (+Playwright) als zweiten Durchlauf fuer JS-Fehler/Core-Web-Vitals
- Review der Befunde durch den User in /crawler-UI.

← Zurück zur Task-Liste