From 1b3e136a209d550f2d333c7206109ee6ace86c55 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 10 Aug 2026 11:04:23 +0000 Subject: [PATCH] fix(spec): align config-schema.json object `ownership` with the record-ownership vocabulary MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `packages/spec/config-schema.json` declared the object-level `ownership` property as `enum ["own", "shared"]`. That matched neither vocabulary in the package: the record-ownership model is `user | business_unit | org | none` (`packages/spec/src/data/object.zod.ts`, post-#7260), and the package *contribution* kind is own/extend/overlay and lives on the registry's contributor record, not on the object schema. `["own","shared"]` was a stale third spelling with no acceptance face behind it. This artifact is hand-written authoring guidance served to config authors as IDE autocomplete/validation, so the entry actively steered an author toward `ownership: "shared"` — a value no schema in the package accepts (#3244 confusion class: same key name, different vocabularies, adjacent surfaces). Aligns the enum to the acceptance face and adopts its `.describe()` text, whose closing sentence carries the own/extend disambiguation that caused the drift. The acceptance face itself is untouched — `object.zod.ts` is byte-identical to `origin/main`. Fixes #7286 --- packages/spec/config-schema.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/spec/config-schema.json b/packages/spec/config-schema.json index d54ae0bfc5..920e6c3b18 100644 --- a/packages/spec/config-schema.json +++ b/packages/spec/config-schema.json @@ -66,8 +66,8 @@ }, "ownership": { "type": "string", - "enum": ["own", "shared"], - "description": "Record ownership model" + "enum": ["user", "business_unit", "org", "none"], + "description": "Record-ownership model: user (default — injects reassignable owner_id plus owning_business_unit_id) | business_unit (unit-owned: owning_business_unit_id only, no owner_id) | org | none (no per-record owner, neither anchor). Distinct from the package own/extend contribution kind." }, "fields": { "type": "object",