المهارات hooks-management

hooks-management

آمن ⚙️ الأوامر الخارجية📁 الوصول إلى نظام الملفات🔑 متغيرات البيئة

Создание и управление хуками Claude Code

Управление хуками Claude Code требует понимания шаблонов событийно‑ориентированной автоматизации. Этот навык предоставляет пошаговые рабочие процессы и подробную документацию по созданию, обновлению, настройке и устранению неполадок хуков для любого типа событий.

يدعم: Claude Codex Code(CC)
🥉 73 برونزي
1

تنزيل ZIP المهارة

2

رفع في Claude

اذهب إلى Settings → Capabilities → Skills → Upload skill

3

فعّل وابدأ الاستخدام

اختبرها

استخدام "hooks-management". Create a new hook that validates JSON input on the PreToolUse event

النتيجة المتوقعة:

  • Hook created at: .claude/hooks/validate-json.py
  • Configuration to add to .claude/settings.local.json:
  • {
  • "hooks": {
  • "PreToolUse": [
  • {
  • "matcher": "*",
  • "hooks": [
  • { "type": "command", "command": "$CLAUDE_PROJECT_DIR/.claude/hooks/validate-json.py" }
  • ]
  • }
  • ]
  • }
  • }
  • Test command: echo '{"tool_name": "Write", "tool_input": {}}' | python .claude/hooks/validate-json.py

استخدام "hooks-management". Why is my hook not executing on the UserPromptSubmit event?

النتيجة المتوقعة:

  • Checking hook configuration...
  • 1. Verify the hook is registered in .claude/settings.local.json
  • 2. Ensure the event name matches exactly: "UserPromptSubmit"
  • 3. Test with echo: echo '{"prompt": "/test"}' | python .claude/hooks/your-hook.py
  • 4. Check that the script has execute permissions
  • 5. Verify exit code is 0 for successful execution

التدقيق الأمني

آمن
v1 • 1/23/2026

Static scanner flagged patterns in documentation markdown files. After manual review, all findings are FALSE POSITIVES. The skill contains only documentation, task workflows, and reference materials for legitimate Claude Code hooks. No actual malicious code or exploit patterns exist.

7
الملفات التي تم فحصها
1,731
الأسطر التي تم تحليلها
3
النتائج
1
إجمالي عمليات التدقيق

عوامل الخطر

⚙️ الأوامر الخارجية (3)
📁 الوصول إلى نظام الملفات (2)
🔑 متغيرات البيئة (1)
تم تدقيقه بواسطة: claude

درجة الجودة

45
الهندسة المعمارية
100
قابلية الصيانة
87
المحتوى
31
المجتمع
100
الأمان
91
الامتثال للمواصفات

ماذا يمكنك بناءه

Создание пользовательских обработчиков событий

Создавайте хуки, которые реагируют на конкретные события Claude Code, такие как PreToolUse, PostToolUse, Stop или UserPromptSubmit. Автоматизируйте валидацию, логирование или контроль соблюдения проектных политик.

Реализация хуков безопасности и валидации

Создавайте хуки, которые проверяют команды перед выполнением, блокируют опасные операции, логируют события безопасности и автоматически обеспечивают соблюдение проектных политик безопасности.

Обеспечение соблюдения рабочих процессов разработки

Создавайте хуки, которые обеспечивают соблюдение TDD‑процессов, отслеживают завершение этапов, проверяют планы перед реализацией и обеспечивают единые практики разработки в командах.

جرّب هذه الموجهات

Создать простой хук
Create a new Claude Code hook that runs on the Stop event. The hook should validate that all tasks in the plan are complete before allowing Claude to stop.
Обновить существующий хук
Update the session_start.py hook to also load user preferences from a config file and set them in the shared cache.
Отладить проблемы с хуком
The post_tool_use hook is not executing correctly. Test it using the echo method to diagnose the issue.
Добавить проверку безопасности
Add a security validation module to the pre_tool_use hook that blocks commands containing dangerous patterns like rm -rf or direct path access to /etc.

أفضل الممارسات

  • Всегда тестируйте хуки, передавая echo в stdin перед развертыванием — никогда не создавайте временные тестовые файлы
  • По возможности используйте Python вместо shell‑скриптов для лучшей обработки ошибок и кроссплатформенной совместимости
  • Реализуйте идемпотентные операции, чтобы многократный запуск хуков давал одинаковый результат
  • Возвращайте корректные коды завершения: 0 — разрешить, 2 — заблокировать, другие ненулевые — ошибки без блокировки

تجنب

  • Никогда не хардкодьте учетные данные или секреты в скриптах хуков
  • Никогда не создавайте хуки, которые могут вызывать бесконечные циклы или зависать навсегда
  • Никогда не обходите проверки безопасности или контроль доступа
  • Никогда не пишите сложную логику в хуках — держите их простыми и сфокусированными на одной ответственности

الأسئلة المتكررة

Для каких событий можно создавать хуки в Claude Code?
Claude Code поддерживает хуки для событий SessionStart, SessionEnd, PreToolUse, PostToolUse, Stop, SubagentStop, UserPromptSubmit, PermissionRequest, PreCompact и Notification. Для каждого события есть специфические схемы входных данных и соглашения по ответам.
Как тестировать хук без создания тестовых файлов?
Используйте команду echo, чтобы передать JSON‑ввод напрямую в скрипт хука. Например: echo '{"session_id": "test", "tool": "Read"}' | python .claude/hooks/your-hook.py. Это тестирует разбор stdin и вывод без создания временных файлов.
Какие коды завершения должен возвращать мой хук?
Код завершения 0 означает, что хук успешно выполнился и действие должно продолжаться. Код завершения 2 означает, что хук заблокировал действие. Другие ненулевые коды указывают на ошибку, но позволяют действию продолжаться. Хук сообщает решения через JSON в stdout.
Где регистрировать мои хуки?
Добавьте конфигурации хуков в .claude/settings.local.json (локальные настройки проекта) или ~/.claude/settings.json (пользовательские настройки). Используйте объект "hooks" с именами событий в качестве ключей и задавайте matcher и команды для каждого события.
Можно ли использовать переменные окружения в хуках?
Да, хуки SessionStart имеют доступ к CLAUDE_ENV_FILE для сохранения переменных окружения. Все хуки имеют доступ к CLAUDE_PROJECT_DIR, который указывает на корневую директорию проекта. Также доступны стандартные переменные окружения.
Как хуки взаимодействуют с Claude Code?
Хуки получают JSON‑ввод через stdin и отправляют JSON‑вывод через stdout. Формат вывода зависит от типа события — решения allow/block, дополнительный контекст или флаги suppressOutput. Ошибки и отладочная информация отправляются в stderr с помощью утилиты log().

تفاصيل المطور

المؤلف

Emz1998

الترخيص

MIT

مرجع

main