Files
cleverclaude-core/features/cli.feature
T
2025-08-10 12:00:13 -04:00

96 lines
3.5 KiB
Gherkin

Feature: CleverClaude Command-line Interface
As a user of CleverClaude
I want to interact with the AI agent orchestration system via CLI
So that I can manage agents, swarms, and tasks efficiently
Background:
Given the CleverClaude CLI is available
And I have a test environment
@smoke
Scenario: Display version information
When I run "cleverclaude --version"
Then the exit code should be 0
And the output should contain "CleverClaude Python v"
@smoke
Scenario: Display help information
When I run "cleverclaude --help"
Then the exit code should be 0
And the output should contain "Advanced AI Agent Orchestration System"
And the output should contain "init"
And the output should contain "start"
And the output should contain "agent"
And the output should contain "swarm"
Scenario: Initialize project with default template
Given I have an empty directory
When I run "cleverclaude init"
Then the exit code should be 0
And the output should contain "CleverClaude project initialized successfully"
And the directory ".cleverclaude" should exist
And the file ".cleverclaude/config.yaml" should exist
And the file ".env.example" should exist
And the directory "examples" should exist
Scenario: Initialize project with custom directory
Given I have a target directory "test-project"
When I run "cleverclaude init --dir test-project"
Then the exit code should be 0
And the output should contain "CleverClaude project initialized successfully"
And the directory "test-project/.cleverclaude" should exist
Scenario: Initialize project with production template
Given I have an empty directory
When I run "cleverclaude init --template production"
Then the exit code should be 0
And the file "docker-compose.yml" should exist
And the file ".cleverclaude/config.yaml" should contain "environment: \"production\""
Scenario: Fail to initialize in non-empty directory without force
Given I have a directory with existing files
When I run "cleverclaude init"
Then the exit code should be 1
And the output should contain "Use --force to overwrite"
Scenario: Force initialize in non-empty directory
Given I have a directory with existing files
When I run "cleverclaude init --force"
Then the exit code should be 0
And the output should contain "CleverClaude project initialized successfully"
@wip
Scenario: Start CleverClaude orchestration system
Given I have an initialized CleverClaude project
When I start the orchestration system in test mode
Then the system should initialize successfully
And the agent manager should be running
And the API server should be accessible
@wip
Scenario: Display system status
Given CleverClaude is running
When I run "cleverclaude status"
Then the exit code should be 0
And the output should contain system health information
And the output should contain agent count
And the output should contain memory usage
Scenario Outline: CLI command help
When I run "cleverclaude <command> --help"
Then the exit code should be 0
And the output should contain command-specific help
Examples:
| command |
| init |
| start |
| status |
| config |
| monitor |
@hypothesis
Scenario: Fuzz test CLI with invalid arguments
When I fuzz test the CLI with random invalid arguments
Then all invocations should either succeed or fail gracefully
And no invocation should crash the system