{
"event": "PreToolUse",
"tool_name": "Write",
"tool_input": {
"file_path": "\/root\/.claude\/projects\/-var-www\/memory\/project_crawler.md",
"content": "---\nname: Crawler-Projekt campus-am-see.de\ndescription: SEO-Crawler für externe Website, Python Core + PHP Presentation, neue MariaDB crawler, Hexagonal\/DDD\ntype: project\n---\n\n**Fakten:**\n- Projekt-Root: `\/var\/www\/dev.campus.systemische-tools.de\/crawler\/`\n- Ziel-Site: `https:\/\/campus-am-see.de\/` (inkl. Subdomains). Gehört dem Team, robots.txt wird ignoriert.\n- MariaDB-DB `crawler` (neu, 12 Tabellen). MCP-DB-Allowlist in `\/etc\/mcp_db\/config.json` wurde erweitert um `crawler` + alle Tabellen.\n- Stack-Entscheidung: Python (Score 9.10 vs. Rust 6.10 vs. PHP 6.10) wegen offiziellem Playwright-Support und bestehender Pipeline-Infrastruktur.\n- Präsentation: PHP-Route `\/crawler` im bestehenden MVC unter `https:\/\/dev.campus.systemische-tools.de\/crawler` (Hexagonal-Adapter gegen crawler-DB).\n- Drei Crawl-Modi: `fast` (httpx), `full` (Playwright\/Chromium), `hybrid`.\n- Keine Auth — abgeschottetes Demo-System, alles offen lesbar.\n- Bootstrap-Skript `scripts\/bootstrap_db.py` legt DB + Schema an, nutzt `\/var\/www\/scripts\/pipeline\/config.py` für Credentials.\n\n**Why:** Ziel sind SEO-Analysen über Crawl-Historie (append-only pro `crawl_id`), inkl. externer Link-Prüfung, JS-Rendering-Metriken (LCP\/CLS\/TBT), strukturierter Daten (JSON-LD\/Microdata\/RDFa).\n\n**How to apply:**\n- Alle DB-Operationen auf `crawler` gehen via MCP-DB oder via `infrastructure\/persistence\/*`-Adapter (in src\/).\n- Planung und Tasks: `planung\/00-planung.md`, `planung\/01-code-standards.yaml`, `planung\/02-tasks.yaml` (58 Tasks, 8 Phasen).\n- Stand 2026-04-21: Phase 0 (T-001..T-009) abgeschlossen; als Nächstes Phase 1 (Domain Layer).\n- Quality-Gateways G1..G9 sind verbindlich; Orchestrierung via `scripts\/check.sh`.\n- venv liegt unter `crawler\/venv` (separat vom Pipeline-venv).\n- Playwright nutzt `chromium-headless-shell` 145, System-Deps via `playwright install-deps chromium`.\n"
}
}
{
"tool_response": {
"type": "create",
"filePath": "\/root\/.claude\/projects\/-var-www\/memory\/project_crawler.md",
"content": "---\nname: Crawler-Projekt campus-am-see.de\ndescription: SEO-Crawler für externe Website, Python Core + PHP Presentation, neue MariaDB crawler, Hexagonal\/DDD\ntype: project\noriginSessionId: 2b9b2950-1c8c-4dc4-9b8f-a72bf528c2bc\n---\n**Fakten:**\n- Projekt-Root: `\/var\/www\/dev.campus.systemische-tools.de\/crawler\/`\n- Ziel-Site: `https:\/\/campus-am-see.de\/` (inkl. Subdomains). Gehört dem Team, robots.txt wird ignoriert.\n- MariaDB-DB `crawler` (neu, 12 Tabellen). MCP-DB-Allowlist in `\/etc\/mcp_db\/config.json` wurde erweitert um `crawler` + alle Tabellen.\n- Stack-Entscheidung: Python (Score 9.10 vs. Rust 6.10 vs. PHP 6.10) wegen offiziellem Playwright-Support und bestehender Pipeline-Infrastruktur.\n- Präsentation: PHP-Route `\/crawler` im bestehenden MVC unter `https:\/\/dev.campus.systemische-tools.de\/crawler` (Hexagonal-Adapter gegen crawler-DB).\n- Drei Crawl-Modi: `fast` (httpx), `full` (Playwright\/Chromium), `hybrid`.\n- Keine Auth — abgeschottetes Demo-System, alles offen lesbar.\n- Bootstrap-Skript `scripts\/bootstrap_db.py` legt DB + Schema an, nutzt `\/var\/www\/scripts\/pipeline\/config.py` für Credentials.\n\n**Why:** Ziel sind SEO-Analysen über Crawl-Historie (append-only pro `crawl_id`), inkl. externer Link-Prüfung, JS-Rendering-Metriken (LCP\/CLS\/TBT), strukturierter Daten (JSON-LD\/Microdata\/RDFa).\n\n**How to apply:**\n- Alle DB-Operationen auf `crawler` gehen via MCP-DB oder via `infrastructure\/persistence\/*`-Adapter (in src\/).\n- Planung und Tasks: `planung\/00-planung.md`, `planung\/01-code-standards.yaml`, `planung\/02-tasks.yaml` (58 Tasks, 8 Phasen).\n- Stand 2026-04-21: Phase 0 (T-001..T-009) abgeschlossen; als Nächstes Phase 1 (Domain Layer).\n- Quality-Gateways G1..G9 sind verbindlich; Orchestrierung via `scripts\/check.sh`.\n- venv liegt unter `crawler\/venv` (separat vom Pipeline-venv).\n- Playwright nutzt `chromium-headless-shell` 145, System-Deps via `playwright install-deps chromium`.\n",
"structuredPatch": [],
"originalFile": null,
"userModified": false
}
}