{
"event": "PreToolUse",
"tool_name": "Bash",
"tool_input": {
"command": "cd \/var\/www\/dev.campus.systemische-tools.de && php -r \"\nrequire_once 'vendor\/autoload.php';\n\nuse Infrastructure\\CodeAnalysis\\CodeQualityChecker;\n\n\\$checker = new CodeQualityChecker();\n\\$results = \\$checker->scanDirectory('\/var\/www\/dev.campus.systemische-tools.de\/src');\n\n\\$totalFiles = count(\\$results);\n\\$totalIssues = 0;\n\\$issueTypes = [];\n\\$lowScoreFiles = [];\n\nforeach (\\$results as \\$file => \\$data) {\n \\$issues = \\$data['issues'] ?? [];\n \\$totalIssues += count(\\$issues);\n \n foreach (\\$issues as \\$issue) {\n \\$type = \\$issue['type'] ?? 'unknown';\n \\$issueTypes[\\$type] = (\\$issueTypes[\\$type] ?? 0) + 1;\n }\n \n if (\\$data['score'] < 80) {\n \\$lowScoreFiles[] = [\n 'file' => str_replace('\/var\/www\/dev.campus.systemische-tools.de\/', '', \\$file),\n 'score' => \\$data['score'],\n 'issues' => count(\\$issues)\n ];\n }\n}\n\necho \\\"=== Code Quality Scan Results ===\\n\\\";\necho \\\"Files scanned: \\$totalFiles\\n\\\";\necho \\\"Total issues: \\$totalIssues\\n\\\";\necho \\\"Average score: \\\" . round(array_sum(array_column(\\$results, 'score')) \/ \\$totalFiles, 1) . \\\"\\n\\n\\\";\n\necho \\\"=== Issues by Type ===\\n\\\";\narsort(\\$issueTypes);\nforeach (\\$issueTypes as \\$type => \\$count) {\n echo sprintf(\\\"%-25s %d\\n\\\", \\$type, \\$count);\n}\n\nif (count(\\$lowScoreFiles) > 0) {\n echo \\\"\\n=== Files with Score < 80 (\\\" . count(\\$lowScoreFiles) . \\\") ===\\n\\\";\n usort(\\$lowScoreFiles, fn(\\$a, \\$b) => \\$a['score'] <=> \\$b['score']);\n foreach (array_slice(\\$lowScoreFiles, 0, 15) as \\$f) {\n echo sprintf(\\\"Score %3d | %d issues | %s\\n\\\", \\$f['score'], \\$f['issues'], \\$f['file']);\n }\n}\n\"\n",
"description": "Re-scan all files for code quality issues"
}
}