Protokoll #32050

ID32050
Zeitstempel2025-12-31 10:00:05.399909
Clientroot
IP145.224.72.245
Modellclaude-sonnet-4-20250514
Statuscompleted
Tokens1,475 (Input: 22, Output: 1,453)
Dauer89 ms
Request-Zeit2025-12-31 10:00:05.399909
Response-Zeit2025-12-31 10:00:05.488656

Request

{
    "event": "PreToolUse",
    "tool_name": "mcp__mcp-docs__docs_get",
    "tool_input": {
        "id": 33
    }
}

Response

{
    "tool_response": [
        {
            "type": "text",
            "text": "{\n  \"success\": true,\n  \"doc\": {\n    \"id\": 33,\n    \"parent_id\": 29,\n    \"slug\": \"ki-tasks-hooks\",\n    \"path\": \"\/ki-tasks\/ki-tasks-hooks\",\n    \"title\": \"Hooks\",\n    \"description\": \"Automatische Task-Erstellung aus Claude Code Prompts via Hook-System.\",\n    \"content\": \"<nav class=\\\"breadcrumb\\\">\\n    <a href=\\\"\/docs\\\">Dokumentation<\/a> &raquo; <a href=\\\"\/docs\/ki-tasks\\\">KI-Tasks<\/a> &raquo; Hook-Integration\\n<\/nav>\\n\\n<h1>Hook-Integration<\/h1>\\n<p class=\\\"doc-meta\\\"><strong>Erstellt:<\/strong> 2025-12-20 | <strong>Aktualisiert:<\/strong> 2025-12-20<\/p>\\n\\n<p>Automatische Task-Erstellung aus Claude Code Prompts via Hook-System.<\/p>\\n\\n<table>\\n    <tr><th>Hook-Script<\/th><td>\/var\/www\/tools\/ki-protokoll\/claude-hook\/task_hook.py<\/td><\/tr>\\n    <tr><th>Trigger<\/th><td>UserPromptSubmit<\/td><\/tr>\\n    <tr><th>Datenbank<\/th><td>ki_protokoll<\/td><\/tr>\\n<\/table>\\n\\n<h2>Erkannte Patterns<\/h2>\\n<p>Der Hook erkennt folgende Patterns in User-Prompts und erstellt automatisch Tasks:<\/p>\\n\\n<table>\\n    <tr><th>Pattern<\/th><th>Beispiel<\/th><th>Task-Titel<\/th><\/tr>\\n    <tr><td><code>TODO: &lt;text&gt;<\/code><\/td><td>TODO: Tests schreiben<\/td><td>Tests schreiben<\/td><\/tr>\\n    <tr><td><code>TASK: &lt;text&gt;<\/code><\/td><td>TASK: API dokumentieren<\/td><td>API dokumentieren<\/td><\/tr>\\n    <tr><td><code>@task &lt;text&gt;<\/code><\/td><td>@task Refactoring<\/td><td>Refactoring<\/td><\/tr>\\n    <tr><td><code>#task &lt;text&gt;<\/code><\/td><td>#task Bug fixen<\/td><td>Bug fixen<\/td><\/tr>\\n<\/table>\\n\\n<h2>Funktionsweise<\/h2>\\n<pre><code>User-Prompt: \\\"Bitte TODO: Logging implementieren und den Code reviewen\\\"\\n                    ↓\\n            Hook erkennt Pattern\\n                    ↓\\n        Task erstellt: \\\"Logging implementieren\\\"\\n                    ↓\\n            type: ai_task\\n            status: pending\\n            created_by: $USER\\n            created_by_type: ai<\/code><\/pre>\\n\\n<h2>Hook-Konfiguration<\/h2>\\n<p>Datei: <code>\/var\/www\/dev.campus.systemische-tools.de\/.claude\/settings.local.json<\/code><\/p>\\n\\n<pre><code>{\\n  \\\"hooks\\\": {\\n    \\\"UserPromptSubmit\\\": [\\n      {\\n        \\\"hooks\\\": [\\n          {\\n            \\\"type\\\": \\\"command\\\",\\n            \\\"command\\\": \\\"\/var\/www\/tools\/ki-protokoll\/claude-hook\/log_to_db.py\\\",\\n            \\\"timeout\\\": 5\\n          },\\n          {\\n            \\\"type\\\": \\\"command\\\",\\n            \\\"command\\\": \\\"\/var\/www\/tools\/ki-protokoll\/claude-hook\/task_hook.py\\\",\\n            \\\"timeout\\\": 5\\n          }\\n        ]\\n      }\\n    ]\\n  }\\n}<\/code><\/pre>\\n\\n<h2>Hook-Script<\/h2>\\n\\n<h4>Konfiguration<\/h4>\\n<pre><code># Datenbankverbindung - verwendet Umgebungsvariablen\\nDB_CONFIG = {\\n    'host': os.environ.get('CLAUDE_DB_HOST', 'localhost'),\\n    'port': int(os.environ.get('CLAUDE_DB_PORT', '3306')),\\n    'user': os.environ.get('CLAUDE_DB_USER', 'claude_code'),\\n    'password': os.environ.get('CLAUDE_DB_PASSWORD'),\\n    'database': os.environ.get('CLAUDE_DB_NAME', 'ki_protokoll'),\\n    'charset': 'utf8mb4'\\n}\\n\\n# Erkennungsmuster\\nTASK_PATTERNS = [\\n    (r'TODO:\\\\s*(.+?)(?:\\\\n|$)', 'todo'),\\n    (r'TASK:\\\\s*(.+?)(?:\\\\n|$)', 'task'),\\n    (r'@task\\\\s+(.+?)(?:\\\\n|$)', 'mention'),\\n    (r'#task\\\\s+(.+?)(?:\\\\n|$)', 'hashtag'),\\n]<\/code><\/pre>\\n\\n<h4>Erstellte Task-Eigenschaften<\/h4>\\n<table>\\n    <tr><th>Eigenschaft<\/th><th>Wert<\/th><\/tr>\\n    <tr><td>type<\/td><td>ai_task<\/td><\/tr>\\n    <tr><td>status<\/td><td>pending<\/td><\/tr>\\n    <tr><td>created_by<\/td><td>$USER oder 'claude-code-hook'<\/td><\/tr>\\n    <tr><td>created_by_type<\/td><td>ai<\/td><\/tr>\\n<\/table>\\n\\n<h2>Installation<\/h2>\\n\\n<h4>1. Hook ausführbar machen<\/h4>\\n<pre><code>chmod +x \/var\/www\/tools\/ki-protokoll\/claude-hook\/task_hook.py<\/code><\/pre>\\n\\n<h4>2. Python-Abhängigkeiten<\/h4>\\n<pre><code>pip3 install pymysql<\/code><\/pre>\\n\\n<h4>3. Hook in settings.local.json registrieren<\/h4>\\n<pre><code># Füge den task_hook.py zu den UserPromptSubmit Hooks hinzu<\/code><\/pre>\\n\\n<h4>4. Testen<\/h4>\\n<pre><code># In Claude Code eingeben:\\n\\\"TODO: Test-Task erstellen\\\"\\n\\n# Prüfen:\\nphp \/var\/www\/tools\/ki-tasks\/cli.php list<\/code><\/pre>\\n\\n<h2>Fehlerbehandlung<\/h2>\\n\\n<p>Der Hook ist <strong>non-blocking<\/strong>. Fehler werden zu stderr geloggt, aber der Claude Code Workflow wird nicht unterbrochen.<\/p>\\n\\n<pre><code># Immer zurückgegeben:\\n{\\\"continue\\\": true}<\/code><\/pre>\\n\\n<h4>Debugging<\/h4>\\n<pre><code># Hook manuell testen\\necho '{\\\"hook_event_name\\\":\\\"UserPromptSubmit\\\",\\\"prompt\\\":\\\"TODO: Test\\\"}' | python3 \/var\/www\/tools\/ki-protokoll\/claude-hook\/task_hook.py\\n\\n# Logs prüfen (stderr)\\n# Task #123 created: Test...<\/code><\/pre>\\n\\n<h2>Erweiterungen<\/h2>\\n\\n<h4>Eigene Patterns hinzufügen<\/h4>\\n<pre><code># In task_hook.py\\nTASK_PATTERNS = [\\n    # ... bestehende Patterns ...\\n    (re.compile(r'FIXME:\\\\s*(.+?)(?:\\\\n|$)', re.IGNORECASE), 'fixme'),\\n    (re.compile(r'BUG:\\\\s*(.+?)(?:\\\\n|$)', re.IGNORECASE), 'bug'),\\n]<\/code><\/pre>\\n\\n<h2>Zusammenspiel mit anderen Hooks<\/h2>\\n\\n<table>\\n    <tr><th>Hook<\/th><th>Funktion<\/th><th>Event<\/th><\/tr>\\n    <tr><td>log_to_db.py<\/td><td>Protokolliert alle Events<\/td><td>Alle<\/td><\/tr>\\n    <tr><td>file_backup_hook.py<\/td><td>Backup vor Dateiänderungen<\/td><td>PreToolUse (Edit, Write)<\/td><\/tr>\\n    <tr><td>task_hook.py<\/td><td>Tasks aus Prompts erstellen<\/td><td>UserPromptSubmit<\/td><\/tr>\\n<\/table>\",\n    \"status\": \"published\",\n    \"sort_order\": 4,\n    \"depth\": 1,\n    \"created_at\": \"2025-12-20T11:13:58\",\n    \"updated_at\": \"2025-12-27T15:58:19\"\n  }\n}"
        }
    ]
}
← Vorheriger Zur Liste Nächster →