Реализация ADR-0011, ADR-0014, ADR-0015. Разделы ТЗ 38 и 40. Репозиторий: https://github.com/ochenstarik-ui/kagent Зависит от задачи 0.9.0 (зелёный trunk). ## Зачем Ожидание человека — нормальное состояние автономной системы, но сейчас оно не спроектировано: неизвестно, держит ли задача worker и lease, сколько ждёт, что происходит с контекстом через сутки и что будет при молчании. Слой уроков существует как хранилище без механизма влияния на поведение. Личные данные и проектные разделены только классификацией на выходе, то есть одна ошибка классификации отправляет личную переписку в облачную модель через разработческого агента. ## Что сделать ### Контракт человеческого решения (ADR-0011, ТЗ 38) - типизированный объект вопроса: question_id, run_id, task_id, kind (approval / choice / clarification / conflict), urgency, statement, options, default, ttl, on_timeout (park / abort / assume_default), evidence, channels; - постановка вопроса освобождает worker и lease после checkpoint, ожидающая задача не потребляет ёмкость и не держит бюджетный резерв; - контекст возобновления в checkpoint, а не в памяти процесса; - assume_default допустим только при объявленном default и обратимом действии; - единая очередь решений по всем проектам, доставка по настроенным каналам; - blocking-вопрос с истёкшим TTL порождает инцидент; - ответ в audit log с идентичностью ответившего, воспроизводимый как вход запуска. ### Исполняемые уроки (ADR-0014, ТЗ 40.1) - урок переходит в active только если объявляет форму влияния: исполняемая проверка (правило линта, политики, запрещённый шаблон, eval-случай), изменение контракта, либо правило контекста с триггером и стоимостью в токенах; - урок без формы остаётся candidate и не попадает ни в один контекст; - проверка на противоречие с действующими уроками, разрешение через supersedes; - дата пересмотра, переход в stale, прекращение применения; - счётчики срабатываний и предотвращённых дефектов, вывод бесполезных guardrails из обращения. ### Изоляция личного контура (ADR-0015, ТЗ 40.2) - отдельное хранилище, отдельный поисковый индекс, отдельный bucket; - отдельные ключи шифрования в vault: проектные credentials не расшифровывают личный материал; - Context Builder не имеет личный контур в списке адресуемых источников для ролей разработки, независимо от конфигурации политик; - к личному контуру обращается только Personal Assistant Agent, без инструментов записи в репозиторий; - перенос в проект — явное аудируемое действие пользователя, не результат поиска; - маршрутизация по умолчанию на локальные модели, облако требует явного согласия по категории данных; - удаление личных данных независимо от удаления проектов, распространяется на кассеты, кэш и checkpoints. ## Критерий приёмки - тест: задача, задавшая вопрос, освобождает воркер и корректно возобновляется после ответа через сутки; - тест: blocking-вопрос с истёкшим TTL создаёт инцидент; - негативный тест: разработческая роль не может получить элемент личного контура ни при какой конфигурации политик; - урок без объявленной формы влияния не попадает в контекст.