{
"event": "PostToolUse",
"raw_data": {
"session_id": "f0f145c4-ac1d-417a-b15b-271983ae648b",
"transcript_path": "\/root\/.claude\/projects\/-var-www\/f0f145c4-ac1d-417a-b15b-271983ae648b.jsonl",
"cwd": "\/var\/www\/dev.campus.systemische-tools.de",
"permission_mode": "acceptEdits",
"hook_event_name": "PostToolUse",
"tool_name": "Read",
"tool_input": {
"file_path": "\/var\/www\/dev.campus.systemische-tools.de\/src\/View\/docs\/code-show.php"
},
"tool_response": {
"type": "text",
"file": {
"filePath": "\/var\/www\/dev.campus.systemische-tools.de\/src\/View\/docs\/code-show.php",
"content": "<?php\n\ndeclare(strict_types=1);\n\n\/\/ @responsibility: View für Code-Analyse-Detailansicht (KISS)\n\nob_start();\n$shortPath = str_replace('\/var\/www\/dev.campus.systemische-tools.de\/', '', $file['file_path']);\n$qualityGrade = $file['quality_grade'] ?? null;\n$qualityIssues = json_decode($file['issues_json'] ?? '[]', true) ?: [];\n$gradeClass = match ($qualityGrade) {\n 'A' => 'badge--success',\n 'B' => 'badge--info',\n 'C' => 'badge--warning',\n 'D', 'F' => 'badge--danger',\n default => 'badge--secondary',\n};\n?>\n\n<nav class=\"breadcrumb\">\n <a href=\"\/docs\/code\">Code-Analyse<\/a> »\n <span><?= htmlspecialchars($file['file_name']) ?><\/span>\n<\/nav>\n\n<h1><?= htmlspecialchars($file['file_name']) ?><\/h1>\n\n<?php if ($file['parse_error']): ?>\n<div class=\"alert alert--danger\" style=\"margin-bottom: 1rem;\">\n <strong>Parse-Fehler:<\/strong> <?= htmlspecialchars($file['parse_error']) ?>\n<\/div>\n<?php endif; ?>\n\n<ul style=\"list-style: none; padding: 0; margin: 0 0 1.5rem 0; font-size: 0.9rem;\">\n <li><strong>Pfad:<\/strong> <code><?= htmlspecialchars($shortPath) ?><\/code><\/li>\n <li><strong>Namespace:<\/strong> <?= htmlspecialchars($file['namespace'] ?? '-') ?><\/li>\n <li><strong>Zeilen:<\/strong> <?= number_format($file['line_count']) ?> | <strong>Größe:<\/strong> <?= number_format($file['file_size']) ?> Bytes<\/li>\n <li><strong>Geändert:<\/strong> <?= htmlspecialchars($file['modified_at']) ?> | <strong>Gescannt:<\/strong> <?= htmlspecialchars($file['scanned_at']) ?><\/li>\n<\/ul>\n\n<?php if ($qualityGrade): ?>\n<h2>Code Quality <span class=\"badge <?= $gradeClass ?>\"><?= $qualityGrade ?><\/span><\/h2>\n<ul style=\"list-style: none; padding: 0; margin: 0 0 1.5rem 0; font-size: 0.9rem;\">\n <li><strong>Complexity Score:<\/strong> <?= $file['complexity_score'] ?? 0 ?><\/li>\n <li><strong>LOC Score:<\/strong> <?= $file['loc_score'] ?? 0 ?><\/li>\n <li><strong>Dependency Score:<\/strong> <?= $file['dependency_score'] ?? 0 ?><\/li>\n <li><strong>Hardcoded:<\/strong> <?= $file['hardcoded_count'] ?? 0 ?><\/li>\n<\/ul>\n\n<?php if (!empty($qualityIssues)): ?>\n<h3>Issues <span class=\"badge badge--danger\"><?= count($qualityIssues) ?><\/span><\/h3>\n<table class=\"data-table\">\n <thead>\n <tr>\n <th>Zeile<\/th>\n <th>Typ<\/th>\n <th>Beschreibung<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <?php foreach ($qualityIssues as $issue): ?>\n <tr>\n <td><?= $issue['line'] ?? '-' ?><\/td>\n <td><span class=\"badge badge--warning\"><?= htmlspecialchars($issue['type'] ?? '') ?><\/span><\/td>\n <td><?= htmlspecialchars($issue['message'] ?? '') ?><\/td>\n <\/tr>\n <?php endforeach; ?>\n <\/tbody>\n<\/table>\n<?php else: ?>\n<p style=\"color: var(--color-success);\">Keine Issues gefunden.<\/p>\n<?php endif; ?>\n<?php endif; ?>\n\n<?php\n$totalDeps = count($uses) + ($extendsClass ? 1 : 0) + count($implements) + count($traits) + count($constructorDeps);\n?>\n<?php if ($totalDeps > 0): ?>\n<h2>Dependencies <span class=\"badge badge--info\"><?= $totalDeps ?><\/span><\/h2>\n<ul style=\"list-style: none; padding: 0; margin: 0 0 1.5rem 0; font-size: 0.9rem; font-family: monospace;\">\n <?php if ($extendsClass): ?>\n <li><span class=\"badge badge--warning\">extends<\/span> <?= htmlspecialchars($extendsClass) ?><\/li>\n <?php endif; ?>\n <?php foreach ($implements as $iface): ?>\n <li><span class=\"badge badge--info\">implements<\/span> <?= htmlspecialchars($iface) ?><\/li>\n <?php endforeach; ?>\n <?php foreach ($traits as $trait): ?>\n <li><span class=\"badge badge--success\">trait<\/span> <?= htmlspecialchars($trait) ?><\/li>\n <?php endforeach; ?>\n <?php foreach ($constructorDeps as $dep): ?>\n <li><span class=\"badge badge--primary\">constructor<\/span> <?= htmlspecialchars($dep) ?><\/li>\n <?php endforeach; ?>\n <?php foreach ($uses as $use): ?>\n <li><span class=\"badge\">use<\/span> <?= htmlspecialchars($use) ?><\/li>\n <?php endforeach; ?>\n<\/ul>\n<?php endif; ?>\n\n<?php if (!empty($classes)): ?>\n<h2>Klassen <span class=\"badge badge--info\"><?= count($classes) ?><\/span><\/h2>\n<ul style=\"list-style: none; padding: 0; margin: 0 0 1.5rem 0; font-size: 0.9rem;\">\n <?php foreach ($classes as $class): ?>\n <li>\n <code><?= htmlspecialchars($class['name']) ?><\/code>\n <span class=\"badge badge--<?= $class['type'] === 'interface' ? 'warning' : ($class['type'] === 'trait' ? 'info' : 'default') ?>\"><?= $class['type'] ?><\/span>\n <small style=\"color: var(--text-muted);\">Zeile <?= $class['line'] ?><\/small>\n <\/li>\n <?php endforeach; ?>\n<\/ul>\n<?php endif; ?>\n\n<?php if (!empty($functions)): ?>\n<h2>Funktionen <span class=\"badge badge--success\"><?= count($functions) ?><\/span><\/h2>\n<ul style=\"list-style: none; padding: 0; margin: 0 0 1.5rem 0; font-size: 0.9rem;\">\n <?php foreach ($functions as $func): ?>\n <li>\n <code><?= htmlspecialchars($func['name']) ?>()<\/code>\n <?php if ($func['visibility']): ?>\n <span class=\"badge badge--<?= $func['visibility'] === 'private' ? 'danger' : ($func['visibility'] === 'protected' ? 'warning' : 'success') ?>\"><?= $func['visibility'] ?><\/span>\n <?php endif; ?>\n <small style=\"color: var(--text-muted);\">Zeile <?= $func['line'] ?><\/small>\n <\/li>\n <?php endforeach; ?>\n<\/ul>\n<?php endif; ?>\n\n<?php if (!empty($dependents)): ?>\n<h2>Verwendet von <span class=\"badge badge--warning\"><?= count($dependents) ?><\/span><\/h2>\n<ul style=\"list-style: none; padding: 0; margin: 0 0 1.5rem 0; font-size: 0.9rem;\">\n <?php foreach ($dependents as $dep): ?>\n <li>\n <a href=\"\/docs\/code\/<?= $dep['id'] ?>\"><?= htmlspecialchars($dep['file_name']) ?><\/a>\n <span class=\"badge badge--<?= match($dep['dependency_type']) {\n 'extends' => 'warning',\n 'implements' => 'info',\n 'constructor' => 'primary',\n default => 'default'\n } ?>\"><?= $dep['dependency_type'] ?><\/span>\n <\/li>\n <?php endforeach; ?>\n<\/ul>\n<?php endif; ?>\n\n<?php if (!empty($backupHistory)): ?>\n<h2>Versionen <span class=\"badge badge--secondary\"><?= count($backupHistory) ?><\/span><\/h2>\n<ul style=\"list-style: none; padding: 0; margin: 0 0 1.5rem 0; font-size: 0.9rem;\">\n <?php foreach ($backupHistory as $backup): ?>\n <li style=\"margin-bottom: 0.5rem;\">\n <a href=\"\/backup-restore\/<?= $backup['id'] ?>\">v<?= $backup['version'] ?><\/a>\n <small style=\"color: var(--text-muted);\">\n <?= htmlspecialchars(substr($backup['changed_at'], 0, 16)) ?>\n | <?= htmlspecialchars($backup['changed_by']) ?>\n | <?= htmlspecialchars($backup['change_type']) ?>\n <\/small>\n <?php if ($backup['reason']): ?>\n <br><small style=\"color: var(--text-muted); margin-left: 3rem;\"><?= htmlspecialchars(substr($backup['reason'], 0, 80)) ?><?= strlen($backup['reason']) > 80 ? '...' : '' ?><\/small>\n <?php endif; ?>\n <\/li>\n <?php endforeach; ?>\n<\/ul>\n<?php endif; ?>\n\n<h2>Code<\/h2>\n<?php if (!empty($file['file_content'])): ?>\n<pre style=\"background: #1e1e1e; color: #d4d4d4; padding: 1rem; border-radius: 8px; overflow-x: auto; font-size: 0.85rem; line-height: 1.5;\"><code><?= htmlspecialchars($file['file_content']) ?><\/code><\/pre>\n<?php else: ?>\n<p style=\"color: var(--text-muted);\">Kein Inhalt verfügbar - Scan erforderlich.<\/p>\n<?php endif; ?>\n\n<div style=\"margin-top: 2rem;\">\n <a href=\"\/docs\/code\" class=\"btn btn--secondary\">← Übersicht<\/a>\n <?php if (!empty($classes)): ?>\n <a href=\"\/docs\/code\/<?= $file['id'] ?>\/graph\" class=\"btn btn--primary\">Graph<\/a>\n <?php endif; ?>\n<\/div>\n\n<?php $content = ob_get_clean(); ?>\n<?php require VIEW_PATH . '\/layout.php'; ?>\n",
"numLines": 178,
"startLine": 1,
"totalLines": 178
}
},
"tool_use_id": "toolu_01KmALJ9c4G4Jzjw6fdkEu66"
}
}