/dr-orchestrate
Автономный Datarim pipeline со snapshot-first resume и fail-closed семантической маршрутизацией.
Обзор
/dr-orchestrate ведёт Datarim pipeline через терминальную pane. Команда, границы автономности и политика действий входят в ядро Datarim. Tmux-драйвер, семантический resolver, bot transport и audit-бэкенды поставляет опциональный плагин dr-orchestrate.
Phase 2 работает на уровне автономности L2. Известные запросы обрабатываются детерминированными правилами. Неизвестные проходят ограниченную цепочку resolver; действие разрешается только при достаточной уверенности и подходящей политике пространства. Всё остальное эскалируется.
Использование
/dr-plugin enable /path/to/plugins/dr-orchestrate
dr-orchestrate run
dr-orchestrate run --dry-run
dr-orchestrate run --unknown-prompt "operator prompt"
'short' => 'Самоуправляемый Datarim pipeline на базе tmux — Phase 2 (Subagent Inference, автономность L2)',
'body' => <<<'HTML'
Обзор
/dr-orchestrate — референсный non-core плагин фреймворка. Phase 1 (v2.3.0) — lean rule-based tmux runner. Phase 2 (v2.4.0) добавляет subagent inference, который активируется когда rule-based парсер не может классифицировать строку pane, плюс flock-race-safe cooldown и audit schema v2. Автономность плагина теперь L2 (assisted): эскалацию по-прежнему контролирует человек, но unknown prompts больше не упираются в парсер.
Плагин лежит в plugins/dr-orchestrate/ в репозитории фреймворка и включается стандартным CLI (/dr-plugin).
Использование
# Однократно включить плагин
/dr-plugin enable dr-orchestrate
# Опционально: разрешить send-keys (по умолчанию fail-closed)
cp ~/.claude/plugins/dr-orchestrate/user-config.template.yaml \
~/.claude/plugins/dr-orchestrate/user-config.yaml
chmod 600 ~/.claude/plugins/dr-orchestrate/user-config.yaml
$EDITOR ~/.claude/plugins/dr-orchestrate/user-config.yaml # key_injection: true
# Один цикл Phase 2 (parse → resolver → autonomous-or-escalate)
/dr-orchestrate run
# Сухой прогон для валидации
/dr-orchestrate run --dry-run
# Вручную классифицировать вставленный prompt без consume tmux pane
/dr-orchestrate run --unknown-prompt "operator paste: > /dr-prd ready for strategy gate"Один цикл
- Захватывает текущее содержимое tmux pane.
- Если найден ID задачи, валидирует и читает
datarim/snapshots/{TASK-ID}.snapshot.mdдо классификации. Значениеrecommended_nextслужит подсказкой, а не ограничением. - Запускает rule-based semantic parser.
- При совпадении записывает решение и передаёт его в action gate.
- При промахе вызывает
subagent_resolver.sh. Ограниченная fallback-цепочка:coworker, затемclaude, затемcodex; Coworker использует поддерживаемый профиль classifier. - Проверяет порог уверенности (по умолчанию
0.80) и политику автономности пространства. Operator-gated и некорректные результаты эскалируются и не исполняются.
Граница ядра и плагина
- Ядро: контракт команды, resolver автономности пространства, FB policy loader, hard-gated safety rules и карта action-to-policy.
- Плагин: tmux capture/send, реализации semantic resolver, HTTP/bot transport, Redis или callback и операционные audit-инструменты.
Контракт и политика команды доступны без плагина. Для управления pane требуется включённый плагин.
Контур безопасности
- Каждое действие проходит через политику пространства и fail-closed action gate.
- Текст pane представлен в audit только SHA-256-хешем и не сохраняется целиком.
- Потенциальные credentials в reason редактируются до записи.
- Key injection отклоняет escape-байты и символы вне allowlist.
- Micro- и decision-cooldown ограничивают повторные отправки; на Linux атомарность обеспечивает
flock.
Audit
События schema v2 фиксируют этап, результат, уверенность, выбранный backend, escalation backend и отредактированный reason. События schema v1 для rule-hit остаются совместимыми. Ошибка resolver, низкая уверенность, cooldown и отказ политики имеют явные terminal outcomes.
Конфигурация
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
Текущие ограничения
Автоматическое обучение правил пока вне scope. Default escalation sink — локальный JSONL; реальный внешний consumer настраивается явно. Сетевые transports принадлежат плагину и должны оставаться на loopback или в разрешённой приватной сети.