glam/.opencode/rules/linkml/class-file-name-sync-rule.md

54 lines
1.5 KiB
Markdown

# 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:
```