# Concern-Folder Correspondence

> A rule or precondition that a file's concern tag matches the label of the folder that holds it.

Record: `architecture:concern-folder-correspondence`
Kind: constraint
Layer: [Structural Core](https://banes-lab.com/records/layer/structural-core.md)
Severity: mandatory
Scope: folder, filename
Canonical: https://banes-lab.com/ontology#architecture-concern-folder-correspondence

Listed in [Architecture principles](https://banes-lab.com/api/records/architecture.md), after [Positional Slot Resolution](https://banes-lab.com/records/architecture/positional-slot-resolution.md) and before [Glob-Resolvable Tree](https://banes-lab.com/records/architecture/glob-resolvable-tree.md).

## Repair

- Refactored by: Move to the Matching Concern Folder, Reclassify the File
- Detected by: tag/folder mismatch on a filesystem walk
- Violated by: a file whose concern tag differs from its parent folder's label
- Measured by: mismatched file count
- Enforced by: placement gate, naming gate

## Requires

- [Concern Folder](https://banes-lab.com/records/lexicon/concern-folder.md)
- [Concern Tag](https://banes-lab.com/records/lexicon/concern-tag.md)
- [Collection Concern](https://banes-lab.com/records/lexicon/collection-concern.md)
- [Single-Unit Concern](https://banes-lab.com/records/lexicon/single-unit-concern.md)
- [Mass Concern](https://banes-lab.com/records/lexicon/mass-concern.md)

## Reinforces

- [Glob Resolvability](https://banes-lab.com/records/lexicon/glob-resolvability.md)

## Enables

- [Glob-Resolvable Tree](https://banes-lab.com/records/architecture/glob-resolvable-tree.md)

## Conflicts with

- [Free-Form Folder Level](https://banes-lab.com/records/lexicon/free-form-folder-level.md)

## Contracts

- [Taxonomy Completion](https://banes-lab.com/records/algorithms/taxonomy-completion.md)

## Severity

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

## Category

- [Taxonomy / Classification / Naming](https://banes-lab.com/records/architecture-category/taxonomy-classification-naming.md)

## Enforced by

- [rules/entrypoints/taxonomy.entrypoint.ts](https://banes-lab.com/source/governance/rules/entrypoints/taxonomy.entrypoint.ts.md)

## Enabled by

- [Closed Vocabulary](https://banes-lab.com/records/architecture/closed-vocabulary.md)
- [Positional Slot Resolution](https://banes-lab.com/records/architecture/positional-slot-resolution.md)

## Linked from

- [Placement is a grammar](https://banes-lab.com/disciplined-methodology/build/placement-is-a-grammar.md)
- [The layer spine](https://banes-lab.com/software-architecture/model/the-layer-spine.md)
- [Taxonomy / Classification / Naming](https://banes-lab.com/ontology/principles/architecture-category-taxonomy-classification-naming.md)
- [Taxonomy / Classification / Naming](https://banes-lab.com/ontology/lexicon/lexicon-category-taxonomy-classification-naming.md)
- [Taxonomy](https://banes-lab.com/ontology/algorithms/algorithms-domain-taxonomy.md)
- [Severity levels](https://banes-lab.com/ontology/schema/the-vocabulary-severity.md)

## Evidence in the code

- [checkNaming](https://banes-lab.com/source/coordination/tools/core/validators/taxonomy.validator.ts.md)
