Команда Plugin

/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"

Один цикл

  1. Захватывает текущее содержимое tmux pane.
  2. Если найден ID задачи, валидирует и читает datarim/snapshots/{TASK-ID}.snapshot.md до классификации. Значение recommended_next служит подсказкой, а не ограничением.
  3. Запускает rule-based semantic parser.
  4. При совпадении записывает решение и передаёт его в action gate.
  5. При промахе вызывает subagent_resolver.sh. Ограниченная fallback-цепочка: coworker, затем claude, затем codex; Coworker использует поддерживаемый профиль classifier.
  6. Проверяет порог уверенности (по умолчанию 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 или в разрешённой приватной сети.