# Concrete Coupling

Record: `arch:concrete-coupling`
Kind: anti-pattern
Layer: [Enforcement Core](https://banes-lab.com/records/layer/enforcement-core.md)
Severity: discouraged
Scope: modularity
Canonical: https://banes-lab.com/ontology#arch-concrete-coupling

## Repair

- Refactored by: extract_interface, introduce_port, extract_adapter, inject_dependency, apply_DIP
- Detected by: domain_imports_infrastructure, vendor_sdk_in_core, new_dependency_inside_business_logic, missing_interface_boundary
- Violated by: Let high-level policy depend directly on low-level implementations, vendor APIs, framework classes, or concrete constructors, then spread those concrete assumptions across the core.

## referenced-by

- [Interface-Based Design](https://banes-lab.com/records/arch/interface-based-design.md)
- [Abstraction](https://banes-lab.com/records/arch/abstraction.md)
- [Replaceability](https://banes-lab.com/records/arch/replaceability.md)
