Реализация 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 создаёт инцидент;
- негативный тест: разработческая роль не может получить элемент личного
  контура ни при какой конфигурации политик;
- урок без объявленной формы влияния не попадает в контекст.
