54 lines
2.4 KiB
Gherkin
54 lines
2.4 KiB
Gherkin
Feature: Architecture validation
|
|
As a developer
|
|
I want to verify the architecture follows our ADRs
|
|
So that the codebase remains maintainable
|
|
|
|
Scenario: ADR directory is absent after cleanup
|
|
Given the ADR directory "docs/architecture/decisions" may be absent
|
|
Then the ADR check should be skipped when the directory is missing
|
|
|
|
Scenario: Package structure follows layering ADR
|
|
Given the source directory exists at "src/cleveragents"
|
|
When I check the package structure
|
|
Then I should find these main packages:
|
|
| package | description |
|
|
| cli | Command line interface |
|
|
| application | Business logic and workflows |
|
|
| domain | Domain models and contracts |
|
|
| infrastructure | External integrations |
|
|
| providers | Model provider implementations |
|
|
| config | Configuration management |
|
|
| core | Shared core components |
|
|
| shared | Cross-cutting concerns |
|
|
|
|
Scenario: Dependencies follow inversion principle
|
|
Given the package structure is defined
|
|
When I analyze package imports
|
|
Then domain should not import from infrastructure
|
|
And domain should not import from application
|
|
And the core package should be self-contained
|
|
|
|
Scenario: Configuration uses CLEVERAGENTS prefix
|
|
Given the settings module exists
|
|
When I check environment variable definitions
|
|
Then all application variables should use CLEVERAGENTS_ prefix
|
|
And provider variables should keep their original prefix
|
|
|
|
@tdd_issue @tdd_issue_4186
|
|
Scenario: Type hints are used throughout
|
|
Given the source code exists
|
|
When I check for type annotations
|
|
Then all public functions should have type hints
|
|
And all dataclasses should use Pydantic models
|
|
|
|
Scenario: CONTRIBUTING documents LangChain best practices
|
|
When I read the CONTRIBUTING guidelines
|
|
Then the contributing document should include "LangChain/LangGraph Best Practices"
|
|
And the contributing document should include "Graph Design Patterns"
|
|
And the contributing document should include "Testing LangChain/LangGraph Code"
|
|
|
|
Scenario: Every source module imports without errors
|
|
Given the source directory exists at "src/cleveragents"
|
|
When I import every module under the source directory
|
|
Then every module should import without errors
|