Protokoll #5425
| ID | 5425 |
|---|---|
| Zeitstempel | 2025-12-22 22:21:27.949072 |
| 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,813 (Input: 0, Output: 0) |
| Dauer | 80 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_list",
"tool_input": {
"compact": false
}
}
Response
{
"tool_response": [
{
"type": "text",
"text": "{\n \"success\": true,\n \"contracts\": [\n {\n \"id\": 1,\n \"uuid\": \"33e181bd-07a0-435d-941d-b23474c41ab9\",\n \"name\": \"betriebsdokumentation-pruefung_v1.1\",\n \"version\": \"2.0\",\n \"status\": \"active\",\n \"yaml_content\": \"contract:\\n name: betriebsdokumentation\\n version: \\\"2.0\\\"\\n status: active\\n description: |\\n Validierung von Server- und Betriebsdokumentation.\\n Migriert auf Meta-Schema v1.0 am 22.12.2025.\\n\\n created: \\\"2025-12-20\\\"\\n author: system_generated_under_supervision\\n\\n scope:\\n paths:\\n - \\\"\/src\/View\/docs\/**\/*.php\\\"\\n excludes:\\n - \\\"**\/layout.php\\\"\\n - \\\"**\/partials\/**\\\"\\n\\n rules:\\n - id: path-existence\\n check_type: custom\\n script: \\\"\/opt\/scripts\/contract-validators\/path_existence.py\\\"\\n severity: critical\\n description: \\\"Dokumentierte Dateipfade müssen auf dem System existieren\\\"\\n\\n - id: command-validity\\n check_type: custom\\n script: \\\"\/opt\/scripts\/contract-validators\/command_validity.py\\\"\\n severity: critical\\n description: \\\"Dokumentierte Befehle müssen syntaktisch plausibel sein\\\"\\n\\n - id: required-breadcrumb\\n check_type: required_pattern\\n patterns:\\n - 'class=\\\"breadcrumb\\\"'\\n - \\\"nav.breadcrumb\\\"\\n in_files: \\\"docs\/**\/*.php\\\"\\n severity: major\\n description: \\\"Dokumentationsseiten müssen Breadcrumb haben\\\"\\n\\n - id: required-h1\\n check_type: required_pattern\\n patterns:\\n - \\\"<h1>\\\"\\n in_files: \\\"docs\/**\/*.php\\\"\\n severity: major\\n description: \\\"Dokumentationsseiten müssen h1 Titel haben\\\"\\n\\n - id: terminology-dienst\\n check_type: forbidden_pattern\\n patterns:\\n - \\\">Service<\\\"\\n - \\\">Command<\\\"\\n in_files: \\\"docs\/**\/*.php\\\"\\n exclude_files:\\n - \\\"**\/modul\/**\\\"\\n severity: minor\\n description: \\\"Bevorzuge 'Dienst' statt 'Service' im Fließtext\\\"\\n\\n enforcement:\\n on_violation: warn\\n\\n pass_threshold:\\n critical_max: 0\\n major_max: 2\\n minor_max: 5\\n\",\n \"scope_description\": \"\",\n \"created_at\": \"2025-12-20T10:59:58\",\n \"created_by\": \"migration\",\n \"updated_at\": \"2025-12-22T09:42:13\"\n },\n {\n \"id\": 9,\n \"uuid\": \"e5192b8b-7dc0-4a9d-9c98-a3ba37b7f1bc\",\n \"name\": \"code-quality-standards\",\n \"version\": \"2.0\",\n \"status\": \"active\",\n \"yaml_content\": \"contract:\\n name: code-quality-standards\\n version: \\\"2.0\\\"\\n status: active\\n description: |\\n Automatisch validierbare Code-Qualitätsstandards für das Campus-Projekt.\\n Erstellt im Rahmen des Code-Refactoring vom 22.12.2025.\\n Migriert auf Meta-Schema v1.0 am 22.12.2025.\\n\\n created: \\\"2025-12-22\\\"\\n author: claude\\n\\n scope:\\n paths:\\n - \\\"\/src\/**\/*.php\\\"\\n excludes:\\n - \\\"\/src\/View\/**\\\"\\n\\n rules:\\n - id: no-god-class\\n check_type: line_count\\n pattern: \\\"Controller\/*.php\\\"\\n max_lines: 500\\n severity: major\\n description: \\\"Controller dürfen max 500 LOC haben\\\"\\n\\n - id: no-sql-in-controller\\n check_type: forbidden_pattern\\n patterns:\\n - \\\"->query(\\\"\\n - \\\"->prepare(\\\"\\n - \\\"new PDO\\\"\\n - \\\"$this->db\\\"\\n in_files: \\\"Controller\/*.php\\\"\\n exclude_files:\\n - \\\"Framework\/\\\"\\n severity: critical\\n description: \\\"Controller dürfen keine direkten SQL-Queries enthalten\\\"\\n\\n - id: no-html-in-controller\\n check_type: forbidden_pattern\\n patterns:\\n - \\\"echo '<\\\"\\n - 'echo \\\"<'\\n in_files: \\\"Controller\/*.php\\\"\\n severity: minor\\n description: \\\"Controller dürfen kein HTML direkt ausgeben\\\"\\n\\n - id: use-notfound-method\\n check_type: forbidden_pattern\\n patterns:\\n - \\\"http_response_code(404)\\\"\\n in_files: \\\"Controller\/*.php\\\"\\n severity: major\\n description: \\\"Controller müssen notFound() statt http_response_code(404) nutzen\\\"\\n\\n - id: use-view-method\\n check_type: required_pattern\\n patterns:\\n - \\\"$this->view(\\\"\\n in_files: \\\"Controller\/*.php\\\"\\n severity: info\\n description: \\\"Controller sollten $this->view() für Rendering nutzen\\\"\\n\\n - id: typed-properties\\n check_type: forbidden_pattern\\n patterns:\\n - \\\"private $\\\"\\n - \\\"protected $\\\"\\n - \\\"public $\\\"\\n in_files: \\\"**\/*.php\\\"\\n exclude_files:\\n - \\\"View\/\\\"\\n severity: minor\\n description: \\\"Klassen-Properties sollten PHP 8+ Typen haben\\\"\\n\\n enforcement:\\n on_violation: block\\n hook: \\\"\/var\/www\/tools\/ki-protokoll\/claude-hook\/architecture_guard.py\\\"\\n\\n pass_threshold:\\n critical_max: 0\\n major_max: 2\\n minor_max: 5\\n\\n metrics:\\n target_phpstan_level: 7\\n max_controller_loc: 500\\n max_method_loc: 50\\n\",\n \"scope_description\": \"Code Quality Standards für src\/ Verzeichnis\",\n \"created_at\": \"2025-12-22T02:20:35\",\n \"created_by\": \"claude\",\n \"updated_at\": \"2025-12-22T09:41:17\"\n },\n {\n \"id\": 2,\n \"uuid\": \"4134c9b2-ee2f-4a2e-a466-8ceb5df87ade\",\n \"name\": \"CSS Contract\",\n \"version\": \"2.0\",\n \"status\": \"active\",\n \"yaml_content\": \"contract:\\n name: css-standards\\n version: \\\"2.0\\\"\\n status: active\\n description: |\\n CSS-Standards mit Fokus auf Accessibility (WCAG 2.1 AA).\\n Migriert auf Meta-Schema v1.0 am 22.12.2025.\\n\\n created: \\\"2025-12-20\\\"\\n author: migration\\n\\n scope:\\n paths:\\n - \\\"\/src\/View\/**\/*.php\\\"\\n - \\\"\/public\/css\/**\/*.css\\\"\\n\\n rules:\\n - id: contrast-normal-text\\n check_type: custom\\n script: \\\"\/opt\/scripts\/contract-validators\/color_contrast.py\\\"\\n args: [\\\"--min-ratio\\\", \\\"4.5\\\"]\\n severity: critical\\n description: \\\"Farbkontrast min. 4.5:1 für normalen Text (WCAG 1.4.3)\\\"\\n\\n - id: no-outline-none\\n check_type: forbidden_pattern\\n patterns:\\n - \\\"outline: none\\\"\\n - \\\"outline: 0\\\"\\n - \\\"outline:none\\\"\\n - \\\"outline:0\\\"\\n in_files: \\\"**\/*.css\\\"\\n severity: major\\n description: \\\"Focus-Styles niemals entfernen (WCAG 2.4.7)\\\"\\n\\n - id: no-important\\n check_type: forbidden_pattern\\n patterns:\\n - \\\"!important\\\"\\n in_files: \\\"**\/*.css\\\"\\n exclude_files:\\n - \\\"**\/utilities.css\\\"\\n severity: major\\n description: \\\"Kein !important außer für Utility-Klassen\\\"\\n\\n - id: code-block-colors\\n check_type: required_pattern\\n patterns:\\n - \\\"pre\\\"\\n - \\\"code\\\"\\n in_files: \\\"**\/*.css\\\"\\n severity: critical\\n description: \\\"Pre\/Code-Blöcke müssen Farben definieren\\\"\\n\\n - id: min-font-size\\n check_type: forbidden_pattern\\n patterns:\\n - \\\"font-size: 12px\\\"\\n - \\\"font-size: 11px\\\"\\n - \\\"font-size: 10px\\\"\\n - \\\"font-size: 0.75rem\\\"\\n - \\\"font-size: 0.7rem\\\"\\n in_files: \\\"**\/*.css\\\"\\n severity: major\\n description: \\\"Mindestschriftgröße 16px für Fließtext\\\"\\n\\n enforcement:\\n on_violation: warn\\n\\n pass_threshold:\\n critical_max: 0\\n major_max: 2\\n minor_max: 5\\n\",\n \"scope_description\": \"\",\n \"created_at\": \"2025-12-20T10:59:58\",\n \"created_by\": \"migration\",\n \"updated_at\": \"2025-12-22T09:42:13\"\n },\n {\n \"id\": 8,\n \"uuid\": \"fa19a7ba-5106-4feb-be67-660132e207ce\",\n \"name\": \"db-access-security-protocol\",\n \"version\": \"2.0\",\n \"status\": \"active\",\n \"yaml_content\": \"contract:\\n name: \\\"db-access-security-protocol\\\"\\n version: \\\"2.0\\\"\\n status: \\\"active\\\"\\n description: \\\"Mehrstufiges Sicherheitsprotokoll gegen direkte DB-Zugriffe\\\"\\n created: \\\"2025-12-20\\\"\\n author: \\\"mcp-contracts\\\"\\n\\n scope:\\n paths:\\n - \\\"\/src\/**\/*.php\\\"\\n - \\\"\/app\/**\/*.php\\\"\\n - \\\"\/opt\/scripts\/**\/*.py\\\"\\n - \\\"\/opt\/scripts\/**\/*.sh\\\"\\n excludes:\\n - \\\"\/tests\/**\\\"\\n\\n rules:\\n # Bash-Befehle blockieren\\n - id: \\\"no-mysql-user\\\"\\n check_type: \\\"forbidden_pattern\\\"\\n patterns:\\n - \\\"mysql -u\\\"\\n - \\\"mysql -p\\\"\\n - \\\"mysql --user\\\"\\n - \\\"mysql --password\\\"\\n in_files: \\\"**\/*.sh\\\"\\n severity: \\\"critical\\\"\\n description: \\\"Keine direkten mysql-Befehle mit User\/Passwort\\\"\\n\\n - id: \\\"no-mariadb-user\\\"\\n check_type: \\\"forbidden_pattern\\\"\\n patterns:\\n - \\\"mariadb -u\\\"\\n - \\\"mariadb -p\\\"\\n - \\\"mariadb --user\\\"\\n - \\\"mariadb --password\\\"\\n in_files: \\\"**\/*.sh\\\"\\n severity: \\\"critical\\\"\\n description: \\\"Keine direkten mariadb-Befehle mit User\/Passwort\\\"\\n\\n - id: \\\"no-mysqldump\\\"\\n check_type: \\\"forbidden_pattern\\\"\\n patterns:\\n - \\\"mysqldump\\\"\\n - \\\"mysqlimport\\\"\\n - \\\"mysqladmin\\\"\\n in_files: \\\"**\/*.sh\\\"\\n severity: \\\"critical\\\"\\n description: \\\"Keine mysql-Admin-Tools direkt ausführen\\\"\\n\\n - id: \\\"no-password-in-command\\\"\\n check_type: \\\"forbidden_pattern\\\"\\n patterns:\\n - \\\"--password=\\\"\\n - \\\"-p'\\\"\\n - '-p\\\"'\\n in_files: \\\"**\/*\\\"\\n severity: \\\"critical\\\"\\n description: \\\"Niemals Passwörter in Befehlen\\\"\\n\\n # PHP-Zugriffe\\n - id: \\\"no-pdo-in-controller\\\"\\n check_type: \\\"forbidden_pattern\\\"\\n patterns:\\n - \\\"new PDO(\\\"\\n - \\\"->query(\\\"\\n - \\\"->prepare(\\\"\\n in_files: \\\"Controller\/**\/*.php\\\"\\n severity: \\\"critical\\\"\\n description: \\\"Controller dürfen kein direktes PDO verwenden\\\"\\n\\n - id: \\\"pdo-only-in-infrastructure\\\"\\n check_type: \\\"dependency_check\\\"\\n forbidden_imports:\\n - \\\"PDO\\\"\\n in_files: \\\"Domain\/**\/*.php\\\"\\n severity: \\\"critical\\\"\\n description: \\\"Domain-Layer darf keine PDO-Abhängigkeit haben\\\"\\n\\n enforcement:\\n on_violation: \\\"block\\\"\\n hook: \\\"\/var\/www\/tools\/ki-protokoll\/claude-hook\/block_direct_db.py\\\"\\n\\n alternatives:\\n mcp_tools:\\n - tool: \\\"mcp__mcp-db__db_select\\\"\\n use_for: \\\"SELECT... [TRUNCATED-8e3ce9083c0769da]"
}
]
}