Hook-Integration
Automatische Task-Erstellung aus Claude Code Prompts via Hook-System.
Status: Der
task_hook.py ist derzeit nicht aktiv.
Er ist nicht in der Hook-Konfiguration registriert. Diese Dokumentation beschreibt die geplante Funktionalität.
| Hook-Script | /var/www/tools/ki-protokoll/claude-hook/task_hook.py |
|---|---|
| Trigger | UserPromptSubmit (nicht aktiv) |
| Status | Nicht aktiviert |
Erkannte Patterns (geplant)
Bei Aktivierung würde der Hook folgende Patterns in User-Prompts erkennen und automatisch Tasks erstellen:
| Pattern | Beispiel | Task-Titel |
|---|---|---|
TODO: <text> | TODO: Tests schreiben | Tests schreiben |
TASK: <text> | TASK: API dokumentieren | API dokumentieren |
@task <text> | @task Refactoring | Refactoring |
#task <text> | #task Bug fixen | Bug fixen |
Funktionsweise (bei Aktivierung)
User-Prompt: "Bitte TODO: Logging implementieren und den Code reviewen"
↓
Hook erkennt Pattern
↓
Task erstellt: "Logging implementieren"
↓
type: ai_task
status: pending
created_by: $USER
created_by_type: ai
Aktivierung
Um den Hook zu aktivieren, muss er in der Hook-Konfiguration registriert werden:
Datei: /root/.claude/settings.json oder .claude/settings.local.json
{
"hooks": {
"UserPromptSubmit": [
{
"hooks": [
{
"type": "command",
"command": "/var/www/tools/ki-protokoll/claude-hook/log_to_db.py",
"timeout": 5
},
{
"type": "command",
"command": "/var/www/tools/ki-protokoll/claude-hook/task_hook.py",
"timeout": 5
}
]
}
]
}
}
Aktive Hooks (aktueller Stand)
Derzeit sind folgende Hooks für UserPromptSubmit aktiv:
| Hook | Funktion |
|---|---|
| log_to_db.py | Protokolliert Prompts in Datenbank |
Hook-Script
Konfiguration
# Datenbankverbindung - verwendet Umgebungsvariablen
DB_CONFIG = {
'host': os.environ.get('CLAUDE_DB_HOST', 'localhost'),
'port': int(os.environ.get('CLAUDE_DB_PORT', '3306')),
'user': os.environ.get('CLAUDE_DB_USER', 'claude_code'),
'password': os.environ.get('CLAUDE_DB_PASSWORD'),
'database': os.environ.get('CLAUDE_DB_NAME', 'ki_dev'),
'charset': 'utf8mb4'
}
# Erkennungsmuster
TASK_PATTERNS = [
(r'TODO:\s*(.+?)(?:\n|$)', 'todo'),
(r'TASK:\s*(.+?)(?:\n|$)', 'task'),
(r'@task\s+(.+?)(?:\n|$)', 'mention'),
(r'#task\s+(.+?)(?:\n|$)', 'hashtag'),
]
Erstellte Task-Eigenschaften
| Eigenschaft | Wert |
|---|---|
| type | ai_task |
| status | pending |
| created_by | $USER oder 'claude-code-hook' |
| created_by_type | ai |
Installation (falls gewünscht)
1. Hook ausführbar machen
chmod +x /var/www/tools/ki-protokoll/claude-hook/task_hook.py
2. Python-Abhängigkeiten
pip3 install pymysql
3. Hook in settings.json registrieren
# Füge den task_hook.py zu den UserPromptSubmit Hooks hinzu (siehe oben)
4. Testen
# In Claude Code eingeben:
"TODO: Test-Task erstellen"
# Prüfen ob Task erstellt wurde
Fehlerbehandlung
Der Hook ist non-blocking. Fehler werden zu stderr geloggt, aber der Claude Code Workflow wird nicht unterbrochen.
# Immer zurückgegeben:
{"continue": true}
Debugging
# Hook manuell testen
echo '{"hook_event_name":"UserPromptSubmit","prompt":"TODO: Test"}' | python3 /var/www/tools/ki-protokoll/claude-hook/task_hook.py
# Logs prüfen (stderr)
# Task #123 created: Test...
Zusammenspiel mit anderen Hooks
| Hook | Funktion | Event | Status |
|---|---|---|---|
| log_to_db.py | Protokolliert alle Events | Alle | Aktiv |
| block_direct_db.py | Blockiert mysql/mariadb CLI | PreToolUse:Bash | Aktiv |
| file_backup_hook.py | Backup vor Dateiänderungen | PreToolUse:Edit|Write | Aktiv |
| task_hook.py | Tasks aus Prompts erstellen | UserPromptSubmit | Nicht aktiv |
Änderungshistorie
| Datum | Änderung |
|---|---|
| 2025-12-31 | Klarstellung: Hook ist nicht aktiv, Aktivierungsanleitung hinzugefügt |
| 2025-12-20 | Initial erstellt |