Розмова триває довго. Один варіант рішення ви вже відхилили, пояснили чому, а через десяток повідомлень агент пропонує саме його. Перше бажання зрозуміле: стерти все і почати заново.

Повтор відхиленого рішення - помітний сигнал, але ще не діагноз. За однією відповіддю не скажеш, що винна розмова, яка накопичилася: так само виглядає ситуація, коли постановка суперечлива або коли агент дивиться у версію файлу півгодинної давності.

Розберемо три команди, які працюють із самою розмовою: /context показує, чим зайняте вікно, /compact скорочує історію до короткого викладу, /clear починає нову розмову. Цікавіший за їхній синтаксис вибір між ними: що зберегти до, що звірити після і як зрозуміти, що проблема взагалі не в обсязі розмови.

Спершу знайдіть проблему

Перш ніж щось стискати чи очищати, розрізніть чотири ситуації. Зовні вони схожі, агент у всіх чотирьох "не чує", а дії потрібні різні.

  • Бракує вихідних даних. Правило, за яким нараховується нагорода, ніхто не називав, і в прочитаних файлах його немає. Скорочення розмови не вигадає того, чого в ній не було: те, чого бракує, доведеться дати.
  • Застарілі відомості. У розмові лежить вміст файлу, прочитаного пів години тому, а на диску він уже інший. Допомагає не стиснення, а повторне читання.
  • Суперечлива постановка. У чаті прозвучало одне, у збереженому ТЗ записано інше. Вирішіть самі, яка вимога чинна, і виправте джерело. Файл не стає правим автоматично просто тому, що він файл.
  • Накопичений шум. Багато відхилених варіантів, довгий вивід команд, обговорення файлів, які завдання не стосуються. Ось тут робота з контекстом справді доречна.

Заповнення вікна - не п'ятий пункт цього списку і не пояснення будь-якої помилки. Високий відсоток сам по собі не доводить, що агент помилився через нього, а низький - ще не гарантія, що з розмовою все гаразд. Порядок перевірки простий: постановка, актуальність файлів, актуальність виводу - і тільки потім стан самої розмови.

Контрольне запитання

Попросіть Claude Code назвати поточну мету завдання, його обмеження і файли, на яких ґрунтується запропоноване рішення. Відповідь порівняйте з тим, що бачите самі. Якщо спливає файл, якого завдання не стосується, або мета звучить не так, як ви її ставили, ви вже знаєте, що лагодити, і це цілком може виявитися не обсягом розмови. Те саме запитання знадобиться після стиснення і на початку нової розмови.

Подивіться заповнення вікна

Якщо підозра все-таки впала на саму розмову, подивіться /context. Команда показує, чим зайняте вікно, з розбивкою за категоріями: системна частина, інструкції проєкту, прочитані файли та вивід команд, листування, вільне місце. Які відомості завданню вже не потрібні, вирішуєте ви. Сенсу прочитаного команда не оцінює, і загальний рядок повідомлень не скаже, який саме файл зайвий.

Універсального порога на кшталт "вище стількох-то відсотків час стискати" немає, розмір вікна теж залежить від моделі й налаштувань. Дивіться на склад, а не на відсоток. і врахуйте, що закрита вкладка редактора сама не прибирає вже прочитане з розмови.

Продовжте завдання після стиснення

Команда /compact скорочує історію до короткого викладу, а ви лишаєтеся в тому самому завданні. Claude Code робить це й сам, коли вікно заповнюється, тож вручну команду запускають, коли хочуть вибрати момент (напр. перед новим великим шматком роботи) і задати фокус.

Головне обмеження: зберігається виклад, а не розмова. На деталі поза резюме не можна розраховувати як на вміст вікна. І фраза "збережи такі-то умови" повноти резюме не гарантує - це прохання, а не механізм.

Що зберегти

До команди зберіть коротку нотатку щодо завдання: мета, межі, ухвалені рішення, перевірені факти, наступний крок. Пара хвилин. Зате нотатку можна звірити з файлами і виводом перевірок, на відміну від спогадів про розмову. Окремий файл заради неї не потрібен, вистачить наявного документа завдання.

Ось стан навчального завдання про повторне нарахування нагороди, приклад, а не звіт про проведену перевірку:

Мета: в одній завершеній партії нагорода нараховується один раз; нова партія знову допускає нарахування.
Межі: src/reward-flow.js та наявна перевірка нагороди; оформлення не змінювати.
Підтверджено: після першого нарахування повторне натискання в тій самій партії знову збільшує рахунок.
Джерело: запис відтворення і початковий стан зазначено в TASK_SPEC.md.
Відхилено: сховати кнопку без виправлення обробки повторного натискання.
Наступний крок: перевірити обробник і запропонувати правку; виправлення і тести ще не виконано.

Зверніть увагу на останній рядок. Підтверджене відтворення і виконане виправлення - різні речі, і в нотатці це має бути видно, інакше після стиснення "перевірили" легко перетворюється на "полагодили". Документ завдання тут, до речі, навчальний, тож шлях замініть своїм.

Коли нотатку звірено, можна стискати з фокусом:

/compact Зосередься на виправленні повторного нарахування. Збережи мету, межі з TASK_SPEC.md, підтверджене відтворення, відхилене рішення і наступний крок. Зазнач, що виправлення і тести ще не виконано.

Що звірити після

Після стиснення не продовжуйте з середини фрази. Спершу поверніть у розмову те, що має бути точним, і поставте контрольне запитання:

Прочитайте TASK_SPEC.md і актуальний src/reward-flow.js. Коротко назвіть обмеження і наступний крок. Якщо резюме розходиться з файлами, вкажіть розбіжність. Поки що код не змінюйте.

Відповідь звіряйте з нотаткою рядок за рядком, а не за загальним враженням. У нашому прикладі перевірок три:

  • за рядком "Наступний крок" виправлення і тести не оголошено виконаними;
  • з "Меж" на місці заборона чіпати оформлення;
  • умова про нову партію з "Мети" не загубилася.

Формулювання в агента будуть свої, це нормально. Зникла умова - поверніть її з джерела до правки. Перевіряєте ви при цьому стан розмови, а не код: правильності наступної правки таке звіряння не доводить.

Чого стиснення не робить

Стиснення працює тільки з історією розмови. Воно не відкочує правки у файлах і не замінює Git. Кореневий CLAUDE.md завантажується знову, тому правила проєкту стиснення переживають, але тимчасовому стану завдання там не місце: рядок "зараз лагоджу нарахування" лишиться і після того, як завдання закінчиться. Відомості, які агент назвав після стиснення, не стають достовірними автоматично. Уточніть їхнє джерело: резюме, заново прочитаний файл чи новий запуск.

Почніть нове завдання

Команда /clear починає нову розмову без попереднього листування. Файли на диску та інструкції проєкту лишаються, увімкнена автоматична пам'ять теж може використовуватися, тож "з нуля" тут стосується листування. Попередня розмова не видаляється, до неї можна повернутися через /resume.

Її легко сплутати з claude --continue, хоча жести протилежні. /clear набирають усередині сесії, щоб піти від накопиченої історії. claude --continue набирають у терміналі під час запуску, щоб повернутися в останню розмову цієї теки разом з усією її історією. Якщо заважала саме розмова, --continue поверне вас якраз у неї.

Перед очищенням збережіть те, що знадобиться далі: нотатку, потрібні шляхи, вивід перевірки. Новій розмові потрібна постановка, а не натяк - мета, обмеження і шляхи. Точково подати файл допомагає @файл, тільки врахуйте, що згадка спрямовує читання, але доступу до решти файлів не обмежує.

Виберіть дію

Порядок виходить короткий: зупинитися, поставити контрольне запитання, подивитися заповнення вікна, якщо незрозуміло, чим воно зайняте, вибрати одну дію, звірити результат. Рахувати повідомлення марно. Важить склад розмови і те, що ви збираєтеся робити далі.

СитуаціяДія і підстава
Агент не отримав правила нарахуванняПередати правило і файл; стиснення прогалини не заповнить
Відповідь спирається на файл, який відтоді змінивсяПопросити перечитати актуальну версію; стискати немає сенсу
У чаті домовилися про одне, в TASK_SPEC.md записано іншеВирішити, яка вимога чинна, і виправити джерело
Те саме завдання, багато відхилених варіантів, корисного місця малоНотатка, /compact з фокусом, контрольне запитання
Після стиснення зникла заборона на сусідній модульПовторно прочитати джерело обмежень і перевірити розуміння до правки
Починається незалежне завдання про оформленняЗберегти потрібний підсумок, /clear, нова постановка

Що це змінює в роботі

Самі по собі три команди нічого не лагодять. Змінюється те, як ви ведете довге завдання:

  • дивна відповідь веде спершу до постановки й актуальності файлів, а вже потім до розмови;
  • перед стисненням чи очищенням є нотатка, звірена з файлами, а після стиснення відповідь звіряють із нею рядок за рядком;
  • нове завдання отримує свою постановку. Без хвоста минулої розмови.

Різницю видно на одному проханні. Було:

Ти заплутався, давай заново.

Стало:

Зараз завдання - виправити повторне нарахування нагороди в src/reward-flow.js.
Прочитайте TASK_SPEC.md, назвіть обмеження і наступний крок. Код поки що не змінюйте.

На друге формулювання приходить відповідь, яку можна перевірити: назване обмеження і крок ви звіряєте з файлами й одразу бачите розбіжність. Першу репліку звірити нема з чим.