# Speculative Generality

> A defect in which abstractions are built for variation that has no evidence of arriving.

Record: `architecture:speculative-generality`
Kind: anti-pattern
Layer: [Enforcement Core](https://banes-lab.com/records/layer/enforcement-core.md)
Severity: discouraged
Scope: runtime_extensibility
Canonical: https://banes-lab.com/ontology#architecture-speculative-generality

Listed in [Architecture principles](https://banes-lab.com/api/records/architecture.md), after [Magic Value](https://banes-lab.com/records/architecture/magic-value.md) and before [Premature Abstraction](https://banes-lab.com/records/architecture/premature-abstraction.md).

## Repair

- Refactored by: inline_abstraction, remove_unused_extension, defer_generalization, apply_minimum_viable_architecture
- Detected by: single_implementation_interface, unused_extension_point, config_never_varies, abstract_base_without_variants
- Violated by: Build abstractions, extension points, layers, or configuration for variation that has no evidence of existing or near-term need.
- Measured by: interfaces with one implementation, unused extension points
- Enforced by: dead-code and single-implementation analysis, [design review](https://banes-lab.com/records/architecture/design-review.md)

## Severity

- [discouraged](https://banes-lab.com/records/vocabulary/severity-discouraged.md)

## Category

- [Anti-patterns](https://banes-lab.com/records/architecture-category/anti-patterns.md)

## Force

- [Runtime extensibility](https://banes-lab.com/records/force/runtime-extensibility.md)

## Detected by

- [rules/eslint/closure-event-system-has-trajectory.eslint.rule.ts](https://banes-lab.com/source/governance/rules/eslint/closure-event-system-has-trajectory.eslint.rule.ts.md)

## Negated by

- [Minimum Viable Architecture](https://banes-lab.com/records/architecture/minimum-viable-architecture.md)

## Linked from

- [Worth before work](https://banes-lab.com/disciplined-methodology/plan/worth-before-work.md)
- [The structural domain](https://banes-lab.com/software-architecture/principles/the-structural-domain.md)
- [Anti-patterns](https://banes-lab.com/ontology/principles/architecture-category-anti-patterns.md)
- [Architecture Review / Evolution / Governance Artifacts](https://banes-lab.com/ontology/principles/architecture-category-architecture-review-evolution-governance-artifacts.md)
- [Severity levels](https://banes-lab.com/ontology/schema/the-vocabulary-severity.md)
- [The forces](https://banes-lab.com/ontology/schema/the-forces.md)
