{
"event": "PreToolUse",
"tool_name": "mcp__mcp-docs__docs_get",
"tool_input": {
"path": "\/qualitaet\/code-hygiene-score\/faktoren"
}
}
{
"tool_response": [
{
"type": "text",
"text": "{\n \"success\": true,\n \"doc\": {\n \"id\": 136,\n \"parent_id\": 135,\n \"slug\": \"faktoren\",\n \"path\": \"\/qualitaet\/code-hygiene-score\/faktoren\",\n \"title\": \"Faktoren\",\n \"description\": \"Hygiene-Metriken die in den Score einfließen\",\n \"content\": \"\\n<p class=\\\"doc-meta\\\"><strong>Erstellt:<\/strong> 2025-12-25 | <strong>Aktualisiert:<\/strong> 2025-12-27<\/p>\\n<h2>Hygiene-Prinzip<\/h2>\\n<p>Der Code Hygiene Score misst <strong>Ordnung und Sauberkeit<\/strong>, nicht Architektur. Die Faktoren beantworten:<\/p>\\n<ul>\\n<li>Laufen Dateien aus dem Ruder?<\/li>\\n<li>Sind Verantwortlichkeiten erkennbar?<\/li>\\n<li>Gibt es offensichtliche Risiken?<\/li>\\n<\/ul>\\n\\n<h2>1. Größen-Hygiene<\/h2>\\n<p><em>„Dateien nicht ausufern lassen\\\"<\/em><\/p>\\n\\n<h3>1.1 Lines of Code (LOC)<\/h3>\\n<table>\\n<tr><th>Eigenschaft<\/th><th>Wert<\/th><\/tr>\\n<tr><td>Hygiene-Frage<\/td><td>Ist die Datei noch überschaubar?<\/td><\/tr>\\n<tr><td>Datenquelle<\/td><td>code_analysis.line_count<\/td><\/tr>\\n<tr><td>Sauber<\/td><td>≤ 100 Zeilen<\/td><\/tr>\\n<tr><td>Grenze<\/td><td>600 Zeilen<\/td><\/tr>\\n<\/table>\\n\\n<h3>1.2 Methoden-Anzahl<\/h3>\\n<table>\\n<tr><th>Eigenschaft<\/th><th>Wert<\/th><\/tr>\\n<tr><td>Hygiene-Frage<\/td><td>Hat die Klasse zu viele Aufgaben?<\/td><\/tr>\\n<tr><td>Datenquelle<\/td><td>code_analysis.functions<\/td><\/tr>\\n<tr><td>Sauber<\/td><td>≤ 5 Methoden<\/td><\/tr>\\n<tr><td>Grenze<\/td><td>20 Methoden<\/td><\/tr>\\n<\/table>\\n\\n<h3>1.3 Klassen pro Datei<\/h3>\\n<table>\\n<tr><th>Eigenschaft<\/th><th>Wert<\/th><\/tr>\\n<tr><td>Hygiene-Frage<\/td><td>Eine Datei = Eine Verantwortung?<\/td><\/tr>\\n<tr><td>Datenquelle<\/td><td>code_analysis.classes<\/td><\/tr>\\n<tr><td>Sauber<\/td><td>1 Klasse<\/td><\/tr>\\n<tr><td>Grenze<\/td><td>3 Klassen<\/td><\/tr>\\n<\/table>\\n\\n<h2>2. Kopplungs-Hygiene<\/h2>\\n<p><em>„Abhängigkeiten im Griff behalten\\\"<\/em><\/p>\\n\\n<h3>2.1 Dependencies<\/h3>\\n<table>\\n<tr><th>Eigenschaft<\/th><th>Wert<\/th><\/tr>\\n<tr><td>Hygiene-Frage<\/td><td>Wie viele externe Abhängigkeiten?<\/td><\/tr>\\n<tr><td>Datenquelle<\/td><td>code_analysis.uses (use-Statements)<\/td><\/tr>\\n<tr><td>Sauber<\/td><td>≤ 3 Dependencies<\/td><\/tr>\\n<tr><td>Grenze<\/td><td>20 Dependencies<\/td><\/tr>\\n<\/table>\\n<p><em>use-Statements sind ein pragmatischer Hygiene-Proxy. Nicht perfekt, aber messbar.<\/em><\/p>\\n\\n<h2>3. Sicherheits-Hygiene<\/h2>\\n<p><em>„Offensichtliche Risiken früh erkennen\\\"<\/em><\/p>\\n\\n<h3>3.1 Hardcoded Secrets<\/h3>\\n<table>\\n<tr><th>Eigenschaft<\/th><th>Wert<\/th><\/tr>\\n<tr><td>Hygiene-Frage<\/td><td>Liegen Geheimnisse offen im Code?<\/td><\/tr>\\n<tr><td>Erkennung<\/td><td>Regex: Passwörter, API-Keys, Tokens, IPs<\/td><\/tr>\\n<tr><td>Sauber<\/td><td>0 Funde<\/td><\/tr>\\n<tr><td>Kritisch<\/td><td>Jeder Fund = schwere Hygiene-Verletzung<\/td><\/tr>\\n<\/table>\\n<p><strong>Härtung:<\/strong> Bei Secrets → Score ≤ 20 (Hard Fail)<\/p>\\n\\n<h3>3.2 Magic Numbers<\/h3>\\n<table>\\n<tr><th>Eigenschaft<\/th><th>Wert<\/th><\/tr>\\n<tr><td>Hygiene-Frage<\/td><td>Sind Konstanten benannt?<\/td><\/tr>\\n<tr><td>Erkennung<\/td><td>Regex: 100, 1000, 60, 24, 365, etc.<\/td><\/tr>\\n<tr><td>Sauber<\/td><td>0 Funde<\/td><\/tr>\\n<tr><td>Ausnahme<\/td><td>Config-Dateien ignoriert<\/td><\/tr>\\n<\/table>\\n<p><em>Niedrig gewichtet. Lesbarkeit, nicht Sicherheit.<\/em><\/p>\\n\\n<h2>4. Statische Analyse (geplant)<\/h2>\\n<p><em>„Technische Schulden sichtbar machen\\\"<\/em><\/p>\\n\\n<h3>4.1 PHPStan Errors<\/h3>\\n<table>\\n<tr><th>Eigenschaft<\/th><th>Wert<\/th><\/tr>\\n<tr><td>Hygiene-Frage<\/td><td>Gibt es Typ-Fehler oder tote Pfade?<\/td><\/tr>\\n<tr><td>Status<\/td><td>Geplant (Level 5)<\/td><\/tr>\\n<tr><td>Sauber<\/td><td>0 Errors<\/td><\/tr>\\n<\/table>\\n<p><em>Ohne PHPStan bleibt Hygiene unvollständig, aber nicht falsch.<\/em><\/p>\\n\\n<h2>Zusammenfassung<\/h2>\\n<table>\\n<tr><th>Kategorie<\/th><th>Faktoren<\/th><th>Hygiene-Zweck<\/th><th>Status<\/th><\/tr>\\n<tr><td>Größe<\/td><td>LOC, Methoden, Klassen<\/td><td>Überschaubarkeit<\/td><td>✓<\/td><\/tr>\\n<tr><td>Kopplung<\/td><td>Dependencies<\/td><td>Änderbarkeit<\/td><td>✓<\/td><\/tr>\\n<tr><td>Sicherheit<\/td><td>Secrets, Magic Numbers<\/td><td>Risiko-Erkennung<\/td><td>✓<\/td><\/tr>\\n<tr><td>Statisch<\/td><td>PHPStan<\/td><td>Technische Schulden<\/td><td>○<\/td><\/tr>\\n<\/table>\",\n \"status\": \"published\",\n \"sort_order\": 1,\n \"depth\": 2,\n \"created_at\": \"2025-12-25T16:07:59\",\n \"updated_at\": \"2025-12-27T15:58:19\"\n }\n}"
}
]
}