# Premature Abstraction

Record: `arch:premature-abstraction`
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-premature-abstraction

## Repair

- Refactored by: duplicate_until_pattern_stabilizes, split_abstraction, extract_later_from_evidence
- Detected by: many_flags_in_shared_abstraction, subclasses_override_most_behavior, callers_work_around_abstraction
- Violated by: Extract a shared abstraction before variation is understood, causing the abstraction to fit no use case well.

## referenced-by

- [Evolutionary Architecture](https://banes-lab.com/records/arch/evolutionary-architecture.md)
