Skip to content

Feature: Universal Workflow Orchestrator для bounded development-сессий #212

Description

@stgmt

Feature: Universal Workflow Orchestrator для всей development-работы

Проблема

Длинные сессии с прямым fan-out сабагентов производят много анализа и частичных изменений, но не гарантируют интегрированный результат. Нужен общий orchestration layer поверх native Claude Code Dynamic Workflows: детерминированный выбор workflow, bounded fleet, barriers, typed evidence, durable resume и fail-closed enforcement.

Цель

Добавить в dev-pomogator переносимый Universal Workflow Orchestrator (UWO), который может устанавливаться в проекты и управлять development-задачами через сохранённые Dynamic Workflows, не создавая собственный scheduler/runtime/database.

Требуемое поведение

  1. Классифицировать request по work shape, domain capabilities и side-effect tier.
  2. Разрешать exact active workflow либо совместимого versioned ancestor.
  3. Если подходящего workflow нет — запускать bounded acquisition: создать/унаследовать candidate, проверить, отладить, зарегистрировать и promote; solo/direct-Agent fallback запрещён.
  4. Даже trivial edit выполнять через один cheapest-sufficient worker.
  5. Использовать один внешний universal dispatcher; family workflows не должны создавать второй уровень nested workflow.
  6. Хранить typed task/result packets, barriers, budgets, evidence и terminal status.
  7. Поддерживать cross-session resume и TaskList только как UI-проекцию.
  8. Не вмешиваться в product agents/processes, Docker, provider jobs и доменные CLI.

Обязательные защитные контракты

Platform authorization

  • Dynamic Workflow запускается только после явного пользовательского opt-in или другого platform-supported authorization signal.
  • Skill, routing rule или hook не может сам создать такое разрешение.
  • Без authorization допустимы только classify/explain/prepare-resumable-packet; никакого Workflow, Agent или target mutation.

Trusted workflow resolution

  • Caller не передаёт authoritative selectedWorkflow.
  • Trusted resolver выпускает content-addressed ResolutionReceipt с request/registry/policy/definition digests, matched/rejected predicates и resolver identity.
  • Dispatcher сверяет receipt со своим generated literal registry snapshot; routing hints не дают bypass.

Isolated worktree integration

  • READY worker не означает integrated.
  • Нужен WorktreeIntegrationReceipt: run/task/workflow/base/head, authorized scope, changed paths, patch или commit identity, verification, ownership/conflict scan, integration method/status и integrated target revision.
  • Один convergence owner проверяет scope/base/freshness, интегрирует и повторно запускает repository gates.
  • Никаких неявных cherry-pick, reset, delete или prune.

Durable resume journal

  • Volatile live manifest в out/ не может быть единственным resume authority.
  • Нужен tracked append-only redacted checkpoint с identities/status/evidence refs/native run ref, без secrets/full prompts/large artifacts.
  • Несовпадение live manifest и durable checkpoint → STALE/HALT.

Non-circular spec gate

  • До заявления spec-ready должен существовать и реально запускаться runtime-free bootstrap verifier.
  • Он проверяет уникальность и полноту FR ↔ AC ↔ scenario ↔ task, а также точный feature ↔ BDD-wrapper parity.
  • Production checker реализуется позднее и обязан пройти parity на bootstrap fixtures.

Минимальные workflow families

  • mechanical-single-worker
  • plan-discovery / specification
  • implementation-refactor / bugfix-investigation
  • research-benchmark / review-audit
  • gates-evaluation
  • migration-batch / incident-retrospective
  • specialist-agent-dispatch
  • workflow-acquisition

Доменные расширения должны подключаться через registry/capabilities, а не хардкодиться в универсальном runtime.

Lifecycle

candidate → smoke-passed → verified → active → deprecated

  • Candidate не выполняет target mutating work.
  • Promotion требует ordered evidence.
  • Equal-priority ambiguity и incompatible resume завершаются HALT, а не случайным выбором.

Acceptance criteria

  • Exact workflow resolution детерминирован и explainable.
  • Caller-controlled workflow selection отвергается.
  • Отсутствующий workflow проходит acquisition без solo fallback.
  • Trivial edit использует ровно одного дешёвого worker.
  • Red integration barrier блокирует следующую mutating wave.
  • Stopped/null/stale/duplicate result не считается completion.
  • Out-of-scope worktree mutation не интегрируется.
  • Interrupted run восстанавливается после очистки volatile out/ по durable checkpoint.
  • Direct development Agent может быть заблокирован только после эмпирического proof, что internal workflow worker остаётся рабочим.
  • Product processes с именем agent не блокируются.
  • Rollback отключает project-local enforcement без изменения user-global settings.
  • Bootstrap traceability verifier имеет positive и negative fixtures.
  • Dogfood сравнивает closed gates, duplicate/stale/partial rate, agent count, elapsed time и repair cycles.

Non-goals / hard stops

  • Не строить новый scheduler, queue, model transport или database.
  • Не включать Agent Teams как обязательный substrate.
  • Не менять глобальный ~/.claude/settings.json.
  • Не считать agent count, token count или diff size доказательством прогресса.
  • Не выполнять paid/live/provider действия в generic smoke.
  • submission-unknown никогда не retry автоматически.

Deliverables

  • Полная spec-first спецификация с FR/NFR/AC/BDD/traceability/risk register/atomic tasks.
  • Declarative registry + policy/model capability profiles + JSON Schemas.
  • Generated universal dispatcher и sync checker.
  • Saved workflow families и acquisition lifecycle.
  • Durable manifest/checkpoint adapters и TaskList projection.
  • Project-local audit/soft/hard enforcement hooks с boundary proof и rollback.
  • Installer/migration guide для существующих skills и direct-agent routes.
  • Dogfood report на реальной длинной development-задаче.

Metadata

Metadata

Assignees

No one assigned

    Labels

    claude-codeClaude Code toolingenhancementNew feature or requesttoolingDeveloper tooling

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions