ХукПроцессы

reinject-context

Восстанавливает контекст после compaction (сжатия). Подгружает текущую задачу, активные файлы и прогресс.

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

Описание

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

При очень длинной работе Claude сжимает свою память, чтобы освободить место для новых мыслей. После этого он может забыть что делал. Это как если тебя разбудить посреди сложного дела — нужно напомнить с чего начали.

Этот хук срабатывает сразу после такого сжатия и восстанавливает контекст: что за проект, какая задача, какие файлы менялись. Claude продолжает работу как ни в чём не бывало.


Что делает

Хук reinject-context срабатывает при SubagentCompaction — когда Claude сжимает контекст для освобождения окна. После compaction AI теряет детали текущей задачи. Этот хук восстанавливает критическую информацию: прогресс, текущую задачу, список изменённых файлов.

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

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

Триггер: Notification с типом SubagentCompaction. Условие: срабатывает автоматически. Действие: выводит прогресс из CLAUDE.md, следующую задачу, список незакоммиченных файлов.


Установка

  1. Добавь конфиг Notification в .claude/settings.json
  2. Создай ~/.claude/hooks/reinject-context.sh с правами chmod +x
  3. Убедись, что CLAUDE.md проекта содержит секцию ## ПРОГРЕСС

Конфиг settings.json

{
  "hooks": {
    "Notification": [
      {
        "matcher": "SubagentCompaction",
        "hooks": [
          {
            "type": "command",
            "command": "~/.claude/hooks/reinject-context.sh"
          }
        ]
      }
    ]
  }
}

Скрипт хука

#!/bin/bash
# reinject-context.sh — восстановление контекста после compaction
# Notification: SubagentCompaction

PROJECT_DIR="${CLAUDE_PROJECT_DIR:-$(git rev-parse --show-toplevel 2>/dev/null || pwd)}"

echo "=== REINJECT CONTEXT AFTER COMPACTION ==="
echo ""

if [ -f "$PROJECT_DIR/CLAUDE.md" ]; then
  echo "--- ТЕКУЩИЙ ПРОГРЕСС ---"
  awk '/^## ПРОГРЕСС/,/^## [^П]/' "$PROJECT_DIR/CLAUDE.md" | head -40
fi

if [ -f "$PROJECT_DIR/docs/tasks-detailed.md" ]; then
  echo ""
  echo "--- СЛЕДУЮЩАЯ ЗАДАЧА ---"
  grep -A 10 "- [ ]" "$PROJECT_DIR/docs/tasks-detailed.md" | head -15
fi

if git -C "$PROJECT_DIR" rev-parse --is-inside-work-tree &>/dev/null; then
  echo ""
  echo "--- ИЗМЕНЁННЫЕ ФАЙЛЫ ---"
  git -C "$PROJECT_DIR" diff --name-only 2>/dev/null
  git -C "$PROJECT_DIR" diff --cached --name-only 2>/dev/null
fi

echo ""
echo "=== ПРОДОЛЖАЙ РАБОТУ С ТОГО МЕСТА ==="
exit 0

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

Compaction — автоматический процесс. При длинных сессиях (50+ ходов) он срабатывает несколько раз. Каждый раз хук восстанавливает контекст.

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

  • Обычные уведомления (не SubagentCompaction)
  • Сессии без CLAUDE.md — выводит только изменённые файлы
  • Проекты не в git-репозитории — пропускает секцию с файлами

Что восстанавливает

  • Секцию ПРОГРЕСС из CLAUDE.md — фаза разработки, что сделано
  • Первую незакрытую задачу из tasks-detailed.md
  • Список незакоммиченных и staged файлов
  • Ориентир для продолжения без повторного объяснения

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

  • Добавь чтение docs/ai-notes/block-N.md для контекста текущего блока
  • Добавь git log --oneline -3 для последних коммитов
  • Добавь cat .env.example если AI работает с конфигурацией
  • Ограничь объём через head -N чтобы не перегружать контекст
Compaction — это не баг, это фича. Но только если у тебя есть хук для восстановления. Иначе это амнезия посреди разработки.
#Hooks#Claude Code#Вайбкодинг
TG

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

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

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