{
"event": "PreToolUse",
"tool_name": "mcp__mcp-db__db_update",
"tool_input": {
"table": "contracts",
"data": {
"yaml_content": "contract:\n name: htmx-patterns\n version: \"1.0\"\n description: |\n Regeln für konsistente HTMX-Nutzung in View-Dateien.\n Automatisch validiert durch pre_rules_htmx.py Hook.\n \n enforcement:\n hook: quality\/pre_rules_htmx.py\n level: pre-hook (BLOCK)\n scope: \/src\/View\/**\/*.php\n \n rules:\n critical:\n - id: HTMX-C1\n name: csrf-on-post\n check: hx-post MUSS X-CSRF-TOKEN in hx-headers haben\n example: hx-headers='{\"X-CSRF-TOKEN\": \"<?= $csrfToken ?>\"}'\n \n - id: HTMX-C2\n name: csrf-on-delete\n check: hx-delete MUSS X-CSRF-TOKEN in hx-headers haben\n example: hx-headers='{\"X-CSRF-TOKEN\": \"<?= $csrfToken ?>\"}'\n \n - id: HTMX-C3\n name: csrf-on-patch\n check: hx-patch MUSS X-CSRF-TOKEN in hx-headers haben\n example: hx-headers='{\"X-CSRF-TOKEN\": \"<?= $csrfToken ?>\"}'\n \n - id: HTMX-C4\n name: delete-requires-confirm\n check: hx-delete MUSS hx-confirm Attribut haben\n example: hx-confirm=\"Wirklich loeschen?\"\n \n recommended:\n - id: HTMX-R1\n name: no-fetch-for-simple-post\n severity: major\n check: Einfache POST-Aktionen SOLLTEN HTMX statt fetch() verwenden\n \n - id: HTMX-R2\n name: no-inline-onclick-for-ajax\n severity: major\n check: Keine onclick-Handler fuer AJAX, HTMX verwenden\n \n - id: HTMX-R3\n name: use-hx-indicator\n severity: minor\n check: hx-indicator fuer besseres UX-Feedback verwenden\n \n - id: HTMX-R4\n name: use-hx-disabled-elt\n severity: minor\n check: hx-disabled-elt gegen Doppelklicks verwenden\n \n patterns:\n form_partial_update:\n description: Form-Submit mit partiellem Update\n template: |\n <form hx-post=\"\/endpoint\"\n hx-target=\"#result\"\n hx-swap=\"innerHTML\"\n hx-headers='{\"X-CSRF-TOKEN\": \"<?= $csrfToken ?>\"}'>\n <button type=\"submit\">Submit<\/button>\n <\/form>\n \n action_with_reload:\n description: Aktion mit Seiten-Reload\n template: |\n <button hx-post=\"\/endpoint\"\n hx-headers='{\"X-CSRF-TOKEN\": \"<?= $csrfToken ?>\"}'\n hx-on::after-request=\"location.reload()\">\n Action\n <\/button>\n \n delete_with_confirm:\n description: Delete mit Bestätigung\n template: |\n <button hx-delete=\"\/item\/123\"\n hx-confirm=\"Wirklich loeschen?\"\n hx-headers='{\"X-CSRF-TOKEN\": \"<?= $csrfToken ?>\"}'\n hx-target=\"closest tr\"\n hx-swap=\"outerHTML swap:1s\">\n Loeschen\n <\/button>"
},
"where": {
"id": 14
},
"database": "ki_dev"
}
}
{
"tool_response": [
{
"type": "text",
"text": "{\n \"status\": \"success\",\n \"table\": \"contracts\",\n \"affected_rows\": 1,\n \"execution_ms\": 0\n}"
}
]
}