diff --git a/.changeset/30466-extension-plurallabel-exception.md b/.changeset/30466-extension-plurallabel-exception.md new file mode 100644 index 00000000000..2fa5077fa6a --- /dev/null +++ b/.changeset/30466-extension-plurallabel-exception.md @@ -0,0 +1,10 @@ +--- +'@objectstack/skills': patch +--- + +docs(skills): an object extension that renames `label` without `pluralLabel` clears the base plural + +Clause-②: no +Metadata-protocol: none + +`objectstack-data` § Object Extension Model still says an extension can add but never remove, and now names the one exception the object fold has: an extension that sets a new `label` and no `pluralLabel` takes the base's `pluralLabel` off the served object unless a tenant authored that plural, so an author who renames an object sets both to keep a plural. An extension that repeats the label it extends removes nothing. The Lifecycle Hooks pointer line drops its second link to `references/data-hooks.md`, which the catalog list and the backfill paragraph already link. No schema, key or behaviour changes. diff --git a/skills/objectstack-data/SKILL.md b/skills/objectstack-data/SKILL.md index 682acf600aa..ee2f16edafa 100644 --- a/skills/objectstack-data/SKILL.md +++ b/skills/objectstack-data/SKILL.md @@ -337,7 +337,7 @@ See [rules/indexing.md](./rules/indexing.md) for composite indexes, unique scope refused), the retired `type` / `partial`, and partial / gin / gist indexes at the database layer. -→ Moved verbatim to [references/examples-objects.md](./references/examples-objects.md) § Lifecycle Hooks (the hooks reference itself is [references/data-hooks.md](./references/data-hooks.md)). +→ Moved verbatim to [references/examples-objects.md](./references/examples-objects.md) § Lifecycle Hooks. --- @@ -346,7 +346,8 @@ database layer. To add fields/validations/indexes to an object you do not own, author `defineObjectExtension({ extend, fields, fieldPatches, priority })` and register it on `defineStack({ objectExtensions: [...] })`. `priority` sets merge order (default -`200`, range `0–999`); an extension can add but never remove. ⛔ Not the same key +`200`, range `0–999`); an extension can add but never remove, except that a new +`label` without `pluralLabel` clears the base plural unless a tenant authored it (set both). ⛔ Not the same key as object-level `ownership` (the record-ownership enum `'user' | 'business_unit' | 'org' | 'none'`). Schema: `node_modules/@objectstack/spec/src/data/object.zod.ts` (`ObjectExtensionSchema`).