{
"event": "PreToolUse",
"tool_name": "mcp__mcp-docs__docs_create",
"tool_input": {
"title": "Gewichtung",
"slug": "gewichtung",
"parent_id": 131,
"status": "published",
"description": "Gewichtungsfaktoren für den Code Quality Score",
"content": "<h2>Übersicht<\/h2>\n<p>Jeder normalisierte Faktor wird mit einem Gewicht multipliziert. Die Summe der Gewichte ergibt 100%.<\/p>\n\n<h2>Gewichtungstabelle<\/h2>\n<table>\n<tr><th>Faktor<\/th><th>Gewicht<\/th><th>Begründung<\/th><\/tr>\n<tr><td>Lines of Code<\/td><td>20%<\/td><td>Grundlegende Wartbarkeitsmetrik<\/td><\/tr>\n<tr><td>Methoden-Anzahl<\/td><td>20%<\/td><td>SRP-Indikator<\/td><\/tr>\n<tr><td>Klassen-Anzahl<\/td><td>10%<\/td><td>Datei-Kohäsion<\/td><\/tr>\n<tr><td>Dependencies<\/td><td>25%<\/td><td>Kopplung ist kritisch für Änderbarkeit<\/td><\/tr>\n<tr><td>Hardcoded Values<\/td><td>15%<\/td><td>Sicherheitsrisiko<\/td><\/tr>\n<tr><td>Magic Numbers<\/td><td>10%<\/td><td>Lesbarkeit<\/td><\/tr>\n<\/table>\n\n<h2>Score-Berechnung<\/h2>\n<pre><code>score = (\n loc_normalized × 0.20 +\n methods_normalized × 0.20 +\n classes_normalized × 0.10 +\n deps_normalized × 0.25 +\n hardcoded_normalized × 0.15 +\n magic_normalized × 0.10\n)<\/code><\/pre>\n\n<h2>Beispielrechnung<\/h2>\n<p>Für ContentController.php (400 LOC, 16 Methoden, 1 Klasse, 6 Dependencies, 0 Hardcoded, 2 Magic):<\/p>\n\n<table>\n<tr><th>Faktor<\/th><th>Rohwert<\/th><th>Normalisiert<\/th><th>Gewicht<\/th><th>Beitrag<\/th><\/tr>\n<tr><td>LOC<\/td><td>400<\/td><td>40<\/td><td>0.20<\/td><td>8.0<\/td><\/tr>\n<tr><td>Methoden<\/td><td>16<\/td><td>27<\/td><td>0.20<\/td><td>5.4<\/td><\/tr>\n<tr><td>Klassen<\/td><td>1<\/td><td>100<\/td><td>0.10<\/td><td>10.0<\/td><\/tr>\n<tr><td>Dependencies<\/td><td>6<\/td><td>82<\/td><td>0.25<\/td><td>20.5<\/td><\/tr>\n<tr><td>Hardcoded<\/td><td>0<\/td><td>100<\/td><td>0.15<\/td><td>15.0<\/td><\/tr>\n<tr><td>Magic<\/td><td>2<\/td><td>80<\/td><td>0.10<\/td><td>8.0<\/td><\/tr>\n<tr><td><strong>Gesamt<\/strong><\/td><td><\/td><td><\/td><td><strong>1.00<\/strong><\/td><td><strong>66.9<\/strong><\/td><\/tr>\n<\/table>\n\n<p><strong>Ergebnis:<\/strong> Score 67 (Gut)<\/p>\n\n<h2>Zukünftige Faktoren<\/h2>\n<p>Bei Hinzufügen neuer Faktoren werden die Gewichte angepasst:<\/p>\n\n<table>\n<tr><th>Faktor<\/th><th>Aktuell<\/th><th>Mit Complexity<\/th><th>Mit PHPStan<\/th><\/tr>\n<tr><td>LOC<\/td><td>20%<\/td><td>15%<\/td><td>12%<\/td><\/tr>\n<tr><td>Methoden<\/td><td>20%<\/td><td>15%<\/td><td>12%<\/td><\/tr>\n<tr><td>Klassen<\/td><td>10%<\/td><td>8%<\/td><td>6%<\/td><\/tr>\n<tr><td>Dependencies<\/td><td>25%<\/td><td>20%<\/td><td>15%<\/td><\/tr>\n<tr><td>Hardcoded<\/td><td>15%<\/td><td>12%<\/td><td>10%<\/td><\/tr>\n<tr><td>Magic<\/td><td>10%<\/td><td>5%<\/td><td>5%<\/td><\/tr>\n<tr><td>Cyclomatic<\/td><td>-<\/td><td>15%<\/td><td>12%<\/td><\/tr>\n<tr><td>Nesting<\/td><td>-<\/td><td>10%<\/td><td>8%<\/td><\/tr>\n<tr><td>PHPStan<\/td><td>-<\/td><td>-<\/td><td>20%<\/td><\/tr>\n<\/table>\n\n<h2>Dateityp-Modifikatoren<\/h2>\n<p>Bestimmte Dateitypen erhalten angepasste Gewichte:<\/p>\n\n<h3>Controller<\/h3>\n<table>\n<tr><th>Faktor<\/th><th>Standard<\/th><th>Controller<\/th><\/tr>\n<tr><td>Methoden<\/td><td>20%<\/td><td>10%<\/td><\/tr>\n<tr><td>Dependencies<\/td><td>25%<\/td><td>30%<\/td><\/tr>\n<\/table>\n<p><em>Begründung: Controller haben naturgemäß mehr Methoden (Actions)<\/em><\/p>\n\n<h3>Entity\/Model<\/h3>\n<table>\n<tr><th>Faktor<\/th><th>Standard<\/th><th>Entity<\/th><\/tr>\n<tr><td>LOC<\/td><td>20%<\/td><td>25%<\/td><\/tr>\n<tr><td>Dependencies<\/td><td>25%<\/td><td>15%<\/td><\/tr>\n<\/table>\n<p><em>Begründung: Entities sollten schlank sein, Dependencies sind oft Framework-bedingt<\/em><\/p>\n\n<h3>Repository<\/h3>\n<table>\n<tr><th>Faktor<\/th><th>Standard<\/th><th>Repository<\/th><\/tr>\n<tr><td>Methoden<\/td><td>20%<\/td><td>15%<\/td><\/tr>\n<tr><td>LOC<\/td><td>20%<\/td><td>25%<\/td><\/tr>\n<\/table>\n<p><em>Begründung: Repositories haben viele ähnliche CRUD-Methoden<\/em><\/p>\n\n<h2>Konfiguration<\/h2>\n<p>Die Gewichte sind in der Datenbank konfigurierbar:<\/p>\n<pre><code>Tabelle: ki_dev.code_quality_weights\nSpalten: factor_name, weight, file_type (nullable)<\/code><\/pre>"
}
}
{
"tool_response": [
{
"type": "text",
"text": "{\n \"success\": true,\n \"doc\": {\n \"id\": 134,\n \"parent_id\": 131,\n \"slug\": \"gewichtung\",\n \"path\": \"\/qualitaet\/code-quality-score\/gewichtung\",\n \"title\": \"Gewichtung\",\n \"description\": \"Gewichtungsfaktoren für den Code Quality Score\",\n \"content\": \"<h2>Übersicht<\/h2>\\n<p>Jeder normalisierte Faktor wird mit einem Gewicht multipliziert. Die Summe der Gewichte ergibt 100%.<\/p>\\n\\n<h2>Gewichtungstabelle<\/h2>\\n<table>\\n<tr><th>Faktor<\/th><th>Gewicht<\/th><th>Begründung<\/th><\/tr>\\n<tr><td>Lines of Code<\/td><td>20%<\/td><td>Grundlegende Wartbarkeitsmetrik<\/td><\/tr>\\n<tr><td>Methoden-Anzahl<\/td><td>20%<\/td><td>SRP-Indikator<\/td><\/tr>\\n<tr><td>Klassen-Anzahl<\/td><td>10%<\/td><td>Datei-Kohäsion<\/td><\/tr>\\n<tr><td>Dependencies<\/td><td>25%<\/td><td>Kopplung ist kritisch für Änderbarkeit<\/td><\/tr>\\n<tr><td>Hardcoded Values<\/td><td>15%<\/td><td>Sicherheitsrisiko<\/td><\/tr>\\n<tr><td>Magic Numbers<\/td><td>10%<\/td><td>Lesbarkeit<\/td><\/tr>\\n<\/table>\\n\\n<h2>Score-Berechnung<\/h2>\\n<pre><code>score = (\\n loc_normalized × 0.20 +\\n methods_normalized × 0.20 +\\n classes_normalized × 0.10 +\\n deps_normalized × 0.25 +\\n hardcoded_normalized × 0.15 +\\n magic_normalized × 0.10\\n)<\/code><\/pre>\\n\\n<h2>Beispielrechnung<\/h2>\\n<p>Für ContentController.php (400 LOC, 16 Methoden, 1 Klasse, 6 Dependencies, 0 Hardcoded, 2 Magic):<\/p>\\n\\n<table>\\n<tr><th>Faktor<\/th><th>Rohwert<\/th><th>Normalisiert<\/th><th>Gewicht<\/th><th>Beitrag<\/th><\/tr>\\n<tr><td>LOC<\/td><td>400<\/td><td>40<\/td><td>0.20<\/td><td>8.0<\/td><\/tr>\\n<tr><td>Methoden<\/td><td>16<\/td><td>27<\/td><td>0.20<\/td><td>5.4<\/td><\/tr>\\n<tr><td>Klassen<\/td><td>1<\/td><td>100<\/td><td>0.10<\/td><td>10.0<\/td><\/tr>\\n<tr><td>Dependencies<\/td><td>6<\/td><td>82<\/td><td>0.25<\/td><td>20.5<\/td><\/tr>\\n<tr><td>Hardcoded<\/td><td>0<\/td><td>100<\/td><td>0.15<\/td><td>15.0<\/td><\/tr>\\n<tr><td>Magic<\/td><td>2<\/td><td>80<\/td><td>0.10<\/td><td>8.0<\/td><\/tr>\\n<tr><td><strong>Gesamt<\/strong><\/td><td><\/td><td><\/td><td><strong>1.00<\/strong><\/td><td><strong>66.9<\/strong><\/td><\/tr>\\n<\/table>\\n\\n<p><strong>Ergebnis:<\/strong> Score 67 (Gut)<\/p>\\n\\n<h2>Zukünftige Faktoren<\/h2>\\n<p>Bei Hinzufügen neuer Faktoren werden die Gewichte angepasst:<\/p>\\n\\n<table>\\n<tr><th>Faktor<\/th><th>Aktuell<\/th><th>Mit Complexity<\/th><th>Mit PHPStan<\/th><\/tr>\\n<tr><td>LOC<\/td><td>20%<\/td><td>15%<\/td><td>12%<\/td><\/tr>\\n<tr><td>Methoden<\/td><td>20%<\/td><td>15%<\/td><td>12%<\/td><\/tr>\\n<tr><td>Klassen<\/td><td>10%<\/td><td>8%<\/td><td>6%<\/td><\/tr>\\n<tr><td>Dependencies<\/td><td>25%<\/td><td>20%<\/td><td>15%<\/td><\/tr>\\n<tr><td>Hardcoded<\/td><td>15%<\/td><td>12%<\/td><td>10%<\/td><\/tr>\\n<tr><td>Magic<\/td><td>10%<\/td><td>5%<\/td><td>5%<\/td><\/tr>\\n<tr><td>Cyclomatic<\/td><td>-<\/td><td>15%<\/td><td>12%<\/td><\/tr>\\n<tr><td>Nesting<\/td><td>-<\/td><td>10%<\/td><td>8%<\/td><\/tr>\\n<tr><td>PHPStan<\/td><td>-<\/td><td>-<\/td><td>20%<\/td><\/tr>\\n<\/table>\\n\\n<h2>Dateityp-Modifikatoren<\/h2>\\n<p>Bestimmte Dateitypen erhalten angepasste Gewichte:<\/p>\\n\\n<h3>Controller<\/h3>\\n<table>\\n<tr><th>Faktor<\/th><th>Standard<\/th><th>Controller<\/th><\/tr>\\n<tr><td>Methoden<\/td><td>20%<\/td><td>10%<\/td><\/tr>\\n<tr><td>Dependencies<\/td><td>25%<\/td><td>30%<\/td><\/tr>\\n<\/table>\\n<p><em>Begründung: Controller haben naturgemäß mehr Methoden (Actions)<\/em><\/p>\\n\\n<h3>Entity\/Model<\/h3>\\n<table>\\n<tr><th>Faktor<\/th><th>Standard<\/th><th>Entity<\/th><\/tr>\\n<tr><td>LOC<\/td><td>20%<\/td><td>25%<\/td><\/tr>\\n<tr><td>Dependencies<\/td><td>25%<\/td><td>15%<\/td><\/tr>\\n<\/table>\\n<p><em>Begründung: Entities sollten schlank sein, Dependencies sind oft Framework-bedingt<\/em><\/p>\\n\\n<h3>Repository<\/h3>\\n<table>\\n<tr><th>Faktor<\/th><th>Standard<\/th><th>Repository<\/th><\/tr>\\n<tr><td>Methoden<\/td><td>20%<\/td><td>15%<\/td><\/tr>\\n<tr><td>LOC<\/td><td>20%<\/td><td>25%<\/td><\/tr>\\n<\/table>\\n<p><em>Begründung: Repositories haben viele ähnliche CRUD-Methoden<\/em><\/p>\\n\\n<h2>Konfiguration<\/h2>\\n<p>Die Gewichte sind in der Datenbank konfigurierbar:<\/p>\\n<pre><code>Tabelle: ki_dev.code_quality_weights\\nSpalten: factor_name, weight, file_type (nullable)<\/code><\/pre>\",\n \"status\": \"published\",\n \"sort_order\": 0,\n \"depth\": 2,\n \"created_at\": \"2025-12-25T15:59:06\",\n \"updated_at\": \"2025-12-25T15:59:06\"\n },\n \"message\": \"Dokument 'Gewichtung' erstellt mit ID 134\"\n}"
}
]
}