# Positional Slot Resolution

> A mechanism that reads each word of a path by the slot it lands in, so the last dot-segment before a file's extension is always its concern and a folder named after a concern tag resolves as the latest role its depth can legally take.

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

Listed in [Architecture principles](https://banes-lab.com/api/records/architecture.md), after [Closed Vocabulary](https://banes-lab.com/records/architecture/closed-vocabulary.md) and before [Concern-Folder Correspondence](https://banes-lab.com/records/architecture/concern-folder-correspondence.md).

## Repair

- Refactored by: Split the Compound, Move the Tag to the Concern Slot, Correct the Resolver
- Detected by: a filename whose last segment before the extension is not a declared concern tag, or a folder carrying a concern tag's label that the resolver places in the subject role
- Violated by: reading a word by which vocabulary declares it rather than by the slot it lands in
- Measured by: unparseable filename count, and folders whose resolved role differs from the latest legal role for their word
- Enforced by: filename parser, naming gate, placement gate

## Requires

- [Concern Tag](https://banes-lab.com/records/lexicon/concern-tag.md)
- [Subject Slot](https://banes-lab.com/records/lexicon/subject-slot.md)
- [Ordered Role Sequence](https://banes-lab.com/records/lexicon/ordered-role-sequence.md)

## Reinforces

- [Closed Vocabulary](https://banes-lab.com/records/architecture/closed-vocabulary.md)
- [Placement Predictability](https://banes-lab.com/records/lexicon/placement-predictability.md)

## Enables

- [Variant Slot](https://banes-lab.com/records/lexicon/variant-slot.md)
- [Glob Resolvability](https://banes-lab.com/records/lexicon/glob-resolvability.md)
- [Concern-Folder Correspondence](https://banes-lab.com/records/architecture/concern-folder-correspondence.md)

## Conflicts with

- [Concern-Swallowing Compound](https://banes-lab.com/records/lexicon/concern-swallowing-compound.md)
- [Free-Form Folder Level](https://banes-lab.com/records/lexicon/free-form-folder-level.md)

## Contracts

- [Name Projection](https://banes-lab.com/records/algorithms/name-projection.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)

## Required by

- [Registry-Held Order](https://banes-lab.com/records/architecture/registry-held-order.md)
- [Case Dialect](https://banes-lab.com/records/architecture/case-dialect.md)

## Linked from

- [Writing a first document](https://banes-lab.com/pag/guide/getting-started.md)
- [Placement is a grammar](https://banes-lab.com/disciplined-methodology/build/placement-is-a-grammar.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

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