65988669a6
CI / coverage (push) Blocked by required conditions
CI / build (push) Waiting to run
CI / lint (push) Waiting to run
CI / typecheck (push) Waiting to run
CI / docker (push) Blocked by required conditions
CI / security (push) Waiting to run
CI / quality (push) Waiting to run
CI / unit_tests (push) Waiting to run
CI / integration_tests (push) Waiting to run
CI / lint (pull_request) Successful in 16s
CI / typecheck (pull_request) Successful in 26s
CI / security (pull_request) Successful in 22s
CI / quality (pull_request) Successful in 15s
CI / integration_tests (pull_request) Successful in 4m31s
CI / build (pull_request) Successful in 16s
CI / unit_tests (pull_request) Successful in 9m18s
CI / coverage (pull_request) Successful in 6m54s
CI / docker (pull_request) Successful in 39s
- plan use: accept positional PROJECT args, add --automation-profile, --invariant (repeatable), and actor override flags - lifecycle-list: add --state/--processing-state, --action filters, optional positional REGEX for name filtering, Action column in output - plan status: enhanced detail view with processing state, project links, arguments order, automation profile provenance, actor overrides, automation level, and full timestamps - Add docs/reference/plan_cli.md reference documentation - Add Behave feature (17 scenarios) with mock service steps - Add Robot smoke test (7 cases) with import-safe helper - Add ASV benchmarks for plan use/list/status commands
119 lines
4.9 KiB
Gherkin
119 lines
4.9 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 lifecycle-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 lifecycle-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 lifecycle-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 lifecycle-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 lifecycle-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 lifecycle-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 lifecycle-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"
|