diff --git a/.opencode/rules/DEPRECATED-slot-naming-convention-rico-style.md b/.opencode/rules/archive/DEPRECATED-slot-naming-convention-rico-style.md similarity index 100% rename from .opencode/rules/DEPRECATED-slot-naming-convention-rico-style.md rename to .opencode/rules/archive/DEPRECATED-slot-naming-convention-rico-style.md diff --git a/.opencode/rules/linkml/class-file-name-sync-rule.md b/.opencode/rules/linkml/class-file-name-sync-rule.md new file mode 100644 index 0000000000..dba1a3dc32 --- /dev/null +++ b/.opencode/rules/linkml/class-file-name-sync-rule.md @@ -0,0 +1,54 @@ +# 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: +``` diff --git a/frontend/public/schemas/20251121/linkml/manifest.json b/frontend/public/schemas/20251121/linkml/manifest.json index 55b8ee43a0..5f4232b3b4 100644 --- a/frontend/public/schemas/20251121/linkml/manifest.json +++ b/frontend/public/schemas/20251121/linkml/manifest.json @@ -1,5 +1,5 @@ { - "generated": "2026-02-15T14:49:36.432Z", + "generated": "2026-02-15T14:54:26.856Z", "schemaRoot": "/schemas/20251121/linkml", "totalFiles": 2369, "categoryCounts": {