Feature: Local-first AI with optional BYO fallback
  As a user who values keeping my content on my own stack
  I want summaries produced by the local AI first
  So that my content only reaches a third-party model when I have explicitly opted in

  Scenario: Local AI produces the summary
    Given the local AI stack is available
    When a transcript is summarized
    Then the local AI produces the summary
    And the summary records ai_provider "local"
    And the summary records fallback_used as false

  Scenario: Local AI fails and the user has a BYO provider configured
    Given the local AI stack fails
    And I have configured a BYO provider "anthropic"
    When a transcript is summarized
    Then Tapir falls back to my "anthropic" provider
    And the summary records ai_provider "anthropic"
    And the summary records fallback_used as true

  Scenario: Local AI fails and the user has no BYO provider
    Given the local AI stack fails
    And I have not configured any BYO provider
    When a transcript is summarized
    Then no summary is produced
    And the work is queued for retry
    And my content is not sent to any third-party model

  Scenario: A user without BYO never has content sent externally
    Given I have not configured any BYO provider
    When any transcript is summarized
    Then my content is only ever sent to the local AI stack

  # "Reliably" is operationalized as: Primary returned without error within timeout.
  # Quality scoring may be added later without changing these scenarios.
