Protokoll #4256
| ID | 4256 |
|---|---|
| Zeitstempel | 2025-12-22 09:41:27.977775 |
| Client | root |
| IP | Warning: Undefined array key "request_ip" in /var/www/dev.campus.systemische-tools.de/src/View/protokoll/show.php on line 13 Deprecated: htmlspecialchars(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/dev.campus.systemische-tools.de/src/View/protokoll/show.php on line 13 |
| Modell | claude-sonnet-4-20250514 |
| Status | completed |
| Tokens | 2,694 (Input: 0, Output: 0) |
| Dauer | 89 ms |
| Request-Zeit | Warning: Undefined array key "request_timestamp" in /var/www/dev.campus.systemische-tools.de/src/View/protokoll/show.php on line 18 |
| Response-Zeit | - |
Warning: Undefined array key "error_message" in /var/www/dev.campus.systemische-tools.de/src/View/protokoll/show.php on line 22
Request
{
"event": "PreToolUse",
"tool_name": "mcp__mcp-contracts__contracts_get",
"tool_input": {
"name": "layered-architecture-pruefung_v1.0"
}
}
Response
{
"tool_response": [
{
"type": "text",
"text": "{\n \"success\": true,\n \"contract\": {\n \"id\": 5,\n \"uuid\": \"d5b5cd24-8128-41b7-8d93-f94710a8ea9d\",\n \"name\": \"layered-architecture-pruefung_v1.0\",\n \"version\": \"1.0\",\n \"status\": \"active\",\n \"yaml_content\": \"# =============================================================================\\n# LAYERED ARCHITECTURE VALIDATION CONTRACT\\n# =============================================================================\\n# Validierung der Schichtenarchitektur (MVC in \/src, MVP in \/app)\\n# Version: 1.0.0\\n# Erstellt: 2025-12-20\\n# =============================================================================\\n\\nmeta:\\n document_type: architecture_validation_contract\\n normative: true\\n binding: mandatory\\n created: 2025-12-20\\n author: system_generated_under_supervision\\n based_on: layered_architecture_mvc_mvp_v1.2.0\\n\\nidentity:\\n name: layered_architecture_validation\\n version: 1.0.0\\n status: active\\n migration_plan: \/var\/www\/docs\/architecture\/migration-plan_mvc-to-layered.md\\n migrated_on: 2025-12-20\\n\\n# =============================================================================\\n# SCOPE (technisch definiert)\\n# =============================================================================\\nscope:\\n applies_to_paths:\\n - \/var\/www\/dev.campus.systemische-tools.de\/src\/**\/*.php\\n - \/var\/www\/dev.campus.systemische-tools.de\/app\/**\/*.php\\n\\n excludes_paths:\\n - \/var\/www\/dev.campus.systemische-tools.de\/tests\/**\\n - \/var\/www\/dev.campus.systemische-tools.de\/scripts\/**\\n - \/var\/www\/dev.campus.systemische-tools.de\/public\/**\\n - \/var\/www\/dev.campus.systemische-tools.de\/config\/**\\n - \/var\/www\/dev.campus.systemische-tools.de\/src\/View\/docs\/**\\n\\n file_types:\\n - .php\\n\\n platform:\\n language: PHP\\n version_min: 8.4\\n\\n# =============================================================================\\n# ARCHITEKTUR-DEFINITION\\n# =============================================================================\\narchitecture:\\n style: layered_architecture\\n\\n patterns:\\n src: mvc\\n app: mvp\\n\\n expected_directories:\\n src:\\n - \/src\/Domain\\n - \/src\/UseCases\\n - \/src\/Infrastructure\\n - \/src\/Controller\\n - \/src\/View\\n app:\\n - \/app\/Presenter\\n - \/app\/View\\n\\n# =============================================================================\\n# LAYER-DEFINITIONEN\\n# =============================================================================\\nlayers:\\n # === SRC (MVC) ===\\n src_domain:\\n path_pattern: \\\"\/src\/Domain\/**\/*.php\\\"\\n role: domain_logic\\n allowed:\\n - Fachliche Regeln\\n - Entities\\n - Value Objects\\n - Domain Events\\n forbidden:\\n - UI-Logik\\n - Interaktions-Logik\\n - Infrastructure-Zugriff\\n - use-Statements zu \/app\\n - use-Statements zu \/src\/Infrastructure\\n\\n src_use_cases:\\n path_pattern: \\\"\/src\/UseCases\/**\/*.php\\\"\\n role: domain_coordination\\n allowed:\\n - Orchestrierung von Domain-Operationen\\n - Interface-Definitionen für Infrastructure\\n forbidden:\\n - Eigene Fachlogik (gehört in Domain)\\n - UI-Logik\\n - Direkte Infrastructure-Implementierung\\n\\n src_infrastructure:\\n path_pattern: \\\"\/src\/Infrastructure\/**\/*.php\\\"\\n role: infrastructure_implementation\\n allowed:\\n - Repository-Implementierungen\\n - External Service Adapter\\n - Database Access\\n forbidden:\\n - Domain-Logik\\n - UI-Logik\\n must_implement: Interfaces aus \/src\/UseCases oder \/src\/Domain\\n\\n src_controller:\\n path_pattern: \\\"\/src\/Controller\/**\/*.php\\\"\\n role: request_handling\\n allowed:\\n - Use Case Orchestrierung\\n - Request\/Response Transformation\\n forbidden:\\n - Domain-Logik\\n - Infrastructure-Implementierung\\n - UI State Management\\n\\n src_view:\\n path_pattern: \\\"\/src\/View\/**\/*.php\\\"\\n role: output_templates\\n allowed:\\n - Statische HTML-Struktur\\n - Daten-Ausgabe\\n forbidden:\\n - UI-Logik\\n - Interaktions-Logik\\n - State Management\\n\\n # === APP (MVP) ===\\n app_presenter:\\n path_pattern: \\\"\/app\/Presenter\/**\/*.php\\\"\\n role: interaction_logic\\n allowed:\\n - Interaktions-Logik\\n - UI State Management\\n - UI Validation (syntaktisch)\\n - Aufrufe zu \/src\/UseCases\\n forbidden:\\n - Domain-Logik\\n - Semantische Validierung\\n - Direkter Infrastructure-Zugriff\\n\\n app_view:\\n path_pattern: \\\"\/app\/View\/**\/*.php\\\"\\n role: passive_view\\n allowed:\\n - Raw Event Forwarding\\n - Data Display\\n forbidden:\\n - Event Mapping\\n - Conditional Logic (außer Anzeige)\\n - State Management\\n - Aufrufe zu \/src\\n\\n# =============================================================================\\n# DEPENDENCY RULES\\n# =============================================================================\\ndependency_rules:\\n allowed_imports:\\n - from: \\\"\/app\/Presenter\/**\\\"\\n to: \\\"\/src\/UseCases\/**\\\"\\n reason: \\\"Presenter darf Use Cases aufrufen\\\"\\n\\n - from: \\\"\/src\/Controller\/**\\\"\\n to: \\\"\/src\/UseCases\/**\\\"\\n reason: \\\"Controller orchestriert Use Cases\\\"\\n\\n - from: \\\"\/src\/UseCases\/**\\\"\\n to: \\\"\/src\/Domain\/**\\\"\\n reason: \\\"Use Cases nutzen Domain\\\"\\n\\n - from: \\\"\/src\/Infrastructure\/**\\\"\\n to: \\\"\/src\/Domain\/**\\\"\\n reason: \\\"Infrastructure implementiert Domain-Interfaces\\\"\\n\\n forbidden_imports:\\n - from: \\\"\/src\/**\\\"\\n to: \\\"\/app\/**\\\"\\n severity: critical\\n reason: \\\"src darf nicht von app abhängen\\\"\\n\\n - from: \\\"\/app\/**\\\"\\n to: \\\"\/src\/Infrastructure\/**\\\"\\n severity: critical\\n reason: \\\"app darf nicht direkt auf Infrastructure zugreifen\\\"\\n\\n - from: \\\"\/app\/View\/**\\\"\\n to: \\\"\/app\/Presenter\/**\\\"\\n severity: critical\\n reason: \\\"View darf Presenter nicht importieren (passive view)\\\"\\n\\n - from: \\\"\/src\/Domain\/**\\\"\\n to: \\\"\/src\/Infrastructure\/**\\\"\\n severity: critical\\n reason: \\\"Domain darf nicht von Infrastructure abhängen\\\"\\n\\n cycles:\\n forbidden: true\\n severity: critical\\n\\n# =============================================================================\\n# VALIDATION FACTORS\\n# =============================================================================\\nvalidation_factors:\\n\\n directory_structure:\\n priority: 1\\n severity: critical\\n description: Erwartete Verzeichnisstruktur muss existieren\\n validation:\\n method: directory_existence_check\\n required_directories:\\n - \/src\/Domain\\n - \/src\/UseCases\\n - \/src\/Infrastructure\\n - \/app\/Presenter\\n\\n file_placement:\\n priority: 2\\n severity: critical\\n description: Dateien müssen im korrekten Layer liegen\\n validation:\\n method: path_role_validation\\n rules:\\n - \\\"*Presenter.php muss in \/app\/Presenter liegen\\\"\\n - \\\"*Controller.php muss in \/src\/Controller liegen\\\"\\n - \\\"*Repository.php muss in \/src\/Infrastructure liegen\\\"\\n - \\\"Entity\/*.php muss in \/src\/Domain liegen\\\"\\n\\n import_compliance:\\n priority: 3\\n severity: critical\\n description: Import-Statements müssen Dependency Rules einhalten\\n validation:\\n method: static_import_analysis\\n checks:\\n - Extrahiere alle use-Statements\\n - Mappe auf Layer\\n - Prüfe gegen allowed_imports\\n - Prüfe gegen forbidden_imports\\n\\n layer_logic_compliance:\\n priority: 4\\n severity: major\\n description: Code-Inhalte müssen Layer-Rolle entsprechen\\n validation:\\n method: code_pattern_analysis\\n checks:\\n - Domain enthält keine $_GET, $_POST, $_SESSION\\n - View enthält keine new-Statements für Services\\n - Presenter enthält keine SQL-Queries\\n\\n cycle_detection:\\n priority: 5\\n severity: critical\\n description: Keine zyklischen Abhängigkeiten zwischen Layern\\n validation:\\n method: dependency_graph_analysis\\n\\n# =============================================================================\\n# PROHIBITIONS (explizite Verbote)\\n# =============================================================================\\nprohibitions:\\n - name: presenter_in_src\\n pattern: \\\"\/src\/**\/Presenter*.php\\\"\\n severity: critical\\n message: \\\"Presenter gehören nach \/app\/Presenter, nicht nach \/src\\\"\\n\\n - name: controller_in_app\\n pattern: \\\"\/app\/**\/Controller*.php\\\"\\n severity: critical\\n message: \\\"Controller gehören nach \/src\/Controller, nicht nach \/app\\\"\\n\\n - name: domain_logic_in_app\\n indicators:\\n - \\\"Business rule implementations\\\"\\n - \\\"Entity definitions\\\"\\n - \\\"Value object definitions\\\"\\n severity: critical\\n message: \\\"Domain-Logik gehört nach \/src\/Domain\\\"\\n\\n - name: infrastructure_in_presenter\\n indicators:\\n - \\\"PDO usage\\\"\\n - \\\"file_get_contents\\\"\\n - \\\"curl calls\\\"\\n severity: critical\\n message: \\\"Presenter darf nicht direkt auf Infrastructure zugreifen\\\"\\n\\n# =============================================================================\\n# PASS THRESHOLD\\n# =============================================================================\\npass_threshold:\\n critical_violations_max: 0\\n major_violations_max: 2\\n minor_violations_max: 5\\n\\n outcome_logic:\\n - condition: \\\"critical_violations > 0\\\"\\n result: architecture_rejected\\n - condition: \\\"major_violations > 2\\\"\\n result: revision_required\\n - condition: \\\"all within limits\\\"\\n result: architecture_approved\\n\\n# =============================================================================\\n# ENFORCEMENT\\n# =============================================================================\\nenforcement:\\n on_new_file:\\n rule: \\\"Datei muss in korrektem Layer-Verzeichnis liegen\\\"\\n action: \\\"BLOCKIERT bei falschem Pfad\\\"\\n\\n on_import_change:\\n rule: \\\"Neue Imports müssen Dependency Rules einhalten\\\"\\n action: \\\"BLOCKIERT bei forbidden im... [TRUNCATED-a99344209777bb7e]"
}
]
}