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