Команда Plugin

/dr-orchestrate

Автономный Datarim pipeline со snapshot-first resume, fail-closed маршрутизацией и правилами, подтверждёнными оператором.

Обзор

/dr-orchestrate ведёт Datarim pipeline через терминальную pane. Команда, границы автономности и политика действий входят в ядро Datarim. Tmux-раннер, цепочку subagent inference, bot/HTTP transport и audit-бэкенды поставляет опциональный плагин dr-orchestrate.

Phase 3 (базовый уровень автономности L4) добавляет к subagent inference из Phase 2 выученные правила, подтверждённые оператором. Известные запросы обрабатываются детерминированными правилами. Неизвестные проходят ограниченную цепочку resolver; действие разрешается только при достаточной уверенности и подходящей политике пространства. Всё остальное эскалируется, а неизменяемый hard-gated floor остаётся главным.

Использование

# Однократно включить плагин (из каталога plugins/ фреймворка)
/dr-plugin enable /path/to/plugins/dr-orchestrate

# Опционально: скопировать user-config.template.yaml плагина в user-config.yaml,
# выставить права 0600 и key_injection: true, чтобы разрешить send-keys
# (по умолчанию fail-closed)

# Один цикл: parse → gate → execute → опциональное предложение Save-as-rule
dr-orchestrate run

# Логировать решения без исполнения
dr-orchestrate run --dry-run

# Классифицировать вставленный prompt через цепочку subagent inference
dr-orchestrate run --unknown-prompt "operator paste: > /dr-prd strategy gate"

--interval задаёт интервал цикла опроса в секундах (по умолчанию 5).

Один цикл

  1. Захватывает текущее содержимое tmux pane.
  2. Если найден ID задачи и datarim/snapshots/{TASK-ID}.snapshot.md проходит валидацию, читает его до классификации и передаёт recommended_next в resolver как подсказку, а не ограничение. Отсутствующий или повреждённый снапшот молча пропускается.
  3. Запускает rule-based semantic parser. Выученные совпадения точные и всё равно должны указывать на действие из встроенного или пользовательского реестра доверия.
  4. При совпадении применяет неизменяемый action gate, пишет checkpoint цикла, исполняет через контролируемый шов pane и добавляет audit-событие schema v2.
  5. При промахе вызывает subagent_resolver.sh. Ограниченная fallback-цепочка: coworker, затем claude, затем codex, по 15 секунд на backend.
  6. Проверяет порог уверенности (по умолчанию 0.80) и политику автономности пространства. Operator-gated и некорректные результаты эскалируются и не исполняются. Успешное разрешение выдаёт предложение Save as rule? [Y/N], привязанное к аутентифицированному actor и сессии.
  7. Y сохраняет или продлевает точное выученное правило; N, повтор, истечение срока, чужой контекст или некорректный ввод — fail closed. Правила требуют повторной проверки через 24 часа и истекают через семь дней; правило, ожидающее проверки, не исполняется.

Граница ядра и плагина

  • Ядро: контракт команды, resolver автономности пространства, FB policy loader, hard-gated safety rules и карта action-to-policy. Работают без включения плагина.
  • Плагин: tmux-раннер, цепочка subagent inference, HTTP/bot transport, Redis или callback, HMAC-audit и операционные инструменты.

Контракт и политика команды доступны без плагина. Для dr-orchestrate run требуется плагин.

Самоочистка контекстного окна

Опционально и выключено по умолчанию. При явном доверии к same-UID runtime и включённом key injection раннер сохраняет checkpoint активной задачи и последней завершённой фазы снапшота перед фиксированными инструкциями /compact или /clear для Claude Code или Codex, а после полной очистки продолжает работу только через snapshot-first /dr-next <TASK-ID>. См. навык context-window-self-clearing.

Контур безопасности

  • Каждое действие проходит через политику пространства и fail-closed action gate.
  • Текст pane представлен в audit только SHA-256-хешем и не сохраняется целиком.
  • Потенциальные credentials в reason редактируются до записи.
  • Key injection отклоняет escape-байты и символы вне allowlist.
  • Micro-cooldown (500 мс) и decision-cooldown (60 с) на pane ограничивают повторные отправки; на Linux атомарность обеспечивает flock, на macOS — неатомарный режим с однократным предупреждением.

Audit

События schema v2 фиксируют этап, результат, уверенность, выбранный backend, escalation backend и отредактированный reason. События schema v1 для rule-hit остаются совместимыми. Ошибка resolver, низкая уверенность, cooldown и отказ политики имеют явные terminal outcomes.

Конфигурация

key_injection: false
context_window:
  enabled: false
  trust_same_uid_runtime: false
  policy_label: ""
subagent:
  fallback_chain: ["coworker-deepseek", "claude", "codex"]
  timeout_s: 15
  confidence_threshold: 0.80
escalation:
  backend: "mock"
  mock_log: ~/.local/share/dr-orchestrate/escalation.jsonl

Текущие ограничения

Выученные правила никогда не расширяют реестр доверия и требуют подтверждения оператора. Default escalation sink — локальный JSONL; backend dev-bot остаётся заглушкой, пока не настроен реальный внешний consumer. Сетевые transports принадлежат плагину и должны оставаться на loopback или в разрешённой приватной сети.

Отчёт о результате

Перед сообщением человеку применяется Human Outcome Reporting. Объясняются изменение для пользователя, исходные условия, проверки и доказательства, а также открытые ограничения. Итог этапа не означает завершения всей задачи. Точные протоколы и технические записи сохраняются. Для повторного объяснения без продолжения работы — /dr-explain.