Feature: Strategy Coordinator Coverage
  Additional scenarios that exercise previously uncovered code paths
  in the strategy_coordinator module (lines 147, 152, 157, 162,
  192, 198, 200, 291-294, 328, 331).

  Background:
    Given the strategy coordinator module is imported

  # -----------------------------------------------------------------------
  # Property accessors (lines 147, 152, 157, 162)
  # -----------------------------------------------------------------------

  Scenario: Accessing the config property returns the coordinator configuration
    Given a strategy coordinator with default configuration
    When I access the config property
    Then the config property returns a CoordinatorConfig instance

  Scenario: Accessing the selector property returns the strategy selector
    Given a strategy coordinator with default configuration
    When I access the selector property
    Then the selector property returns a ConfidenceWeightedSelector instance

  Scenario: Accessing the allocator property returns the budget allocator
    Given a strategy coordinator with default configuration
    When I access the allocator property
    Then the allocator property returns a ProportionalBudgetAllocator instance

  Scenario: Accessing the executor property returns the strategy executor
    Given a strategy coordinator with default configuration
    When I access the executor property
    Then the executor property returns a ParallelStrategyExecutor instance

  # -----------------------------------------------------------------------
  # coordinate() with fragments=None default (line 192)
  # -----------------------------------------------------------------------

  Scenario: Coordinate with no fragments defaults to empty list
    Given a strategy coordinator with mock pipeline components
    And a mock strategy that returns fragments without strategy_source
    When I call coordinate without passing fragments
    Then the coordination should succeed
    And the result should contain fragments from the mock strategy

  # -----------------------------------------------------------------------
  # coordinate() with backends parameter (line 198)
  # -----------------------------------------------------------------------

  Scenario: Coordinate enriches request with backends parameter
    Given a strategy coordinator with a request-capturing selector
    And a mock strategy that returns fragments without strategy_source
    When I call coordinate with backends parameter
    Then the enriched request should contain a backends key

  # -----------------------------------------------------------------------
  # coordinate() with plan_context parameter (line 200)
  # -----------------------------------------------------------------------

  Scenario: Coordinate enriches request with plan_context parameter
    Given a strategy coordinator with a request-capturing selector
    And a mock strategy that returns fragments without strategy_source
    When I call coordinate with plan_context parameter
    Then the enriched request should contain a plan_context key

  # -----------------------------------------------------------------------
  # _apply_max_caps zero-confidence redistribution (lines 291-294)
  # -----------------------------------------------------------------------

  Scenario: Max cap redistribution with zero-confidence uncapped strategies
    Given a strategy coordinator with per_strategy_max_cap of 500
    And allocations with one capped strategy and two zero-confidence uncapped strategies
    When I apply max caps to the allocations
    Then the excess tokens should be equally redistributed among uncapped strategies

  # -----------------------------------------------------------------------
  # _extract_strategies_used with strategy_source (lines 328, 331)
  # -----------------------------------------------------------------------

  Scenario: Strategies used extracted from fragment strategy_source metadata
    Given a strategy coordinator with mock pipeline components
    And a mock strategy that returns fragments with strategy_source set
    When I call coordinate without passing fragments
    Then the strategies_used should be derived from fragment strategy_source
