ХукПроцессы

session-start

Загружает контекст проекта при старте сессии: CLAUDE.md, прогресс, текущие задачи. AI сразу знает, где остановился.

Закинь в Claude, Cursor или любой AI

Описание

Простым языком

Хук — это скрипт, который запускается автоматически в нужный момент. Не ты его вызываешь, он сам срабатывает. Как будильник: ты его настроил один раз — он делает своё дело каждый день.

Каждый раз когда ты открываешь Claude Code — он не помнит что было вчера. Этот хук как записка на мониторе. Он автоматически напоминает Claude где ты остановился и что делать дальше. Тебе ничего не нужно делать — просто установи один раз.


Что делает

Хук session-start автоматически загружает контекст проекта при старте каждой сессии Claude Code. AI читает CLAUDE.md, секцию ПРОГРЕСС и ближайшую незакрытую задачу из tasks-detailed.md — и сразу знает, на чём остановился.

Без этого хука каждая сессия начинается с нуля: AI не знает архитектуру проекта, принятые решения и текущий статус разработки. С хуком — контекст восстанавливается за секунды без участия пользователя.

Когда срабатывает

Триггер: PreToolUse — перед первым вызовом любого инструмента в сессии. Условие: файл CLAUDE.md существует в корне проекта. Действие: читает CLAUDE.md целиком, затем первые 100 строк tasks-detailed.md (если есть).


Установка

  1. Добавь конфиг в .claude/settings.json проекта (см. блок ниже)
  2. Создай скрипт ~/.claude/hooks/session-start.sh и сделай его исполняемым: chmod +x session-start.sh
  3. Проверь: запусти новую сессию Claude Code и убедись, что AI сразу знает прогресс

Конфиг settings.json

{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": ".*",
        "hooks": [
          {
            "type": "command",
            "command": "~/.claude/hooks/session-start.sh"
          }
        ]
      }
    ]
  }
}

Скрипт хука

#!/bin/bash
# session-start.sh — загрузка контекста при старте сессии
# Срабатывает один раз: при первом вызове инструмента в сессии

LOCK_FILE="/tmp/claude-session-started-$$"
if [ -f "$LOCK_FILE" ]; then
  exit 0
fi
touch "$LOCK_FILE"

PROJECT_DIR="${CLAUDE_PROJECT_DIR:-$(pwd)}"
echo "=== ЗАГРУЗКА КОНТЕКСТА ПРОЕКТА ==="

if [ -f "$PROJECT_DIR/CLAUDE.md" ]; then
  echo "--- CLAUDE.md ---"
  cat "$PROJECT_DIR/CLAUDE.md"
fi

if [ -f "$PROJECT_DIR/docs/tasks-detailed.md" ]; then
  echo ""
  echo "--- СЛЕДУЮЩИЕ ЗАДАЧИ ---"
  head -100 "$PROJECT_DIR/docs/tasks-detailed.md"
fi

if git -C "$PROJECT_DIR" rev-parse --is-inside-work-tree &>/dev/null; then
  CHANGED=$(git -C "$PROJECT_DIR" diff --name-only 2>/dev/null)
  if [ -n "$CHANGED" ]; then
    echo ""
    echo "--- НЕЗАКОММИЧЕННЫЕ ИЗМЕНЕНИЯ ---"
    echo "$CHANGED"
  fi
fi

Примеры работы

Хук срабатывает при первом вызове любого инструмента — Read, Edit, Bash и других. Он не блокирует работу, только выводит контекст.

Что пропускает

  • Повторные вызовы в той же сессии (lock-файл)
  • Проекты без CLAUDE.md в корне
  • Вызовы из субагентов (не основная сессия)

Что обрабатывает

  • Первый вызов инструмента после запуска claude — читает весь CLAUDE.md
  • Наличие незакоммиченных файлов — показывает список
  • Наличие tasks-detailed.md — показывает первые задачи

Настройка под себя

Хук можно расширить для конкретного проекта: добавить чтение .env.example, вывод последних коммитов или статуса CI/CD. Главное — не перегружать вывод, иначе AI потратит токены на чтение лишнего.

  • head -N — ограничь количество строк из tasks-detailed.md
  • Добавь git log --oneline -5 для последних коммитов
  • Добавь cat .env.example чтобы AI знал доступные переменные
  • Используй CLAUDE_SKIP_CONTEXT=1 для быстрых сессий без загрузки
Хороший session-start — как планёрка на 30 секунд. Не лекция, не молчание — ровно столько, чтобы начать работать.
#Hooks#Claude Code#Project Knowledge
TG

> Пока нет комментариев

Связанный контент

Похожие инструменты