К содержанию
Все статьи

ИИ

Claude MOD на страже моей продуктивности

Два плагина для Claude Code: один напоминает, что контекст разросся, второй передаёт работу в новую сессию.

Михаил Дайхин5 мин

«Держи контекст Claude Code небольшим». Отличный совет, но кто будет следить за цифрой? Я бы не стал, поэтому сделал для этого мод.

Я постоянно читаю советы о том, как лучше работать с Claude Code. Их дают и разработчики Anthropic, и независимые авторы, и проповедуют они одно: держи контекст сравнительно небольшим, а когда он разрастается, очищай его, сжимай (compact) или начинай новую сессию.

У меня же в одной сессии обычно лежит куча заданий подряд, они хоть и связаны логически между собой, но контекст раздувают. Мои самые длинные сессии доходили почти до 3 млн токенов. Следить за размером контекста я точно не буду, нужна была автоматизация. К тому же я хотел попробовать моды для Claude Code, и повод подвернулся.

Context is 66% of the window (661K tokens). What now?

context-guard dialog: Context is 66% of the window (661K tokens). What now?

Так выглядит вопрос, который теперь возникает в моих сессиях. Его задаёт плагин-MOD context-guard.

Что делает context-guard

После каждого ответа он смотрит на размер контекста. Когда заданный порог пройден, выскакивает окно с четырьмя вариантами:

  • Compact: сжать контекст и работать дальше.
  • Handoff, then new session: написать передачу работы, потом открыть новую сессию (отдельная польза, о нем ниже)
  • New session (/clear): начать с чистого листа.
  • Continue: ничего не менять.

Порог по умолчанию стоит на 35% окна, это примерно треть: 350k токенов при окне в миллион. Задан он долей окна, поэтому на окне в 200k это будет уже 70k. Если выбрать Continue, мод спросит снова, когда контекст вырастет ещё на 10% окна (тоже по умолчанию). Окно можно просто закрыть: мод засчитает это как Continue.

При первом запуске мод спросит порог и шаг для повторного вопроса и запомнит ответы, а поменять их потом можно командой /context-guard. Пункт про handoff появляется в окне, только если у тебя стоит скилл handoff. Ещё мод считает, как я им пользуюсь: сколько раз выскакивало окно и что я выбирал. Счётчики лежат только у меня на машине и никуда не уходят.

Теперь у мода есть и постоянная полоса над полем ввода: одной строкой она показывает, сколько окна занято и где мод спросит в следующий раз.

ctx-grd ████▉░│░░░ 26% used | next ask at 35%  [ Compact ] [ Handoff ] [ Clear ]

context-guard band above the prompt in the Claude desktop app: 17% used, ask 35%, buttons Compact, Handoff and Clear, and the confirmation row

Полоса зелёная, пока порог не пройден, жёлтая после него и красная с 90%. Белая метка на ней показывает следующий вопрос. Три кнопки делают то же, что ответы в окне, но каждая сперва просит подтверждения прямо в полосе: фокус стоит на Cancel, а если не ответить 20 секунд, ничего не запустится. Полоса рисуется в терминале и в десктопном приложении Claude, а командой /context-guard style можно оставить только окно или только полосу.

Что делает handoff

С handoff история другая. У меня уже был старый собственный скилл, который передавал работу в новую сессию. Планируя guard я решил обновить handoff, и мы с клодом пересобрали скилл с нуля. Команда /handoff пишет JSON-файл о текущей сессии и проверяет его по схеме, а потом выводит путь к файлу и короткий стартовый промпт для новой сессии.

Вот как выглядит путь от вопроса до новой сессии:

  1. Ты выбираешь «Handoff, then new session».
  2. Агент пишет handoff, проверяет его по схеме и называет путь к файлу. Мод в это время напоминает: когда файл будет готов, выполни /clear и вставь путь к файлу в новую сессию.
  3. В десктопном приложении Claude появляется карточка запуска новой сессии, где можно выбрать модель и effort. Вне приложения скилл просто печатает промпт, который надо вставить.
  4. Новая сессия читает файл и сверяет окружение с реальностью: папку, ветку, незакоммиченные файлы. Она говорит, что отличается, и только потом берётся за следующий шаг.

В файле лежит всё, что нужно следующему агенту:

  • цель сессии;
  • что сделано, и про каждый пункт отметка, проверен ли он и чем;
  • что не проверено;
  • решения и их причины;
  • тупики, чтобы следующий агент не ходил туда второй раз;
  • открытые вопросы;
  • окружение: папка, ветка, незакоммиченные файлы, что ещё запущено;
  • ссылки на документы и файлы;
  • один следующий шаг.

В сокращённом виде файл выглядит так:

{
  "goal": "...",
  "state": {
    "done": [{ "item": "...", "verified": true, "evidence": "команда, которая это подтвердила" }],
    "not_verified": ["..."]
  },
  "dead_ends": [{ "tried": "...", "result": "..." }],
  "next_step": { "action": "...", "first_command": "..." }
}

Мне важнее всего разделение на «сделано и проверено» и «не проверено»: новая сессия считает установленным только то, что файл помечает как проверенное, а всё остальное для неё неизвестно. Пишет скилл всегда по-английски, даже если сессия шла по-русски (это моё правило), а текст, который нужно сохранить как есть, кладёт отдельно в поле verbatim_copy.

Куда ещё можно отдать handoff

Handoff лежит в обычном файле по известному пути. Поэтому ничто не мешает открыть его не только в новой сессии, но и в сессии другого проекта. Мало ли как он пригодится.

Как поставить

Отдай своему агенту эту строку, он сам разберётся и спросит перед каждым шагом :)

Install session-kit for me. Read https://raw.githubusercontent.com/WIPexpert/mikeday-session-kit/main/INSTALL.md and follow it. Tell me in plain words what you are about to do, and ask me before you change anything.

Теперь твоя очередь

Репозиторий называется Mike Day Session Kit, лицензия MIT: https://github.com/WIPexpert/mikeday-session-kit

Мне кажется, многим понравится, а навредить он уж точно не навредит. Ставь, пользуйся, а если что‑то сломается, пиши в GitHub Issues.

Ту же историю я написал по-английски отдельным текстом, это не перевод: английская версия.

ПоделитьсяTelegramLinkedInX