# Behaviour Specifications All features are documented as Gherkin scenarios that serve as both tests and documentation. ## CLI Features ### Default Greeting ```gherkin Scenario: Default greeting When I run "python -m cleverclaude" Then the exit code should be 0 And the output should contain "Hello, World!" ``` ### Custom Name Greeting ```gherkin Scenario: Custom name greeting When I run "python -m cleverclaude --name Alice" Then the exit code should be 0 And the output should contain "Hello, Alice!" ``` ### Multiple Greetings ```gherkin Scenario: Multiple greetings When I run "python -m cleverclaude --count 3" Then the exit code should be 0 And the output should contain "Hello, World!" 3 times ``` ## Fuzz Testing We use Hypothesis to ensure our CLI handles edge cases: ```gherkin @hypothesis Scenario: Fuzz test greeting names When I fuzz test the CLI with random names Then all invocations should succeed ``` This runs 1000+ test cases with randomly generated inputs including: - Empty strings - Unicode characters - Emojis - Very long strings - Special characters