{
"event": "PreToolUse",
"tool_name": "Edit",
"tool_input": {
"file_path": "\/var\/www\/tools\/ki-protokoll\/claude-hook\/quality\/pre_rules.py",
"old_string": "from . import pre_rules_guard\nfrom . import pre_rules_security\nfrom . import pre_rules_validation\nfrom .rule_base import allow\n\n\n# =============================================================================\n# MAIN CHECK FUNCTION\n# =============================================================================\n\n# Alle aktiven Regeln in Prüfungsreihenfolge\nRULES = [\n # Prüfung 1: SRP + KISS + Prüfung 4: OOP\n *pre_rules_guard.RULES,\n\n # Prüfung 2: MVC + CRUD + Prüfung 6: SOLID + DIP + H-Regeln\n *pre_rules_security.RULES,\n\n # Prüfung 3: PSR + Types\n *pre_rules_validation.RULES,\n]",
"new_string": "from . import pre_rules_guard\nfrom . import pre_rules_mvc\nfrom . import pre_rules_layers\nfrom . import pre_rules_validation\nfrom .rule_base import allow\n\n\n# =============================================================================\n# MAIN CHECK FUNCTION\n# =============================================================================\n\n# Alle aktiven Regeln in Prüfungsreihenfolge\nRULES = [\n # Prüfung 1: SRP + KISS + Prüfung 4: OOP\n *pre_rules_guard.RULES,\n\n # Prüfung 2: MVC + CRUD\n *pre_rules_mvc.RULES,\n\n # Prüfung 3: PSR + Types\n *pre_rules_validation.RULES,\n\n # Prüfung 6: SOLID + DIP + H-Regeln\n *pre_rules_layers.RULES,\n]"
}
}
{
"tool_response": {
"filePath": "\/var\/www\/tools\/ki-protokoll\/claude-hook\/quality\/pre_rules.py",
"oldString": "from . import pre_rules_guard\nfrom . import pre_rules_security\nfrom . import pre_rules_validation\nfrom .rule_base import allow\n\n\n# =============================================================================\n# MAIN CHECK FUNCTION\n# =============================================================================\n\n# Alle aktiven Regeln in Prüfungsreihenfolge\nRULES = [\n # Prüfung 1: SRP + KISS + Prüfung 4: OOP\n *pre_rules_guard.RULES,\n\n # Prüfung 2: MVC + CRUD + Prüfung 6: SOLID + DIP + H-Regeln\n *pre_rules_security.RULES,\n\n # Prüfung 3: PSR + Types\n *pre_rules_validation.RULES,\n]",
"newString": "from . import pre_rules_guard\nfrom . import pre_rules_mvc\nfrom . import pre_rules_layers\nfrom . import pre_rules_validation\nfrom .rule_base import allow\n\n\n# =============================================================================\n# MAIN CHECK FUNCTION\n# =============================================================================\n\n# Alle aktiven Regeln in Prüfungsreihenfolge\nRULES = [\n # Prüfung 1: SRP + KISS + Prüfung 4: OOP\n *pre_rules_guard.RULES,\n\n # Prüfung 2: MVC + CRUD\n *pre_rules_mvc.RULES,\n\n # Prüfung 3: PSR + Types\n *pre_rules_validation.RULES,\n\n # Prüfung 6: SOLID + DIP + H-Regeln\n *pre_rules_layers.RULES,\n]",
"originalFile": "#!\/usr\/bin\/env python3\n\"\"\"\nPre-Hook Regeln (BLOCK) - Modular und erweiterbar ohne Claude-Neustart.\n\nAlle P-Regeln aus dem Quality Gate Plan.\nImportiert Regeln aus spezialisierten Modulen.\n\"\"\"\n\nfrom . import pre_rules_guard\nfrom . import pre_rules_security\nfrom . import pre_rules_validation\nfrom .rule_base import allow\n\n\n# =============================================================================\n# MAIN CHECK FUNCTION\n# =============================================================================\n\n# Alle aktiven Regeln in Prüfungsreihenfolge\nRULES = [\n # Prüfung 1: SRP + KISS + Prüfung 4: OOP\n *pre_rules_guard.RULES,\n\n # Prüfung 2: MVC + CRUD + Prüfung 6: SOLID + DIP + H-Regeln\n *pre_rules_security.RULES,\n\n # Prüfung 3: PSR + Types\n *pre_rules_validation.RULES,\n]\n\n\ndef check(file_path: str, content: str) -> dict:\n \"\"\"\n Führt alle Pre-Hook-Regeln aus.\n Stoppt beim ersten Verstoß.\n \"\"\"\n for rule in RULES:\n result = rule(file_path, content)\n if result is not None:\n return result\n\n return allow()\n",
"structuredPatch": [
{
"oldStart": 7,
"oldLines": 7,
"newStart": 7,
"newLines": 8,
"lines": [
" \"\"\"",
" ",
" from . import pre_rules_guard",
"-from . import pre_rules_security",
"+from . import pre_rules_mvc",
"+from . import pre_rules_layers",
" from . import pre_rules_validation",
" from .rule_base import allow",
" "
]
},
{
"oldStart": 21,
"oldLines": 11,
"newStart": 22,
"newLines": 14,
"lines": [
" # Prüfung 1: SRP + KISS + Prüfung 4: OOP",
" *pre_rules_guard.RULES,",
" ",
"- # Prüfung 2: MVC + CRUD + Prüfung 6: SOLID + DIP + H-Regeln",
"- *pre_rules_security.RULES,",
"+ # Prüfung 2: MVC + CRUD",
"+ *pre_rules_mvc.RULES,",
" ",
" # Prüfung 3: PSR + Types",
" *pre_rules_validation.RULES,",
"+",
"+ # Prüfung 6: SOLID + DIP + H-Regeln",
"+ *pre_rules_layers.RULES,",
" ]",
" ",
" "
]
}
],
"userModified": false,
"replaceAll": false
}
}