1. Сборка: вешаем хук через агента
Лёха только что водил его за руку — показывал на примерах, как настраивается hook, как журнал пишется сам, как комп отзывается голосом. Это была работа мастера. А теперь Тёма собирает свой хук начисто и сам — с Саней, от пустой настройки до живого журнала. На руках у него всё нужное: спека HOOK_SPEC с тремя графами, модель «событие → действие» и понимание, что вешать хук надо не руками в конфиге, а словами через агента.
У него уже есть живые артефакты вчерашнего дня — Earthquake Radar и крипто-тикер, рядом лежат игры с прошлых уровней, тот же Тетрис. Вокруг них он крутит follow-up-задачи руками, и внешнего следа «что и когда просил» нет. Сейчас он повесит хук, который будет вести этот журнал сам.
В конфиг Тёма даже не лезет — ставит хук словами, как привык:
Повесь hook: на каждый мой запрос дописывай его со временем в requests.log.
— Давай, Сань, как в спеке расписано, — бросает он вслед. — Событие, действие, куда писать — всё там.
Саня по этой фразе и вешает настоящий hook. Кладёт скрипт-обработчик .claude/hooks/log-prompt.sh и прописывает событие UserPromptSubmit в .claude/settings.json:
{
"hooks": {
"UserPromptSubmit": [
{ "hooks": [ { "type": "command", "command": ".claude/hooks/log-prompt.sh" } ] }
]
}
}
Событие — «Тёма отправил запрос». Действие — записать время и сам запрос в requests.log. Та самая стрелочка, только теперь не на бумажке, а живой настройкой. Тёма проверяет, что хук встал:
/hooks # в списке должен быть наш UserPromptSubmit
UserPromptSubmit виден в списке — хук на месте, можно работать как обычно.
2. Журнал пишется сам
Тёма специально берёт не выдуманные команды, а живые follow-up-задачи — те самые, что мучили его утром. Просит подправить блок тикера. Просит на радаре сдвинуть порог. И не отрываясь смотрит на файл.
Он жмёт Enter на первом запросе. Короткая пауза — та самая, пока не разберёшь, пошло дело или вхолостую. Файл requests.log раскрыт под боком, и Тёма нет-нет да зыркнет на него краем глаза. А потом в журнале сама проступает строка: время, его запрос. Он её не печатал. Не открывал файл, не дописывал, пальцем не шевелил — взялась и проявилась.
— Опа, — вырывается у него.
Жмёт второй запрос — вторая строка падает следом, тоже сама. Третий — третья. Он специально гоняет запросы чаще, чем нужно, просто чтоб смотреть, как файл растёт без единого его движения, будто кто-то невидимый ведёт за него протокол. Само собой ложатся ровно те строки, что пишет скрипт, — время и текст запроса, как есть:
[14:32] вернуть блок тикера к утреннему варианту
[14:41] на радаре поднять порог магнитуды до 3.0
[14:55] тикеру цвет фона на тёмный
А пометки «на чём сошлись» Тёма потом дописывает к нужным строкам сам, когда решение принято, — хук их не пишет, он только кладёт запрос. Получается два слоя: авто-строка от скрипта плюс ручная пометка о решении.
[14:32] вернуть блок тикера к утреннему варианту
→ решили: формат "BTC $XXXXX · обновлено HH:MM"
Тёма открывает журнал, проводит пальцем по строкам — и утренней возни как не бывало. Не надо больше надеяться, что голова удержит разговор. Вот он, журнал: что просил, когда, какими словами — лёг сам; а где надо, рядом его же рукой помечено, на чём сошлись. Открыл — прочитал. Никакого угадывания.
— Был бы у меня такой утром, — хмыкает он, — тот блок тикера за десять секунд нашёл бы.
3. Автоматика работает без напоминаний
Тёма откидывается на спинку — и вдруг застывает на полпути. Что-то не сходится.
— Стоп, — говорит он вслух, ни к кому. — А я ж вообще про этот журнал забыл. Сразу, как Саня его воткнул. Сидел тикер правил, радар крутил — и ни разу про него не вспомнил.
Он наклоняется к экрану обратно, будто проверить — а вдруг привиделось. Открывает requests.log. Строки на месте, все до одной, ровным столбиком, время к времени. Он листает их пальцем сверху вниз — и пересчитывает в голове свои сегодняшние запросы. Сходится. Ни одной не потерял.
— Так это ж… — он медлит, складывая. — Я ж его не вёл. Я про него забыл. А он есть.
И тут его будто под дых бьёт. Утром-то было ровно наоборот: забыл — значит, потеряно, угадывай теперь, какой блок был вчера, злись на свою дырявую башку. А сейчас он забыл точно так же — и не потерял ничего.
— Это что, — говорит он медленно, сам себе не веря, — выходит, можно забыть — и чтоб не пропало?
Он откидывается обратно, теперь уже до конца, и расплывается.
— Вот это кайф. Самое слабое моё место — что забываю всё, — а оно теперь даже не моё. Оно вон, в файле. Раньше забыл — значит просрал. Теперь забыл — а оно само записалось.
Ухмыляется собственной хитрости: ничего ж толком не сделал — а протокол сам себя ведёт. Красиво устроился, думает он, не понимая ещё, чьё это красиво.
4. Сколько стоит каждое срабатывание
Войдя во вкус, Тёма тут же хочет ещё:
— Сань, раз так легко — давай, чтоб при каждом follow-up сама собиралась короткая сводка из логов и последних правок.
Саня вешает и это — поверх ядра, как сладкое сверху, не как вторая обязательная победа. Тёму несёт, он бы сейчас навесил десяток таких хуков и не считал.
Лёха роняет спокойно:
— Ты только держи в голове одну вещь. Каждое срабатывание — это работа, а работа жжёт ресурс модели. Навесишь полсотни хуков — будут молотить фоном, даже когда ты в игрушки рубишься. Запас пока большой, не парься. Но не «вешай всё подряд и не думай».
— Запас большой, не парюсь, — выхватывает Тёма ровно эту половину. Про цену пропускает — он же гений лени, какие тут лимиты, чем больше само, тем лучше.
Олег, мимо проходя, ворчит своё:
— Дашь системе волю — она тебе наворотит дел без спросу, потом сам же и разгребай.
— Дядь Олег, ты себя слышишь? — Тёма аж сияет. — «Сама наворотит дел». Так это ж мечта! Я-то как раз и хочу, чтоб без спросу работала, мне меньше шевелиться. Ты мне сейчас не пугалку выдал, а рекламу.
5. Настроил один раз — работает всегда
Вечером, когда Тёма уже в чистом кайфе автономности, в чат с Артём2036 падает строка — и опять не целая, в чёрных кляксах под конец, будто кто-то выгрыз ей хвост:
— «Лучшая фраза» — так и есть, — Тёма улыбается, цепляя первую, целую половину. — Прям про сегодня.
А дальше строка снова уходит в труху — половину слов словно маркером замазали. Тёма щурится, выуживает из каши два уцелевших: «чужие деньги». К чему это? У него-то всё своё, ноутбук да игрушки, никаких чужих денег и в помине. Он пожимает плечом — мало ли что канал лепит, — и пробегает остаток как красивый довесок, изящную фигуру речи в духе чата с собой из будущего. Хмыкает, закрывает чат. Артём2036, как обычно, ничего не разжёвывает.
В том, что день удался, Тёма уверен до самых пяток. Уносит он одно чистое послевкусие: можно настроить — и забыть. Система работает сама, в тех самых местах, где раньше всё держалось на нём. Картинку с утренним такси, у которого тикал счётчик в пустой машине, он за весь день так и не вспоминает.
Он захлопывает крышку ноута. Завтра разберётся, если что. А этот день запомнится одним: впервые что-то крутится за него само, пока он занят совсем другим, — и от этого внутри тепло и щекотно, как от маленькой удавшейся хитрости.
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ