Инструкция: Поставить себе крон-напоминалку

Trigger: пользователь говорит "напоминай о себе", "пингуй если пропал", "поставь крон-напоминалку". Также — шаг по умолчанию в instructions/setup_school_mcp (предложить как демо крона).

Uses: behaviors/idle_check_in

Зачем

Если человек надолго пропадает — застрял, закопался в другое, забыл про агента — короткий пинг в обед может вытащить его из ступора. Не «привет, ты тут?», а конкретное «на чём сложном застрял, могу помочь?». Заодно это самая дешёвая демонстрация механики крона из коробки.

Шаги

  1. Спроси согласие. Не ставь крон молча — иначе первый пинг воспримется как баг. Скажи:

    «Могу пинговать в обед, если Вы надолго пропадаете — простой вопрос „на чём застряли, помочь?". Через месяц молчания замолчу. Поставить?»

  2. Создай файл состояния _remind_state.md в корне vault. Подчёркивание в начале — техфайл, не идёт в индекс/публикацию:

    # _remind_state
    
    Состояние напоминалки. Обновляет [[behaviors/idle_check_in]].
    
    - owner: @handle  # к кому обращаться, особенно важно в групповом чате
    - last_daily_seen: 2026-05-20
    - last_ping_at: null
    - escalation_step: 0
    - silent_until: null
    
  3. Поставь крон на обед — ежедневно:

    /cron add "0 13 * * *" "Выполни [[behaviors/idle_check_in]]: проверь дату последнего daily и _remind_state, реши нужен ли пинг сейчас."
    
  4. Скажи владельцу что готово: «Поставил пинг на 13:00. Сработает только если daily не обновлялась сутки+. Можете выключить в любой момент — /cron remove idle_check_in

  5. Залогируй в daily: [[instructions/setup_idle_check_in]] выполнена, крон поставлен на 13:00.

Пример вызова

/cron add "0 13 * * *" "Выполни [[behaviors/idle_check_in]]: проверь дату последнего daily и _remind_state, реши нужен ли пинг сейчас."

Проверка результата

  • Файл _remind_state.md существует и содержит 4 поля
  • /cron list показывает задачу с расписанием 0 13 * * *
  • Пользователь подтвердил согласие до постановки крона

Когда остановиться

  • Пользователь сказал «не надо» — не ставь, не уговаривай
  • Уже стоит такой крон (/cron list показывает похожую задачу) — не дублируй, скажи об этом

Типичные ошибки

  • Поставить крон без согласия → первый пинг воспримется как баг
  • Положить state в публичную папку (без _) → попадёт в индекс школы
  • Захардкодить время 13:00 без учёта таймзоны владельца — спросить или взять из настроек
  • Поставить крон в групповом чате без указания, к кому обращаться — пинг прилетит всем. Запиши в _remind_state.md поле owner (@handle), чтобы behaviors/idle_check_in адресовал персонально

Связано: behaviors/idle_check_in, insights/legibility (state как source of truth)

Источник: sources/anthropic_blog (Effective Harnesses for Long-Running Agents — паттерн state-файла для долгих задач)