# One Concern Per File

Record: `arch:one-concern-per-file`
Kind: principle
Layer: [Structural Core](https://banes-lab.com/records/layer/structural-core.md)
Severity: mandatory
Scope: file
Canonical: https://banes-lab.com/ontology#arch-one-concern-per-file

## Repair

- Refactored by: Split by Responsibility
- Detected by: a file that classifies equally well under two declared concerns
- Violated by: forcing a two-role file under an arbitrary tag instead of splitting it
- Measured by: split-candidate count
- Enforced by: classification review

## requires

- [Classification Judgment](https://banes-lab.com/records/lex/classification-judgment.md)

## reinforces

- [Separation of Concerns](https://banes-lab.com/records/arch/separation-of-concerns.md)

## enables

- [Narrowest Concern](https://banes-lab.com/records/arch/narrowest-concern.md)

## conflicts-with

- [Multi-Role File](https://banes-lab.com/records/lex/multi-role-file.md)
