1. Збирання: вішаємо хук через агента
Льоха щойно водив його за руку — показував на прикладах, як налаштовується хук, як журнал пишеться сам, як компʼютер відгукується голосом. Це була робота майстра. А тепер Тьома збирає свій хук з нуля й сам — із Санею, від порожнього налаштування до живого журналу. На руках у нього все потрібне: специфікація HOOK_SPEC із трьома полями, модель «подія → дія» і розуміння, що хук треба вішати не руками в конфіг, а словами через агента.
У нього вже є живі результати вчорашнього дня — Earthquake Radar і крипто-тикер, поруч лежать ігри з попередніх рівнів, той самий Тетрис. Навколо них він вручну обробляє follow-up-завдання, а ззовні не лишається сліду про те, що і коли просив. Зараз він повісить хук, який сам вестиме цей журнал.
У конфіг Тьома навіть не заглядає — ставить хук словами, як звик:
Повісь хук: на кожен мій запит дописуй його разом із часом у requests.log.
— Давай, Сашку, як у специфікації розписано, — кидає він услід. — Подія, дія, куди писати — усе там.
Сашко після цих слів і справді вішає справжній хук. Кладе скрипт-обробник .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, як завжди, нічого не розжовує.
У тому, що день удався, Тьома впевнений аж до самих пʼят. Виносить він одне чисте післясмак: можна налаштувати — і забути. Система працює сама, у тих самих місцях, де раніше все трималося на ньому. Картину з ранковим таксі, у якого цокав лічильник у порожній машині, він за весь день так і не згадує.
Він клацає кришкою ноутбука. Завтра розбереться, якщо що. А цей день запамʼятається одним: уперше щось крутиться за нього саме, поки він зайнятий зовсім іншим, — і від цього всередині тепло й лоскітно, як від маленької вдалої хитрості.
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ