Files
cleveragents-core/features/architecture.feature
T
brent.edwards f4432c2759
CI / quality (push) Has been cancelled
CI / integration_tests (push) Has been cancelled
CI / e2e_tests (push) Has been cancelled
CI / build (push) Has been cancelled
CI / typecheck (push) Has been cancelled
CI / lint (push) Has been cancelled
CI / security (push) Has been cancelled
CI / benchmark-publish (push) Has been cancelled
CI / unit_tests (push) Has been cancelled
CI / helm (push) Has been cancelled
CI / coverage (push) Has been cancelled
CI / docker (push) Has been cancelled
CI / status-check (push) Has been cancelled
CI / benchmark-regression (push) Has been cancelled
refactor(cleanup): remove or implement empty stub packages
Remove four empty stub packages that contained only __init__.py with
__all__ = [] and no functional code, violating CONTRIBUTING.md §Commit
Completeness. All four were audited against docs/specification.md:

- src/cleveragents/runtime/ — Spec defines four layers (Domain,
  Application, Infrastructure, Presentation) with no Runtime Layer.
  Runtime concepts (LSP Runtime, actor runtime) belong in Infrastructure.
- src/cleveragents/domain/repositories/ — Spec mentions repository
  interfaces in Domain but mandates no separate subpackage. Empty with
  no protocols defined; existing models cover the domain.
- src/cleveragents/domain/plans/ — Plan domain models already exist in
  domain/models/planconfig, planfiles, and plansettings. Empty duplicate.
- src/cleveragents/application/workflows/ — Application logic already
  served by application/services/. Empty stub added no value.

Updated test references in features/steps/module_coverage_steps.py,
features/steps/coverage_extras_steps.py, features/architecture.feature,
and robot/architecture.robot to remove the deleted packages from import
verification and architecture validation lists.

ISSUES CLOSED: #948

Co-authored-by: Brent E. Edwards <brent.edwards@cleverthis.com>
Co-committed-by: Brent E. Edwards <brent.edwards@cleverthis.com>
2026-04-02 16:58:36 +00:00

53 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
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