1. План — не «коли складно», а завжди
Відкривши задачу, Тьома за звичкою прикидає вголос:
— Задача-то проста начебто. Тут можна й без плану, одразу правити. План я зазвичай на складне вмикаю, коли відчуваю, що заплутаюся.
— Ось, упіймав тебе, — відповідає Льоха. — «Коли згадаю», «коли складне». А памʼятаєш режим плану — той самий, з рівня про кермо довіри?
— Ну так. Коли агент спершу викладає задум — що зачепить, якими кроками, — і чекає, доки я схвалю. А сам нічого не править, доки не скажу.
— Він самий. От уся річ у тому, коли ти його береш. Ти смикаєш його по нагоді, на страшне. А брати треба завжди.
— Прямо на все? Навіть на дрібницю?
— На будь-яку нетривіальну задачу — до першої правки. Не тому що аварія налякала, а тому що так працює майстер. Сьогодні й перетворимо план із «іноді згадую» на рефлекс.
Тьома пирхає — а й справді, режим він знає, але на простому досі кидається одразу, без плану. Стара шахрайська звичка зрізати там, де «і так зрозуміло».
— А сенс-то? — він усе ще трохи впирається. — На дрібниці план — це зайвий крок. Час витрачаю, а толку нуль, і так би полагодив.
— Нуль — доки дрібниця справді дрібниця, — відповідає Льоха. — А ти згадай, скільки разів «проста правка» виявлялася не такою простою і тягнула за собою сусіднє. Половина твоїх минулих аварій починалася зі слів «та тут на хвилину». План на дрібниці коштує тобі тридцять секунд. Пропущений план на «дрібниці», яка виявилася не дрібницею, коштував тобі цілої ночі. Ось і вся математика.
Тьома не знаходить, що заперечити. Бо та ніч якраз і почалася з «та тут на хвилину».
2. Зашити план за замовчуванням: defaultMode: plan
— І щоб не покладатися на «згадаю», можна зашити план прямо в проєкт, — Льоха показує налаштування. — Кладеш один рядок у файл налаштувань проєкту, .claude/settings.json, — і кожна сесія стартує в режимі плану сама.
// .claude/settings.json
{
"permissions": { "defaultMode": "plan" }
}
— Це той самий файл, де в тебе лежать правила проєкту й права, — пояснює Льоха по словах, не даючи Тьомі потонути. — defaultMode — «режим за замовчуванням», з якого все починається. Ставиш plan — і агент із порога не лізе правити, а спершу викладає задум. Ти нічого не натискав, а він уже в плані. Механіка та сама, що ти знаєш із «керма в руки», нічого нового тут немає. Нове — що тепер це ввімкнено завжди, само.
Тьома дає агенту фінальну задачу — як завжди, словами:
Полагодь нарахування в reward-flow.
Зазвичай після такої фрази агент кинувся б одразу правити файл. Але сесія через defaultMode: plan стартувала в режимі плану — тож замість правки в термінал спершу падає задум:
План:
1. Прочитати src/reward-flow.js і src/rules.md — зрозуміти формулу нарахування.
2. Знайти місце, де бали рахуються неправильно.
3. Виправити формулу згідно з rules.md.
4. Прогнати наявні тести нарахування.
Починати зміни?
Тьома навіть кнопку не натискав, щоб «увімкнути план», — вікно саме зупинилося до першої правки. Ось воно, зашите defaultMode: plan у дії: не «агент сам придумав зупинитися», а налаштування змусило його спершу показати задум і спитати.
3. План правите, а не киваєте
Тьома читає задум — і не штампує його. Старе правило тримається: план не для того, щоб кивнути, а для того, щоб поправити. І він бачить, чого планові бракує: агент зібрався просто «прогнати наявні тести», а Тьома після вчорашнього знає ціну сліпому тесту. Дописує межі:
План ок, але додай тест на чесну перевірку (падає на зламаному) і не чіпай /legacy.
— Ось це й є власник, а не пасажир, — відзначає Льоха. — Ти не «погоджуюся-погоджуюся», ти ставиш межі. Тест на чесну перевірку — щоб потім довести. /legacy не чіпати — щоб не рознести сусіднє. Агент підлаштовує задум під твої рамки ще до першої правки. Дешевше сперечатися з планом на папері, ніж розгрібати зроблене.
Тьома ловить, що робить це вже на автоматі. Не згадує «ага, треба план поправити» — просто читає й одразу бачить, де задум рідкуватий. Рефлекс.
4. Чисте вікно перед новою задачею
Core fix Тьома закриває спокійно. І ось тут, перш ніж узагалі думати про живу додавку, він сам — уже без Льохи — наказує чистку:
/clear # core fix закрито; вікно начисто перед add-on
— А що ти зараз зробив, я навіть не встиг сказати, — пише Льоха.
— Та ж очевидно, — відповідає Тьома. — Я фікс дочистив, вікно в агента після години мороки забите під завʼязку. Якщо я зараз на цьому мотлосі почну ліпити add-on, він знову почне тягнути старе й плутатися. Чищу начисто — і заходжу в додавку на свіжу голову.
— А ж раніше б і не згадав, — пише Льоха.
— Та я й зараз не згадував. Рука сама. — Тьома знизує плечима. Чистка начисто лягла поруч із планом в одну звичку: будь-яка нетривіальна робота — спершу план, у процесі тримай вікно чистим, не вали зайвого. Не процедура, через яку себе змушуєш, а просто спосіб не захлинутися самому й не втопити агента в шумі.
5. Постановка стала звичкою
«Без ТЗ результат ХЗ» — із цього все починалося. Тоді задачу за Тьому формулював хтось інший, а він хотів «по-швидкому, постановка потім». Потім аварія навчила боляче: без постановки й плану агент вас підведе, і винні будете самі.
А зараз він пише постановку і починає з плану тому що вміє і хоче, а не тому що припекло. Ніхто не стоїть над душею. У цьому вся різниця між тим, ким він був, і ким став.
— Знаєш, що смішно, — пише Тьома Льосі. — Раніше я був «дай по-швидкому, ТЗ якось потім». А тепер «спершу ставлю задачу й план» — це просто мій нормальний спосіб працювати. Я навіть не думаю про це як про правило. Воно само.
— Ось і петля замкнулася, — відповідає Льоха. — Постановка перестала бути вимогою ззовні й стала твоїм рефлексом. ТЗ пише майстер — не тому що змусили, а тому що інакше вже не працює.
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ