# Clean Architecture

Record: `arch:clean-architecture`
Kind: style
Layer: [Structural Core](https://banes-lab.com/records/layer/structural-core.md)
Severity: recommended
Scope: application, system
Canonical: https://banes-lab.com/ontology#arch-clean-architecture

## Repair

- Refactored by: Move Logic Inward, Extract Interface, Add Adapter
- Detected by: dependency rule violations
- Violated by: outer layers imported by inner layers
- Measured by: inward dependency compliance
- Enforced by: dependency graph rules

## requires

- [Dependency Rule](https://banes-lab.com/records/lex/dependency-rule.md)
- [Use Cases](https://banes-lab.com/records/lex/use-cases.md)
- [Boundaries](https://banes-lab.com/records/lex/boundaries.md)

## reinforces

- [Dependency Inversion Principle (DIP)](https://banes-lab.com/records/arch/dependency-inversion.md)
- [Testability](https://banes-lab.com/records/arch/testability.md)

## enables

- [Framework Independence](https://banes-lab.com/records/lex/framework-independence.md)

## conflicts-with

- [Layer Leakage](https://banes-lab.com/records/lex/layer-leakage.md)

## tensions-with

- [Boilerplate](https://banes-lab.com/records/lex/boilerplate.md)

## tensions

- [Clean Architecture Boilerplate](https://banes-lab.com/records/tension/boilerplate-clean-architecture.md)

## referenced-by

- [Hexagonal Architecture](https://banes-lab.com/records/arch/hexagonal-architecture.md)
- [Dependency Inversion Principle (DIP)](https://banes-lab.com/records/arch/dependency-inversion.md)
