# Rule: Class File Name Must Match Class Label/Name ## 🚨 Critical When a class label/name is changed, the class file name must be renamed to match. This keeps class modules discoverable, prevents stale imports, and avoids long-term naming drift. ## The Rule 1. If the primary class identifier changes, rename the file in the same edit set. - Change triggers include updates to: - top-level `name:` - class key under `classes:` - canonical class label used for module naming 2. File naming must reflect the canonical class name. - ✅ `DigitalPlatformProfile.yaml` for class `DigitalPlatformProfile` - ❌ `DigitalPlatformV2.yaml` for class `DigitalPlatformProfile` 3. After renaming a file, update all references. - `imports:` in other class/slot/type files - manifests/indexes/build inputs - any generated or curated mapping lists that include file paths 4. Keep semantic names versionless. - Do not preserve old versioned file names when class names are de-versioned. - Coordinate with `no-version-indicators-in-names-rule.md`. ## Required Checklist - [ ] File name matches canonical class name - [ ] `id:` and `name:` are internally consistent - [ ] All import paths updated - [ ] Search confirms no stale old file-name references remain - [ ] YAML parses after rename ## Example Before: ```yaml # file: DigitalPlatformV2.yaml name: DigitalPlatformProfile classes: DigitalPlatformProfile: ``` After: ```yaml # file: DigitalPlatformProfile.yaml name: DigitalPlatformProfile classes: DigitalPlatformProfile: ```