Feature: Plan Resume Service - Coverage Boost
  As a developer
  I want to ensure all validation error branches in PlanResumeService are tested
  So that edge-case error handling is verified

  # --- __init__ validation (line 75) ---

  Scenario: Creating PlanResumeService with None lifecycle_service raises ValidationError
    When I try to create a PlanResumeService with None lifecycle_service
    Then a coverage-boost ValidationError should be raised with message "lifecycle_service must not be None"

  # --- get_resume_metadata validation (line 93) ---

  Scenario: Getting resume metadata with empty plan_id raises ValidationError
    Given I have a coverage-boost PlanResumeService
    When I try to get resume metadata with empty plan_id
    Then a coverage-boost ValidationError should be raised with message "plan_id must not be empty"

  # --- build_resume_summary validation (line 186) ---

  Scenario: Building resume summary with empty plan_id raises ValidationError
    Given I have a coverage-boost PlanResumeService
    When I try to build resume summary with empty plan_id
    Then a coverage-boost ValidationError should be raised with message "plan_id must not be empty"

  # --- record_step_checkpoint validation (lines 303, 305, 307, 309) ---

  Scenario: Recording step checkpoint with empty plan_id raises ValidationError
    Given I have a coverage-boost PlanResumeService
    When I try to record a step checkpoint with empty plan_id
    Then a coverage-boost ValidationError should be raised with message "plan_id must not be empty"

  Scenario: Recording step checkpoint with negative step_index raises ValidationError
    Given I have a coverage-boost PlanResumeService
    And I have a coverage-boost plan in execute phase
    When I try to record a step checkpoint with step_index -1
    Then a coverage-boost ValidationError should be raised with message "step_index must be >= 0"

  Scenario: Recording step checkpoint with empty decision_id raises ValidationError
    Given I have a coverage-boost PlanResumeService
    And I have a coverage-boost plan in execute phase
    When I try to record a step checkpoint with empty decision_id
    Then a coverage-boost ValidationError should be raised with message "decision_id must not be empty"

  Scenario: Recording step checkpoint with empty step_text raises ValidationError
    Given I have a coverage-boost PlanResumeService
    And I have a coverage-boost plan in execute phase
    When I try to record a step checkpoint with empty step_text
    Then a coverage-boost ValidationError should be raised with message "step_text must not be empty"

  # --- record_shutdown validation (line 354) ---

  Scenario: Recording shutdown with empty plan_id raises ValidationError
    Given I have a coverage-boost PlanResumeService
    When I try to record shutdown with empty plan_id
    Then a coverage-boost ValidationError should be raised with message "plan_id must not be empty"

  # --- set_total_steps validation (line 384) ---

  Scenario: Setting total steps with negative value raises ValidationError
    Given I have a coverage-boost PlanResumeService
    And I have a coverage-boost plan in execute phase
    When I try to set total steps to -1
    Then a coverage-boost ValidationError should be raised with message "total must be >= 0"
