Почему это важно именно вам
За последние десять дней вы освоили пять инструментов. Каждый — полезен сам по себе. Skills убирают повторное объяснение задачи. Именованные сессии дают память по проектам. Git worktrees позволяют держать несколько версий документов одновременно. Pre-commit hooks защищают файлы от случайных изменений. Автозапуск через launchd превращает разовый скрипт в ежедневный процесс.
Проблема в том, что до сих пор это были отдельные кирпичи. Если вы настроили только скрипт по расписанию, но не skill — скрипт содержит промпт прямо внутри, и когда нужно его поменять, придётся лезть в bash-код. Если вы используете только именованные сессии, но не автоматизацию — всё равно запускаете Claude вручную каждое утро. Каждый инструмент в одиночку закрывает один сценарий. Вместе они закрывают рабочий день.
Этот урок — про то, как собрать это в единую систему. Конкретная архитектура, конкретный сценарий, конкретный чек-лист: что настроить за выходные, чтобы в понедельник утром всё работало без вашего участия.
Что это такое
Фаза 4 — это фаза личной автоматизации. Не автоматизации ради автоматизации, а конкретного результата: рутинные задачи выполняются сами, вы приходите к готовому контексту и занимаетесь только теми решениями, которые требуют вас лично.
Быстрый обзор того, что вы изучили за дни 31–39:
Дни 31–34 — библиотека skills. Папки со SKILL.md в .claude/skills/ — это ваши зафиксированные рабочие инструкции. Один раз написали «как анализировать договор» или «как структурировать недельный отчёт» — и теперь вызываете одной командой /analiz-dogovora, не повторяя объяснения. В День 32 собрали первый скилл, в День 33 научились передавать в него параметры, в День 34 — собрали библиотеку для реальных директорских задач.
Дни 35–36 — именованные сессии и fork. claude --name 'квартальный-отчёт' создаёт сессию с памятью. Claude знает контекст этого проекта, помнит договорённости, не требует повторного ввода данных. Fork из Дня 36 — это ответвление сессии в точке, где нужно попробовать два подхода: один вариант письма жёсткий, другой партнёрский, и вы сравниваете оба.
День 37 — Git worktrees. Несколько версий документов в отдельных папках, Claude работает в каждой независимо. Для директора — это «основной вариант отчёта» и «версия для руководства» одновременно, без путаницы в файлах вида otchet_final_v3_ФИНАЛ.docx.
День 38 — Pre-commit hooks. PreToolUse в settings.json перехватывает запись файла. Агент хочет сохранить правку — сначала проверка. Это не откат и не журнал, это ворота: файл либо записывается чистым, либо агент получает отказ с объяснением.
День 39 — Автоматизация через launchd. claude -p в bash-скрипте, .plist файл в ~/Library/LaunchAgents/, первая строка после шебанга — source ~/.zshenv. Скрипт запускается ежедневно в 9:00 без вашего участия.
Ключевое наблюдение фазы
Skills + именованные сессии + автоматизация — это три слоя одной системы. Skills хранят инструкции. Сессии хранят контекст. Автоматизация убирает ручной запуск. Без одного из трёх система работает вполсилы.
Как работает на практике
Разберём конкретный сценарий: «утро директора» — то, что должно происходить каждый рабочий день до вашего прихода в офис.
Сценарий: что происходит в 8:45 МСК без вашего участия
Шаг 1. Launchd запускает скрипт ~/scripts/morning-context.sh.
Шаг 2. Скрипт вызывает claude -p с skill /утренний-дайджест. Не пишет промпт прямо в bash — вызывает файл из .claude/skills/. Промпт живёт в skill, скрипт только передаёт данные.
Шаг 3. Claude обрабатывает папку «Входящие», формирует дайджест с разделом «Требует реакции сегодня». Результат сохраняется в ~/Documents/Дайджесты/2026-06-03.md.
Шаг 4. Вы приходите — файл готов. Открываете, читаете две минуты, понимаете день.
Вот как это выглядит технически — связка skill и скрипта:
Файл .claude/skills/utreniy-dayjest/SKILL.md:
# Утренний дайджест входящих
Обработай список файлов, переданных как аргумент.
Для каждого файла определи по имени:
- Тип документа (договор, письмо, отчёт, счёт, прочее)
- Предполагаемый отправитель
- Срочность (сегодня / эта неделя / не срочно)
Структура ответа:
1. **Требует реакции сегодня** — файлы с высокой срочностью
2. **Эта неделя** — можно отложить, но не забыть
3. **Фон** — входящие без срока
Тон: деловой, без пустых слов. Одна строка на файл — имя + суть + что делать.
Скрипт ~/scripts/morning-context.sh:
#!/bin/bash
source ~/.zshenv
INBOX_DIR="$HOME/Documents/Входящие"
OUTPUT_DIR="$HOME/Documents/Дайджесты"
mkdir -p "$OUTPUT_DIR"
TODAY=$(date +%Y-%m-%d)
OUTPUT_FILE="$OUTPUT_DIR/$TODAY.md"
NEW_FILES=$(find "$INBOX_DIR" -maxdepth 1 -type f -mtime -1 2>/dev/null)
if [ -z "$NEW_FILES" ]; then
echo "# Дайджест $TODAY — входящих нет" > "$OUTPUT_FILE"
exit 0
fi
echo "# Дайджест входящих — $TODAY" > "$OUTPUT_FILE"
echo "" >> "$OUTPUT_FILE"
echo "Новые файлы во входящих:
$NEW_FILES" | claude -p /utreniy-dayjest >> "$OUTPUT_FILE" 2>/dev/null
Почему промпт в skill, а не в скрипте
Когда логика изменится — нужно будет добавить раздел или поменять критерий срочности — вы отредактируете markdown-файл в .claude/skills/, а не bash-код. Это разделение ответственности: скрипт управляет данными, skill управляет инструкцией.
Схема личной автоматизации директора
Вот архитектура, которую можно настроить один раз и не трогать месяцами:
.claude/
├── settings.json ← pre-commit hooks (защита файлов)
├── CLAUDE.md ← ваш контекст, должность, предпочтения
└── skills/
├── utreniy-dayjest/SKILL.md ← дайджест входящих
├── analiz-dogovora/SKILL.md ← анализ договора
├── revyu-pisma.md ← проверка деловых писем
├── nedelniy-otchet.md ← отчёт для руководства
└── brifing-vstrechi.md← подготовка к встрече
~/Library/LaunchAgents/
└── com.mywork.morning.plist ← запуск в 8:45 МСК
~/scripts/
└── morning-context.sh ← скрипт дайджеста
Именованные сессии (активные):
claude --name 'квартальный-отчёт'
claude --name 'переговоры-подрядчик'
claude --name 'аналитика-май'
Каждый слой отвечает за своё:
- CLAUDE.md — кто вы, контекст компании, как вы работаете. Читается при каждом запуске, в том числе при автоматическом — это важно. Если CLAUDE.md описывает ваш рабочий стиль и предпочтения по формату, то дайджест, сгенерированный в 8:45 без вас, будет написан так же, как если бы вы сидели рядом.
- skills/ — инструкции для повторяющихся задач. Вызываются
/командой. Это живые документы: исправили пункт — следующий запуск уже работает по-новому, без пересборки чего-либо. - launchd — расписание. Запускает скрипты без вашего участия. Один раз написали
.plist, загрузили черезlaunchctl load— и об этом можно забыть на месяцы. - Именованные сессии — память по проектам. Возвращаетесь к контексту одним флагом
--resume. Десять минут диалога с Claude по договору не теряются — они ждут вас под именем сессии. - settings.json — защита. Pre-commit hook не даёт агенту перезаписать файл без проверки. Это особенно важно, когда агент работает в автоматическом режиме и вы не смотрите на экран.
Ещё один элемент, который часто добавляют на этом этапе — еженедельный скрипт. Он запускается в пятницу в 17:00, собирает все дайджесты за неделю, передаёт Claude и получает итоговую сводку: что было сделано, какие темы повторялись, что перенеслось. Это занимает пять минут настройки и экономит тридцать минут в конце каждой недели, которые раньше уходили на «вспомни, что было в понедельник».
Самая частая точка отказа
Скрипт по расписанию молчит, файл не появляется — и непонятно почему. Всегда смотрите логи: cat /tmp/morning-context-error.log. Девяносто процентов проблем — либо забытый source ~/.zshenv (Claude не видит токен), либо тильда вместо полного пути в .plist файле. Это обсуждалось в День 39.
Частые ошибки
Ошибка 1. Начать с автоматизации, не проверив скрипт вручную
Настроили launchd, ждёте результата в 9:00 — его нет. Потеряли час на диагностику. Правило: любой скрипт сначала запускается руками командой ~/scripts/morning-context.sh. Только когда он отработал без ошибок и создал нужный файл — ставите расписание.
Ошибка 2. Держать промпт прямо в bash-скрипте
# Плохо — промпт захоронен в скрипте
echo "Проверь файлы и сделай дайджест..." | claude -p
# Хорошо — промпт в skill, скрипт передаёт данные
echo "$NEW_FILES" | claude -p /utreniy-dayjest
Когда потребуется изменить логику дайджеста, во втором случае вы просто открываете markdown-файл. В первом — редактируете bash и рискуете сломать кавычки или отступы.
Ошибка 3. Создать слишком много skills сразу
Десять файлов в первую же неделю, половина из них — не отработана на практике. В результате: непонятно, какой вызывать, некоторые работают плохо, библиотека превращается в свалку. Лучший подход: один skill за раз, используете пять раз — только потом создаёте следующий. Как делали в День 31.
Ошибка 4. Оставить именованные сессии без структуры
Через месяц у вас двадцать сессий с именами проект, письмо, анализ, test2. Не помните, что в каждой. Договоритесь с собой о схеме именования сразу: тема-контрагент или тип-дата. Например: otchet-q2-2026, dogovor-tsian-may, analitika-avito. Имя должно быть понятным через три недели.
Ошибка 5. Пропустить тест перед первым реальным запуском по расписанию
Launchd не пришлёт вам письмо, если скрипт упал. Он просто запишет код ошибки в строку launchctl list | grep имя-задачи. Первый код выхода не 0 — значит, было падение. Проверяйте через launchctl start имя-задачи немедленно после настройки — не ждите следующего утра. Если ошибка выявлена при ручном запуске, исправить можно за пять минут. Если выясняется через неделю «дайджест не генерировался с пятницы» — это разочарование, которого можно было избежать одной строкой.
Когда нужно / когда нет
Собирайте полную систему, когда:
- Есть хотя бы три повторяющихся задачи в неделю, которые вы уже научились формулировать как промпт
- Работаете с Claude ежедневно — система окупается через неделю
- Есть чёткий триггер по времени (утро, конец недели, начало месяца) — для этого нужен launchd
- Работаете над несколькими параллельными проектами, каждый требует своего контекста
Не торопитесь с системой, когда:
- Используете Claude раз в несколько дней — overhead настройки не окупается
- Задачи ещё не устоялись: каждый раз разный промпт, разный формат — сначала найдите стабильный процесс, потом фиксируйте в skill
- Не уверены в корректности скрипта — не ставьте расписание на нестабильный код
Практический критерий готовности
Если вы три раза подряд сделали одно и то же с одинаковым промптом и остались довольны результатом — процесс устоялся. Можно фиксировать в skill и автоматизировать. Если каждый раз промпт чуть другой — ещё рано.
Связь с другими уроками
День 11 — CLAUDE.md — основа всего. Контекст о вас и вашей работе, который читается при каждом запуске, в том числе при автоматическом. Без хорошего CLAUDE.md скрипт по расписанию работает «в вакууме»: Claude не знает, для кого делает дайджест и в каком формате вам удобно.
Дни 31–34 — Skills — библиотека инструкций. Навык написать хороший skill-файл — главный для фазы 4. Если skill расплывчатый, автоматизация усилит эту расплывчатость.
Дни 35–36 — Именованные сессии — память по проектам. Работают параллельно с автоматизацией: утренний скрипт создаёт дайджест в фоне, а именованная сессия — это место, где вы сами работаете с проектом, возвращаясь к накопленному контексту.
Дни 41–42 — Hooks — следующая фаза. Если launchd — это про время («запусти в 9:00»), то hooks — это про события («когда Claude записал файл — уведоми меня в Telegram»). Фаза 5 строится поверх того, что вы настроили сейчас.
Задание на сегодня
Это итоговое задание фазы 4. Оно рассчитано на выходные — не на один вечер.
Чек-лист: что настроить, чтобы всё заработало
-
[ ] Skills: откройте
.claude/skills/и посчитайте, сколько файлов там сейчас. Если меньше трёх — создайте ещё. Обязательные кандидаты для директора: анализ договора, проверка письма, недельный отчёт. -
[ ] Один skill связан с автоматизацией: выберите один skill, который будет вызываться скриптом по расписанию. Чаще всего это утренний дайджест или еженедельная сводка.
-
[ ] Скрипт вызывает skill через
/команду, а не через вставленный промпт. Проверьте это в~/scripts/. -
[ ] Запустили скрипт вручную и получили файл результата без ошибок.
-
[ ] Настроили
.plistв~/Library/LaunchAgents/с правильным временем запуска. Полный путь в plist, не тильда. -
[ ] Проверили через
launchctl start— задача запустилась принудительно и дала результат. -
[ ] Есть хотя бы одна именованная сессия для текущего активного проекта:
claude --name 'название-проекта'. -
[ ] Pre-commit hook настроен в
.claude/settings.json— хотя бы простая проверка для папки, где лежат важные документы (как делали в День 38).
Критерий «система работает»: в понедельник утром вы открываете ~/Documents/Дайджесты/ и находите там файл с сегодняшней датой, созданный автоматически. Вы его не запускали. Он просто есть.
Резюме
-
Фаза 4 — это пять инструментов, которые работают как система: skills хранят инструкции, именованные сессии хранят контекст, launchd убирает ручной запуск, pre-commit hooks защищают файлы, git worktrees изолируют версии.
-
Скрипт по расписанию должен вызывать skill через
/команду, а не держать промпт внутри bash-кода. Это разделение, которое экономит время при любом изменении логики. -
Самая частая точка отказа в автоматизации —
source ~/.zshenvне прописан или тильда вместо полного пути в plist. Первым делом при диагностике — смотретьcat /tmp/имя-скрипта-error.log. -
Именованные сессии и автоматизация решают разные задачи: скрипт по расписанию — фоновая обработка без вашего участия; именованная сессия — ваша живая работа с накопленным контекстом проекта.
-
Фаза 5 (Дни 41–50) строится поверх этого. Hooks — это про события, а не про время: «когда Claude сделал X — выполни Y». Если launchd уже настроен и работает — следующий шаг освоите быстро.