Files
cleveragents-core/features/plan_cli_spec_alignment.feature
T
HAL9000 afe89964df
CI / push-validation (pull_request) Successful in 26s
CI / helm (pull_request) Successful in 50s
CI / lint (pull_request) Successful in 52s
CI / build (pull_request) Successful in 51s
CI / quality (pull_request) Successful in 52s
CI / security (pull_request) Successful in 1m15s
CI / typecheck (pull_request) Successful in 1m35s
CI / unit_tests (pull_request) Successful in 5m25s
CI / docker (pull_request) Successful in 1m34s
CI / integration_tests (pull_request) Failing after 10m26s
CI / coverage (pull_request) Failing after 18m51s
CI / status-check (pull_request) Has been cancelled
chore(tests): remove stale tdd_expected_fail tags from tests now passing on master
The tdd_expected_fail listener (robot/tdd_expected_fail_listener.py and
features/environment.py) inverts test results: a test tagged
@tdd_expected_fail that PASSES is forced to FAIL with the message
"Bug appears to be fixed. Remove the tdd_expected_fail tag…".

After rebasing onto master, 22 scenarios across 11 files were triggering
that forced-failure path because the underlying bugs (#4199, #4201,
#4202, #4203, #4205, #4206, #4243, #4252, #4301, #4303, #4304) have
been fixed on master but the @tdd_expected_fail tags were never removed.
This commit removes the stale tag (keeping @tdd_issue and
@tdd_issue_<N> for traceability, per the master-side pattern in
robot/tdd_skill_add_regression.robot:9 "tag removed after bug fix").

Files touched (lines: where the stale tag was):
  features/plan_cli_spec_alignment.feature (121, 128, 136)
  robot/a2a_facade.robot (40)
  robot/actor_cli_show.robot (13, 30)
  robot/actor_configuration.robot (8)
  robot/actor_context_export_import.robot (20, 71, 92)
  robot/cli_extensions.robot (61)
  robot/cli_formats.robot (14, 23, 30, 48, 57, 85)
  robot/cli_lifecycle_e2e.robot (77, 87)
  robot/config_project_scope.robot (37)
  robot/config_resolution.robot (13)
  robot/container_tool_exec.robot (137)

Verified locally: targeted unit_tests run on
features/plan_cli_spec_alignment.feature now passes 20/20 (was 17/20
with 3 scenarios forced-failed by the inversion).

ISSUES CLOSED: #3677
2026-06-03 03:22:59 -04:00

142 lines
5.8 KiB
Gherkin

Feature: Plan CLI spec alignment
As a developer
I want the plan CLI commands aligned to the v3 spec
So that plan use/list/status flags are consistent with the specification
Background:
Given a plan spec alignment CLI runner
And a plan spec alignment mocked lifecycle service
# ---- plan use: multiple projects (positional) ----
Scenario: Plan use with multiple positional projects
Given a plan spec alignment action exists
When I run plan use with positional projects "proj-a" and "proj-b"
Then the plan spec use should succeed
And the plan spec use should link projects "proj-a" and "proj-b"
# ---- plan use: --automation-profile ----
Scenario: Plan use with --automation-profile
Given a plan spec alignment action exists
When I run plan use with automation profile "trusted"
Then the plan spec use should succeed
And the plan spec output should contain "Automation Profile"
# ---- plan use: --invariant (repeatable) ----
Scenario: Plan use with repeatable --invariant
Given a plan spec alignment action exists
When I run plan use with invariants "No warnings" and "Keep compat"
Then the plan spec use should succeed
And the plan spec use should pass invariants to service
# ---- plan use: actor override flags ----
Scenario: Plan use with strategy-actor override
Given a plan spec alignment action exists
When I run plan use with strategy actor "openai/gpt-4"
Then the plan spec use should succeed
And the plan spec output should contain "Strategy Actor"
Scenario: Plan use with execution-actor override
Given a plan spec alignment action exists
When I run plan use with execution actor "anthropic/claude-3"
Then the plan spec use should succeed
And the plan spec output should contain "Execution Actor"
Scenario: Plan use with estimation-actor override
Given a plan spec alignment action exists
When I run plan use with estimation actor "openai/gpt-4"
Then the plan spec use should succeed
And the plan spec output should contain "Estimation Actor"
Scenario: Plan use with invariant-actor override
Given a plan spec alignment action exists
When I run plan use with invariant actor "openai/gpt-4"
Then the plan spec use should succeed
And the plan spec output should contain "Invariant Actor"
# ---- plan use: --arg name=value ----
Scenario: Plan use with --arg name=value
Given a plan spec alignment action exists
When I run plan use with arg "target_coverage=80"
Then the plan spec use should succeed
And the plan spec use should pass argument "target_coverage" with value 80
# ---- plan list: filter combinations ----
Scenario: Plan list with --phase filter
Given plan spec alignment plans exist
When I run plan list with phase "strategize"
Then the plan spec list should succeed
Scenario: Plan list with --state filter
Given plan spec alignment plans exist
When I run plan list with state "queued"
Then the plan spec list should succeed
Scenario: Plan list with --processing-state filter
Given plan spec alignment plans exist
When I run plan list with processing-state "complete"
Then the plan spec list should succeed
Scenario: Plan list with --project filter
Given plan spec alignment plans exist
When I run plan list with project "proj-a"
Then the plan spec list should succeed
Scenario: Plan list with --action filter
Given plan spec alignment plans exist
When I run plan list with action "local/test-action"
Then the plan spec list should succeed
Scenario: Plan list with regex filter
Given plan spec alignment plans exist
When I run plan list with regex "test-action"
Then the plan spec list should succeed
Scenario: Plan list with combined filters
Given plan spec alignment plans exist
When I run plan list combining phase "strategize" with project "proj-a"
Then the plan spec list should succeed
# ---- plan status: output fields ----
Scenario: Plan status renders all required fields
Given a plan spec alignment plan exists for status
When I run plan status for the plan
Then the plan spec status should succeed
And the plan spec status should contain "Action"
And the plan spec status should contain "Phase"
And the plan spec status should contain "Processing State"
And the plan spec status should contain "Projects"
And the plan spec status should contain "Arguments"
And the plan spec status should contain "Automation Profile"
And the plan spec status should contain "Created"
And the plan spec status should contain "Updated"
# ---- plan cancel: --reason ----
Scenario: Plan cancel with --reason
Given a plan spec alignment plan exists for cancel
When I run plan cancel with reason "Requirements changed"
Then the plan spec cancel should succeed
And the plan spec cancel output should contain "Requirements changed"
# ---- plan list: required column rendering ----
@tdd_issue @tdd_issue_4252
Scenario: Plan list rich output includes Name column
Given plan spec alignment plans exist
When I run plan list with no filters
Then the plan spec list should succeed
And the plan spec list output should contain "Name"
@tdd_issue @tdd_issue_4252
Scenario: Plan list rich output includes Updated column
Given plan spec alignment plans exist
When I run plan list with no filters
Then the plan spec list should succeed
And the plan spec list output should contain "Updat"
And the plan spec list output should contain the current year-month timestamp
@tdd_issue @tdd_issue_4252
Scenario: Plan list rich output includes Invariants column
Given plan spec alignment plans exist
When I run plan list with no filters
Then the plan spec list should succeed
And the plan spec list output should contain "Invar"