{
"event": "PreToolUse",
"tool_name": "mcp__mcp-tasks__tasks_create",
"tool_input": {
"title": "Code-Intelligenz: Pre-Hook für automatischen Dependency-Context",
"description": "## Ziel\nPre-Hook der bei PHP-Edits automatisch Dependency-Informationen injiziert.\n\n## Voraussetzung\n- Task #271 (MCP-Server mcp-code) muss abgeschlossen sein\n\n## Implementierung\n\n### Neues Modul: \/var\/www\/tools\/ki-protokoll\/claude-hook\/quality\/code_context.py\n\n```python\n\"\"\"\nCode Context Injection - Fügt Dependency-Info bei PHP-Edits hinzu.\n\nWird von hook_dispatcher.py aufgerufen.\n\"\"\"\n\ndef get_context(file_path: str) -> dict | None:\n \"\"\"\n Ermittelt Dependency-Context für eine PHP-Datei.\n \n Returns:\n None wenn keine relevanten Infos\n dict mit context_message wenn relevant\n \"\"\"\n # 1. FQCN aus file_path ermitteln\n # 2. Dependents aus DB abfragen\n # 3. Context-Message generieren basierend auf Risiko\n pass\n\ndef format_context_message(fqcn: str, dependents: list) -> str:\n \"\"\"Formatiert Context-Message basierend auf Risiko-Level.\"\"\"\n count = len(dependents)\n \n if count == 0:\n return None # Kein Context nötig\n \n if count <= 3:\n return f\"ℹ️ {fqcn} wird von {count} Dateien genutzt.\"\n \n if count <= 10:\n names = \", \".join(d[\"file_name\"] for d in dependents[:5])\n return f\"⚠️ {fqcn} hat {count} Dependents: {names}...\"\n \n return f\"🛑 {fqcn} hat {count} Dependents. Impact-Analyse empfohlen.\"\n```\n\n### Anpassung hook_dispatcher.py\n\nNeuer Hook-Typ: `context` (neben `pre` und `post`)\n- Wird bei Edit\/Write auf PHP aufgerufen\n- Gibt Context-Info zurück (kein Block)\n- Format: `{\"context\": \"message\"}` oder `{}`\n\n### Integration in Claude Code Settings\n\n```json\n{\n \"hooks\": {\n \"PreToolUse\": [\n {\n \"matcher\": {\"tool_name\": \"Edit|Write\"},\n \"command\": \"\/var\/www\/tools\/ki-protokoll\/claude-hook\/hook_dispatcher.py context\"\n }\n ]\n }\n}\n```\n\n## Qualitätskriterien\n- [ ] Kein Block, nur Info-Injection\n- [ ] Performance: Max 100ms für DB-Query\n- [ ] Graceful Degradation bei DB-Fehler\n- [ ] Logging der Context-Injections\n- [ ] Risiko-Eskalation implementiert\n\n## Abhängigkeiten\n- Task #271 (MCP-Server mcp-code)",
"type": "ai_task"
}
}
{
"tool_response": [
{
"type": "text",
"text": "{\n \"success\": true,\n \"task\": {\n \"id\": 273,\n \"uuid\": \"27bfd7b8-822d-4a50-86fe-99b6c0f6734a\",\n \"title\": \"Code-Intelligenz: Pre-Hook für automatischen Dependency-Context\",\n \"description\": \"## Ziel\\nPre-Hook der bei PHP-Edits automatisch Dependency-Informationen injiziert.\\n\\n## Voraussetzung\\n- Task #271 (MCP-Server mcp-code) muss abgeschlossen sein\\n\\n## Implementierung\\n\\n### Neues Modul: \/var\/www\/tools\/ki-protokoll\/claude-hook\/quality\/code_context.py\\n\\n```python\\n\\\"\\\"\\\"\\nCode Context Injection - Fügt Dependency-Info bei PHP-Edits hinzu.\\n\\nWird von hook_dispatcher.py aufgerufen.\\n\\\"\\\"\\\"\\n\\ndef get_context(file_path: str) -> dict | None:\\n \\\"\\\"\\\"\\n Ermittelt Dependency-Context für eine PHP-Datei.\\n \\n Returns:\\n None wenn keine relevanten Infos\\n dict mit context_message wenn relevant\\n \\\"\\\"\\\"\\n # 1. FQCN aus file_path ermitteln\\n # 2. Dependents aus DB abfragen\\n # 3. Context-Message generieren basierend auf Risiko\\n pass\\n\\ndef format_context_message(fqcn: str, dependents: list) -> str:\\n \\\"\\\"\\\"Formatiert Context-Message basierend auf Risiko-Level.\\\"\\\"\\\"\\n count = len(dependents)\\n \\n if count == 0:\\n return None # Kein Context nötig\\n \\n if count <= 3:\\n return f\\\"ℹ️ {fqcn} wird von {count} Dateien genutzt.\\\"\\n \\n if count <= 10:\\n names = \\\", \\\".join(d[\\\"file_name\\\"] for d in dependents[:5])\\n return f\\\"⚠️ {fqcn} hat {count} Dependents: {names}...\\\"\\n \\n return f\\\"🛑 {fqcn} hat {count} Dependents. Impact-Analyse empfohlen.\\\"\\n```\\n\\n### Anpassung hook_dispatcher.py\\n\\nNeuer Hook-Typ: `context` (neben `pre` und `post`)\\n- Wird bei Edit\/Write auf PHP aufgerufen\\n- Gibt Context-Info zurück (kein Block)\\n- Format: `{\\\"context\\\": \\\"message\\\"}` oder `{}`\\n\\n### Integration in Claude Code Settings\\n\\n```json\\n{\\n \\\"hooks\\\": {\\n \\\"PreToolUse\\\": [\\n {\\n \\\"matcher\\\": {\\\"tool_name\\\": \\\"Edit|Write\\\"},\\n \\\"command\\\": \\\"\/var\/www\/tools\/ki-protokoll\/claude-hook\/hook_dispatcher.py context\\\"\\n }\\n ]\\n }\\n}\\n```\\n\\n## Qualitätskriterien\\n- [ ] Kein Block, nur Info-Injection\\n- [ ] Performance: Max 100ms für DB-Query\\n- [ ] Graceful Degradation bei DB-Fehler\\n- [ ] Logging der Context-Injections\\n- [ ] Risiko-Eskalation implementiert\\n\\n## Abhängigkeiten\\n- Task #271 (MCP-Server mcp-code)\",\n \"type\": \"ai_task\",\n \"status\": \"pending\",\n \"created_by\": \"mcp-tasks\",\n \"created_by_type\": \"ai\",\n \"parent_task_id\": null,\n \"due_date\": null,\n \"created_at\": \"2025-12-23T16:13:13.012515\",\n \"updated_at\": \"2025-12-23T16:13:13.012518\",\n \"completed_at\": null,\n \"metadata\": {}\n },\n \"message\": \"Task #273 created\"\n}"
}
]
}