{
"event": "PreToolUse",
"tool_name": "mcp__mcp-docs__docs_create",
"tool_input": {
"title": "Faktoren",
"slug": "faktoren",
"parent_id": 131,
"status": "published",
"description": "Metriken die in den Code Quality Score einfließen",
"content": "<h2>Übersicht<\/h2>\n<p>Der Code Quality Score basiert auf folgenden Faktoren, gruppiert nach Kategorie.<\/p>\n\n<h2>1. Größenmetriken<\/h2>\n\n<h3>1.1 Lines of Code (LOC)<\/h3>\n<table>\n<tr><th>Eigenschaft<\/th><th>Wert<\/th><\/tr>\n<tr><td>Beschreibung<\/td><td>Anzahl der Codezeilen in der Datei<\/td><\/tr>\n<tr><td>Datenquelle<\/td><td>code_analysis.line_count<\/td><\/tr>\n<tr><td>Optimum<\/td><td>≤ 100 Zeilen<\/td><\/tr>\n<tr><td>Maximum<\/td><td>600 Zeilen (darüber = 0 Punkte)<\/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>Beschreibung<\/td><td>Anzahl der Funktionen\/Methoden pro Datei<\/td><\/tr>\n<tr><td>Datenquelle<\/td><td>code_analysis.functions (JSON Array)<\/td><\/tr>\n<tr><td>Optimum<\/td><td>≤ 5 Methoden<\/td><\/tr>\n<tr><td>Maximum<\/td><td>20 Methoden (darüber = 0 Punkte)<\/td><\/tr>\n<\/table>\n\n<h3>1.3 Klassen-Anzahl<\/h3>\n<table>\n<tr><th>Eigenschaft<\/th><th>Wert<\/th><\/tr>\n<tr><td>Beschreibung<\/td><td>Anzahl der Klassen pro Datei<\/td><\/tr>\n<tr><td>Datenquelle<\/td><td>code_analysis.classes (JSON Array)<\/td><\/tr>\n<tr><td>Optimum<\/td><td>1 Klasse pro Datei<\/td><\/tr>\n<tr><td>Maximum<\/td><td>3 Klassen (darüber = 0 Punkte)<\/td><\/tr>\n<\/table>\n\n<h2>2. Komplexitätsmetriken<\/h2>\n\n<h3>2.1 Cyclomatic Complexity<\/h3>\n<table>\n<tr><th>Eigenschaft<\/th><th>Wert<\/th><\/tr>\n<tr><td>Beschreibung<\/td><td>Anzahl unabhängiger Pfade durch den Code<\/td><\/tr>\n<tr><td>Datenquelle<\/td><td>Noch nicht implementiert<\/td><\/tr>\n<tr><td>Optimum<\/td><td>≤ 5 pro Methode<\/td><\/tr>\n<tr><td>Maximum<\/td><td>20 pro Methode<\/td><\/tr>\n<\/table>\n\n<h3>2.2 Nesting Depth<\/h3>\n<table>\n<tr><th>Eigenschaft<\/th><th>Wert<\/th><\/tr>\n<tr><td>Beschreibung<\/td><td>Maximale Verschachtelungstiefe (if\/for\/while)<\/td><\/tr>\n<tr><td>Datenquelle<\/td><td>Noch nicht implementiert<\/td><\/tr>\n<tr><td>Optimum<\/td><td>≤ 3 Ebenen<\/td><\/tr>\n<tr><td>Maximum<\/td><td>6 Ebenen<\/td><\/tr>\n<\/table>\n\n<h2>3. Kopplungsmetriken<\/h2>\n\n<h3>3.1 Dependencies (Afferent Coupling)<\/h3>\n<table>\n<tr><th>Eigenschaft<\/th><th>Wert<\/th><\/tr>\n<tr><td>Beschreibung<\/td><td>Anzahl der use-Statements \/ Imports<\/td><\/tr>\n<tr><td>Datenquelle<\/td><td>code_analysis.uses (JSON Array)<\/td><\/tr>\n<tr><td>Optimum<\/td><td>≤ 3 Dependencies<\/td><\/tr>\n<tr><td>Maximum<\/td><td>20 Dependencies<\/td><\/tr>\n<\/table>\n\n<h2>4. Sicherheitsmetriken<\/h2>\n\n<h3>4.1 Hardcoded Values<\/h3>\n<table>\n<tr><th>Eigenschaft<\/th><th>Wert<\/th><\/tr>\n<tr><td>Beschreibung<\/td><td>Hardcodierte Passwörter, API-Keys, Tokens, IPs<\/td><\/tr>\n<tr><td>Datenquelle<\/td><td>Regex-Pattern auf Dateiinhalt<\/td><\/tr>\n<tr><td>Optimum<\/td><td>0 Funde<\/td><\/tr>\n<tr><td>Maximum<\/td><td>Jeder Fund = -10 Punkte<\/td><\/tr>\n<\/table>\n\n<h3>4.2 Magic Numbers<\/h3>\n<table>\n<tr><th>Eigenschaft<\/th><th>Wert<\/th><\/tr>\n<tr><td>Beschreibung<\/td><td>Unbeschriftete numerische Konstanten<\/td><\/tr>\n<tr><td>Datenquelle<\/td><td>Regex-Pattern (100, 1000, 60, 24, etc.)<\/td><\/tr>\n<tr><td>Optimum<\/td><td>0 Funde (außer in Config-Dateien)<\/td><\/tr>\n<tr><td>Maximum<\/td><td>Info-Level, niedrige Penalty<\/td><\/tr>\n<\/table>\n\n<h2>5. Statische Analyse<\/h2>\n\n<h3>5.1 PHPStan Errors<\/h3>\n<table>\n<tr><th>Eigenschaft<\/th><th>Wert<\/th><\/tr>\n<tr><td>Beschreibung<\/td><td>Fehler aus PHPStan Level 5<\/td><\/tr>\n<tr><td>Datenquelle<\/td><td>Extern (noch nicht integriert)<\/td><\/tr>\n<tr><td>Optimum<\/td><td>0 Errors<\/td><\/tr>\n<tr><td>Maximum<\/td><td>Jeder Error = schwere Penalty<\/td><\/tr>\n<\/table>\n\n<h2>Zusammenfassung<\/h2>\n<table>\n<tr><th>Kategorie<\/th><th>Faktoren<\/th><th>Status<\/th><\/tr>\n<tr><td>Größe<\/td><td>LOC, Methoden, Klassen<\/td><td>✓ Implementiert<\/td><\/tr>\n<tr><td>Komplexität<\/td><td>Cyclomatic, Nesting<\/td><td>○ Geplant<\/td><\/tr>\n<tr><td>Kopplung<\/td><td>Dependencies<\/td><td>✓ Implementiert<\/td><\/tr>\n<tr><td>Sicherheit<\/td><td>Hardcoded, Magic Numbers<\/td><td>✓ Implementiert<\/td><\/tr>\n<tr><td>Statisch<\/td><td>PHPStan<\/td><td>○ Geplant<\/td><\/tr>\n<\/table>"
}
}
{
"tool_response": [
{
"type": "text",
"text": "{\n \"success\": true,\n \"doc\": {\n \"id\": 132,\n \"parent_id\": 131,\n \"slug\": \"faktoren\",\n \"path\": \"\/qualitaet\/code-quality-score\/faktoren\",\n \"title\": \"Faktoren\",\n \"description\": \"Metriken die in den Code Quality Score einfließen\",\n \"content\": \"<h2>Übersicht<\/h2>\\n<p>Der Code Quality Score basiert auf folgenden Faktoren, gruppiert nach Kategorie.<\/p>\\n\\n<h2>1. Größenmetriken<\/h2>\\n\\n<h3>1.1 Lines of Code (LOC)<\/h3>\\n<table>\\n<tr><th>Eigenschaft<\/th><th>Wert<\/th><\/tr>\\n<tr><td>Beschreibung<\/td><td>Anzahl der Codezeilen in der Datei<\/td><\/tr>\\n<tr><td>Datenquelle<\/td><td>code_analysis.line_count<\/td><\/tr>\\n<tr><td>Optimum<\/td><td>≤ 100 Zeilen<\/td><\/tr>\\n<tr><td>Maximum<\/td><td>600 Zeilen (darüber = 0 Punkte)<\/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>Beschreibung<\/td><td>Anzahl der Funktionen\/Methoden pro Datei<\/td><\/tr>\\n<tr><td>Datenquelle<\/td><td>code_analysis.functions (JSON Array)<\/td><\/tr>\\n<tr><td>Optimum<\/td><td>≤ 5 Methoden<\/td><\/tr>\\n<tr><td>Maximum<\/td><td>20 Methoden (darüber = 0 Punkte)<\/td><\/tr>\\n<\/table>\\n\\n<h3>1.3 Klassen-Anzahl<\/h3>\\n<table>\\n<tr><th>Eigenschaft<\/th><th>Wert<\/th><\/tr>\\n<tr><td>Beschreibung<\/td><td>Anzahl der Klassen pro Datei<\/td><\/tr>\\n<tr><td>Datenquelle<\/td><td>code_analysis.classes (JSON Array)<\/td><\/tr>\\n<tr><td>Optimum<\/td><td>1 Klasse pro Datei<\/td><\/tr>\\n<tr><td>Maximum<\/td><td>3 Klassen (darüber = 0 Punkte)<\/td><\/tr>\\n<\/table>\\n\\n<h2>2. Komplexitätsmetriken<\/h2>\\n\\n<h3>2.1 Cyclomatic Complexity<\/h3>\\n<table>\\n<tr><th>Eigenschaft<\/th><th>Wert<\/th><\/tr>\\n<tr><td>Beschreibung<\/td><td>Anzahl unabhängiger Pfade durch den Code<\/td><\/tr>\\n<tr><td>Datenquelle<\/td><td>Noch nicht implementiert<\/td><\/tr>\\n<tr><td>Optimum<\/td><td>≤ 5 pro Methode<\/td><\/tr>\\n<tr><td>Maximum<\/td><td>20 pro Methode<\/td><\/tr>\\n<\/table>\\n\\n<h3>2.2 Nesting Depth<\/h3>\\n<table>\\n<tr><th>Eigenschaft<\/th><th>Wert<\/th><\/tr>\\n<tr><td>Beschreibung<\/td><td>Maximale Verschachtelungstiefe (if\/for\/while)<\/td><\/tr>\\n<tr><td>Datenquelle<\/td><td>Noch nicht implementiert<\/td><\/tr>\\n<tr><td>Optimum<\/td><td>≤ 3 Ebenen<\/td><\/tr>\\n<tr><td>Maximum<\/td><td>6 Ebenen<\/td><\/tr>\\n<\/table>\\n\\n<h2>3. Kopplungsmetriken<\/h2>\\n\\n<h3>3.1 Dependencies (Afferent Coupling)<\/h3>\\n<table>\\n<tr><th>Eigenschaft<\/th><th>Wert<\/th><\/tr>\\n<tr><td>Beschreibung<\/td><td>Anzahl der use-Statements \/ Imports<\/td><\/tr>\\n<tr><td>Datenquelle<\/td><td>code_analysis.uses (JSON Array)<\/td><\/tr>\\n<tr><td>Optimum<\/td><td>≤ 3 Dependencies<\/td><\/tr>\\n<tr><td>Maximum<\/td><td>20 Dependencies<\/td><\/tr>\\n<\/table>\\n\\n<h2>4. Sicherheitsmetriken<\/h2>\\n\\n<h3>4.1 Hardcoded Values<\/h3>\\n<table>\\n<tr><th>Eigenschaft<\/th><th>Wert<\/th><\/tr>\\n<tr><td>Beschreibung<\/td><td>Hardcodierte Passwörter, API-Keys, Tokens, IPs<\/td><\/tr>\\n<tr><td>Datenquelle<\/td><td>Regex-Pattern auf Dateiinhalt<\/td><\/tr>\\n<tr><td>Optimum<\/td><td>0 Funde<\/td><\/tr>\\n<tr><td>Maximum<\/td><td>Jeder Fund = -10 Punkte<\/td><\/tr>\\n<\/table>\\n\\n<h3>4.2 Magic Numbers<\/h3>\\n<table>\\n<tr><th>Eigenschaft<\/th><th>Wert<\/th><\/tr>\\n<tr><td>Beschreibung<\/td><td>Unbeschriftete numerische Konstanten<\/td><\/tr>\\n<tr><td>Datenquelle<\/td><td>Regex-Pattern (100, 1000, 60, 24, etc.)<\/td><\/tr>\\n<tr><td>Optimum<\/td><td>0 Funde (außer in Config-Dateien)<\/td><\/tr>\\n<tr><td>Maximum<\/td><td>Info-Level, niedrige Penalty<\/td><\/tr>\\n<\/table>\\n\\n<h2>5. Statische Analyse<\/h2>\\n\\n<h3>5.1 PHPStan Errors<\/h3>\\n<table>\\n<tr><th>Eigenschaft<\/th><th>Wert<\/th><\/tr>\\n<tr><td>Beschreibung<\/td><td>Fehler aus PHPStan Level 5<\/td><\/tr>\\n<tr><td>Datenquelle<\/td><td>Extern (noch nicht integriert)<\/td><\/tr>\\n<tr><td>Optimum<\/td><td>0 Errors<\/td><\/tr>\\n<tr><td>Maximum<\/td><td>Jeder Error = schwere Penalty<\/td><\/tr>\\n<\/table>\\n\\n<h2>Zusammenfassung<\/h2>\\n<table>\\n<tr><th>Kategorie<\/th><th>Faktoren<\/th><th>Status<\/th><\/tr>\\n<tr><td>Größe<\/td><td>LOC, Methoden, Klassen<\/td><td>✓ Implementiert<\/td><\/tr>\\n<tr><td>Komplexität<\/td><td>Cyclomatic, Nesting<\/td><td>○ Geplant<\/td><\/tr>\\n<tr><td>Kopplung<\/td><td>Dependencies<\/td><td>✓ Implementiert<\/td><\/tr>\\n<tr><td>Sicherheit<\/td><td>Hardcoded, Magic Numbers<\/td><td>✓ Implementiert<\/td><\/tr>\\n<tr><td>Statisch<\/td><td>PHPStan<\/td><td>○ Geplant<\/td><\/tr>\\n<\/table>\",\n \"status\": \"published\",\n \"sort_order\": 0,\n \"depth\": 2,\n \"created_at\": \"2025-12-25T15:58:03\",\n \"updated_at\": \"2025-12-25T15:58:03\"\n },\n \"message\": \"Dokument 'Faktoren' erstellt mit ID 132\"\n}"
}
]
}