Feature: Actor service coverage As a developer I want actor service behaviors covered So that custom and built-in actors are validated Scenario: Normalizes missing prefix to local Given an actor service with stubbed dependencies When I normalize actor name "custom" Then the normalized actor name should be "local/custom" Scenario Outline: Invalid actor names are rejected Given an actor service with stubbed dependencies When I try to normalize actor name "" without allowing built-ins Then a ValidationError should be raised containing "" Examples: | name | message | | | cannot be empty | | local/extra/slash/name | exactly one '/' separator | | /missing-id | include both prefix and identifier | | remote/model | 'local/' naming pattern | Scenario: Listing actors returns stored entries Given an actor service with stubbed dependencies And existing actors named "local/first" and "local/second" When I list all actors Then I should receive actors ["local/first", "local/second"] Scenario: Getting an unknown actor raises not found Given an actor service with stubbed dependencies When I attempt to fetch actor "vendor/model" Then a NotFoundError should be raised for the actor Scenario: Upserting with non-local namespace always raises ValidationError Given an actor service with stubbed dependencies And a built-in actor named "vendor/model" already exists When I attempt to upsert "vendor/model" as custom Then a ValidationError should be raised for non-local namespace Scenario: Upserting with set_default marks actor as default Given an actor service with stubbed dependencies And an actor named "local/defaultable" exists When I upsert "local/defaultable" with set_default Then the stored actor "local/defaultable" should be default Scenario: Removing missing actors raises not found Given an actor service with stubbed dependencies When I try to remove actor "local/missing" Then a NotFoundError should be raised for the actor Scenario: Removing protected actors surfaces business rule violation Given an actor service with stubbed dependencies And a built-in actor named "local/protected" already exists When I try to remove actor "local/protected" Then a BusinessRuleViolation should be raised Scenario: Setting default actor requires existing entry Given an actor service with stubbed dependencies When I set default actor "local/absent" Then a NotFoundError should be raised for the actor Scenario: Setting default actor updates repository default Given an actor service with stubbed dependencies And an actor named "local/current" exists When I set default actor "local/current" Then the stored actor "local/current" should be default Scenario: Ensuring default mock actor returns existing default Given an actor service with stubbed dependencies And an actor named "local/existing-default" exists as default When I ensure the default mock actor with env value "true" Then the returned actor name should be "local/existing-default" And no additional actors should be created Scenario: Ensuring default mock actor promotes existing mock Given an actor service with stubbed dependencies And a mock actor named "local/mock-default" exists without default flag When I ensure the default mock actor with env value "1" Then the returned actor name should be "local/mock-default" And the stored actor "local/mock-default" should be default Scenario: Ensuring default mock actor creates a new default when missing Given an actor service with stubbed dependencies When I ensure the default mock actor with env value "yes" Then the returned actor name should be "local/mock-default" And the stored actor "local/mock-default" should be default Scenario: Ensuring default mock actor is a no-op when env disabled Given an actor service with stubbed dependencies And any existing actors are cleared When I ensure the default mock actor with env value "0" Then the result should be None Scenario: Ensuring default mock actor is idempotent Given an actor service with stubbed dependencies When I ensure the default mock actor with env value "true" Then the returned actor name should be "local/mock-default" And the stored actor "local/mock-default" should be default When I ensure the default mock actor with env value "true" again Then the returned actor name should be "local/mock-default" And only one "local/mock-default" actor should exist Scenario: Ensuring default mock actor with existing default is safe Given an actor service with stubbed dependencies And an actor named "local/existing-default" exists as default When I ensure the default mock actor with env value "true" Then the returned actor name should be "local/existing-default" And the stored actor "local/existing-default" should be default And only one default actor should exist Scenario: Ensuring default mock actor creates exactly one actor Given an actor service with stubbed dependencies When I ensure the default mock actor with env value "true" Then exactly one actor should exist And the stored actor "local/mock-default" should be default