Protokoll #1365

ID1365
Zeitstempel2025-12-20 18:49:35.719983
Clientroot
IP145.224.96.190
Modellclaude-sonnet-4-20250514
Statuscompleted
Tokens7,505 (Input: 662, Output: 6,843)
Dauer89 ms
Request-Zeit2025-12-20 18:49:35.719983
Response-Zeit2025-12-20 18:49:35.808638

Request

{
    "event": "PreToolUse",
    "tool_name": "Write",
    "tool_input": {
        "file_path": "\/var\/www\/claude.md",
        "content": "# Server-Kontext\n\n## Projekt-Root\n`\/var\/www\/dev.campus.systemische-tools.de\/`\n\n## Architektur\n```\n\/src\/                    # Backend (MVC)\n├── Framework\/           # App, Router, Controller-Base\n├── Controller\/          # HTTP Controller\n├── Domain\/              # Entity, Repository-Interfaces\n├── UseCases\/            # Anwendungsfälle\n├── Infrastructure\/      # DB, External Services\n└── View\/                # Server-Templates\n\n\/app\/                    # Frontend (MVP)\n├── Presenter\/           # UI-Logik\n└── View\/                # Passive Views\n```\n\n## Datenbanken\n\n| DB | Zweck |\n|----|-------|\n| `ki_dev` | Infrastruktur: Tasks, Contracts, Docs, Pipeline, Logs |\n| `ki_content` | Content: Chat, Wissen, Entitäten, Taxonomie |\n\n## MCP-Server (Pflicht)\n\n### MCP-DB\nDatenbankzugriff. **Immer statt direkter SQL verwenden.**\n- `db_select(query, database)` - SELECT\n- `db_tables(database)` - Tabellen\n- `db_describe(table, database)` - Struktur\n- `db_insert\/update\/delete()` - Schreiboperationen\n- `db_execute()` - DDL (ALTER, CREATE, DROP)\n\n### MCP-Tasks\nTask-Management.\n- `tasks_list(compact=True)` - Auflisten\n- `tasks_create(title, type)` - Erstellen\n- `tasks_get(id)` - Details\n- `tasks_status(id, status)` - Status ändern\n- `quality_check(path)` - PHP-Prüfung\n\n### MCP-Contracts\nContract-Management.\n- `contracts_list(compact=True)` - Auflisten\n- `contracts_get(id|name)` - Details\n- `contracts_validate(id|name)` - Validieren\n- `contracts_create\/update()` - Ändern\n\n### MCP-Docs\nDokumentations-Management.\n- `docs_list(compact=True)` - Auflisten\n- `docs_get(id|path)` - Abrufen\n- `docs_search(query)` - Suchen\n- `docs_hierarchy()` - Baum\n- `docs_create\/update\/delete()` - Ändern\n\n## Scripts\n\n| Script | Zweck |\n|--------|-------|\n| `\/opt\/scripts\/php-check.sh` | PHPStan + CS-Fixer + Semgrep + Audit |\n| `\/opt\/scripts\/sync-dev-prod.sh` | Deploy dev → prod |\n| `\/opt\/scripts\/backup.sh` | Backup |\n\n## Hooks\n\n| Hook | Trigger | Aktion |\n|------|---------|--------|\n| `log_to_db.py` | Alle | Protokolliert in `ki_dev.protokoll` |\n| `file_backup_hook.py` | Edit, Write | Sichert vor Änderung |\n| `block_direct_db.py` | Bash | Blockiert mysql\/mariadb-Befehle |\n| `task_hook.py` | Prompt | Erkennt TODO:\/TASK:\/@task\/#task |\n\n## Regeln\n\n1. **Kein Git** - Verboten auf diesem Server\n2. **MCP nutzen** - Kein direkter DB-Zugriff\n3. **Dev first** - Entwicklung auf dev, dann sync zu prod\n4. **Quality vor Sync** - `\/opt\/scripts\/php-check.sh` muss bestehen\n"
    }
}

Response

{
    "tool_response": {
        "type": "update",
        "filePath": "\/var\/www\/claude.md",
        "content": "# Server-Kontext\n\n## Projekt-Root\n`\/var\/www\/dev.campus.systemische-tools.de\/`\n\n## Architektur\n```\n\/src\/                    # Backend (MVC)\n├── Framework\/           # App, Router, Controller-Base\n├── Controller\/          # HTTP Controller\n├── Domain\/              # Entity, Repository-Interfaces\n├── UseCases\/            # Anwendungsfälle\n├── Infrastructure\/      # DB, External Services\n└── View\/                # Server-Templates\n\n\/app\/                    # Frontend (MVP)\n├── Presenter\/           # UI-Logik\n└── View\/                # Passive Views\n```\n\n## Datenbanken\n\n| DB | Zweck |\n|----|-------|\n| `ki_dev` | Infrastruktur: Tasks, Contracts, Docs, Pipeline, Logs |\n| `ki_content` | Content: Chat, Wissen, Entitäten, Taxonomie |\n\n## MCP-Server (Pflicht)\n\n### MCP-DB\nDatenbankzugriff. **Immer statt direkter SQL verwenden.**\n- `db_select(query, database)` - SELECT\n- `db_tables(database)` - Tabellen\n- `db_describe(table, database)` - Struktur\n- `db_insert\/update\/delete()` - Schreiboperationen\n- `db_execute()` - DDL (ALTER, CREATE, DROP)\n\n### MCP-Tasks\nTask-Management.\n- `tasks_list(compact=True)` - Auflisten\n- `tasks_create(title, type)` - Erstellen\n- `tasks_get(id)` - Details\n- `tasks_status(id, status)` - Status ändern\n- `quality_check(path)` - PHP-Prüfung\n\n### MCP-Contracts\nContract-Management.\n- `contracts_list(compact=True)` - Auflisten\n- `contracts_get(id|name)` - Details\n- `contracts_validate(id|name)` - Validieren\n- `contracts_create\/update()` - Ändern\n\n### MCP-Docs\nDokumentations-Management.\n- `docs_list(compact=True)` - Auflisten\n- `docs_get(id|path)` - Abrufen\n- `docs_search(query)` - Suchen\n- `docs_hierarchy()` - Baum\n- `docs_create\/update\/delete()` - Ändern\n\n## Scripts\n\n| Script | Zweck |\n|--------|-------|\n| `\/opt\/scripts\/php-check.sh` | PHPStan + CS-Fixer + Semgrep + Audit |\n| `\/opt\/scripts\/sync-dev-prod.sh` | Deploy dev → prod |\n| `\/opt\/scripts\/backup.sh` | Backup |\n\n## Hooks\n\n| Hook | Trigger | Aktion |\n|------|---------|--------|\n| `log_to_db.py` | Alle | Protokolliert in `ki_dev.protokoll` |\n| `file_backup_hook.py` | Edit, Write | Sichert vor Änderung |\n| `block_direct_db.py` | Bash | Blockiert mysql\/mariadb-Befehle |\n| `task_hook.py` | Prompt | Erkennt TODO:\/TASK:\/@task\/#task |\n\n## Regeln\n\n1. **Kein Git** - Verboten auf diesem Server\n2. **MCP nutzen** - Kein direkter DB-Zugriff\n3. **Dev first** - Entwicklung auf dev, dann sync zu prod\n4. **Quality vor Sync** - `\/opt\/scripts\/php-check.sh` muss bestehen\n",
        "structuredPatch": [
            {
                "oldStart": 1,
                "oldLines": 304,
                "newStart": 1,
                "newLines": 83,
                "lines": [
                    "-# Server st",
                    "+# Server-Kontext",
                    " ",
                    "-## Pfade",
                    "+## Projekt-Root",
                    "+`\/var\/www\/dev.campus.systemische-tools.de\/`",
                    " ",
                    "-- Docs (statisch): `\/var\/www\/docs\/`",
                    "-- Docs (online): `https:\/\/dev.campus.systemische-tools.de\/docs`",
                    "-- Backup-Script: `\/opt\/scripts\/backup.sh`",
                    "-- Sync-Script: `\/opt\/scripts\/sync-dev-prod.sh`",
                    "-- PHP-Check-Script: `\/opt\/scripts\/php-check.sh`",
                    "-- Contracts: `\/var\/www\/docs\/contracts\/`",
                    "-",
                    "-## PHP Quality & Security Tools",
                    "-",
                    "-- **Installation:** `\/opt\/php-tools\/`",
                    "-- **PHPStan:** 2.1.33 + Strict Rules (Level 5)",
                    "-- **PHP-CS-Fixer:** 3.92.3 (PSR-12)",
                    "-- **Semgrep:** 1.146.0 (OWASP Security Scanner)",
                    "-- **Composer Audit:** CVE-Check für Dependencies",
                    "-- **Docs:** `\/docs\/modul\/php-quality`",
                    "-",
                    "-**4 Checks:**",
                    "-1. PHPStan + Strict Rules (Typen, Bugs)",
                    "-2. PHP-CS-Fixer (PSR-12 Style)",
                    "-3. Composer Audit (Dependency CVEs)",
                    "-4. Semgrep (SQL Injection, XSS, Command Injection, etc.)",
                    "-",
                    "-**Automatisierung:**",
                    "-- PostToolUse Hook: Style-Check nach jeder PHP-Änderung (Warnung)",
                    "-- Pre-Sync: Alle 4 Checks vor Deployment (blockierend)",
                    "-",
                    "-**Verwendung:**",
                    "-```bash",
                    "-\/opt\/scripts\/php-check.sh                    # dev prüfen",
                    "-\/opt\/scripts\/php-check.sh \/pfad --fix        # mit Korrektur",
                    "+## Architektur",
                    " ```",
                    "-",
                    "-## Datenbanken",
                    "-",
                    "-### ki_dev (Entwicklung\/Infrastruktur)",
                    "-Alles für Claude Code, MCP, Tasks, Contracts, Docs, Pipeline:",
                    "-- **Logs:** protokoll, mcp_log, file_backup_history, llm_requests",
                    "-- **Tasks:** tasks, task_assignments, task_results, task_comments",
                    "-- **Contracts:** contracts, contract_history, contract_validations",
                    "-- **Docs:** dokumentation, dokumentation_chunks, dokumentation_history",
                    "-- **Pipeline:** pipeline_log, pipeline_queue, prompts, prompt_tests, system_prompts",
                    "-",
                    "-### ki_content (Inhalt\/User-facing)",
                    "-Alles für Content, Chat, Wissen, Taxonomie:",
                    "-- **Content:** content_contracts, content_critiques, content_orders, content_sources, content_structures, content_versions",
                    "-- **Chat:** chat_messages, chat_sessions",
                    "-- **Wissen:** chunks, chunk_entities, chunk_semantics, chunk_taxonomy, documents, document_taxonomy",
                    "-- **Entitäten:** entities, entity_classifications, entity_relations, entity_synonyms",
                    "-- **Taxonomie:** taxonomy_terms, ontology_classes",
                    "-- **Sonstige:** author_profiles, critics, prompts, search_history",
                    "-",
                    "-## Claude Code Hooks",
                    "-",
                    "-### KI-Protokoll",
                    "-- **Script:** `\/var\/www\/tools\/ki-protokoll\/claude-hook\/log_to_db.py`",
                    "-- **Datenbank:** `ki_dev.protokoll`",
                    "-- **Trigger:** Alle Hooks (UserPromptSubmit, PreToolUse, PostToolUse, etc.)",
                    "-- **Docs:** `\/docs\/modul\/ki-protokoll`",
                    "-",
                    "-### File Backup Hook",
                    "-- **Script:** `\/var\/www\/tools\/ki-protokoll\/claude-hook\/file_backup_hook.py`",
                    "-- **Datenbank:** `ki_dev.file_backup_history`",
                    "-- **Trigger:** PreToolUse (Edit, Write)",
                    "-- **Docs:** `\/docs\/modul\/file-backup-hook`",
                    "-",
                    "-### Task Hook",
                    "-- **Script:** `\/var\/www\/tools\/ki-protokoll\/claude-hook\/task_hook.py`",
                    "-- **Trigger:** Erkennt `TODO:`, `TASK:`, `@task`, `#task` in Prompts",
                    "-",
                    "-### DB-Block Hook",
                    "-- **Script:** `\/var\/www\/tools\/ki-protokoll\/claude-hook\/block_direct_db.py`",
                    "-- **Trigger:** Blockiert direkte mysql\/mariadb Befehle",
                    "-",
                    "-### Hooks-Konfiguration",
                    "-- **Pfad:** `\/var\/www\/dev.campus.systemische-tools.de\/.claude\/settings.local.json`",
                    "-",
                    "-## KI-Tasks",
                    "-",
                    "-Task-Management-System für Mensch-KI-Kollaboration.",
                    "-",
                    "-- **Web-UI:** `\/tasks` (https:\/\/dev.campus.systemische-tools.de\/tasks)",
                    "-- **API:** `\/api\/v1\/tasks`",
                    "-- **CLI:** `\/var\/www\/tools\/ki-tasks\/cli.php`",
                    "-- **Datenbank:** `ki_dev` (tasks, task_assignments, task_results, task_comments)",
                    "-- **Docs:** `\/docs\/ki-tasks`",
                    "-",
                    "-**Task-Typen:** human_task, ai_task, mixed",
                    "-**Status:** pending → in_progress → completed | failed | cancelled",
                    "-**Assignees:** human, ollama, claude, anthropic_api",
                    "-",
                    "-**CLI-Befehle:**",
                    "-```bash",
                    "-php \/var\/www\/tools\/ki-tasks\/cli.php create --title=\"Aufgabe\" --type=ai_task",
                    "-php \/var\/www\/tools\/ki-tasks\/cli.php list --status=pending",
                    "-php \/var\/www\/tools\/ki-tasks\/cli.php execute <id> --model=mistral",
                    "-php \/var\/www\/tools\/ki-tasks\/cli.php stats",
                    "-```",
                    "-",
                    "-**API-Endpoints:**",
                    "-- `GET \/api\/v1\/tasks` - Liste mit Filtern",
                    "-- `POST \/api\/v1\/tasks` - Task erstellen",
                    "-- `POST \/api\/v1\/tasks\/{id}\/execute` - KI-Ausführung",
                    "-- `PUT \/api\/v1\/tasks\/{id}\/status` - Status ändern",
                    "-",
                    "-## Contracts",
                    "-",
                    "-Contracts werden in der Datenbank verwaltet mit Web-UI und MCP-API.",
                    "-",
                    "-- **Web-UI:** `\/contracts` (https:\/\/dev.campus.systemische-tools.de\/contracts)",
                    "-- **Datenbank:** `ki_dev.contracts`",
                    "-- **MCP-Tools:** contracts_list, contracts_get, contracts_create, contracts_update, contracts_validate, contracts_history",
                    "-- **Legacy-Pfad:** `\/var\/www\/docs\/contracts\/` (migriert)",
                    "-- **Docs:** `\/docs\/modul\/contracts`",
                    "-",
                    "-### Betriebsdokumentation",
                    "-- **Contract:** `\/var\/www\/docs\/contracts\/betriebsdokumentation-pruefung_v1.1.yaml`",
                    "-- **Scope:** Alle `.php` Dateien in `\/src\/View\/docs\/`",
                    "-- **Platform:** Debian 13, Systemd, Apache 2.4",
                    "-",
                    "-**Validierungsfaktoren (Priorität):**",
                    "-1. path_existence (critical) - Dateipfade müssen existieren",
                    "-2. command_validity (critical) - Befehle müssen korrekt sein",
                    "-3. service_accuracy (critical) - Ports\/Versionen müssen stimmen",
                    "-4. config_correctness (major) - Konfig-Beispiele müssen passen",
                    "-5. structure_compliance (major) - Breadcrumb, h1, Intro, Tabelle, Commands",
                    "-6. link_integrity (major) - Interne Links müssen funktionieren",
                    "-7. terminology (minor) - Einheitliche Begriffe",
                    "-",
                    "-**Pass-Schwelle:**",
                    "-- 0 critical violations (sonst: rejected)",
                    "-- max 2 major violations (sonst: revision required)",
                    "-- max 5 minor violations",
                    "-",
                    "-**Enforcement:** Kein Sync zu prod bei critical violations.",
                    "-",
                    "-### Layered Architecture",
                    "-- **Contract:** `\/var\/www\/docs\/contracts\/layered-architecture-pruefung_v1.0.yaml`",
                    "-- **Status:** active (migriert 2025-12-20)",
                    "-",
                    "-**Aktuelle Architektur:**",
                    "-```",
                    " \/src\/                    # Backend (MVC)",
                    " ├── Framework\/           # App, Router, Controller-Base",
                    " ├── Controller\/          # HTTP Controller",
                    "-├── Domain\/Entity\/       # Entitäten (leer, für Erweiterung)",
                    "-├── Domain\/Repository\/   # Repository-Interfaces (leer)",
                    "-├── UseCases\/            # Anwendungsfälle (leer)",
                    "+├── Domain\/              # Entity, Repository-Interfaces",
                    "+├── UseCases\/            # Anwendungsfälle",
                    " ├── Infrastructure\/      # DB, External Services",
                    "-│   └── Persistence\/     # Connection.php",
                    " └── View\/                # Server-Templates",
                    " ",
                    " \/app\/                    # Frontend (MVP)",
                    "-├── Presenter\/           # UI-Logik (leer, für Erweiterung)",
                    "-└── View\/                # Passive Views (leer)",
                    "+├── Presenter\/           # UI-Logik",
                    "+└── View\/                # Passive Views",
                    " ```",
                    " ",
                    "-**Namespace-Mapping (autoload.php):**",
                    "-- `Framework\\` → `\/src\/Framework\/`",
                    "-- `Controller\\` → `\/src\/Controller\/`",
                    "-- `Domain\\` → `\/src\/Domain\/`",
                    "-- `UseCases\\` → `\/src\/UseCases\/`",
                    "-- `Infrastructure\\` → `\/src\/Infrastructure\/`",
                    "-- `Presenter\\` → `\/app\/Presenter\/`",
                    "+## Datenbanken",
                    " ",
                    "-### JS Browser Architecture (ZUKÜNFTIG)",
                    "-- **Contract:** `\/var\/www\/docs\/contracts\/js-browser-architecture-contract_v2.yaml`",
                    "-- **Status:** future (keine komplexe JS-App vorhanden)",
                    "+| DB | Zweck |",
                    "+|----|-------|",
                    "+| `ki_dev` | Infrastruktur: Tasks, Contracts, Docs, Pipeline, Logs |",
                    "+| `ki_content` | Content: Chat, Wissen, Entitäten, Taxonomie |",
                    " ",
                    "-## Dokumentation",
                    "-",
                    "-### Server",
                    "-- `\/docs\/server` - Übersicht, Domains, Sicherheit, System",
                    "-- `\/docs\/modul\/backup` - Tägliches Backup (03:00)",
                    "-- `\/docs\/modul\/file-backup-hook` - Claude Code Pre-Hook",
                    "-",
                    "-### KI-Stack",
                    "-- `\/docs\/modul\/ki-protokoll` - Claude Logging",
                    "-- `\/docs\/modul\/ollama` - LLM Runtime",
                    "-- `\/docs\/modul\/qdrant` - Vektor-Datenbank",
                    "-- `\/docs\/modul\/nvidia` - NVIDIA CUDA",
                    "-",
                    "-### Anwendungen",
                    "-- `\/docs\/anwendungen` - Übersicht",
                    "-- `\/docs\/modul\/apache` - Webserver",
                    "-- `\/docs\/modul\/php` - PHP 8.4",
                    "-- `\/docs\/modul\/mariadb` - Datenbank",
                    "-- `\/docs\/modul\/phpmyadmin` - Web-Verwaltung",
                    "-- `\/docs\/modul\/nextcloud` - Cloud-Speicher",
                    "-- `\/docs\/modul\/php-quality` - PHPStan, PHP-CS-Fixer",
                    "-",
                    "-## Dokumentations-Template",
                    "-",
                    "-```php",
                    "-<?php ob_start(); ?>",
                    "-",
                    "-<nav class=\"breadcrumb\">",
                    "-    <a href=\"\/docs\">Dokumentation<\/a> &raquo; <a href=\"\/docs\/server\">Server<\/a> &raquo; Modulname",
                    "-<\/nav>",
                    "-",
                    "-<h1>Modulname<\/h1>",
                    "-<p>Kurzbeschreibung.<\/p>",
                    "-",
                    "-<table>",
                    "-    <tr><th>Eigenschaft<\/th><td>Wert<\/td><\/tr>",
                    "-<\/table>",
                    "-",
                    "-<h2>Verwendung<\/h2>",
                    "-<pre><code>befehl --optionen<\/code><\/pre>",
                    "-",
                    "-<?php $content = ob_get_clean(); ?>",
                    "-<?php require VIEW_PATH . '\/layout.php'; ?>",
                    "-```",
                    "-",
                    " ## MCP-Server (Pflicht)",
                    " ",
                    "-### MCP-DB - Datenbankzugriff",
                    "-**IMMER** für Datenbank-Lesezugriffe verwenden:",
                    "-- `db_select(query)` - SELECT-Abfragen",
                    "-- `db_schema()` - Schema anzeigen",
                    "-- `db_tables(database)` - Tabellen auflisten",
                    "-- `db_describe(table)` - Tabellenstruktur",
                    "-- `db_insert()`, `db_update()`, `db_delete()` - Schreiboperationen",
                    "-- `db_execute()` - DDL-Statements (ALTER, CREATE, DROP)",
                    "+### MCP-DB",
                    "+Datenbankzugriff. **Immer statt direkter SQL verwenden.**",
                    "+- `db_select(query, database)` - SELECT",
                    "+- `db_tables(database)` - Tabellen",
                    "+- `db_describe(table, database)` - Struktur",
                    "+- `db_insert\/update\/delete()` - Schreiboperationen",
                    "+- `db_execute()` - DDL (ALTER, CREATE, DROP)",
                    " ",
                    "-**NIEMALS** direkte mysql\/mariadb-Befehle mit Passwörtern ausführen.",
                    "-",
                    "-Vorteile: Keine Credentials im Verlauf, Audit-Logging, SQL-Injection-Schutz.",
                    "-Docs: `\/docs\/mcp\/mcp-db`",
                    "-",
                    "-### MCP-Tasks - Task-Management",
                    "-**IMMER** für Task-Operationen verwenden:",
                    "-- `tasks_list(compact=True, limit=10)` - Tasks auflisten (Token-optimiert)",
                    "-- `tasks_create()` - Task erstellen",
                    "-- `tasks_get(id)` - Task-Details (vollständig)",
                    "+### MCP-Tasks",
                    "+Task-Management.",
                    "+- `tasks_list(compact=True)` - Auflisten",
                    "+- `tasks_create(title, type)` - Erstellen",
                    "+- `tasks_get(id)` - Details",
                    " - `tasks_status(id, status)` - Status ändern",
                    "-- `tasks_execute(id)` - Mit Ollama ausführen",
                    "-- `quality_check()` - PHP-Prüfung",
                    "-- `quality_report()` - Vollständiger Report",
                    "+- `quality_check(path)` - PHP-Prüfung",
                    " ",
                    "-**Token-Optimierung (tasks_list):**",
                    "-- `compact=True` (default): nur id\/title\/description(100)\/status\/type",
                    "-- `compact=False`: alle 13 Felder",
                    "-- `limit=10` (default), max 100",
                    "+### MCP-Contracts",
                    "+Contract-Management.",
                    "+- `contracts_list(compact=True)` - Auflisten",
                    "+- `contracts_get(id|name)` - Details",
                    "+- `contracts_validate(id|name)` - Validieren",
                    "+- `contracts_create\/update()` - Ändern",
                    " ",
                    "-**NIEMALS** direkte SQL auf tasks\/task_assignments\/task_results.",
                    "+### MCP-Docs",
                    "+Dokumentations-Management.",
                    "+- `docs_list(compact=True)` - Auflisten",
                    "+- `docs_get(id|path)` - Abrufen",
                    "+- `docs_search(query)` - Suchen",
                    "+- `docs_hierarchy()` - Baum",
                    "+- `docs_create\/update\/delete()` - Ändern",
                    " ",
                    "-**Workflow:**",
                    "-1. `tasks_create()` → Task erstellen",
                    "-2. `tasks_status(id, \"in_progress\")` → Starten",
                    "-3. Arbeit erledigen",
                    "-4. `quality_check()` → Bei Code-Änderungen",
                    "-5. `tasks_status(id, \"completed\")` → Abschließen",
                    "+## Scripts",
                    " ",
                    "-Docs: `\/docs\/mcp\/mcp-tasks`",
                    "+| Script | Zweck |",
                    "+|--------|-------|",
                    "+| `\/opt\/scripts\/php-check.sh` | PHPStan + CS-Fixer + Semgrep + Audit |",
                    "+| `\/opt\/scripts\/sync-dev-prod.sh` | Deploy dev → prod |",
                    "+| `\/opt\/scripts\/backup.sh` | Backup |",
                    " ",
                    "-### MCP-Contracts - Contract-Management",
                    "-**IMMER** für Contract-Operationen verwenden:",
                    "-- `contracts_list(compact=True)` - Contracts auflisten (Token-optimiert)",
                    "-- `contracts_get(id)` - Contract-Details",
                    "-- `contracts_create()` - Contract erstellen",
                    "-- `contracts_update()` - Neue Version (mit Historie)",
                    "-- `contracts_validate(id)` - Validierung ausführen",
                    "-- `contracts_history(id)` - Änderungshistorie",
                    "-- `contracts_violations(id)` - Letzte Validierungen",
                    "-- `contracts_statistics()` - Statistiken",
                    "+## Hooks",
                    " ",
                    "-**Token-Optimierung (contracts_list):**",
                    "-- `compact=True` (default): nur id\/name\/version\/status",
                    "-- `compact=False`: inkl. yaml_content",
                    "+| Hook | Trigger | Aktion |",
                    "+|------|---------|--------|",
                    "+| `log_to_db.py` | Alle | Protokolliert in `ki_dev.protokoll` |",
                    "+| `file_backup_hook.py` | Edit, Write | Sichert vor Änderung |",
                    "+| `block_direct_db.py` | Bash | Blockiert mysql\/mariadb-Befehle |",
                    "+| `task_hook.py` | Prompt | Erkennt TODO:\/TASK:\/@task\/#task |",
                    " ",
                    "-**NIEMALS** direkte SQL auf contracts\/contract_history\/contract_validations.",
                    "+## Regeln",
                    " ",
                    "-Docs: `\/docs\/mcp\/mcp-contracts`",
                    "-",
                    "-### MCP-Docs - Dokumentations-Management",
                    "-**IMMER** für Dokumentations-Operationen verwenden:",
                    "-- `docs_list(compact=True)` - Dokumente auflisten (Token-optimiert)",
                    "-- `docs_get(id)` oder `docs_get(path=\"\/server\/ssh\")` - Dokument abrufen",
                    "-- `docs_create()` - Neues Dokument erstellen",
                    "-- `docs_update(id)` - Dokument bearbeiten",
                    "-- `docs_delete(id)` - Dokument löschen",
                    "-- `docs_move(id, new_parent_id)` - Position ändern",
                    "-- `docs_hierarchy()` - Kompletter Baum",
                    "-- `docs_search(query)` - Volltextsuche",
                    "-- `docs_statistics()` - Statistiken",
                    "-",
                    "-**Token-Optimierung (docs_list):**",
                    "-- `compact=True` (default): nur id\/path\/title\/status (ohne Content)",
                    "-- `compact=False`: vollständige Ausgabe inkl. Content",
                    "-",
                    "-**NIEMALS** direkte SQL auf ki_dev.dokumentation.",
                    "-",
                    "-Docs: `\/docs\/mcp\/mcp-docs`",
                    "-",
                    "-## Wichtige Regeln",
                    "-",
                    "-- **KEIN GIT** - Git ist auf diesem Server verboten",
                    "-- **Backup vor Änderungen** - File Backup Hook sichert automatisch",
                    "-- **Entwicklung zuerst auf dev** - dann sync zu prod",
                    "-- **MCP nutzen** - Kein direkter DB-Zugriff, keine direkte Task-SQL",
                    "+1. **Kein Git** - Verboten auf diesem Server",
                    "+2. **MCP nutzen** - Kein direkter DB-Zugriff",
                    "+3. **Dev first** - Entwicklung auf dev, dann sync zu prod",
                    "+4. **Quality vor Sync** - `\/opt\/scripts\/php-check.sh` muss bestehen"
                ]
            }
        ],
        "originalFile": "# Server st\n\n## Pfade\n\n- Docs (statisch): `\/var\/www\/docs\/`\n- Docs (online): `https:\/\/dev.campus.systemische-tools.de\/docs`\n- Backup-Script: `\/opt\/scripts\/backup.sh`\n- Sync-Script: `\/opt\/scripts\/sync-dev-prod.sh`\n- PHP-Check-Script: `\/opt\/scripts\/php-check.sh`\n- Contracts: `\/var\/www\/docs\/contracts\/`\n\n## PHP Quality & Security Tools\n\n- **Installation:** `\/opt\/php-tools\/`\n- **PHPStan:** 2.1.33 + Strict Rules (Level 5)\n- **PHP-CS-Fixer:** 3.92.3 (PSR-12)\n- **Semgrep:** 1.146.0 (OWASP Security Scanner)\n- **Composer Audit:** CVE-Check für Dependencies\n- **Docs:** `\/docs\/modul\/php-quality`\n\n**4 Checks:**\n1. PHPStan + Strict Rules (Typen, Bugs)\n2. PHP-CS-Fixer (PSR-12 Style)\n3. Composer Audit (Dependency CVEs)\n4. Semgrep (SQL Injection, XSS, Command Injection, etc.)\n\n**Automatisierung:**\n- PostToolUse Hook: Style-Check nach jeder PHP-Änderung (Warnung)\n- Pre-Sync: Alle 4 Checks vor Deployment (blockierend)\n\n**Verwendung:**\n```bash\n\/opt\/scripts\/php-check.sh                    # dev prüfen\n\/opt\/scripts\/php-check.sh \/pfad --fix        # mit Korrektur\n```\n\n## Datenbanken\n\n### ki_dev (Entwicklung\/Infrastruktur)\nAlles für Claude Code, MCP, Tasks, Contracts, Docs, Pipeline:\n- **Logs:** protokoll, mcp_log, file_backup_history, llm_requests\n- **Tasks:** tasks, task_assignments, task_results, task_comments\n- **Contracts:** contracts, contract_history, contract_validations\n- **Docs:** dokumentation, dokumentation_chunks, dokumentation_history\n- **Pipeline:** pipeline_log, pipeline_queue, prompts, prompt_tests, system_prompts\n\n### ki_content (Inhalt\/User-facing)\nAlles für Content, Chat, Wissen, Taxonomie:\n- **Content:** content_contracts, content_critiques, content_orders, content_sources, content_structures, content_versions\n- **Chat:** chat_messages, chat_sessions\n- **Wissen:** chunks, chunk_entities, chunk_semantics, chunk_taxonomy, documents, document_taxonomy\n- **Entitäten:** entities, entity_classifications, entity_relations, entity_synonyms\n- **Taxonomie:** taxonomy_terms, ontology_classes\n- **Sonstige:** author_profiles, critics, prompts, search_history\n\n## Claude Code Hooks\n\n### KI-Protokoll\n- **Script:** `\/var\/www\/tools\/ki-protokoll\/claude-hook\/log_to_db.py`\n- **Datenbank:** `ki_dev.protokoll`\n- **Trigger:** Alle Hooks (UserPromptSubmit, PreToolUse, PostToolUse, etc.)\n- **Docs:** `\/docs\/modul\/ki-protokoll`\n\n### File Backup Hook\n- **Script:** `\/var\/www\/tools\/ki-protokoll\/claude-hook\/file_backup_hook.py`\n- **Datenbank:** `ki_dev.file_backup_history`\n- **Trigger:** PreToolUse (Edit, Write)\n- **Docs:** `\/docs\/modul\/file-backup-hook`\n\n### Task Hook\n- **Script:** `\/var\/www\/tools\/ki-protokoll\/claude-hook\/task_hook.py`\n- **Trigger:** Erkennt `TODO:`, `TASK:`, `@task`, `#task` in Prompts\n\n### DB-Block Hook\n- **Script:** `\/var\/www\/tools\/ki-protokoll\/claude-hook\/block_direct_db.py`\n- **Trigger:** Blockiert direkte mysql\/mariadb Befehle\n\n### Hooks-Konfiguration\n- **Pfad:** `\/var\/www\/dev.campus.systemische-tools.de\/.claude\/settings.local.json`\n\n## KI-Tasks\n\nTask-Management-System für Mensch-KI-Kollaboration.\n\n- **Web-UI:** `\/tasks` (https:\/\/dev.campus.systemische-tools.de\/tasks)\n- **API:** `\/api\/v1\/tasks`\n- **CLI:** `\/var\/www\/tools\/ki-tasks\/cli.php`\n- **Datenbank:** `ki_dev` (tasks, task_assignments, task_results, task_comments)\n- **Docs:** `\/docs\/ki-tasks`\n\n**Task-Typen:** human_task, ai_task, mixed\n**Status:** pending → in_progress → completed | failed | cancelled\n**Assignees:** human, ollama, claude, anthropic_api\n\n**CLI-Befehle:**\n```bash\nphp \/var\/www\/tools\/ki-tasks\/cli.php create --title=\"Aufgabe\" --type=ai_task\nphp \/var\/www\/tools\/ki-tasks\/cli.php list --status=pending\nphp \/var\/www\/tools\/ki-tasks\/cli.php execute <id> --model=mistral\nphp \/var\/www\/tools\/ki-tasks\/cli.php stats\n```\n\n**API-Endpoints:**\n- `GET \/api\/v1\/tasks` - Liste mit Filtern\n- `POST \/api\/v1\/tasks` - Task erstellen\n- `POST \/api\/v1\/tasks\/{id}\/execute` - KI-Ausführung\n- `PUT \/api\/v1\/tasks\/{id}\/status` - Status ändern\n\n## Contracts\n\nContracts werden in der Datenbank verwaltet mit Web-UI und MCP-API.\n\n- **Web-UI:** `\/contracts` (https:\/\/dev.campus.systemische-tools.de\/contracts)\n- **Datenbank:** `ki_dev.contracts`\n- **MCP-Tools:** contracts_list, contracts_get, contracts_create, contracts_update, contracts_validate, contracts_history\n- **Legacy-Pfad:** `\/var\/www\/docs\/contracts\/` (migriert)\n- **Docs:** `\/docs\/modul\/contracts`\n\n### Betriebsdokumentation\n- **Contract:** `\/var\/www\/docs\/contracts\/betriebsdokumentation-pruefung_v1.1.yaml`\n- **Scope:** Alle `.php` Dateien in `\/src\/View\/docs\/`\n- **Platform:** Debian 13, Systemd, Apache 2.4\n\n**Validierungsfaktoren (Priorität):**\n1. path_existence (critical) - Dateipfade müssen existieren\n2. command_validity (critical) - Befehle müssen korrekt sein\n3. service_accuracy (critical) - Ports\/Versionen müssen stimmen\n4. config_correctness (major) - Konfig-Beispiele müssen passen\n5. structure_compliance (major) - Breadcrumb, h1, Intro, Tabelle, Commands\n6. link_integrity (major) - Interne Links müssen funktionieren\n7. terminology (minor) - Einheitliche Begriffe\n\n**Pass-Schwelle:**\n- 0 critical violations (sonst: rejected)\n- max 2 major violations (sonst: revision required)\n- max 5 minor violations\n\n**Enforcement:** Kein Sync zu prod bei critical violations.\n\n### Layered Architecture\n- **Contract:** `\/var\/www\/docs\/contracts\/layered-architecture-pruefung_v1.0.yaml`\n- **Status:** active (migriert 2025-12-20)\n\n**Aktuelle Architektur:**\n```\n\/src\/                    # Backend (MVC)\n├── Framework\/           # App, Router, Controller-Base\n├── Controller\/          # HTTP Controller\n├── Domain\/Entity\/       # Entitäten (leer, für Erweiterung)\n├── Domain\/Repository\/   # Repository-Interfaces (leer)\n├── UseCases\/            # Anwendungsfälle (leer)\n├── Infrastructure\/      # DB, External Services\n│   └── Persistence\/     # Connection.php\n└── View\/                # Server-Templates\n\n\/app\/                    # Frontend (MVP)\n├── Presenter\/           # UI-Logik (leer, für Erweiterung)\n└── View\/                # Passive Views (leer)\n```\n\n**Namespace-Mapping (autoload.php):**\n- `Framework\\` → `\/src\/Framework\/`\n- `Controller\\` → `\/src\/Controller\/`\n- `Domain\\` → `\/src\/Domain\/`\n- `UseCases\\` → `\/src\/UseCases\/`\n- `Infrastructure\\` → `\/src\/Infrastructure\/`\n- `Presenter\\` → `\/app\/Presenter\/`\n\n### JS Browser Architecture (ZUKÜNFTIG)\n- **Contract:** `\/var\/www\/docs\/contracts\/js-browser-architecture-contract_v2.yaml`\n- **Status:** future (keine komplexe JS-App vorhanden)\n\n## Dokumentation\n\n### Server\n- `\/docs\/server` - Übersicht, Domains, Sicherheit, System\n- `\/docs\/modul\/backup` - Tägliches Backup (03:00)\n- `\/docs\/modul\/file-backup-hook` - Claude Code Pre-Hook\n\n### KI-Stack\n- `\/docs\/modul\/ki-protokoll` - Claude Logging\n- `\/docs\/modul\/ollama` - LLM Runtime\n- `\/docs\/modul\/qdrant` - Vektor-Datenbank\n- `\/docs\/modul\/nvidia` - NVIDIA CUDA\n\n### Anwendungen\n- `\/docs\/anwendungen` - Übersicht\n- `\/docs\/modul\/apache` - Webserver\n- `\/docs\/modul\/php` - PHP 8.4\n- `\/docs\/modul\/mariadb` - Datenbank\n- `\/docs\/modul\/phpmyadmin` - Web-Verwaltung\n- `\/docs\/modul\/nextcloud` - Cloud-Speicher\n- `\/docs\/modul\/php-quality` - PHPStan, PHP-CS-Fixer\n\n## Dokumentations-Template\n\n```php\n<?php ob_start(); ?>\n\n<nav class=\"breadcrumb\">\n    <a href=\"\/docs\">Dokumentation<\/a> &raquo; <a href=\"\/docs\/server\">Server<\/a> &raquo; Modulname\n<\/nav>\n\n<h1>Modulname<\/h1>\n<p>Kurzbeschreibung.<\/p>\n\n<table>\n    <tr><th>Eigenschaft<\/th><td>Wert<\/td><\/tr>\n<\/table>\n\n<h2>Verwendung<\/h2>\n<pre><code>befehl --optionen<\/code><\/pre>\n\n<?php $content = ob_get_clean(); ?>\n<?php require VIEW_PATH . '\/layout.php'; ?>\n```\n\n## MCP-Server (Pflicht)\n\n### MCP-DB - Datenbankzugriff\n**IMMER** für Datenbank-Lesezugriffe verwenden:\n- `db_select(query)` - SELECT-Abfragen\n- `db_schema()` - Schema anzeigen\n- `db_tables(database)` - Tabellen auflisten\n- `db_describe(table)` - Tabellenstruktur\n- `db_insert()`, `db_update()`, `db_delete()` - Schreiboperationen\n- `db_execute()` - DDL-Statements (ALTER, CREATE, DROP)\n\n**NIEMALS** direkte mysql\/mariadb-Befehle mit Passwörtern ausführen.\n\nVorteile: Keine Credentials im Verlauf, Audit-Logging, SQL-Injection-Schutz.\nDocs: `\/docs\/mcp\/mcp-db`\n\n### MCP-Tasks - Task-Management\n**IMMER** für Task-Operationen verwenden:\n- `tasks_list(compact=True, limit=10)` - Tasks auflisten (Token-optimiert)\n- `tasks_create()` - Task erstellen\n- `tasks_get(id)` - Task-Details (vollständig)\n- `tasks_status(id, status)` - Status ändern\n- `tasks_execute(id)` - Mit Ollama ausführen\n- `quality_check()` - PHP-Prüfung\n- `quality_report()` - Vollständiger Report\n\n**Token-Optimierung (tasks_list):**\n- `compact=True` (default): nur id\/title\/description(100)\/status\/type\n- `compact=False`: alle 13 Felder\n- `limit=10` (default), max 100\n\n**NIEMALS** direkte SQL auf tasks\/task_assignments\/task_results.\n\n**Workflow:**\n1. `tasks_create()` → Task erstellen\n2. `tasks_status(id, \"in_progress\")` → Starten\n3. Arbeit erledigen\n4. `quality_check()` → Bei Code-Änderungen\n5. `tasks_status(id, \"completed\")` → Abschließen\n\nDocs: `\/docs\/mcp\/mcp-tasks`\n\n### MCP-Contracts - Contract-Management\n**IMMER** für Contract-Operationen verwenden:\n- `contracts_list(compact=True)` - Contracts auflisten (Token-optimiert)\n- `contracts_get(id)` - Contract-Details\n- `contracts_create()` - Contract erstellen\n- `contracts_update()` - Neue Version (mit Historie)\n- `contracts_validate(id)` - Validierung ausführen\n- `contracts_history(id)` - Änderungshistorie\n- `contracts_violations(id)` - Letzte Validierungen\n- `contracts_statistics()` - Statistiken\n\n**Token-Optimierung (contracts_list):**\n- `compact=True` (default): nur id\/name\/version\/status\n- `compact=False`: inkl. yaml_content\n\n**NIEMALS** direkte SQL auf contracts\/contract_history\/contract_validations.\n\nDocs: `\/docs\/mcp\/mcp-contracts`\n\n### MCP-Docs - Dokumentations-Management\n**IMMER** für Dokumentations-Operationen verwenden:\n- `docs_list(compact=True)` - Dokumente auflisten (Token-optimiert)\n- `docs_get(id)` oder `docs_get(path=\"\/server\/ssh\")` - Dokument abrufen\n- `docs_create()` - Neues Dokument erstellen\n... [TRUNCATED-f121355a064b7c39]"
    }
}
← Vorheriger Zur Liste Nächster →