# Taxonomy / Classification / Naming

> Every principle in this category is listed as a record.

Page: Ontology · Principles
Canonical: https://banes-lab.com/ontology#arch-category-taxonomy-classification-naming

Every principle in this category is listed as a record. Each record carries its kind, its severity, the scopes it applies at and the layer it lives in, then the edge relations that join it to other records, the records that point back at it, the contracts that answer to it and the tensions it takes part in. The descriptors say how it is violated, detected, measured, repaired and enforced. Where the record carries one, an exemplar shows the shape before and after the principle is applied.

Relations diagram

The relations inside this category.

```mermaid
flowchart LR
n_closed_vocabulary["Closed Vocabulary"]
n_positional_slot_resolution["Positional Slot Resolution"]
n_concern_folder_correspondence["Concern-Folder Correspondence"]
n_glob_resolvable_tree["Glob-Resolvable Tree"]
n_declared_jurisdiction["Declared Jurisdiction"]
n_bounded_nesting_depth["Bounded Nesting Depth"]
n_sideways_overflow["Sideways Overflow"]
n_one_concern_per_file["One Concern Per File"]
n_narrowest_concern["Narrowest Concern"]
n_layer_spine_precedence["Layer Spine Precedence"]
n_agnostic_first_vocabulary["Agnostic-First Vocabulary"]
n_guided_vocabulary_refusal["Guided Vocabulary Refusal"]
n_derived_naming_registry["Derived Naming Registry"]
n_member_never_restates_the_set["Member Never Restates the Set"]
n_manual_identity_migration["Manual Identity Migration"]
n_closed_vocabulary --> n_concern_folder_correspondence
n_positional_slot_resolution --> n_closed_vocabulary
n_concern_folder_correspondence --> n_glob_resolvable_tree
n_glob_resolvable_tree --> n_concern_folder_correspondence
n_declared_jurisdiction --> n_bounded_nesting_depth
n_bounded_nesting_depth --> n_sideways_overflow
n_sideways_overflow --> n_bounded_nesting_depth
n_one_concern_per_file --> n_narrowest_concern
n_narrowest_concern --> n_layer_spine_precedence
n_layer_spine_precedence --> n_narrowest_concern
n_agnostic_first_vocabulary --> n_closed_vocabulary
n_guided_vocabulary_refusal --> n_closed_vocabulary
n_guided_vocabulary_refusal --> n_agnostic_first_vocabulary
n_derived_naming_registry --> n_declared_jurisdiction
```

### Closed Vocabulary

- Kind: [principle](https://banes-lab.com/records/kind/principle.md)
- Severity: mandatory
- Scope: repository, folder, filename
- Layer: [Structural Core](https://banes-lab.com/records/layer/structural-core.md)

Details

Requires
[Vocabulary Admission](https://banes-lab.com/records/lex/vocabulary-admission.md), [Rejection Table](https://banes-lab.com/records/lex/rejection-table.md)

Reinforces
[Single Source of Truth](https://banes-lab.com/records/arch/single-source-of-truth.md), [Ubiquitous Language](https://banes-lab.com/records/arch/ubiquitous-language.md)

Enables
[Placement Predictability](https://banes-lab.com/records/lex/placement-predictability.md), [Concern-Folder Correspondence](https://banes-lab.com/records/arch/concern-folder-correspondence.md)

In tension with
[Naming Expressiveness](https://banes-lab.com/records/lex/naming-expressiveness.md)

Conflicts with
[Vocabulary Inflation](https://banes-lab.com/records/lex/vocabulary-inflation.md), [Nominalized Process Word](https://banes-lab.com/records/lex/nominalized-process-word.md)

Referenced by
[Positional Slot Resolution](https://banes-lab.com/records/arch/positional-slot-resolution.md), [Agnostic-First Vocabulary](https://banes-lab.com/records/arch/agnostic-first-vocabulary.md), [Guided Vocabulary Refusal](https://banes-lab.com/records/arch/guided-vocabulary-refusal.md)

Contracts
[Vocabulary Admission Gate](https://banes-lab.com/records/algo/vocabulary-admission-gate.md), [Taxonomy Kernel](https://banes-lab.com/records/algo/taxonomy-kernel.md)

Tensions
[Closed Vocabulary Naming Expressiveness](https://banes-lab.com/records/tension/closed-vocabulary-naming-expressiveness.md)

Violated by
adding a word so a check passes

Detected by
a name slot holding a word absent from its declared array

Measured by
undeclared-word count per governed root

Refactored by
Rename to a Declared Word, Propose by Reasoning

Enforced by
registry-backed naming gate, developer approval

Before

```text
<container>/managers/foo.manager.ts → neither "managers" nor "manager" is a declared word
```

After

```text
<container>/coordinators/foo.coordinator.ts → the declared concern that already covers the role
```

### Positional Slot Resolution

- Kind: [mechanism](https://banes-lab.com/records/kind/mechanism.md)
- Severity: mandatory
- Scope: filename
- Layer: [Structural Core](https://banes-lab.com/records/layer/structural-core.md)

Details

Requires
[Concern Tag](https://banes-lab.com/records/lex/concern-tag.md), [Subject Slot](https://banes-lab.com/records/lex/subject-slot.md)

Reinforces
[Closed Vocabulary](https://banes-lab.com/records/arch/closed-vocabulary.md)

Enables
[Variant Slot](https://banes-lab.com/records/lex/variant-slot.md), [Glob Resolvability](https://banes-lab.com/records/lex/glob-resolvability.md)

In tension with
none

Conflicts with
[Concern-Swallowing Compound](https://banes-lab.com/records/lex/concern-swallowing-compound.md)

Contracts
[Name Projection](https://banes-lab.com/records/algo/name-projection.md)

Violated by
reading a word by which vocabulary declares it rather than by the slot it lands in

Detected by
a filename whose last segment before the extension is not a declared concern tag

Measured by
unparseable filename count

Refactored by
Split the Compound, Move the Tag to the Concern Slot

Enforced by
filename parser, naming gate

Before

```text
foo-registry.ts → one fused word, so neither slot resolves
```

After

```text
foo.registry.ts → subject "foo", concern "registry"; position decides, so a concern word is legal in the subject slot too
```

### Concern-Folder Correspondence

- Kind: [constraint](https://banes-lab.com/records/kind/constraint.md)
- Severity: mandatory
- Scope: folder, filename
- Layer: [Structural Core](https://banes-lab.com/records/layer/structural-core.md)

Details

Requires
[Concern Folder](https://banes-lab.com/records/lex/concern-folder.md), [Concern Tag](https://banes-lab.com/records/lex/concern-tag.md)

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

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

In tension with
none

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

Referenced by
[Closed Vocabulary](https://banes-lab.com/records/arch/closed-vocabulary.md), [Glob-Resolvable Tree](https://banes-lab.com/records/arch/glob-resolvable-tree.md)

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

Violated by
a file whose concern tag differs from its parent folder's label

Detected by
tag/folder mismatch on a filesystem walk

Measured by
mismatched file count

Refactored by
Move to the Matching Concern Folder, Reclassify the File

Enforced by
placement gate, naming gate

Before

```text
<container>/caches/foo.store.ts → the folder says cache, the tag says store
```

After

```text
<container>/stores/foo.store.ts → the tag terminates the name and names the parent folder
```

### Glob-Resolvable Tree

- Kind: [mechanism](https://banes-lab.com/records/kind/mechanism.md)
- Severity: mandatory
- Scope: repository
- Layer: [Structural Core](https://banes-lab.com/records/layer/structural-core.md)

Details

Requires
[Concern-Folder Correspondence](https://banes-lab.com/records/arch/concern-folder-correspondence.md)

Reinforces
[Discoverability](https://banes-lab.com/records/lex/discoverability.md), [Glob Resolvability](https://banes-lab.com/records/lex/glob-resolvability.md)

Enables
[Shape-Discovered Surface](https://banes-lab.com/records/lex/shape-discovered-surface.md)

In tension with
none

Conflicts with
[Concern-Swallowing Compound](https://banes-lab.com/records/lex/concern-swallowing-compound.md)

Referenced by
[Concern-Folder Correspondence](https://banes-lab.com/records/arch/concern-folder-correspondence.md)

Contracts
[Discovery Verification](https://banes-lab.com/records/algo/discovery-verification.md)

Violated by
anchoring discovery to a depth, so a grouped set falls out of the pattern

Detected by
a pattern that must enumerate depths to collect one concern

Measured by
depth-anchored pattern count

Refactored by
Unanchor the Pattern, Restore the Terminating Tag

Enforced by
aggregator review, placement gate

Before

```text
<root>/*/validators/*.ts and <root>/*/*/validators/*.ts → one pattern per depth, and a new grouping adds another
```

After

```text
**/*.validator.ts for the files, **/validators/ for the folders → two unanchored patterns resolve the concern tree-wide
```

### Declared Jurisdiction

- Kind: [principle](https://banes-lab.com/records/kind/principle.md)
- Severity: mandatory
- Scope: repository, root
- Layer: [Structural Core](https://banes-lab.com/records/layer/structural-core.md)

Details

Requires
[Governed Root](https://banes-lab.com/records/lex/governed-root.md), [Container Level](https://banes-lab.com/records/lex/container-level.md), [Flat Bucket](https://banes-lab.com/records/lex/flat-bucket.md)

Reinforces
[Explicit Boundaries](https://banes-lab.com/records/arch/explicit-boundaries.md)

Enables
[Bounded Nesting Depth](https://banes-lab.com/records/arch/bounded-nesting-depth.md)

In tension with
none

Conflicts with
[Ignore-List Silencing](https://banes-lab.com/records/lex/ignore-list-silencing.md), [Depth-Relief Container](https://banes-lab.com/records/lex/depth-relief-container.md)

Referenced by
[Derived Naming Registry](https://banes-lab.com/records/arch/derived-naming-registry.md)

Contracts
[Taxonomy Jurisdiction](https://banes-lab.com/records/algo/taxonomy-jurisdiction.md)

Violated by
inferring jurisdiction from folder shape rather than reading a declaration

Detected by
a folder at a governed root that is in neither the container nor the bucket declaration

Measured by
undeclared root-level folder count

Refactored by
Declare the Root, Place the Folder Inside an Existing Container

Enforced by
jurisdiction gate

Before

```text
"a folder holding no folders is a bucket" → inferred, so a container that loses its last folder silently reclassifies and its next loose file passes
```

After

```text
containers{<root>: [...]} + specialContainers{<root>: [...]} → both kinds declared; a folder in neither is flagged
```

### Bounded Nesting Depth

- Kind: [constraint](https://banes-lab.com/records/kind/constraint.md)
- Severity: mandatory
- Scope: folder, root
- Layer: [Structural Core](https://banes-lab.com/records/layer/structural-core.md)

Details

Requires
[Depth Cap](https://banes-lab.com/records/lex/depth-cap.md), [Ordered Role Sequence](https://banes-lab.com/records/lex/ordered-role-sequence.md)

Reinforces
[Placement Predictability](https://banes-lab.com/records/lex/placement-predictability.md)

Enables
[Sideways Overflow](https://banes-lab.com/records/arch/sideways-overflow.md)

In tension with
[Tree Compactness](https://banes-lab.com/records/lex/tree-compactness.md)

Conflicts with
[Downward Nesting](https://banes-lab.com/records/lex/downward-nesting.md)

Referenced by
[Declared Jurisdiction](https://banes-lab.com/records/arch/declared-jurisdiction.md), [Sideways Overflow](https://banes-lab.com/records/arch/sideways-overflow.md)

Contracts
[Path Role Walk](https://banes-lab.com/records/algo/path-role-walk.md)

Tensions
[Bounded Nesting Depth Tree Compactness](https://banes-lab.com/records/tension/bounded-nesting-depth-tree-compactness.md)

Violated by
adding a level to relieve collision or breadth pressure

Detected by
a path over the cap, or a role repeated or revisited along it

Measured by
over-cap path count

Refactored by
Take the Variant Slot, Add a Sibling Subject Folder

Enforced by
placement gate

Before

```text
<container>/foo/pools/lru/bar.pool.ts → one folder past the cap, and the extra level resolves to no role at all
```

After

```text
<container>/foo/pools/bar.lru.pool.ts → container, subject, concern, in order and at the cap; the discriminator moved into the variant slot
```

### Sideways Overflow

- Kind: [pattern](https://banes-lab.com/records/kind/pattern.md)
- Severity: mandatory
- Scope: folder, filename
- Layer: [Structural Core](https://banes-lab.com/records/layer/structural-core.md)

Details

Requires
[Variant Slot](https://banes-lab.com/records/lex/variant-slot.md), [Subject Folder](https://banes-lab.com/records/lex/subject-folder.md)

Reinforces
[Bounded Nesting Depth](https://banes-lab.com/records/arch/bounded-nesting-depth.md)

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

In tension with
none

Conflicts with
[Downward Nesting](https://banes-lab.com/records/lex/downward-nesting.md)

Referenced by
[Bounded Nesting Depth](https://banes-lab.com/records/arch/bounded-nesting-depth.md)

Violated by
relieving pressure downward, by nesting, instead of sideways

Detected by
a folder level introduced where a variant or a sibling subject folder resolves the collision

Measured by
nesting-relief count

Refactored by
Insert a Declared Variant, Split into Sibling Subject Folders

Enforced by
placement gate, reshape review

Before

```text
<container>/caches/lru/foo.cache.ts beside <container>/caches/fifo/foo.cache.ts → the collision was relieved by a new level
```

After

```text
<container>/caches/foo.lru.cache.ts beside <container>/caches/foo.fifo.cache.ts → relieved by the variant slot, at the same depth
```

### One Concern Per File

- Kind: [principle](https://banes-lab.com/records/kind/principle.md)
- Severity: mandatory
- Scope: file
- Layer: [Structural Core](https://banes-lab.com/records/layer/structural-core.md)

Details

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)

In tension with
none

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

Violated by
forcing a two-role file under an arbitrary tag instead of splitting it

Detected by
a file that classifies equally well under two declared concerns

Measured by
split-candidate count

Refactored by
Split by Responsibility

Enforced by
classification review

Before

```text
foo.store.ts → holds the state AND validates every write, so its concern is two words
```

After

```text
foo.store.ts + foo.validator.ts → the ambiguity was the finding; the split is the fix
```

### Narrowest Concern

- Kind: [principle](https://banes-lab.com/records/kind/principle.md)
- Severity: mandatory
- Scope: file
- Layer: [Structural Core](https://banes-lab.com/records/layer/structural-core.md)

Details

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

Reinforces
[Placement Predictability](https://banes-lab.com/records/lex/placement-predictability.md)

Enables
[Layer Spine Precedence](https://banes-lab.com/records/arch/layer-spine-precedence.md)

In tension with
none

Conflicts with
[Saturated Role Tag](https://banes-lab.com/records/lex/saturated-role-tag.md)

Referenced by
[One Concern Per File](https://banes-lab.com/records/arch/one-concern-per-file.md), [Layer Spine Precedence](https://banes-lab.com/records/arch/layer-spine-precedence.md)

Contracts
[Concern Classification](https://banes-lab.com/records/algo/concern-classification.md)

Violated by
classifying to a saturated high-level label where a narrower accurate one fits

Detected by
one tag carrying files of several distinct roles

Measured by
files per tag, skew toward the broadest tags

Refactored by
Reclassify to the Narrower Role

Enforced by
classification review

Before

```text
foo.manager.ts → names a stature, so it fits lifecycle owners, caches, registries and coordinators alike
```

After

```text
foo.coordinator.ts → the narrowest declared role that is accurate; a file that cannot choose is doing both
```

### Layer Spine Precedence

- Kind: [mechanism](https://banes-lab.com/records/kind/mechanism.md)
- Severity: contextual
- Scope: file
- Layer: [Structural Core](https://banes-lab.com/records/layer/structural-core.md)

Details

Requires
[Layer Spine](https://banes-lab.com/records/lex/layer-spine.md)

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

Enables
[Placement Predictability](https://banes-lab.com/records/lex/placement-predictability.md)

In tension with
none

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

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

Violated by
reading the spine as a dependency-direction rule rather than a classification tie-break

Detected by
an irreducible two-concern overlap resolved by preference rather than by layer

Measured by
unresolved overlap count

Refactored by
Apply the Domain-Ward Tie-Break

Enforced by
classification review

Before

```text
a file that is irreducibly both is tagged by whichever word came to mind first
```

After

```text
model (domain) beats schema (infrastructure) → domain-ward wins, and only as a tie-break after the split test fails
```

### Agnostic-First Vocabulary

- Kind: [principle](https://banes-lab.com/records/kind/principle.md)
- Severity: mandatory
- Scope: repository, vocabulary
- Layer: [Structural Core](https://banes-lab.com/records/layer/structural-core.md)

Details

Requires
[Is-A Test](https://banes-lab.com/records/lex/is-a-test.md), [Rejection Table](https://banes-lab.com/records/lex/rejection-table.md)

Reinforces
[Closed Vocabulary](https://banes-lab.com/records/arch/closed-vocabulary.md)

Enables
[Discoverability](https://banes-lab.com/records/lex/discoverability.md)

In tension with
none

Conflicts with
[Vocabulary Inflation](https://banes-lab.com/records/lex/vocabulary-inflation.md), [Nominalized Process Word](https://banes-lab.com/records/lex/nominalized-process-word.md)

Referenced by
[Guided Vocabulary Refusal](https://banes-lab.com/records/arch/guided-vocabulary-refusal.md)

Violated by
restating an agnostic role in local domain dialect

Detected by
a domain tag whose role a declared agnostic concern already covers

Measured by
domain-tag share of the vocabulary

Refactored by
Classify to the Meta Concern

Enforced by
[rejection table](https://banes-lab.com/records/lex/rejection-table.md), developer approval

Before

```text
<container>/managers/ and <container>/helpers/ → two catch-all words for roles the agnostic set already names
```

After

```text
<container>/coordinators/ and <container>/predicates/ → a domain tag is admitted only where no agnostic concern covers the role
```

### Guided Vocabulary Refusal

- Kind: [mechanism](https://banes-lab.com/records/kind/mechanism.md)
- Severity: mandatory
- Scope: repository, vocabulary, tooling
- Layer: [Structural Core](https://banes-lab.com/records/layer/structural-core.md)

Details

Requires
[Rejection Table](https://banes-lab.com/records/lex/rejection-table.md), [Covering Concern](https://banes-lab.com/records/lex/covering-concern.md), [Reverse Coverage Resolution](https://banes-lab.com/records/lex/reverse-coverage-resolution.md)

Reinforces
[Closed Vocabulary](https://banes-lab.com/records/arch/closed-vocabulary.md), [Agnostic-First Vocabulary](https://banes-lab.com/records/arch/agnostic-first-vocabulary.md)

Enables
[Vocabulary Admission](https://banes-lab.com/records/lex/vocabulary-admission.md), [Discoverability](https://banes-lab.com/records/lex/discoverability.md)

In tension with
none

Conflicts with
[Unguided Refusal](https://banes-lab.com/records/lex/unguided-refusal.md), [Borrowed Synonymy](https://banes-lab.com/records/lex/borrowed-synonymy.md)

Violated by
reporting that a word is undeclared without resolving the declared word that covers it

Detected by
a refusal message naming only the rejected word, and a rejection table readable by the developer but not by the gate

Measured by
share of refusals carrying a resolved replacement

Refactored by
Index the Rejection Table by Refused Word, Name the Covering Concern in the Refusal

Enforced by
registry-backed naming gate, rejection-table index drift-check

Before

```text
'foo.manager.ts' → "'manager' is not a declared concern tag" → the developer guesses again, and the table that already answered this sits in prose no gate reads
```

After

```text
refused word → rejection-table index → "'manager' is covered by 'coordinator'" → foo.coordinator.ts; coverage is decided by the role a file plays, never by a general-language synonym set
```

### Derived Naming Registry

- Kind: [artifact](https://banes-lab.com/records/kind/artifact.md)
- Severity: mandatory
- Scope: repository, tooling
- Layer: [Structural Core](https://banes-lab.com/records/layer/structural-core.md)

Details

Requires
[Single Source of Truth](https://banes-lab.com/records/arch/single-source-of-truth.md)

Reinforces
[Convention over Configuration](https://banes-lab.com/records/arch/convention-over-configuration.md), [Self-Describing Structures](https://banes-lab.com/records/arch/self-describing-structures.md)

Enables
[Declared Jurisdiction](https://banes-lab.com/records/arch/declared-jurisdiction.md), [Placement Predictability](https://banes-lab.com/records/lex/placement-predictability.md)

In tension with
none

Conflicts with
[Reasoning in the Registry](https://banes-lab.com/records/lex/reasoning-in-the-registry.md)

Contracts
[Taxonomy Ledger](https://banes-lab.com/records/algo/taxonomy-ledger.md)

Violated by
keeping the vocabulary in prose the gate cannot read, or the reasoning in the file the gate does read

Detected by
a tag in the document and absent from the registry, or either way round

Measured by
document/registry drift count

Refactored by
Derive the Registry from the Document, Move Reasoning Back to the Document

Enforced by
registry/document cross-check

Before

```text
the vocabulary lives only in prose, so every gate re-reads it by hand and a rule written into the config is read by no gate
```

After

```text
document holds the reasoning → registry holds the declarations → one gate and one classifier read the registry; drift either way is a bug
```

### Member Never Restates the Set

- Kind: [constraint](https://banes-lab.com/records/kind/constraint.md)
- Severity: mandatory
- Scope: filename
- Layer: [Structural Core](https://banes-lab.com/records/layer/structural-core.md)

Details

Requires
[Subject Folder](https://banes-lab.com/records/lex/subject-folder.md)

Reinforces
[Naming Consistency](https://banes-lab.com/records/lex/naming-consistency.md)

Enables
[Concise Naming](https://banes-lab.com/records/lex/concise-naming.md)

In tension with
none

Conflicts with
[Restated Set Member](https://banes-lab.com/records/lex/restated-set-member.md)

Violated by
repeating the grouping folder's subject in the filename

Detected by
a file subject equal to the subject folder above it

Measured by
restated-member count

Refactored by
Drop the Redundant Head

Enforced by
naming gate

Before

```text
<container>/foo/behaviors/foo-bar.behavior.ts → restates what the folder already said
```

After

```text
<container>/foo/behaviors/bar.behavior.ts → the folder names the set, the file names the member
```

### Manual Identity Migration

- Kind: [technique](https://banes-lab.com/records/kind/technique.md)
- Severity: mandatory
- Scope: repository, refactor
- Layer: [Structural Core](https://banes-lab.com/records/layer/structural-core.md)

Details

Requires
[Identity Migration](https://banes-lab.com/records/lex/identity-migration.md), [Shape-Discovered Surface](https://banes-lab.com/records/lex/shape-discovered-surface.md)

Reinforces
[Container-by-Container Reshape](https://banes-lab.com/records/lex/container-by-container-reshape.md)

Enables
[Maintainability](https://banes-lab.com/records/lex/maintainability.md)

In tension with
none

Conflicts with
[Automated Reshape](https://banes-lab.com/records/lex/automated-reshape.md)

Contracts
[Reshape Risk Priority](https://banes-lab.com/records/algo/reshape-risk-priority.md), [Container Reshape](https://banes-lab.com/records/algo/container-reshape.md)

Violated by
renaming by tool across a tree whose aggregators resolve by pattern

Detected by
a shape-discovered surface whose collected count changed across a rename

Measured by
collected-member delta per aggregator

Refactored by
Re-point the Pattern, Verify the Collected Count

Enforced by
per-container reshape review, gate green between containers

Before

```text
a rename tool rewrites every literal path; **/*.validator.ts now collects nothing and the gate stays green because nothing is left to check
```

After

```text
one container → rename → update every importer → re-point every pattern → compare collected counts against the previous run → gate green before the next container
```

## Links to

- [principle](https://banes-lab.com/records/kind/principle.md)
- [Structural Core](https://banes-lab.com/records/layer/structural-core.md)
- [Vocabulary Admission](https://banes-lab.com/records/lex/vocabulary-admission.md)
- [Rejection Table](https://banes-lab.com/records/lex/rejection-table.md)
- [Single Source of Truth](https://banes-lab.com/records/arch/single-source-of-truth.md)
- [Ubiquitous Language](https://banes-lab.com/records/arch/ubiquitous-language.md)
- [Placement Predictability](https://banes-lab.com/records/lex/placement-predictability.md)
- [Concern-Folder Correspondence](https://banes-lab.com/records/arch/concern-folder-correspondence.md)
- [Naming Expressiveness](https://banes-lab.com/records/lex/naming-expressiveness.md)
- [Vocabulary Inflation](https://banes-lab.com/records/lex/vocabulary-inflation.md)
- [Nominalized Process Word](https://banes-lab.com/records/lex/nominalized-process-word.md)
- [Positional Slot Resolution](https://banes-lab.com/records/arch/positional-slot-resolution.md)
- [Agnostic-First Vocabulary](https://banes-lab.com/records/arch/agnostic-first-vocabulary.md)
- [Guided Vocabulary Refusal](https://banes-lab.com/records/arch/guided-vocabulary-refusal.md)
- [Vocabulary Admission Gate](https://banes-lab.com/records/algo/vocabulary-admission-gate.md)
- [Taxonomy Kernel](https://banes-lab.com/records/algo/taxonomy-kernel.md)
- [Closed Vocabulary / Naming Expressiveness](https://banes-lab.com/records/tension/closed-vocabulary-naming-expressiveness.md)
- [mechanism](https://banes-lab.com/records/kind/mechanism.md)
- [Concern Tag](https://banes-lab.com/records/lex/concern-tag.md)
- [Subject Slot](https://banes-lab.com/records/lex/subject-slot.md)
- [Closed Vocabulary](https://banes-lab.com/records/arch/closed-vocabulary.md)
- [Variant Slot](https://banes-lab.com/records/lex/variant-slot.md)
- [Glob Resolvability](https://banes-lab.com/records/lex/glob-resolvability.md)
- [Concern-Swallowing Compound](https://banes-lab.com/records/lex/concern-swallowing-compound.md)
- [Name Projection](https://banes-lab.com/records/algo/name-projection.md)
- [constraint](https://banes-lab.com/records/kind/constraint.md)
- [Concern Folder](https://banes-lab.com/records/lex/concern-folder.md)
- [Glob-Resolvable Tree](https://banes-lab.com/records/arch/glob-resolvable-tree.md)
- [Free-Form Folder Level](https://banes-lab.com/records/lex/free-form-folder-level.md)
- [Taxonomy Completion](https://banes-lab.com/records/algo/taxonomy-completion.md)
- [Discoverability](https://banes-lab.com/records/lex/discoverability.md)
- [Shape-Discovered Surface](https://banes-lab.com/records/lex/shape-discovered-surface.md)
- [Discovery Verification](https://banes-lab.com/records/algo/discovery-verification.md)
- [Governed Root](https://banes-lab.com/records/lex/governed-root.md)
- [Container Level](https://banes-lab.com/records/lex/container-level.md)
- [Flat Bucket](https://banes-lab.com/records/lex/flat-bucket.md)
- [Explicit Boundaries](https://banes-lab.com/records/arch/explicit-boundaries.md)
- [Bounded Nesting Depth](https://banes-lab.com/records/arch/bounded-nesting-depth.md)
- [Ignore-List Silencing](https://banes-lab.com/records/lex/ignore-list-silencing.md)
- [Depth-Relief Container](https://banes-lab.com/records/lex/depth-relief-container.md)
- [Derived Naming Registry](https://banes-lab.com/records/arch/derived-naming-registry.md)
- [Taxonomy Jurisdiction](https://banes-lab.com/records/algo/taxonomy-jurisdiction.md)
- [Depth Cap](https://banes-lab.com/records/lex/depth-cap.md)
- [Ordered Role Sequence](https://banes-lab.com/records/lex/ordered-role-sequence.md)
- [Sideways Overflow](https://banes-lab.com/records/arch/sideways-overflow.md)
- [Tree Compactness](https://banes-lab.com/records/lex/tree-compactness.md)
- [Downward Nesting](https://banes-lab.com/records/lex/downward-nesting.md)
- [Declared Jurisdiction](https://banes-lab.com/records/arch/declared-jurisdiction.md)
- [Path Role Walk](https://banes-lab.com/records/algo/path-role-walk.md)
- [Bounded Nesting Depth / Tree Compactness](https://banes-lab.com/records/tension/bounded-nesting-depth-tree-compactness.md)
- [pattern](https://banes-lab.com/records/kind/pattern.md)
- [Subject Folder](https://banes-lab.com/records/lex/subject-folder.md)
- [Classification Judgment](https://banes-lab.com/records/lex/classification-judgment.md)
- [Separation of Concerns](https://banes-lab.com/records/arch/separation-of-concerns.md)
- [Narrowest Concern](https://banes-lab.com/records/arch/narrowest-concern.md)
- [Multi-Role File](https://banes-lab.com/records/lex/multi-role-file.md)
- [Layer Spine Precedence](https://banes-lab.com/records/arch/layer-spine-precedence.md)
- [Saturated Role Tag](https://banes-lab.com/records/lex/saturated-role-tag.md)
- [One Concern Per File](https://banes-lab.com/records/arch/one-concern-per-file.md)
- [Concern Classification](https://banes-lab.com/records/algo/concern-classification.md)
- [Layer Spine](https://banes-lab.com/records/lex/layer-spine.md)
- [Is-A Test](https://banes-lab.com/records/lex/is-a-test.md)
- [Covering Concern](https://banes-lab.com/records/lex/covering-concern.md)
- [Reverse Coverage Resolution](https://banes-lab.com/records/lex/reverse-coverage-resolution.md)
- [Unguided Refusal](https://banes-lab.com/records/lex/unguided-refusal.md)
- [Borrowed Synonymy](https://banes-lab.com/records/lex/borrowed-synonymy.md)
- [artifact](https://banes-lab.com/records/kind/artifact.md)
- [Convention over Configuration](https://banes-lab.com/records/arch/convention-over-configuration.md)
- [Self-Describing Structures](https://banes-lab.com/records/arch/self-describing-structures.md)
- [Reasoning in the Registry](https://banes-lab.com/records/lex/reasoning-in-the-registry.md)
- [Taxonomy Ledger](https://banes-lab.com/records/algo/taxonomy-ledger.md)
- [Naming Consistency](https://banes-lab.com/records/lex/naming-consistency.md)
- [Concise Naming](https://banes-lab.com/records/lex/concise-naming.md)
- [Restated Set Member](https://banes-lab.com/records/lex/restated-set-member.md)
- [technique](https://banes-lab.com/records/kind/technique.md)
- [Identity Migration](https://banes-lab.com/records/lex/identity-migration.md)
- [Container-by-Container Reshape](https://banes-lab.com/records/lex/container-by-container-reshape.md)
- [Maintainability](https://banes-lab.com/records/lex/maintainability.md)
- [Automated Reshape](https://banes-lab.com/records/lex/automated-reshape.md)
- [Reshape Risk Priority](https://banes-lab.com/records/algo/reshape-risk-priority.md)
- [Container Reshape](https://banes-lab.com/records/algo/container-reshape.md)

## Linked from

- [The layer topology](https://banes-lab.com/ontology/schema/the-layer-topology.md)
- [The membership](https://banes-lab.com/ontology/schema/the-membership.md)
