Feature: Action CLI commands As a developer I want to manage actions via CLI commands So that I can create and use reusable plan templates Background: Given an action CLI runner with mocks And a mocked plan lifecycle service # Create command tests (config-only) Scenario: Create action via config file Given a valid action config YAML file When I run action CLI create with --config pointing to the YAML file Then the action CLI create should succeed And the action CLI created name should be "local/test-action" Scenario: Create action via config with all fields Given a full action config YAML file When I run action CLI create with --config pointing to the full YAML file Then the action CLI create should succeed And the action CLI should have specified arguments Scenario: Create action always creates in available state Given a valid action config YAML file When I run action CLI create with --config pointing to the YAML file Then the action CLI should create in available state Scenario: Create action with missing config file fails When I run action CLI create with --config pointing to a missing file Then the action CLI command should abort Scenario: Create action surfaces validation error Given a valid action config YAML file When I run action CLI create with validation error from service Then the action CLI should abort with validation error Scenario: Create action surfaces service error Given a valid action config YAML file When I run action CLI create with service error from config Then the action CLI should abort with service error # List command tests Scenario: List actions shows all actions Given there are mocked existing actions When I run action CLI list Then the action CLI should show all actions in a table Scenario: List actions with namespace filter Given there are mocked existing actions When I run action CLI list with namespace filter "local" Then the action CLI should show only local namespace actions Scenario: List actions with state filter Given there are mocked existing actions When I run action CLI list with state filter "available" Then the action CLI list should succeed with results Scenario: List actions with invalid state filter When I run action CLI list with invalid state "unknown" Then the action CLI should abort with invalid state Scenario: List actions handles service error When I run action CLI list with service error Then the action CLI should abort with service error Scenario: List actions when empty Given there are no mocked actions When I run action CLI list Then the action CLI should show no actions message # Show command tests Scenario: Show action by name lookup Given there is a mocked action with name "local/test-action" When I run action CLI show with name "local/test-action" Then the action CLI should show the action details Scenario: Show action by name Given there is a mocked action with name "local/my-action" When I run action CLI show with name "local/my-action" Then the action CLI should show the action details Scenario: Show action without optional descriptions Given there is a mocked action without descriptions When I run action CLI show with name "local/no-description" Then the action CLI should show the action details Scenario: Show action not found When I run action CLI show with unknown ID Then the action CLI command should abort for missing action Scenario: Show action handles service error When I run action CLI show with service error Then the action CLI should abort with service error # Show command (additional paths) Scenario: Show action by ID via show command Given there is a mocked available action When I run action CLI show with that ID Then the action CLI should show the action details Scenario: Show action by name resolves via name lookup Given there is a mocked available action When I run action CLI show by name lookup Then the action CLI should show the action details And the action CLI should resolve action by name Scenario: Archive action then verify it is archived Given there is a mocked available action When I run action CLI archive with the action ID Then the action CLI should archive the action Scenario: Show action not found via show command When I run action CLI show with unknown ID Then the action CLI command should abort for missing action Scenario: Show action handles service error via show command Given there is a mocked available action When I run action CLI show with service error Then the action CLI should abort with service error # Archive command tests Scenario: Archive action Given there is a mocked available action When I run action CLI archive with the action ID Then the action CLI should archive the action Scenario: Archive action not found When I run action CLI archive with unknown ID Then the action CLI command should abort for missing action Scenario: Archive action handles service error Given there is a mocked available action When I run action CLI archive with service error Then the action CLI should abort with service error