Protokoll #10933

ID10933
Zeitstempel2025-12-23 16:09:46.150680
Clientroot
IP145.224.96.190
Modellclaude-sonnet-4-20250514
Statuscompleted
Tokens1,305 (Input: 16, Output: 1,289)
Dauer30581 ms
Request-Zeit2025-12-23 16:09:46.150680
Response-Zeit2025-12-23 16:10:16.732099

Request

{
    "event": "UserPromptSubmit",
    "prompt": "mehrschichtiger ansatz?"
}

Response

{
    "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?"
}
← Vorheriger Zur Liste Nächster →