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" } + ] +} 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" } + ] +} 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" } + ] +} 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" } + ] +} 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" } + ] +} 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" } + ] +} 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" } + ] +} 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 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" } + ] +} 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" } + ] +}