Игорь Градов
Игорь Градов
6 мин
ai

Handoff driven development: как не терять контекст ИИ-ассистента между сессиями

Когда ИИ-ассистент пишет код, главная боль не в качестве ответа, а в том, что модель теряет контекст при каждом переключении между задачами, и разработчик тратит время, токены и нервы на повторный сбор нужных файлов.

Handoff driven development: как не терять контекст ИИ-ассистента между сессиями
Почему это важно

Разработка с передачей ответственности (handoff-driven development, HDD) решает две корневые проблемы работы с ИИ-ассистентом: засорённый контекст, который снижает качество ответов, и потерю состояния при смене задачи или сессии. Метод не требует роя агентов или дорогой инфраструктуры.

Подход вырос из SDD (spec-driven development, разработка через спецификации) и добавляет к нему механику передачи контекста между сессиями. Вместо того чтобы каждый раз заново объяснять модели, где что лежит и что уже сделано, разработчик выстраивает иерархию карт спецификаций. Модель сама спускается по ссылкам, находит нужное за два-три перехода и не грузит лишнего. Практика рассчитана на соло-разработчиков и небольшие команды без бюджета на полмиллиона долларов токенов.

Что понадобится

  • ИИ-ассистент с поддержкой длинного контекста (Claude Opus, Claude Sonnet или аналог)
  • Монорепозиторий или проект с несколькими подпроектами
  • Текстовый редактор с поддержкой Markdown-ссылок (VS Code, Cursor, любой IDE)
  • Готовность завести папку specs/ в каждом подпроекте
  • 30 минут на первичную настройку структуры, дальше поддержка занимает минуты

Пошаговая инструкция

  1. Создайте корневую карту спецификаций. В корне репозитория заведите файл specs/map.md. Это входная точка: отсюда модель начинает навигацию. Карта содержит Markdown-ссылки на карты подпроектов и ничего больше.

  2. Заведите локальные карты в каждом подпроекте. Внутри каждого подпроекта создайте свою specs/map.md со ссылками на конкретные спецификации этого подпроекта. Получается иерархия: корень ведёт к подпроекту, подпроект ведёт к документу.

  3. Ограничьте глубину двумя-тремя уровнями. Корень, подпроект, при необходимости пакет. Каждый лишний уровень это переход, который модель должна совершить прежде, чем доберётся до содержания. Четыре уровня уже избыточны.

  4. Присвойте каждому файлу спецификации жанр. Жанры взяты из фреймворка Diátaxis (система классификации технической документации по назначению), но адаптированы:

  5. as-built: описание существующего кода, архитектурные обзоры

  6. plan: план реализации конкретной задачи или фичи (временный, после выполнения «умирает»)
  7. reference: справочники, исследования, обоснования
  8. vision: видение продукта, бизнес-гипотезы
  9. log: журнал архитектурных решений (ADR, architecture decision records), работает только на дополнение: каждая запись фиксирует контекст, решение и последствия

  10. Поставьте каждому файлу статус и дату сверки. Прямо под заголовком, одной строкой:

Статус: as-built / current · сверено: 2025-07-03

Дата сверки означает именно сверку содержимого с кодом, а не дату последней правки текста. Исправить опечатку не значит сверить.

  1. Используйте статус stale вместо устаревшей документации. Если обновить спецификацию прямо сейчас невозможно, поставьте ей статус stale (устаревшая). Модель, увидев этот статус, поймёт: документу не доверять, проверить по коду. Долг не погашен, но он явно помечен, а не замаскирован.

  2. Хороните мёртвые документы, а не копите их. Выполненный план, который выглядит как актуальный, это дезинформация. Протокол: удалите файл физически (архив уже есть, это git), а в карте оставьте «надгробие» (tombstone): одну строку с именем файла, датой удаления и пометкой «git-история». Кладбище, которое притворяется библиотекой, бьёт по чистоте контекста.

  3. Проверяйте инвариант достижимости. Каждый файл спецификации должен быть достижим по цепочке Markdown-ссылок хотя бы от одной карты. Голый текстовый путь без ссылки связью не считается. Недостижимый файл это «сирота», документ, которого модель не найдёт. Для отлова сирот используют аудит-скрипт.

  4. Передавайте контекст между сессиями через карту, а не через промпт. При старте новой сессии укажите модели корневую карту. Она сама спустится до нужного подпроекта, прочитает актуальные спецификации, увидит статусы и поймёт, что сделано, а что нет. Это и есть handoff, передача ответственности, когда контекст живёт в структуре, а не в голове разработчика.

Что это выглядит на практике

Допустим, у вас монорепозиторий с тремя подпроектами: серверный API, клиентское приложение и CI/CD-манифесты. Вы работаете над аудитом серверного кода и параллельно проектируете новую фичу в клиенте.

Без HDD: при каждом переключении вы заново перечисляете в промпте (промпт, текстовая инструкция для модели), какие файлы смотреть, что уже исправлено, какие решения приняты. Через три переключения контекст размывается, модель начинает галлюцинировать (уверенно выдумывать то, чего нет в коде).

С HDD: вы пишете модели «продолжи аудит серверного кода, карта в specs/map.md». Модель переходит по ссылке в server/specs/map.md, видит plan/server-audit.md со статусом current, читает, что три из семи пунктов уже закрыты, и продолжает с четвёртого. При переключении на клиентскую фичу вы говорите: «переключись на клиент, карта там же». Модель находит client/specs/map.md, открывает vision/new-feature.md и работает с чистым контекстом, без мусора от серверного аудита.

Частые ошибки
  • Слишком глубокая иерархия. Четыре-пять уровней вложенности превращают навигацию в квест. Два-три уровня покрывают даже крупные проекты.
  • План, который не умирает. Выполненный план со статусом current загрязняет контекст: модель читает его как инструкцию к действию. После выполнения ставьте tombstone, superseded (заменён новым планом) или archive (сохраняет ценность как история).
  • Дата сверки вместо даты правки. Типичная подмена: разработчик обновил формулировку, поставил свежую дату, но с кодом не сверял. Модель доверяет «свежему» документу, а он отстал от кода на месяц.
  • Голые пути вместо ссылок. Текст server/specs/audit.md без квадратных скобок и круглых скобок Markdown это не ссылка. Ни IDE, ни аудит-скрипт, ни модель его не распознают. Файл становится сиротой.
  • Попытка запустить рой агентов. HDD проектировался для работы с одним ассистентом через чистый контекст. Если вы пытаетесь оркестрировать несколько агентов без соответствующей инфраструктуры и бюджета, метод не поможет.

Что делать с этим прямо сейчас?

Разработчику-одиночке. Начните с одного подпроекта: заведите specs/map.md, опишите текущее состояние кода в as-built-спеке, текущую задачу в plan-спеке. Уже на второй сессии вы почувствуете разницу: не надо пересказывать модели, «на чём мы остановились».

Автору Дзена или контент-маркетологу. Принцип иерархических карт работает не только для кода. Если вы ведёте несколько рубрик и используете ИИ-ассистент для текстов, заведите аналогичную структуру: карта проекта со ссылками на редполитику, tone of voice, текущие задачи по рубрикам. Каждый новый чат начинайте с указания на карту, а не с пересказа всего контекста.

Предпринимателю в РФ и СНГ. Метод не привязан к конкретной модели. Он работает с Claude (Anthropic), с ChatGPT (OpenAI), с GigaChat и YandexGPT, если у модели есть возможность читать файлы по ссылкам или принимать их в контекст. Из доступных в РФ вариантов GigaChat и YandexGPT поддерживают загрузку файлов, хотя длина контекста у них пока короче.

Мнение редакции dzen.guru

По моим наблюдениям, главная ценность HDD не в экономии токенов (хотя она заметна), а в том, что метод убирает «синдром чистого листа» при старте каждой сессии. Ты не вспоминаешь, что делал вчера, модель сама это находит. Статус stale вместо обновления документации кажется компромиссом, но на практике это честнее, чем притворяться, что документация актуальна. Один «stale» в нужном месте спасает от часа отладки галлюцинаций.

Честная оговорка: метод требует дисциплины. Если забросить обновление статусов и карт, через месяц структура превратится в то же кладбище, с которым боролись. HDD работает, пока вы работаете с ним.

Попробуйте промпт-практики dzen.guru

Мы собираем рабочие приёмы для тех, кто пишет с помощью ИИ. Иерархические карты контекста, разметка спецификаций, управление сессиями: всё, что экономит время и токены.

Смотреть инструменты

Разработка с передачей ответственности не про модное слово и не про дорогую инфраструктуру. Это способ сделать так, чтобы контекст жил в файловой структуре, а не в вашей голове. Заведите одну карту, одну спецификацию, поработайте две сессии и решите сами, стоит ли масштабировать.

Поделиться:TelegramVK
Игорь Градов
Игорь Градов

Основатель dzen.guru. Эксперт по монетизации и продвижению на Дзен. Автор курса «Старт на Дзен 2026».

Комментарии

Читайте также

OpenAI предложила 5% акций правительству США: дивиденды вместо регулирования
ai

OpenAI предложила 5% акций правительству США: дивиденды вместо регулирования

OpenAI ведёт переговоры с администрацией Трампа о передаче правительству США пятипроцентной доли в компании, пытаясь через финансовую выгоду для граждан…

4 мин
OpenAI предложила отдать 5% акций государству: новости о фонде для всех граждан США
ai

OpenAI предложила отдать 5% акций государству: новости о фонде для всех граждан США

OpenAI предложила отдать 5% акций в государственный фонд США, чтобы доходы от ИИ получили обычные граждане, и эта идея уже обсуждается на уровне Белого дома и…

4 мин
Reinforcement learning без готовых сред: руководство учит собирать окружения под реальные задачи
ai

Reinforcement learning без готовых сред: руководство учит собирать окружения под реальные задачи

Андрей Бирюков, независимый эксперт в области ИТ и информационной безопасности, опубликовал на Хабре практическое руководство по созданию собственных окружений…

5 мин