Skip to content

discovery(orchestration): low-utilization composability — SuccessCriteriaEvaluator + CollaborationCoordinator are single-caller modules #6832

Closed

Description

@mrveiss

Discovered during

Audit of issue #4048 closure (2026-05-04).

Finding

Two modules in enhanced_orchestration/ are well-implemented but coupled to a single caller, missing composability opportunities:

1. SuccessCriteriaEvaluator (234 LOC)

enhanced_orchestration/success_criteria.py implements a generic, weighted criteria evaluator (#3293) — exit code, output pattern, custom checks. Used only by `WorkflowRunner` internally.

This is a generic capability that should be available to:

  • The canonical `Orchestrator` (no current path)
  • DAG workflows via `DAGExecutor` (no current path)
  • Any new execution mode

2. CollaborationCoordinator (63 LOC)

enhanced_orchestration/collaboration_coordinator.py is a thin Redis pub/sub wrapper (#5058 extraction). Used only by `WorkflowRunner`.

At 63 LOC and one caller, the extraction has overhead but no current payoff. Either:

Why it matters

Composability is the value-add of a decomposed orchestrator. If decomposed parts only have one caller, the decomposition cost (extra files, extra imports, extra tests) isn't earning its keep.

Recommendation

For `SuccessCriteriaEvaluator`:

  • Promote to `orchestration/success_criteria.py` (lower layer)
  • Wire into `WorkflowExecutor` and `DAGExecutor` as an optional post-step hook
  • Document the criteria DSL in `orchestration/init.py`

For `CollaborationCoordinator`:

  • Either inline back into `WorkflowRunner` (if no other consumer is planned)
  • Or promote to `orchestration/coordination.py` and document as a primitive

Acceptance criteria

  • `SuccessCriteriaEvaluator` is callable from at least 2 distinct execution paths
  • `CollaborationCoordinator` either has ≥2 callers OR is inlined back into its single caller
  • Existing `WorkflowRunner` tests pass unchanged

Priority

P3 — composability hygiene, no functional impact today.

Activity

  1. mrveiss commented on May 16, 2026

    @mrveiss
    OwnerAuthor

    ✅ Closed with proof of implementation

    Commit:

    Acceptance Criteria Met:

    • ✅ SuccessCriteriaEvaluator promoted from enhanced_orchestration → orchestration (shared layer)
    • ✅ Backward-compat re-export shim in enhanced_orchestration/success_criteria.py (5-symbol shim)
    • ✅ Both import paths resolve correctly:
      • from orchestration.success_criteria import SuccessCriteriaEvaluator
      • from enhanced_orchestration.success_criteria import SuccessCriteriaEvaluator
    • ✅ WorkflowExecutor wired with optional criteria_evaluator kwarg
    • ✅ No existing callers broken (backward-compat preserved)
    • ✅ PR refactor(backend): move SuccessCriteriaEvaluator to orchestration/ layer (GH #6832) #7898 merged to Dev_new_gui
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions