1. Опис арсеналу за функцією, а не за новизною
Перед останнім завданням частини Льоха зупиняє Тьому просто біля входу.
— Стривай, не кидайся, — пише він. — Сьогодні останнє, але важливе завдання, тож перед роботою розкладемо все, що ти назбирав за цей місяць. Ти ж місяць хапав інструмент за інструментом: скіли, агентів, Git, тести, diff, плани, кермо довіри. Усе звалено в одну купу. Перш ніж іти в бій, корисно разок витрусити скриню й подивитися, чим ти взагалі воюєш.
Тьома вже відкриває рота, щоб похвалитися кількістю — дивіться, скільки я всього вмію, — але Льоха обриває:
— Тільки не рахуй трофеї. Розкладаємо не за новизною — за тим, навіщо це. Три кошики: що лагодить, що перевіряє, що підстраховує.
Він ненароком кидає назву схеми — TOOLBOX_MAP, опис арсеналу за функцією — і далі вже не розжовує. Тьома сідає розкладати сам, по одній штуці за раз.
— Браузер куди? — уточнює він спірний випадок. — А, у «перевіряє», коли він доводить, що гра прохідна. Відкат — це лагодить чи підстраховує?
— Підстраховує, — киває Льоха.
Тьома розкладає — і що далі, то більше його самого це захоплює. Він же думав, що набереться всього зо два пункти. А воно все сиплеться й сиплеться: скіли, плагіни, агенти, міст до даних, хуки, голос, Git із його командами, тести, логи, diff, браузер, плани, кермо, гігієна вікна… Рука не встигає. Наприкінці на екрані — три забиті стовпці:
⚙️ TOOLBOX_MAP — арсенал за Частину I
| 🔧 Лагодить · рухає завдання | 🔍 Перевіряє · дає доказ | 🛡️ Підстраховує · стелить соломку |
|---|---|---|
| агент у CLI (не чат) | тест: червоний / зелений | git init · add · commit |
| скіл: поставити готовий | чесний тест (червоний → зелений) | git checkout · log · diff |
| скіли: комбінувати | /diff — переглядати правки | гілка під завдання |
| плагін: набір фіч одразу | тріаж: зайве / небезпечне / ± | /rewind — відмотати сесію |
| субагент-помічник | логи й стек-трейс як доказ | режим планування (defaultMode) |
| MCP-міст до даних | браузер: прохід за сценарієм | керування довірою (manual/accept) |
| хук: подія → дія | скріншот + vision-модель | TASK_SPEC — постанова завдання |
| голос до агента (s2t) | success marker (прапорець «пройдено») | scope — заборонений блок |
| @точкова подача файла | EVIDENCE_LOG — пакет доказів | /context — подивитися вікно |
| goal-lite — ціль за рецептом | DELIVERY_REPORT — зведення | /compact · /clear |
| середовище: IDE + плагіни | «готово = доведено» | CLAUDE.md + памʼять проєкту |
Тьома відкидається на спинку й мовчки дивиться на ці три стовпці. Він не рахував на ходу — а тепер бачить усе разом, і це якось… багато. Він же памʼятає себе місяць тому: один голий термінал і «та що там, ШІ сам усе зробить».
— От халепа, — виривається у нього. — Це я все вмію? Місяць тому я взагалі нічого не вмів.
— Умієш, — коротко підтверджує Льоха. — І зауваж: тут ще немає всілякої теорії, яку ти попутно нахапав. Як улаштований веб, що таке API, тести, читання чужого коду. Самі лише інструменти.
А під інструментами — другий шар, який Тьома теж пройшов, але який у кошики не лягає: не «чим я роблю», а «що я тепер розумію про саму розробку».
📚 Що я тепер розумію про розробку (DEV)
| Тема | Що зрозумів |
|---|---|
| як улаштований веб | HTML / CSS / JS — каркас, вигляд, поведінка |
| як живе сайт | сервер · IP · домен · деплой («працює в мене» ≠ «працює в усіх») |
| звідки беруться дані | API — віконце сервісу; JSON-відповідь; MCP — міст до нього |
| подієва модель | подія → дія (хук як датчик руху) |
| що таке перевірка | прохід за сценарієм · тест червоний → зелений · скріншот як доказ |
| що таке світ Git | main · гілка · коміт · diff — історія, а не склад копій |
| симптом ≠ причина | лог/стек-трейс веде до причини, а не лише до місця вибуху |
| читання чужого коду | обʼєкт читання = зміна (diff); scope як контракт |
| види завдань | фіча / багфікс / рефакторинг / розвідка — у кожного свій підхід |
| вікно уваги | агент бачить не весь репозиторій, а лише вікно; контекст виносимо назовні |
І коли все склалося, Тьома дивиться на обидві карти й на мить губиться — але вже інакше. Тієї ночі на першій карті в нього була заповнена тільки ліва колонка. «Лагодить». А «перевіряє» і «підстраховує» — порожні. Нічого толком не перевіряв, соломки ніде не підстелив.
— Слухай, — пише він Льосі. — Так ось чому все так легко завалилося. У мене ж був один суцільний «лагодить». Гнав і гнав, а противаги — нуль. Будь-який збій валив усе насмерть, ловити було нічим.
— От тепер бачиш свій арсенал як систему, — відповідає Льоха. — Не як купу різнокольорової магії, а як набір для трьох різних завдань. Це поки груба карта, стартова. Повну науку про те, що й коли діставати, залишимо на потім. Але головне ти вхопив.
2. Забите вікно — агент тупіє
Тьома сідає за фікс — і зависає надовго. Баг із нарахуванням нагород виявився розмазаний по кількох місцях: спершу разом з агентом лізе в reward-flow.js, потім зʼясовується, що правила лежать у rules.md, потім спливає, що на нарахування впливає ще й таблиця лідерів — відкривають leaderboard.js. Файл за файлом, кожен агент прочитав цілком. Попутно Тьома проганяє варіанти: «а як так?» — не те, відкотили; «а може, ось так?» — теж повз, повернули. Десяток підходів, три відкриті файли, гора відкинутого — і все це висить у розмові.
І наприкінці години він помічає дивне. Агент, який зранку був бадьорий і точний, починає тупити. Пропонує варіант, який вони пів години тому разом відкинули. Плутає rules.md з leaderboard.js. На просте запитання відповідає так, ніби вперше бачить завдання.
— Слухай, — пише Тьома Льосі, — а чого це він поглупішав? Модель, чи що, зламалася? Чи в мене якийсь ліміт скінчився?
— Ні те, ні інше, — відповідає Льоха. — У нього забилося вікно уваги.
— Той самий, що й на рівні про великий портал?
— Саме він. Памʼятаєш, ми говорили: агент бачить не весь проєкт магічно, а тільки те, що влізло у вікно — вашу історію розмови, подані файли, правила. Вікно не гумове.
— І що?
— А те, що ви за цю годину натягали у вікно три файли цілком плюс десяток відхилених спроб. Усе це там висить упереміш — і потрібне, і мотлох. Агент тепер на кожне твоє запитання перечитує всю цю купу. Не «він поглупішав» — він захлинувся. Симптоми саме такі: тягне старе, плутає файли, сперечається сам із собою.
— І що, нічого не зробити?
— Зробити. На це є окрема навичка — гігієна уваги, саме нею сьогодні й займемося. Річ контрінтуїтивна: інколи, щоб агент «порозумнішав», треба не додати йому контексту, а викинути зайве. Давай спершу глянемо, що в нього там у вікні.
3. Зазирнути у вікно: /context
— Перше правило, коли щось поїхало: не лагодь навмання, спершу оглянься, — пише Льоха. — Як у чужий код не лізуть правити, доки не зрозуміють, що там. З вікном так само: перш ніж чистити, глянь, чим воно взагалі забите. Команду ти знаєш ще з порталу:
/context # показати, що зараз лежить у вікні уваги
Тьома набирає — і в термінал вивалюється довгий опис. Не «модель втомилася», а буквальний список того, чим набите вікно:
Вікно контексту: 78% використано (156k / 200k токенів)
Системний промпт ............ 3k
Правила проєкту (CLAUDE.md) . 4k
src/reward-flow.js .......... 12k ← потрібний
src/rules.md ................ 6k ← потрібний
src/leaderboard.js .......... 18k
Історія діалогу ............. 108k ← 47 повідомлень
...відхилені варіанти, старі правки, вже прочитані файли
Тьома дивиться на це й половини не розуміє — цифри, відсотки. Що тут багато, а що мало, йому ще не збагнути.
— Ну, набито й набито, — пише він. — І що мені це має сказати?
— А ти пройдися зі мною по рядках, — відповідає Льоха. — Ось reward-flow.js і rules.md — це, по суті, те, що й треба було подати. А тепер дивись нижче. leaderboard.js — вісімнадцять тисяч, цілий файл, який ти відкрив на хвилину й давно закрив. Він тут досі висить. Далі — сто вісім тисяч на історію: сорок сім повідомлень, і добра половина — це твої «а як так?» і наші відкати, які вже неактуальні. Бачиш? Із ста пʼятдесяти шести тисяч по суті — якщо пощастить, чверть. Решта — мотлох, який агент волоче за собою на кожне твоє запитання.
Тьома водить оком по списку — і до нього доходить.
— Зачекай. Тобто він не дурний. Він просто завалений. — Він усміхається. — Як я сам наприкінці дня, коли в браузері сто вкладок відкрито і я в них тону.
— Один в один, — відповідає Льоха. — І тепер ти не «віриш мені на слово», а сам бачиш купу. Далі — як її розгрібати.
4. Два важелі: /compact і /clear
— Засмітилося — чистимо, — продовжує Льоха. — І тут є два різні інструменти для двох різних ситуацій, не плутай.
Перший — стиснути:
/compact # ущільнити історію, залишивши суть і викинувши шум
/compact focus on reward-flow # стиснути, але зберегти важливе про нарахування нагород
— /compact бере вашу роздуту розмову й резюмує, — Льоха розкладає по словах. — Залишає суть, викидає шум, а сесію продовжує — ви далі працюєте з тією самою справою, просто без мотлоху. І зауваж другий варіант: можна підказати, що саме зберегти. focus on reward-flow — «стисни, але нічого важливого про нарахування нагород не загуби». Це коли суть розмови ще потрібна, але вона розпухла.
Тьома ганяє /compact і знову відкриває /context — подивитися, що стало:
Вікно контексту: 22% використано (44k / 200k токенів)
Системний промпт ............ 3k
Правила проєкту (CLAUDE.md) . 4k
src/reward-flow.js .......... 12k
src/rules.md ................ 6k
Історія діалогу (стиснута) .. 15k ← було 108k
— О, — пише Тьома. — Було сімдесят вісім, стало двадцять два. І цей дурнуватий leaderboard.js зник, і переписка стислися. А справа ж уся на місці: нарахування, правила.
— Ось. Розмова та сама, тільки без зайвого. Агент знову бачить потрібне й перестає плутатися.
Другий важіль — скинути, і він тобі теж уже знайомий:
/clear # чисте вікно, нова сесія (стара збережеться, до неї можна повернутися)
— /clear не стискає — він обнуляє вікно й починає нову сесію з чистого аркуша. Даси /clear — і /context покаже майже порожнє вікно: тільки системну частину та правила проєкту, без файлів і без історії. Усе, що було, піде. Стара сесія збережеться — повернешся до неї за потреби.
— А в чому тоді різниця, коли який? — уточнює Тьома.
— Просте правило, — відповідає Льоха. — /compact продовжує ту саму розмову, тільки стислу. /clear починає нову з нуля. Історія ще потрібна, але роздулася — тисни /compact. Завдання закрите, попереду зовсім інше — /clear, щоб мотлох попереднього не тягнувся в наступне. Одне — ущільнити, друге — обнулити.
5. Точкова подача файлів через @файл
— І є ще профілактика, щоб вікно взагалі не засмічувалося так швидко, — додає Льоха. — Дивись, із чого ти сьогодні потонув. Ти ж як зайшов у фікс? За звичкою новачка: «на, агент, прочитай увесь проєкт і розберися». Звучить солідно — нехай, мовляв, вникне в усе. А на ділі ти цією однією фразою затягнув у вікно десятки файлів, з яких до нарахування належать два. Решта — верстка, лідерборд, бонус-гра, чужа partner-зона — агенту зараз не потрібні, але вони вже у вікні й уже заважають. Ти сам, своїми руками, забив йому вікно мотлохом ще до першого запитання.
— А як треба?
— Подавати точково. Не «прочитай усе», а «ось рівно ці файли». І для цього є зручна штука. Починаєш друкувати @ — і термінал сам показує список файлів проєкту, обираєш потрібний, не набираючи шлях цілком:
Виправ @src/reward-flow.js, спираючись на @src/rules.md.
— Собачка @ — це не просто «згадав імʼя», — розбирає Льоха. — Друкуєш @, спливає список, тицяєш у потрібний файл — він підставляється й точно потрапляє у вікно, без помилок у шляху. Даєш два-три потрібних, і все. Не «оглянь увесь проєкт», а «ось зона роботи, ось правила». Дешевше, швидше, менше шуму — агент тримає в голові тільки те, що стосується справи, а не весь репозиторій.
Тьома пробує інакше: скидає вікно й подає через @ тільки reward-flow.js і rules.md. І одразу відчуває різницю — агент відповідає зібрано, точно, без блукань чужими файлами.
— О, він одразу пішов по суті, — пише Тьома. — Слухай, чим менше я йому даю, тим розумніше він відповідає. Жадібність — і та вигідна.
6. Подвійна ціна набитого вікна та контрінтуїтивність дня
— А навіщо взагалі так морочитися? — Тьома хоче до кінця зрозуміти. — Ну, висить зайве у вікні й висить.
— Тому що набите вікно бʼє по тобі одразу з двох боків, — Льоха пояснює на пальцях. — Перше — дорого. Кожен запит оплачує все вікно. Чим воно товстіше, тим дорожчий кожен твій хід. Друге — шумно. Чим більше у вікні всього, тим гірше агент фокусується, тим частіше плутається. Тобто брудне вікно робить роботу і дорожчою, і тупішою одночасно.
— А чисте — навпаки, — Тьома ловить думку сам. — Виходить, гігієна вікна — це не жадібність, не «економлю на запитах». Це спосіб зробити його і дешевшим, і розумнішим за один захід.
— Ти вловив. І звідси головний фокус дня, — Льоха формулює. — Інколи, щоб агент порозумнішав, треба не додати йому контексту, а викинути зайве. Звучить навпаки, а працює.
— І це не разова кнопка, — додає Тьома, уже сам. — Це чуття. Я тепер на ходу відчуваю: тут подати точково, тут стиснути, тут почати з чистого аркуша. Вбудована звичка, як мити руки.
— Нову навичку опанував, — киває Льоха. — Залишилося закріпити головну звичку всього навчання — саме з неї все й починалося.
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ