From 9409f599b8b0233ffdd6eb45e1100bec417276f9 Mon Sep 17 00:00:00 2001 From: mdheller <21163552+mdheller@users.noreply.github.com> Date: Sat, 18 Apr 2026 12:16:42 -0400 Subject: [PATCH 01/10] schemas(control-plane): add canonical SkillExecutionEvent wrapper with srcos $id --- schemas/control-plane/SkillExecutionEvent.json | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 schemas/control-plane/SkillExecutionEvent.json diff --git a/schemas/control-plane/SkillExecutionEvent.json b/schemas/control-plane/SkillExecutionEvent.json new file mode 100644 index 0000000..b862da1 --- /dev/null +++ b/schemas/control-plane/SkillExecutionEvent.json @@ -0,0 +1,9 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://schemas.srcos.ai/v2/control-plane/SkillExecutionEvent.json", + "title": "SkillExecutionEvent", + "description": "Canonical SkillExecutionEvent schema. This is a wrapper that preserves legacy identifiers while providing a stable srcos namespace for new references.", + "allOf": [ + { "$ref": "./skill-execution-events.schema.json" } + ] +} From efd0135f2720db010b4dc2a1f309816e72d9222f Mon Sep 17 00:00:00 2001 From: mdheller <21163552+mdheller@users.noreply.github.com> Date: Sat, 18 Apr 2026 12:17:27 -0400 Subject: [PATCH 02/10] schemas(control-plane): add canonical ExperienceProfile wrapper with srcos $id --- schemas/control-plane/ExperienceProfile.json | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 schemas/control-plane/ExperienceProfile.json diff --git a/schemas/control-plane/ExperienceProfile.json b/schemas/control-plane/ExperienceProfile.json new file mode 100644 index 0000000..67c26da --- /dev/null +++ b/schemas/control-plane/ExperienceProfile.json @@ -0,0 +1,9 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://schemas.srcos.ai/v2/control-plane/ExperienceProfile.json", + "title": "ExperienceProfile", + "description": "Canonical ExperienceProfile schema. Wrapper that preserves legacy identifier while providing a stable srcos namespace for new references.", + "allOf": [ + { "$ref": "./experience-profile.schema.json" } + ] +} From 16d91afa73f8eb3b70aed5c8b95e0171c308c4fb Mon Sep 17 00:00:00 2001 From: mdheller <21163552+mdheller@users.noreply.github.com> Date: Sat, 18 Apr 2026 12:19:57 -0400 Subject: [PATCH 03/10] schemas(control-plane): add canonical IsolationProfile wrapper with srcos $id --- schemas/control-plane/IsolationProfile.json | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 schemas/control-plane/IsolationProfile.json diff --git a/schemas/control-plane/IsolationProfile.json b/schemas/control-plane/IsolationProfile.json new file mode 100644 index 0000000..e840e62 --- /dev/null +++ b/schemas/control-plane/IsolationProfile.json @@ -0,0 +1,9 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://schemas.srcos.ai/v2/control-plane/IsolationProfile.json", + "title": "IsolationProfile", + "description": "Canonical IsolationProfile schema. Wrapper that preserves legacy identifier while providing a stable srcos namespace for new references.", + "allOf": [ + { "$ref": "./isolation-profile.schema.json" } + ] +} From 9f9c132d1cfe8f4b69277179202955f535cc3c71 Mon Sep 17 00:00:00 2001 From: mdheller <21163552+mdheller@users.noreply.github.com> Date: Sat, 18 Apr 2026 12:20:30 -0400 Subject: [PATCH 04/10] schemas(control-plane): add canonical ReleaseSet wrapper with srcos $id --- schemas/control-plane/ReleaseSet.json | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 schemas/control-plane/ReleaseSet.json diff --git a/schemas/control-plane/ReleaseSet.json b/schemas/control-plane/ReleaseSet.json new file mode 100644 index 0000000..b0ef6fc --- /dev/null +++ b/schemas/control-plane/ReleaseSet.json @@ -0,0 +1,9 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://schemas.srcos.ai/v2/control-plane/ReleaseSet.json", + "title": "ReleaseSet", + "description": "Canonical ReleaseSet schema. Wrapper that preserves legacy identifier while providing a stable srcos namespace for new references.", + "allOf": [ + { "$ref": "./release-set.schema.json" } + ] +} From 8b97a39bd0e90f9e6ad6971b481f07b6b3109ec1 Mon Sep 17 00:00:00 2001 From: mdheller <21163552+mdheller@users.noreply.github.com> Date: Sat, 18 Apr 2026 12:21:05 -0400 Subject: [PATCH 05/10] schemas(control-plane): add canonical BootReleaseSet wrapper with srcos $id --- schemas/control-plane/BootReleaseSet.json | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 schemas/control-plane/BootReleaseSet.json diff --git a/schemas/control-plane/BootReleaseSet.json b/schemas/control-plane/BootReleaseSet.json new file mode 100644 index 0000000..697352c --- /dev/null +++ b/schemas/control-plane/BootReleaseSet.json @@ -0,0 +1,9 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://schemas.srcos.ai/v2/control-plane/BootReleaseSet.json", + "title": "BootReleaseSet", + "description": "Canonical BootReleaseSet schema. Wrapper that preserves legacy identifier while providing a stable srcos namespace for new references.", + "allOf": [ + { "$ref": "./boot-release-set.schema.json" } + ] +} From 5139ec53196f03b848d56fbcf3671ed6ede8e836 Mon Sep 17 00:00:00 2001 From: mdheller <21163552+mdheller@users.noreply.github.com> Date: Sat, 18 Apr 2026 12:21:56 -0400 Subject: [PATCH 06/10] schemas(control-plane): add canonical EnrollmentToken wrapper with srcos $id --- schemas/control-plane/EnrollmentToken.json | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 schemas/control-plane/EnrollmentToken.json diff --git a/schemas/control-plane/EnrollmentToken.json b/schemas/control-plane/EnrollmentToken.json new file mode 100644 index 0000000..b6657f0 --- /dev/null +++ b/schemas/control-plane/EnrollmentToken.json @@ -0,0 +1,9 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://schemas.srcos.ai/v2/control-plane/EnrollmentToken.json", + "title": "EnrollmentToken", + "description": "Canonical EnrollmentToken schema. Wrapper that preserves legacy identifier while providing a stable srcos namespace for new references.", + "allOf": [ + { "$ref": "./enrollment-token.schema.json" } + ] +} From b8c35df44e432318209fa0c8e5ebdabbb25d463b Mon Sep 17 00:00:00 2001 From: mdheller <21163552+mdheller@users.noreply.github.com> Date: Sat, 18 Apr 2026 12:22:27 -0400 Subject: [PATCH 07/10] schemas(control-plane): add canonical Fingerprint wrapper with srcos $id --- schemas/control-plane/Fingerprint.json | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 schemas/control-plane/Fingerprint.json diff --git a/schemas/control-plane/Fingerprint.json b/schemas/control-plane/Fingerprint.json new file mode 100644 index 0000000..9ccb9ee --- /dev/null +++ b/schemas/control-plane/Fingerprint.json @@ -0,0 +1,9 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://schemas.srcos.ai/v2/control-plane/Fingerprint.json", + "title": "Fingerprint", + "description": "Canonical Fingerprint schema. Wrapper that preserves legacy identifier while providing a stable srcos namespace for new references.", + "allOf": [ + { "$ref": "./fingerprint.schema.json" } + ] +} From 9fe4d7d5f3eae4f332fd8a2f58cd3fc347bdfdd3 Mon Sep 17 00:00:00 2001 From: mdheller <21163552+mdheller@users.noreply.github.com> Date: Sat, 18 Apr 2026 12:23:05 -0400 Subject: [PATCH 08/10] schemas(control-plane): add canonical MeshSkill wrapper with srcos $id --- schemas/control-plane/MeshSkill.json | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 schemas/control-plane/MeshSkill.json diff --git a/schemas/control-plane/MeshSkill.json b/schemas/control-plane/MeshSkill.json new file mode 100644 index 0000000..7540c63 --- /dev/null +++ b/schemas/control-plane/MeshSkill.json @@ -0,0 +1,9 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://schemas.srcos.ai/v2/control-plane/MeshSkill.json", + "title": "MeshSkill", + "description": "Canonical MeshSkill schema. Wrapper that preserves legacy identifier while providing a stable srcos namespace for new references.", + "allOf": [ + { "$ref": "./mesh-skill.schema.json" } + ] +} From ea50c4b0751862f36318e97f4b5b887109064ac9 Mon Sep 17 00:00:00 2001 From: mdheller <21163552+mdheller@users.noreply.github.com> Date: Sat, 18 Apr 2026 12:23:43 -0400 Subject: [PATCH 09/10] schemas(control-plane): add canonical IncidentEvent wrapper (consistency) --- schemas/control-plane/IncidentEvent.json | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 schemas/control-plane/IncidentEvent.json diff --git a/schemas/control-plane/IncidentEvent.json b/schemas/control-plane/IncidentEvent.json new file mode 100644 index 0000000..416e53f --- /dev/null +++ b/schemas/control-plane/IncidentEvent.json @@ -0,0 +1,9 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://schemas.srcos.ai/v2/control-plane/IncidentEvent.json", + "title": "IncidentEvent", + "description": "Canonical IncidentEvent schema. Wrapper retained for consistency (the underlying incident-events.schema.json is already normalized into srcos namespace).", + "allOf": [ + { "$ref": "./incident-events.schema.json" } + ] +} From 97e7e9b16b5d24cdb8e99503caccae7aea9cdb13 Mon Sep 17 00:00:00 2001 From: mdheller <21163552+mdheller@users.noreply.github.com> Date: Sat, 18 Apr 2026 12:26:48 -0400 Subject: [PATCH 10/10] docs(control-plane): add canonical wrapper policy + include mesh-skill/skill-exec schemas --- schemas/control-plane/README.md | 34 ++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/schemas/control-plane/README.md b/schemas/control-plane/README.md index b5a836d..5e6f29a 100644 --- a/schemas/control-plane/README.md +++ b/schemas/control-plane/README.md @@ -2,15 +2,47 @@ This directory contains the first machine-readable contract family for the local-first SourceOS lifecycle slice. +## Canonical schema identity + +This tranche was originally imported with `$id` values under the `socioprophet.org` namespace (legacy). + +Canonical SourceOS contract IDs use the `schemas.srcos.ai/v2/...` namespace. + +To avoid breaking legacy `$id` consumers, this directory now supports a **two-layer identity model**: + +- **Legacy schemas**: `*.schema.json` files preserve the original `$id` values. +- **Canonical wrappers**: `*.json` files provide canonical `$id` values in the `schemas.srcos.ai` namespace and `allOf`-wrap the legacy schema. + +New work should reference the canonical wrapper filenames. + ## Included schemas +Legacy (original import, legacy `$id`): + - `experience-profile.schema.json` - `isolation-profile.schema.json` - `release-set.schema.json` - `boot-release-set.schema.json` - `enrollment-token.schema.json` - `fingerprint.schema.json` -- `incident-events.schema.json` (existing) +- `mesh-skill.schema.json` +- `skill-execution-events.schema.json` + +Canonical wrappers (preferred for new references): + +- `ExperienceProfile.json` +- `IsolationProfile.json` +- `ReleaseSet.json` +- `BootReleaseSet.json` +- `EnrollmentToken.json` +- `Fingerprint.json` +- `MeshSkill.json` +- `SkillExecutionEvent.json` +- `IncidentEvent.json` + +Incident schema: + +- `incident-events.schema.json` (normalized to `schemas.srcos.ai` by PR #35) ## Intent