{
"event": "PreToolUse",
"tool_name": "mcp__mcp-contracts__contracts_create",
"tool_input": {
"name": "code-quality-standards",
"version": "1.0",
"scope_description": "Code Quality Standards für src\/ Verzeichnis",
"yaml_content": "name: Code Quality Standards\nversion: \"1.0\"\nscope: src\/\ndescription: |\n Automatisch validierbare Code-Qualitätsstandards für das Campus-Projekt.\n Erstellt im Rahmen des Code-Refactoring vom 22.12.2025.\n\nrules:\n - id: no-god-class\n description: Controller dürfen max 500 LOC haben (reduziert von ursprünglich 800+)\n check_type: line_count\n pattern: \"Controller\/*.php\"\n max_lines: 500\n severity: warning\n\n - id: repository-pattern\n description: Controller dürfen keine direkten SQL-Queries enthalten\n check_type: forbidden_pattern\n forbidden_patterns:\n - \"->query(\"\n - \"->prepare(\"\n in_files: \"Controller\/*.php\"\n exclude_files:\n - \"Framework\/\"\n severity: error\n\n - id: no-html-in-controller\n description: Controller dürfen kein HTML direkt ausgeben (nutze View-Partials)\n check_type: forbidden_pattern\n forbidden_patterns:\n - \"echo '<\"\n - 'echo \"<'\n in_files: \"Controller\/*.php\"\n severity: warning\n\n - id: use-notfound-method\n description: Controller müssen notFound() statt http_response_code(404) nutzen\n check_type: forbidden_pattern\n forbidden_patterns:\n - \"http_response_code(404)\"\n in_files: \"Controller\/*.php\"\n severity: error\n\n - id: use-view-method\n description: Controller sollten $this->view() für Rendering nutzen\n check_type: required_pattern\n required_patterns:\n - \"$this->view(\"\n in_files: \"Controller\/*.php\"\n severity: info\n\n - id: usecase-layer\n description: Business-Logik sollte in UseCases sein, nicht in Controllern\n check_type: recommendation\n recommendation: |\n Controller sollten UseCases aufrufen statt Business-Logik zu enthalten.\n Siehe src\/UseCases\/ für Beispiele.\n severity: info\n\n - id: typed-properties\n description: Alle Klassen-Properties sollten PHP 8+ Typen haben\n check_type: code_style\n pattern: \"private $\"\n recommended: \"private TypeName $\"\n severity: warning\n\nmetrics:\n target_phpstan_level: 5\n target_coverage: 0\n max_controller_loc: 500\n max_method_loc: 50\n\ncreated_by: Claude Code Refactoring Session\ncreated_at: 2025-12-22",
"status": "active",
"created_by": "claude"
}
}
{
"tool_response": [
{
"type": "text",
"text": "{\n \"success\": true,\n \"contract\": {\n \"id\": 9,\n \"uuid\": \"e5192b8b-7dc0-4a9d-9c98-a3ba37b7f1bc\",\n \"name\": \"code-quality-standards\",\n \"version\": \"1.0\",\n \"status\": \"active\",\n \"yaml_content\": \"name: Code Quality Standards\\nversion: \\\"1.0\\\"\\nscope: src\/\\ndescription: |\\n Automatisch validierbare Code-Qualitätsstandards für das Campus-Projekt.\\n Erstellt im Rahmen des Code-Refactoring vom 22.12.2025.\\n\\nrules:\\n - id: no-god-class\\n description: Controller dürfen max 500 LOC haben (reduziert von ursprünglich 800+)\\n check_type: line_count\\n pattern: \\\"Controller\/*.php\\\"\\n max_lines: 500\\n severity: warning\\n\\n - id: repository-pattern\\n description: Controller dürfen keine direkten SQL-Queries enthalten\\n check_type: forbidden_pattern\\n forbidden_patterns:\\n - \\\"->query(\\\"\\n - \\\"->prepare(\\\"\\n in_files: \\\"Controller\/*.php\\\"\\n exclude_files:\\n - \\\"Framework\/\\\"\\n severity: error\\n\\n - id: no-html-in-controller\\n description: Controller dürfen kein HTML direkt ausgeben (nutze View-Partials)\\n check_type: forbidden_pattern\\n forbidden_patterns:\\n - \\\"echo '<\\\"\\n - 'echo \\\"<'\\n in_files: \\\"Controller\/*.php\\\"\\n severity: warning\\n\\n - id: use-notfound-method\\n description: Controller müssen notFound() statt http_response_code(404) nutzen\\n check_type: forbidden_pattern\\n forbidden_patterns:\\n - \\\"http_response_code(404)\\\"\\n in_files: \\\"Controller\/*.php\\\"\\n severity: error\\n\\n - id: use-view-method\\n description: Controller sollten $this->view() für Rendering nutzen\\n check_type: required_pattern\\n required_patterns:\\n - \\\"$this->view(\\\"\\n in_files: \\\"Controller\/*.php\\\"\\n severity: info\\n\\n - id: usecase-layer\\n description: Business-Logik sollte in UseCases sein, nicht in Controllern\\n check_type: recommendation\\n recommendation: |\\n Controller sollten UseCases aufrufen statt Business-Logik zu enthalten.\\n Siehe src\/UseCases\/ für Beispiele.\\n severity: info\\n\\n - id: typed-properties\\n description: Alle Klassen-Properties sollten PHP 8+ Typen haben\\n check_type: code_style\\n pattern: \\\"private $\\\"\\n recommended: \\\"private TypeName $\\\"\\n severity: warning\\n\\nmetrics:\\n target_phpstan_level: 5\\n target_coverage: 0\\n max_controller_loc: 500\\n max_method_loc: 50\\n\\ncreated_by: Claude Code Refactoring Session\\ncreated_at: 2025-12-22\",\n \"scope_description\": \"Code Quality Standards für src\/ Verzeichnis\",\n \"created_at\": \"2025-12-22T02:20:35.588611\",\n \"created_by\": \"claude\",\n \"updated_at\": \"2025-12-22T02:20:35.588614\"\n },\n \"message\": \"Contract code-quality-standards v1.0 created with ID 9\"\n}"
}
]
}