English version

Автор: abavyka

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

Навіщо

Коли в одній сесії мішаються теми, модель плутається і фокус розмазується. У доці Claude Code це навіть має назву — kitchen sink session: почав з однієї задачі, спитав щось стороннє, повернувся, а контекст уже забитий нерелевантним (чому довга сесія тупить, було в Контекст і кеш).

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

Мій кейс

Правив наш MCP, і по ходу треба було поправити Copilot-агента. Щоб не розмазувати фокус, зробив /fork і там окремо розібрався з копайлотом.

Несподіванка, що fork працює у своєму worktree, і він висів у фоні в agent view. Тоді й дізнався про /branch: у монорепо можна було просто ним. Потім спробував /branch на тому ж кейсі, і для цієї задачі він підійшов краще, бо потрібні були інпути від мене і тестування Copilot-агента.

/branch

Копіює розмову до цієї точки і перемикає тебе в копію. Оригінал лишається як був, повернутись — /resume <name>.

/branch copilot-agent
  • без імені — гілку назве за першим промптом
  • з терміналу — claude --continue --fork-session
  • гілкує розмову, а не файли: тека та сама, правки з обох гілок лягають в ті самі файли

/fork

Копіює розмову в нову фонову сесію, а ти лишаєшся в поточній. Копія забирає модель, permission mode, effort і дозволи, які ти вже дав у сесії, і зʼявляється окремим рядком в agent view (claude agents).

  • з промптом (/fork розберись з конфігом copilot агента) — одразу береться до роботи, без промпта — чекає першої інструкції в claude agents
  • перед правками коду створює собі worktree в .claude/worktrees/ — окрему робочу копію репо на своїй гілці, тож твої файли не чіпає
  • наприкінці комітить свою гілку і пушить, якщо є remote (у main ніколи). Якщо в CLAUDE.md написано, що git робиш ти, лишає його тобі
  • результат сам назад не приходить, після форку сесії незалежні
  • worktree, який створив Claude, видаляється разом із сесією в agent view, тож спершу коміт

Ще є /subtask

Запускає forked subagent: фоновий субагент, який успадковує всю розмову і працює, поки ти продовжуєш. Його tool calls у твій контекст не потрапляють, назад приходить тільки результат.

/subtask допиши тести на парсер, який ми змінили

І /btw — спитати щось по сесії, не засмічуючи історію. Tools у нього нема, відповідає тільки з того, що вже є в контексті.

Як вибрати

  • /branch — сам йдеш в інший бік, той самий код
  • /fork — побічна таска живе окремо, зі своїми правками
  • /subtask — побічна таска, результат якої потрібен тут
  • нова сесія чи /clear — коли в сесії купа сміття, яке побічній задачі не потрібне: форк тягне весь контекст, разом зі сміттям. Дока радить те саме після двох невдалих виправлень: /clear і кращий промпт

Токени

Форк починає з того самого префікса, тож його перший запит читає кеш оригіналу, і кеш оригіналу не ламається. Але далі кожна копія їсть свої токени зі спільного ліміту.

Почитати