dev-workflow
Концепции

Хуки

Автоматика Claude Code — session, post-edit, task completed, pre-compact

Хуки

Хуки — команды, которые Claude Code запускает автоматически при определённых событиях. dev-workflow устанавливает 5 хуков при init.

Список хуков

Event nameКогдаЧто делает
SessionStartНачало сессииЗагружает vault-контекст, intelligence, задачи, workflow
SessionEndКонец сессииСохраняет daily log, обновляет intelligence, паузит workflow
PostToolUseПосле Write/Edit/MultiEditТрекает редактирование файлов в intelligence
TaskCompletedПосле завершения задачиЗаписывает в daily log с названием задачи
PreCompactПеред сжатием контекстаСохраняет маркер для восстановления

Stdin JSON

Все хуки получают данные от Claude Code через stdin в JSON-формате, не через env variables:

{
  "session_id": "abc123",
  "cwd": "/path/to/project",
  "hook_event_name": "PostToolUse",
  "tool_name": "Edit",
  "tool_input": {
    "file_path": "/path/to/file.ts"
  }
}

Каждый хук парсит stdin и извлекает нужные поля:

ХукЧто читает из stdin
SessionStartcwd, source
SessionEndcwd
PostToolUsecwd, tool_input.file_path
TaskCompletedcwd, task_subject
PreCompactcwd, compaction_trigger

Формат ответа

Хуки возвращают JSON в stdout:

{
  "continue": true,
  "hookSpecificOutput": {
    "hookEventName": "SessionStart",
    "additionalContext": "vault context injected here"
  }
}
  • continue: true — Claude Code продолжает работу
  • hookSpecificOutput.additionalContext — для SessionStart: vault-контекст инжектится в сессию

SessionStart

Самый важный хук. При каждом старте сессии Claude Code получает через additionalContext:

  • Имя проекта и текущую ветку
  • Содержимое vault (stack, conventions, knowledge, gameplan)
  • Branch context (если не на main)
  • Текущую задачу (если привязана к ветке)
  • Активный workflow (если на паузе)
  • Top-15 релевантных паттернов из intelligence

SessionEnd

Автоматический auto-save:

  • Создаёт/дополняет .dev-vault/daily/<date>.md
  • Записывает: проект, ветка, diff stat, uncommitted files
  • Обновляет intelligence: co-edited файлы, данные сессии
  • Если workflow был running — ставит на паузу

PostToolUse (Write/Edit/MultiEdit)

Трекает каждый отредактированный файл:

  • Извлекает tool_input.file_path из stdin JSON
  • Записывает в .dev-vault/.edit-log.json
  • Обновляет intelligence store (file-edit паттерн)

Ручной запуск (для тестирования)

echo '{}' | node /path/to/dist/hooks/session-start.js
echo '{"tool_input":{"file_path":"src/file.ts"}}' | node /path/to/dist/hooks/post-edit.js

On this page