@tdd_issue @tdd_issue_647 @tdd_issue_4178
Feature: Container.resolve() crash in plan tree/explain/correct commands
  Regression guard for bug #647, where these CLI commands previously
  crashed when resolving DecisionService from the DI container.

  These tests use a REAL DI container (not MagicMock). Existing M3 tests missed
  this class of bug because they mock get_container() with MagicMock, which
  auto-creates any attribute.

  NOTE: Bug #647 is fixed; these scenarios serve as permanent regression guards.
  `plan correct` is intentionally exercised with `--dry-run` in this
  real-container path so no live LLM execution is triggered.

  Background:
    Given cr647- a real DI container with seeded decisions

  @tdd_issue @tdd_issue_4242

  Scenario: plan tree command regression guard for container.resolve() crash
    When cr647- I invoke the plan tree CLI command with a real container
    Then cr647- plan tree output should include seeded decision id

  Scenario: plan explain command regression guard for container.resolve() crash
    When cr647- I invoke the plan explain CLI command with a real container
    Then cr647- plan explain output should include seeded decision details

  @tdd_issue @tdd_issue_4242

  Scenario: plan correct command regression guard for container.resolve() crash
    When cr647- I invoke the plan correct CLI command with a real container
    Then cr647- plan correct output should reference seeded decision
