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