@tdd_issue @tdd_issue_967 @mock_only @tdd_issue_4178
Feature: TDD Issue #967 — plan execute only transitions state, does not run strategize or execute phase processing
  As a developer
  I want to verify that the plan execute CLI command handles plans in Strategize/QUEUED state
  by running strategize phase processing before transitioning to Execute
  So that the bug is captured and will be caught by a regression test

  Bug #967: The plan execute CLI command originally only called
  service.execute_plan(plan_id), which is a state transition only
  (Strategize/COMPLETE → Execute/QUEUED).  It did not construct a
  PlanExecutor or call run_strategize() / run_execute().  When a plan
  was in Strategize/QUEUED state (immediately after plan use), the command
  failed because execute_plan() requires Strategize/COMPLETE.

  These tests exercise the CLI orchestration layer (the execute_plan command
  handler in plan.py) via CliRunner to verify the bug is fixed.  The fix
  added phase-aware orchestration: when a plan is in Strategize/QUEUED,
  the CLI runs PlanExecutor.run_strategize() before transitioning.

  Scenario: CLI execute command handles plan in Strategize/QUEUED state
    Given a CLI runner and mocked services for bug 967
    And a plan in Strategize/QUEUED state for bug 967
    When I invoke the plan execute CLI command for the QUEUED plan for bug 967
    Then the CLI should succeed and the plan should reach Execute phase for bug 967

  Scenario: CLI execute command orchestrates full lifecycle for QUEUED plan
    Given a CLI runner and mocked services for bug 967
    And a plan in Strategize/QUEUED state for bug 967
    When I invoke the plan execute CLI command for the QUEUED plan for bug 967
    Then the executor should have run strategize for the plan for bug 967
    And the plan should have completed execute phase processing via CLI for bug 967

  Scenario: Positive control — proper orchestration transitions QUEUED plan to Execute
    Given a real plan executor with a plan in Strategize/QUEUED for bug 967
    When I run the proper orchestration of strategize then execute for bug 967
    Then the plan should be in Execute/QUEUED state via orchestration for bug 967

  Scenario: CLI auto-discovery finds plans in Strategize/QUEUED state
    Given a CLI runner and mocked services for bug 967
    And a single plan in Strategize/QUEUED state eligible for auto-discovery for bug 967
    When I invoke the plan execute CLI command without a plan id for bug 967
    Then the CLI should succeed and auto-discover the QUEUED plan for bug 967
