{
"assistant_response": "Ja, ein mehrschichtiger Ansatz ist am robustesten:\n\n---\n\n## Schicht 1: Passiver Context (CLAUDE.md)\n\n**Immer verfügbar, minimaler Aufwand**\n\n```markdown\n## Code-Intelligenz\n\nDas Projekt hat eine Code-Analyse-DB mit:\n- 143 Klassen, 425 Dependency-Links\n- Impact-Analyse verfügbar\n\nBei Refactoring\/Änderungen: Nutze mcp-code Tools.\n```\n\n→ Ich weiß, dass es existiert und wann ich es nutzen sollte.\n\n---\n\n## Schicht 2: Automatischer Context (Pre-Hooks)\n\n**Proaktiv, bei relevanten Aktionen**\n\n```\nhooks\/\n├── pre-edit-php.py # Bei PHP-Edit: Lade Dependents\n├── pre-explore.py # Bei Codebase-Fragen: Lade Stats\n```\n\n**pre-edit-php.py:**\n```python\n# Wenn ich eine PHP-Datei editiere:\n# 1. Finde FQCN aus Datei\n# 2. Query Dependents aus DB\n# 3. Injiziere: \"⚠️ Diese Klasse wird von X, Y, Z genutzt\"\n```\n\n→ Automatischer Schutz vor unbedachten Breaking Changes.\n\n---\n\n## Schicht 3: Aktive Abfrage (MCP-Server)\n\n**On-Demand, für tiefe Analyse**\n\n```\nmcp-code\/\n├── code_find(name) # Schnellsuche\n├── code_class(fqcn) # Klassen-Details\n├── code_dependents(fqcn) # Wer nutzt mich?\n├── code_dependencies(fqcn) # Wen nutze ich?\n├── code_impact(fqcn, change) # Was bricht bei Änderung?\n├── code_path(from, to) # Dependency-Pfad zwischen Klassen\n├── code_cycles() # Zirkuläre Dependencies finden\n```\n\n→ Tiefe Analyse wenn nötig, explizit aufrufbar.\n\n---\n\n## Schicht 4: Validierung (Contracts)\n\n**Post-hoc, Qualitätssicherung**\n\n```yaml\nname: code-change-safety\nversion: \"1.0\"\nscope: \"src\/**\/*.php\"\nrules:\n - id: breaking-change-check\n description: \"Änderungen an Interfaces prüfen\"\n pattern: \"interface.*\\\\{\"\n action: \"validate_no_signature_change\"\n \n - id: dependency-awareness\n description: \"Bei >5 Dependents: Warnung\"\n trigger: \"on_class_modify\"\n condition: \"dependents_count > 5\"\n action: \"require_confirmation\"\n```\n\n→ Automatische Validierung nach Änderungen.\n\n---\n\n## Zusammenspiel\n\n```\n┌─────────────────────────────────────────────────────────────┐\n│ User-Anfrage │\n│ \"Refactore ChatService\" │\n└─────────────────────────────────────────────────────────────┘\n │\n ▼\n┌─────────────────────────────────────────────────────────────┐\n│ Schicht 1: CLAUDE.md │\n│ → Ich weiß: Code-Analyse existiert, MCP-Tools verfügbar │\n└─────────────────────────────────────────────────────────────┘\n │\n ▼\n┌─────────────────────────────────────────────────────────────┐\n│ Schicht 2: Pre-Hook (automatisch) │\n│ → \"ChatService hat 12 Dependents: Controller, UseCases...\" │\n│ → Context wird injiziert BEVOR ich antworte │\n└─────────────────────────────────────────────────────────────┘\n │\n ▼\n┌─────────────────────────────────────────────────────────────┐\n│ Schicht 3: MCP-Tools (aktiv) │\n│ → code_impact(\"Infrastructure\\\\AI\\\\ChatService\") │\n│ → code_dependents() für jeden Typ │\n│ → Entscheidung: Safe refactor oder Breaking Change? │\n└─────────────────────────────────────────────────────────────┘\n │\n ▼\n┌─────────────────────────────────────────────────────────────┐\n│ Implementierung mit Wissen │\n│ → Änderungen durchführen │\n│ → Abhängige Dateien anpassen │\n└─────────────────────────────────────────────────────────────┘\n │\n ▼\n┌─────────────────────────────────────────────────────────────┐\n│ Schicht 4: Contract-Validierung (post-hoc) │\n│ → contracts_validate(\"code-change-safety\") │\n│ → PHPStan, DI-Check │\n│ → Alle Dependents noch funktional? │\n└─────────────────────────────────────────────────────────────┘\n```\n\n---\n\n## Implementierungs-Reihenfolge\n\n| Phase | Was | Warum zuerst |\n|-------|-----|--------------|\n| 1 | **MCP-Server `mcp-code`** | Fundament für alles andere |\n| 2 | **CLAUDE.md Update** | Sofort nutzbar, kein Code |\n| 3 | **Pre-Hook für Edit** | Automatischer Schutz |\n| 4 | **Contract** | Formalisierte Regeln |\n\n---\n\n## Bonus: Intelligente Eskalation\n\n```python\n# Pre-Hook Logik\ndependents = get_dependents(fqcn)\n\nif len(dependents) == 0:\n # Nichts tun, freie Fahrt\n pass\nelif len(dependents) <= 3:\n # Nur Info injizieren\n inject_context(f\"Hinweis: {len(dependents)} Dependents\")\nelif len(dependents) <= 10:\n # Warnung + Liste\n inject_context(f\"⚠️ {len(dependents)} Dependents: {names}\")\nelse:\n # Explizite Bestätigung fordern\n inject_context(f\"🛑 Kritisch: {len(dependents)} Dependents. Impact-Analyse empfohlen.\")\n```\n\n→ Aufwand proportional zum Risiko.\n\n---\n\nSoll ich mit Phase 1 (MCP-Server `mcp-code`) beginnen?"
}