Files
cleveragents-core/features/plan_cli_spec_alignment.feature
T
freemo 52730b0846
CI / benchmark-publish (pull_request) Has been skipped
CI / helm (pull_request) Successful in 30s
CI / build (pull_request) Successful in 32s
CI / quality (pull_request) Successful in 44s
CI / lint (pull_request) Successful in 3m18s
CI / typecheck (pull_request) Successful in 3m58s
CI / security (pull_request) Successful in 4m7s
CI / unit_tests (pull_request) Failing after 6m31s
CI / docker (pull_request) Has been skipped
CI / e2e_tests (pull_request) Failing after 14m6s
CI / coverage (pull_request) Successful in 10m53s
CI / integration_tests (pull_request) Failing after 21m51s
CI / status-check (pull_request) Failing after 1s
CI / benchmark-regression (pull_request) Successful in 55m57s
fix(cli): add --namespace/-n option to agents plan list command
Add the missing --namespace/-n option to lifecycle_list_plans() in
plan.py, mirroring the existing implementation in list_actions() in
action.py. The service layer already supported namespace filtering;
only the CLI layer was missing the option.

Changes:
- Add namespace parameter to lifecycle_list_plans() with --namespace/-n
  option flags and 'Filter plans by namespace' help text
- Pass namespace through to service.list_plans(namespace=namespace, ...)
- Update TUI Filters panel to display 'Namespace: <value>' when provided
- Add usage examples to command docstring
- Add 4 Behave unit test scenarios covering --namespace/-n option
- Add 2 Robot Framework integration tests verifying namespace filtering

ISSUES CLOSED: #2165
2026-04-03 20:50:17 +00:00

144 lines
6.0 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 --namespace filter (long form)
Given plan spec alignment plans exist
When I run plan list with namespace "myteam"
Then the plan spec list should succeed
And the plan spec list should pass namespace "myteam" to service
Scenario: Plan list with -n namespace filter (short form)
Given plan spec alignment plans exist
When I run plan list with short namespace "local"
Then the plan spec list should succeed
And the plan spec list should pass namespace "local" to service
Scenario: Plan list with --namespace shows Namespace in Filters panel
Given plan spec alignment plans exist
When I run plan list with namespace "myteam"
Then the plan spec list should succeed
And the plan spec list output should contain "Namespace"
And the plan spec list output should contain "myteam"
Scenario: Plan list with --namespace combined with --state
Given plan spec alignment plans exist
When I run plan list filtering by namespace "myteam" and processing state "queued"
Then the plan spec list should succeed
And the plan spec list should pass namespace "myteam" to service
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"