reinject-context
Восстанавливает контекст после compaction (сжатия). Подгружает текущую задачу, активные файлы и прогресс.
Описание
Простым языком
При очень длинной работе Claude сжимает свою память, чтобы освободить место для новых мыслей. После этого он может забыть что делал. Это как если тебя разбудить посреди сложного дела — нужно напомнить с чего начали.
Этот хук срабатывает сразу после такого сжатия и восстанавливает контекст: что за проект, какая задача, какие файлы менялись. Claude продолжает работу как ни в чём не бывало.
Что делает
Хук reinject-context срабатывает при SubagentCompaction — когда Claude сжимает контекст для освобождения окна. После compaction AI теряет детали текущей задачи. Этот хук восстанавливает критическую информацию: прогресс, текущую задачу, список изменённых файлов.
Без этого хука после compaction AI иногда забывает что делал и начинает с начала. С ним — продолжает разработку с правильным контекстом.
Когда срабатывает
Триггер: Notification с типом SubagentCompaction. Условие: срабатывает автоматически. Действие: выводит прогресс из CLAUDE.md, следующую задачу, список незакоммиченных файлов.
Установка
- Добавь конфиг
Notificationв.claude/settings.json - Создай
~/.claude/hooks/reinject-context.shс правамиchmod +x - Убедись, что 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 — это не баг, это фича. Но только если у тебя есть хук для восстановления. Иначе это амнезия посреди разработки.
> Пока нет комментариев
Связанный контент
Похожие инструменты
/bug-fix
Quick Fix mode: определи баг -> исправь -> проверь -> коммить. Без brainstorm и планирования.
Открыть →/ship
Полный Feature pipeline: brainstorm -> план -> одобрение -> реализация -> тесты -> коммит.
Открыть →/done
Финализация задачи: AI_NOTES, cost-tracker, QA-проверки. Фиксирует что сделано и запускает финальный ревью.
Открыть →/end
Завершение сессии с сохранением прогресса. Обновляет CLAUDE.md, фиксирует незакоммиченные изменения.
Открыть →