From e8ae8191e8005f5f6c461cba59bdf8420c755b26 Mon Sep 17 00:00:00 2001 From: Brad Edwards Date: Tue, 28 Jul 2026 00:06:28 +0200 Subject: [PATCH 1/5] fix!: repoint published schema namespace to a controlled URI root MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The canonical published-schema URI root was `https://raes.dev/schemas/`, carried over from the identity cutover in #921. That domain is registered to a third party, as was the root it replaced. Using an uncontrolled domain in `$id` gives up the only property the URI form buys — that the identifier is unambiguously ours to assign — and left issue #908 blocked on provisioning a domain the project cannot obtain. Repoint every published `$id`, the semantic-invariant profile URI, and the concept authority reference at `https://raesystem.github.io/rae/`, which is bound to the repository's own GitHub organisation. `$id` is an identifier and is not required to resolve, so this carries no DNS or hosting obligation; the path matches the org's GitHub Pages layout if the schemas are ever served. Refresh the schema-publication content hashes for the 84 affected schemas and record the correction as an amendment to ADR-096. Also re-pin the CHANGELOG.md identity digest, which went stale on dev when release-please appended the 2.0.0 notes. The appended content introduces no retired identity occurrences; the count is unchanged at 297. BREAKING CHANGE: published schema `$id` values move from `https://raes.dev/schemas/` to `https://raesystem.github.io/rae/schemas/`. Consumers pinning or caching schema identifiers must update them. Refs #908 --- .../concept-families-v1/invalid/native-with-authority.json | 2 +- .../schema-publication/entries/artifact-requirement-v1.json | 6 +++--- .../entries/associated-artifact-manifest-v1.json | 6 +++--- .../schema-publication/entries/atlas-tactics-source-v1.json | 6 +++--- .../entries/attack-enterprise-tactics-source-v1.json | 6 +++--- .../schema-publication/entries/backend-manifest-v2.json | 6 +++--- .../schema-publication/entries/backend-profile-v1.json | 6 +++--- .../schema-publication/entries/behavioral-relations-v1.json | 6 +++--- .../schema-publication/entries/concept-families-v1.json | 6 +++--- .../entries/controlled-vocabularies-v1.json | 6 +++--- .../entries/evaluation-history-event-stream-v1.json | 6 +++--- .../schema-publication/entries/evaluation-plan-v1.json | 6 +++--- .../entries/evaluation-result-envelope-v1.json | 6 +++--- .../entries/experiment-apparatus-context-v1.json | 6 +++--- .../entries/experiment-authoring-input-v1.json | 6 +++--- .../entries/experiment-binding-descriptors-v1.json | 6 +++--- .../entries/experiment-capture-spec-v1.json | 6 +++--- .../entries/experiment-derived-measure-v1.json | 6 +++--- .../entries/experiment-evidence-record-v1.json | 6 +++--- contracts/schema-publication/entries/experiment-run-v1.json | 6 +++--- .../schema-publication/entries/experiment-study-v1.json | 6 +++--- .../schema-publication/entries/experiment-task-v1.json | 6 +++--- .../entries/exploit-path-analysis-evidence-v1.json | 6 +++--- .../entries/instantiated-scenario-snapshot-v1.json | 6 +++--- .../entries/instantiated-scenario-v1.json | 6 +++--- .../entries/nist-csf-defensive-categories-source-v1.json | 6 +++--- .../schema-publication/entries/operation-receipt-v1.json | 6 +++--- .../schema-publication/entries/operation-status-v1.json | 6 +++--- .../schema-publication/entries/orchestration-plan-v1.json | 6 +++--- .../participant-behavior-history-event-stream-v1.json | 6 +++--- .../entries/participant-configuration-result-v1.json | 6 +++--- .../entries/participant-context-view-v1.json | 6 +++--- .../entries/participant-control-occurrence-v1.json | 6 +++--- .../entries/participant-crossing-occurrence-v1.json | 6 +++--- .../entries/participant-decision-surface-v1.json | 6 +++--- .../entries/participant-decision-surface-v2.json | 6 +++--- .../participant-episode-history-event-stream-v1.json | 6 +++--- .../entries/participant-episode-state-envelope-v1.json | 6 +++--- .../entries/participant-execution-binding-v1.json | 6 +++--- .../entries/participant-execution-control-v1.json | 6 +++--- .../entries/participant-execution-service-state-v1.json | 6 +++--- .../entries/participant-history-view-v1.json | 6 +++--- .../entries/participant-implementation-manifest-v1.json | 6 +++--- .../entries/participant-implementation-provenance-v1.json | 6 +++--- .../entries/participant-joint-action-record-v1.json | 6 +++--- .../entries/participant-lifecycle-event-v1.json | 6 +++--- .../entries/participant-observation-envelope-v1.json | 6 +++--- .../entries/participant-outcome-report-v1.json | 6 +++--- .../entries/participant-resource-budget-event-v1.json | 6 +++--- .../entries/participant-resource-budget-policy-v1.json | 6 +++--- .../entries/participant-resource-budget-state-v1.json | 6 +++--- .../entries/participant-resource-pool-capacity-v1.json | 6 +++--- .../entries/participant-shared-state-record-v1.json | 6 +++--- .../entries/participant-status-view-v1.json | 6 +++--- .../entries/participant-time-management-context-v1.json | 6 +++--- .../schema-publication/entries/processor-manifest-v2.json | 6 +++--- .../entries/proposition-truth-result-v1.json | 6 +++--- .../schema-publication/entries/provisioning-plan-v1.json | 6 +++--- .../entries/raes-semantic-invariants-v1.json | 6 +++--- .../entries/random-stream-profile-v1.json | 6 +++--- .../schema-publication/entries/random-stream-vector-v1.json | 6 +++--- .../schema-publication/entries/realization-envelope-v1.json | 6 +++--- .../schema-publication/entries/realized-time-model-v1.json | 6 +++--- .../schema-publication/entries/reference-models-v1.json | 6 +++--- .../entries/reusable-asset-trust-policy-v1.json | 6 +++--- .../entries/runtime-fact-binding-plane-v1.json | 6 +++--- .../schema-publication/entries/runtime-snapshot-v1.json | 6 +++--- .../entries/scenario-instantiation-request-v1.json | 6 +++--- .../entries/scenario-satisfiability-evidence-v1.json | 6 +++--- .../entries/scheduler-isolation-proof-v1.json | 6 +++--- .../entries/scientific-completeness-assessment-v1.json | 6 +++--- .../entries/scientific-completeness-taxonomy-v1.json | 6 +++--- .../schema-publication/entries/sdl-authoring-input-v1.json | 6 +++--- .../schema-publication/entries/sdl-lineage-ledger-v1.json | 6 +++--- .../schema-publication/entries/semantic-profile-v1.json | 6 +++--- contracts/schema-publication/entries/time-model-v1.json | 6 +++--- .../schema-publication/entries/time-runtime-state-v1.json | 6 +++--- .../schema-publication/entries/trial-cleanup-plan-v1.json | 6 +++--- .../entries/trial-cleanup-receipt-v1.json | 6 +++--- contracts/schema-publication/entries/uco-alignment-v1.json | 6 +++--- .../entries/validation-basis-disclosure-v1.json | 6 +++--- .../entries/validation-profile-catalog-v1.json | 6 +++--- .../entries/workflow-cancellation-request-v1.json | 6 +++--- .../entries/workflow-history-event-stream-v1.json | 6 +++--- .../entries/workflow-result-envelope-v1.json | 6 +++--- .../artifact-requirements/artifact-requirement-v1.json | 4 ++-- .../schemas/asset-trust/reusable-asset-trust-policy-v1.json | 2 +- .../associated-artifact-manifest-v1.json | 4 ++-- contracts/schemas/backend-manifest/backend-manifest-v2.json | 2 +- .../schemas/concept-authority/atlas-tactics-source-v1.json | 2 +- .../attack-enterprise-tactics-source-v1.json | 2 +- .../schemas/concept-authority/behavioral-relations-v1.json | 4 ++-- .../schemas/concept-authority/concept-families-v1.json | 2 +- .../concept-authority/controlled-vocabularies-v1.json | 2 +- .../nist-csf-defensive-categories-source-v1.json | 2 +- .../schemas/concept-authority/reference-models-v1.json | 2 +- contracts/schemas/concept-authority/uco-alignment-v1.json | 2 +- .../control-plane/evaluation-history-event-stream-v1.json | 2 +- .../control-plane/evaluation-result-envelope-v1.json | 2 +- contracts/schemas/control-plane/operation-receipt-v1.json | 2 +- contracts/schemas/control-plane/operation-status-v1.json | 2 +- .../participant-behavior-history-event-stream-v1.json | 4 ++-- .../schemas/control-plane/participant-context-view-v1.json | 4 ++-- .../control-plane/participant-decision-surface-v1.json | 4 ++-- .../control-plane/participant-decision-surface-v2.json | 4 ++-- .../participant-episode-history-event-stream-v1.json | 2 +- .../participant-episode-state-envelope-v1.json | 2 +- .../schemas/control-plane/participant-history-view-v1.json | 4 ++-- .../schemas/control-plane/participant-status-view-v1.json | 2 +- .../schemas/control-plane/proposition-truth-result-v1.json | 2 +- .../schemas/control-plane/scheduler-isolation-proof-v1.json | 4 ++-- .../schemas/control-plane/trial-cleanup-receipt-v1.json | 4 ++-- .../control-plane/workflow-cancellation-request-v1.json | 2 +- .../control-plane/workflow-history-event-stream-v1.json | 2 +- .../schemas/control-plane/workflow-result-envelope-v1.json | 2 +- .../experiment-core/experiment-apparatus-context-v1.json | 4 ++-- .../experiment-core/experiment-authoring-input-v1.json | 4 ++-- .../experiment-core/experiment-binding-descriptors-v1.json | 4 ++-- .../schemas/experiment-core/experiment-capture-spec-v1.json | 4 ++-- .../experiment-core/experiment-derived-measure-v1.json | 4 ++-- .../experiment-core/experiment-evidence-record-v1.json | 4 ++-- contracts/schemas/experiment-core/experiment-run-v1.json | 4 ++-- contracts/schemas/experiment-core/experiment-study-v1.json | 4 ++-- contracts/schemas/experiment-core/experiment-task-v1.json | 4 ++-- .../exploit-path-analysis-evidence-v1.json | 4 ++-- .../participant-configuration-result-v1.json | 4 ++-- .../participant-implementation-manifest-v1.json | 2 +- .../participant-implementation-provenance-v1.json | 2 +- .../participant-control-occurrence-v1.json | 4 ++-- .../participant-crossing-occurrence-v1.json | 4 ++-- .../participant-execution-binding-v1.json | 2 +- .../participant-execution-control-v1.json | 2 +- .../participant-execution-service-state-v1.json | 2 +- .../participant-joint-action-record-v1.json | 2 +- .../participant-runtime/participant-lifecycle-event-v1.json | 2 +- .../participant-observation-envelope-v1.json | 2 +- .../participant-runtime/participant-outcome-report-v1.json | 2 +- .../participant-resource-budget-event-v1.json | 2 +- .../participant-resource-budget-policy-v1.json | 2 +- .../participant-resource-budget-state-v1.json | 2 +- .../participant-resource-pool-capacity-v1.json | 2 +- .../participant-shared-state-record-v1.json | 2 +- .../participant-time-management-context-v1.json | 2 +- .../participant-runtime/runtime-fact-binding-plane-v1.json | 4 ++-- contracts/schemas/plans/evaluation-plan-v1.json | 2 +- contracts/schemas/plans/orchestration-plan-v1.json | 2 +- contracts/schemas/plans/provisioning-plan-v1.json | 2 +- contracts/schemas/plans/trial-cleanup-plan-v1.json | 4 ++-- .../schemas/processor-manifest/processor-manifest-v2.json | 2 +- contracts/schemas/profiles/backend-profile-v1.json | 2 +- contracts/schemas/profiles/raes-semantic-invariants-v1.json | 6 +++--- contracts/schemas/profiles/random-stream-profile-v1.json | 4 ++-- contracts/schemas/profiles/random-stream-vector-v1.json | 4 ++-- .../profiles/scientific-completeness-assessment-v1.json | 4 ++-- .../profiles/scientific-completeness-taxonomy-v1.json | 4 ++-- contracts/schemas/profiles/semantic-profile-v1.json | 2 +- .../schemas/profiles/validation-basis-disclosure-v1.json | 4 ++-- .../schemas/profiles/validation-profile-catalog-v1.json | 4 ++-- contracts/schemas/provenance/sdl-lineage-ledger-v1.json | 2 +- .../realization-envelope/realization-envelope-v1.json | 4 ++-- .../satisfiability/scenario-satisfiability-evidence-v1.json | 4 ++-- .../schemas/sdl/instantiated-scenario-snapshot-v1.json | 4 ++-- contracts/schemas/sdl/instantiated-scenario-v1.json | 4 ++-- .../schemas/sdl/scenario-instantiation-request-v1.json | 2 +- contracts/schemas/sdl/sdl-authoring-input-v1.json | 4 ++-- contracts/schemas/snapshots/runtime-snapshot-v1.json | 4 ++-- contracts/schemas/time/realized-time-model-v1.json | 2 +- contracts/schemas/time/time-model-v1.json | 2 +- contracts/schemas/time/time-runtime-state-v1.json | 2 +- ...r-096-identity-cutover-and-historical-record-boundary.md | 1 + docs/decisions/adrs/adr-index.yaml | 3 +++ docs/migration/raes-rename.md | 2 +- .../python/packages/raes_contracts/contracts/base.py | 2 +- .../packages/raes_contracts/contracts/schema_constraints.py | 6 +++--- implementations/python/tests/test_concept_authority.py | 2 +- .../python/tests/test_participant_backend_contracts.py | 2 +- implementations/python/tests/test_runtime_contracts.py | 4 ++-- tools/policy/historical_identity_records.json | 4 ++-- 178 files changed, 391 insertions(+), 387 deletions(-) diff --git a/contracts/fixtures/concept-authority/concept-families-v1/invalid/native-with-authority.json b/contracts/fixtures/concept-authority/concept-families-v1/invalid/native-with-authority.json index ff03553ec..ffb1a74f7 100644 --- a/contracts/fixtures/concept-authority/concept-families-v1/invalid/native-with-authority.json +++ b/contracts/fixtures/concept-authority/concept-families-v1/invalid/native-with-authority.json @@ -6,7 +6,7 @@ "description": "SDL scenarios, compositions, modules, and authoring constructs.", "provenance": "native", "authority": "RAES", - "authority_reference": "https://raes.dev/concepts", + "authority_reference": "https://raesystem.github.io/rae/concepts", "extension_scope": "SDL-native scenario authoring constructs.", "relation_rules": [ "Must remain the scenario authoring layer." diff --git a/contracts/schema-publication/entries/artifact-requirement-v1.json b/contracts/schema-publication/entries/artifact-requirement-v1.json index 5edd4e8cb..aea8cd3af 100644 --- a/contracts/schema-publication/entries/artifact-requirement-v1.json +++ b/contracts/schema-publication/entries/artifact-requirement-v1.json @@ -2,9 +2,9 @@ "contract_id": "artifact-requirement-v1", "schema_path": "contracts/schemas/artifact-requirements/artifact-requirement-v1.json", "stability": "draft", - "content_hash": "2f287a0b78b61cb5045c9481a6f76e6b7d279caf084110d56f709c8e5fee7e23", + "content_hash": "bb4850500da9d100689a9a4e486f5922234cf3032e16788f9d2e7be755edb8ea", "last_change": { - "summary": "Published portable exact, constrained, and open Source artifact requirements with governed satisfaction routes for issue #920.", - "content_hash": "2f287a0b78b61cb5045c9481a6f76e6b7d279caf084110d56f709c8e5fee7e23" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "bb4850500da9d100689a9a4e486f5922234cf3032e16788f9d2e7be755edb8ea" } } diff --git a/contracts/schema-publication/entries/associated-artifact-manifest-v1.json b/contracts/schema-publication/entries/associated-artifact-manifest-v1.json index a9df6525e..5a2522362 100644 --- a/contracts/schema-publication/entries/associated-artifact-manifest-v1.json +++ b/contracts/schema-publication/entries/associated-artifact-manifest-v1.json @@ -2,9 +2,9 @@ "contract_id": "associated-artifact-manifest-v1", "schema_path": "contracts/schemas/associated-artifacts/associated-artifact-manifest-v1.json", "stability": "draft", - "content_hash": "6b9db0d57e9163a0554bc456b425924121438640e1bc052c722e6cd1f4f300f3", + "content_hash": "a82c0539e307342fad8a494e04571a1e50639615efd349ee8d3f7d96f9e71751", "last_change": { - "summary": "Completed the RAES identity hard cut for published schema URIs, extension keywords, and identity-bearing contract values under #908; validation semantics are unchanged apart from the intentional breaking name migration.", - "content_hash": "6b9db0d57e9163a0554bc456b425924121438640e1bc052c722e6cd1f4f300f3" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "a82c0539e307342fad8a494e04571a1e50639615efd349ee8d3f7d96f9e71751" } } diff --git a/contracts/schema-publication/entries/atlas-tactics-source-v1.json b/contracts/schema-publication/entries/atlas-tactics-source-v1.json index 82de74dfc..3724177dd 100644 --- a/contracts/schema-publication/entries/atlas-tactics-source-v1.json +++ b/contracts/schema-publication/entries/atlas-tactics-source-v1.json @@ -2,9 +2,9 @@ "contract_id": "atlas-tactics-source-v1", "schema_path": "contracts/schemas/concept-authority/atlas-tactics-source-v1.json", "stability": "draft", - "content_hash": "25303bd3579d95cb16dc97d45ccd6de9915fac21345cf7dea7f2b317b70612b9", + "content_hash": "e1aec25898402152581fe442453858dbe0e9398bb6ddb157273c4ce298f9ebee", "last_change": { - "summary": "Completed the RAES identity hard cut for published schema URIs, extension keywords, and identity-bearing contract values under #908; validation semantics are unchanged apart from the intentional breaking name migration.", - "content_hash": "25303bd3579d95cb16dc97d45ccd6de9915fac21345cf7dea7f2b317b70612b9" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "e1aec25898402152581fe442453858dbe0e9398bb6ddb157273c4ce298f9ebee" } } diff --git a/contracts/schema-publication/entries/attack-enterprise-tactics-source-v1.json b/contracts/schema-publication/entries/attack-enterprise-tactics-source-v1.json index b7bb79f4e..583ea6cee 100644 --- a/contracts/schema-publication/entries/attack-enterprise-tactics-source-v1.json +++ b/contracts/schema-publication/entries/attack-enterprise-tactics-source-v1.json @@ -2,9 +2,9 @@ "contract_id": "attack-enterprise-tactics-source-v1", "schema_path": "contracts/schemas/concept-authority/attack-enterprise-tactics-source-v1.json", "stability": "draft", - "content_hash": "20ee7e7ce46c59d46702bfb359dc924f19f0cbdd09ff6dc8b57aa9aaaf8be304", + "content_hash": "7c7dd670f04d92fd1c5f412087ce50c5aed0f4c66abbcf997d926688f46b0cae", "last_change": { - "summary": "Completed the RAES identity hard cut for published schema URIs, extension keywords, and identity-bearing contract values under #908; validation semantics are unchanged apart from the intentional breaking name migration.", - "content_hash": "20ee7e7ce46c59d46702bfb359dc924f19f0cbdd09ff6dc8b57aa9aaaf8be304" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "7c7dd670f04d92fd1c5f412087ce50c5aed0f4c66abbcf997d926688f46b0cae" } } diff --git a/contracts/schema-publication/entries/backend-manifest-v2.json b/contracts/schema-publication/entries/backend-manifest-v2.json index daeaca400..211859d2a 100644 --- a/contracts/schema-publication/entries/backend-manifest-v2.json +++ b/contracts/schema-publication/entries/backend-manifest-v2.json @@ -2,9 +2,9 @@ "contract_id": "backend-manifest-v2", "schema_path": "contracts/schemas/backend-manifest/backend-manifest-v2.json", "stability": "draft", - "content_hash": "8f140797bd697fb49969fcf61a50c6b658f9b7e002d46f3a63cd566109436e83", + "content_hash": "5408003b0a05176661342b87b9f17116b4f1a4fd687153a3813dce33f8dec064", "last_change": { - "summary": "Added portable artifact satisfaction capabilities and participant resource-budget support for issues #920 and #899.", - "content_hash": "8f140797bd697fb49969fcf61a50c6b658f9b7e002d46f3a63cd566109436e83" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "5408003b0a05176661342b87b9f17116b4f1a4fd687153a3813dce33f8dec064" } } diff --git a/contracts/schema-publication/entries/backend-profile-v1.json b/contracts/schema-publication/entries/backend-profile-v1.json index 73008ac5f..535ec921a 100644 --- a/contracts/schema-publication/entries/backend-profile-v1.json +++ b/contracts/schema-publication/entries/backend-profile-v1.json @@ -2,9 +2,9 @@ "contract_id": "backend-profile-v1", "schema_path": "contracts/schemas/profiles/backend-profile-v1.json", "stability": "draft", - "content_hash": "96ee9545d16749f1a3f2c80150950517cbe738ea21d7420befc62cffda73c157", + "content_hash": "3e878fa2f248992bcc9f404408979e2c1d39e4305ca7e39ea93d880354b2c789", "last_change": { - "summary": "Advertised portable artifact requirements and participant resource-budget contracts for issues #920 and #899.", - "content_hash": "96ee9545d16749f1a3f2c80150950517cbe738ea21d7420befc62cffda73c157" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "3e878fa2f248992bcc9f404408979e2c1d39e4305ca7e39ea93d880354b2c789" } } diff --git a/contracts/schema-publication/entries/behavioral-relations-v1.json b/contracts/schema-publication/entries/behavioral-relations-v1.json index 988b0b641..975f7acf6 100644 --- a/contracts/schema-publication/entries/behavioral-relations-v1.json +++ b/contracts/schema-publication/entries/behavioral-relations-v1.json @@ -2,9 +2,9 @@ "contract_id": "behavioral-relations-v1", "schema_path": "contracts/schemas/concept-authority/behavioral-relations-v1.json", "stability": "draft", - "content_hash": "e6486c4411ac0f63724558f0556b3fc2b1dc866045dcadfd5d1a88ecd7e3aa5e", + "content_hash": "c97938fe6cf5b96fb09db413661ad4acb6bc7cb90b4385e9ccd308cfa4dd0755", "last_change": { - "summary": "Added an immutable report locator for the revision-3 I/O-automata lineage used by exact-cut reactive information flow and I/O alternating refinement.", - "content_hash": "e6486c4411ac0f63724558f0556b3fc2b1dc866045dcadfd5d1a88ecd7e3aa5e" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "c97938fe6cf5b96fb09db413661ad4acb6bc7cb90b4385e9ccd308cfa4dd0755" } } diff --git a/contracts/schema-publication/entries/concept-families-v1.json b/contracts/schema-publication/entries/concept-families-v1.json index 776f75902..c42514ee4 100644 --- a/contracts/schema-publication/entries/concept-families-v1.json +++ b/contracts/schema-publication/entries/concept-families-v1.json @@ -2,9 +2,9 @@ "contract_id": "concept-families-v1", "schema_path": "contracts/schemas/concept-authority/concept-families-v1.json", "stability": "draft", - "content_hash": "196b00f05a7100ecda790a05114c6bb47423a5ad4bbc8cf693fd30c9acd6f945", + "content_hash": "1a949b8d328d488ca7b71ef16d5803b7c1f4168b75eab64540988b537ed55fb0", "last_change": { - "summary": "Completed the RAES identity hard cut for published schema URIs, extension keywords, and identity-bearing contract values under #908; validation semantics are unchanged apart from the intentional breaking name migration.", - "content_hash": "196b00f05a7100ecda790a05114c6bb47423a5ad4bbc8cf693fd30c9acd6f945" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "1a949b8d328d488ca7b71ef16d5803b7c1f4168b75eab64540988b537ed55fb0" } } diff --git a/contracts/schema-publication/entries/controlled-vocabularies-v1.json b/contracts/schema-publication/entries/controlled-vocabularies-v1.json index 17cbf12d0..db9c27121 100644 --- a/contracts/schema-publication/entries/controlled-vocabularies-v1.json +++ b/contracts/schema-publication/entries/controlled-vocabularies-v1.json @@ -2,9 +2,9 @@ "contract_id": "controlled-vocabularies-v1", "schema_path": "contracts/schemas/concept-authority/controlled-vocabularies-v1.json", "stability": "draft", - "content_hash": "d0f03584fef13caf5258ad0eb559782235feaeab27021fd2ecd5f2575d7b6a7e", + "content_hash": "5673ba3ec07eecfb0a1aa2715e3bb81cf288d40cff769dd7114a6dc639257a01", "last_change": { - "summary": "Completed the RAES identity hard cut for published schema URIs, extension keywords, and identity-bearing contract values under #908; validation semantics are unchanged apart from the intentional breaking name migration.", - "content_hash": "d0f03584fef13caf5258ad0eb559782235feaeab27021fd2ecd5f2575d7b6a7e" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "5673ba3ec07eecfb0a1aa2715e3bb81cf288d40cff769dd7114a6dc639257a01" } } diff --git a/contracts/schema-publication/entries/evaluation-history-event-stream-v1.json b/contracts/schema-publication/entries/evaluation-history-event-stream-v1.json index d8baea0f9..417e01566 100644 --- a/contracts/schema-publication/entries/evaluation-history-event-stream-v1.json +++ b/contracts/schema-publication/entries/evaluation-history-event-stream-v1.json @@ -2,9 +2,9 @@ "contract_id": "evaluation-history-event-stream-v1", "schema_path": "contracts/schemas/control-plane/evaluation-history-event-stream-v1.json", "stability": "draft", - "content_hash": "b55ce200b8ef69dd0fd5a892611e40c50b497ea424dcbbbd11aa35c7edf10970", + "content_hash": "800ebef43a7d79d1c76e959bb2563cd1fac8845199eea012bc8816522a0bed0c", "last_change": { - "summary": "Completed the RAES identity hard cut for published schema URIs, extension keywords, and identity-bearing contract values under #908; validation semantics are unchanged apart from the intentional breaking name migration.", - "content_hash": "b55ce200b8ef69dd0fd5a892611e40c50b497ea424dcbbbd11aa35c7edf10970" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "800ebef43a7d79d1c76e959bb2563cd1fac8845199eea012bc8816522a0bed0c" } } diff --git a/contracts/schema-publication/entries/evaluation-plan-v1.json b/contracts/schema-publication/entries/evaluation-plan-v1.json index ce74d113a..4bc6b5f87 100644 --- a/contracts/schema-publication/entries/evaluation-plan-v1.json +++ b/contracts/schema-publication/entries/evaluation-plan-v1.json @@ -2,9 +2,9 @@ "contract_id": "evaluation-plan-v1", "schema_path": "contracts/schemas/plans/evaluation-plan-v1.json", "stability": "draft", - "content_hash": "76211999362eed211814484ada9d12ab2c479871ed976ba9a51f1ec299d65410", + "content_hash": "6ab37890bed35b32d852f31f01b986c0d243f83bb986fd46e11ea1616efafcd5", "last_change": { - "summary": "Completed the RAES identity hard cut for published schema URIs, extension keywords, and identity-bearing contract values under #908; validation semantics are unchanged apart from the intentional breaking name migration.", - "content_hash": "76211999362eed211814484ada9d12ab2c479871ed976ba9a51f1ec299d65410" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "6ab37890bed35b32d852f31f01b986c0d243f83bb986fd46e11ea1616efafcd5" } } diff --git a/contracts/schema-publication/entries/evaluation-result-envelope-v1.json b/contracts/schema-publication/entries/evaluation-result-envelope-v1.json index 664b1e185..9689c595b 100644 --- a/contracts/schema-publication/entries/evaluation-result-envelope-v1.json +++ b/contracts/schema-publication/entries/evaluation-result-envelope-v1.json @@ -2,9 +2,9 @@ "contract_id": "evaluation-result-envelope-v1", "schema_path": "contracts/schemas/control-plane/evaluation-result-envelope-v1.json", "stability": "draft", - "content_hash": "8b312c6b6d1e72af53ffde3d0c33634ac86f84ad3fbd6c4fbcf5902bca544877", + "content_hash": "14badba5fe848dd3ce7a625d84c9ec42fec1f435debd74504414c2b799b4dbec", "last_change": { - "summary": "Completed the RAES identity hard cut for published schema URIs, extension keywords, and identity-bearing contract values under #908; validation semantics are unchanged apart from the intentional breaking name migration.", - "content_hash": "8b312c6b6d1e72af53ffde3d0c33634ac86f84ad3fbd6c4fbcf5902bca544877" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "14badba5fe848dd3ce7a625d84c9ec42fec1f435debd74504414c2b799b4dbec" } } diff --git a/contracts/schema-publication/entries/experiment-apparatus-context-v1.json b/contracts/schema-publication/entries/experiment-apparatus-context-v1.json index 73088fcdf..2593c5ff1 100644 --- a/contracts/schema-publication/entries/experiment-apparatus-context-v1.json +++ b/contracts/schema-publication/entries/experiment-apparatus-context-v1.json @@ -2,9 +2,9 @@ "contract_id": "experiment-apparatus-context-v1", "schema_path": "contracts/schemas/experiment-core/experiment-apparatus-context-v1.json", "stability": "draft", - "content_hash": "8e174c238d93867603c4df93ba9bc2a736e4e9fa36c32088f2aa911557831204", + "content_hash": "9916e5582a8e79e8442abba25f30c4e2ac108e97d56f1da1b63a247d132c46d5", "last_change": { - "summary": "Completed the RAES identity hard cut for published schema URIs, extension keywords, and identity-bearing contract values under #908; validation semantics are unchanged apart from the intentional breaking name migration.", - "content_hash": "8e174c238d93867603c4df93ba9bc2a736e4e9fa36c32088f2aa911557831204" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "9916e5582a8e79e8442abba25f30c4e2ac108e97d56f1da1b63a247d132c46d5" } } diff --git a/contracts/schema-publication/entries/experiment-authoring-input-v1.json b/contracts/schema-publication/entries/experiment-authoring-input-v1.json index 9a663b06a..259edd470 100644 --- a/contracts/schema-publication/entries/experiment-authoring-input-v1.json +++ b/contracts/schema-publication/entries/experiment-authoring-input-v1.json @@ -2,9 +2,9 @@ "contract_id": "experiment-authoring-input-v1", "schema_path": "contracts/schemas/experiment-core/experiment-authoring-input-v1.json", "stability": "draft", - "content_hash": "2ffe9d8c055458997b3f78159e7b54eb1ea05a3bf52ce3adaa64234220457cce", + "content_hash": "c80602d78f2f2bff4d516107bb323ee95c51c31773c89215fc998cc8fa603232", "last_change": { - "summary": "Completed the RAES identity hard cut for published schema URIs, extension keywords, and identity-bearing contract values under #908; validation semantics are unchanged apart from the intentional breaking name migration.", - "content_hash": "2ffe9d8c055458997b3f78159e7b54eb1ea05a3bf52ce3adaa64234220457cce" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "c80602d78f2f2bff4d516107bb323ee95c51c31773c89215fc998cc8fa603232" } } diff --git a/contracts/schema-publication/entries/experiment-binding-descriptors-v1.json b/contracts/schema-publication/entries/experiment-binding-descriptors-v1.json index 5368ea6a8..24a995a9e 100644 --- a/contracts/schema-publication/entries/experiment-binding-descriptors-v1.json +++ b/contracts/schema-publication/entries/experiment-binding-descriptors-v1.json @@ -2,9 +2,9 @@ "contract_id": "experiment-binding-descriptors-v1", "schema_path": "contracts/schemas/experiment-core/experiment-binding-descriptors-v1.json", "stability": "draft", - "content_hash": "fe1e2308c9c101f1b115a5b673b369eab68431a5c3befc41cba9cf5169475f97", + "content_hash": "8f737f9be11d01bac0dbe9382e8b1057cc9dfaf60a36053250e8a568cba3ab7a", "last_change": { - "summary": "Completed the RAES identity hard cut for published schema URIs, extension keywords, and identity-bearing contract values under #908; validation semantics are unchanged apart from the intentional breaking name migration.", - "content_hash": "fe1e2308c9c101f1b115a5b673b369eab68431a5c3befc41cba9cf5169475f97" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "8f737f9be11d01bac0dbe9382e8b1057cc9dfaf60a36053250e8a568cba3ab7a" } } diff --git a/contracts/schema-publication/entries/experiment-capture-spec-v1.json b/contracts/schema-publication/entries/experiment-capture-spec-v1.json index 64d6a63f2..c2cd696a5 100644 --- a/contracts/schema-publication/entries/experiment-capture-spec-v1.json +++ b/contracts/schema-publication/entries/experiment-capture-spec-v1.json @@ -2,9 +2,9 @@ "contract_id": "experiment-capture-spec-v1", "schema_path": "contracts/schemas/experiment-core/experiment-capture-spec-v1.json", "stability": "draft", - "content_hash": "59a5a2fc7c28eb5d27725916def11b11af919e13be7942ded83df30c05be833d", + "content_hash": "812f8314c76208d588b459cfc99637e9fba1c9f7519602c3b8ea6f7a62a4475c", "last_change": { - "summary": "Completed the RAES identity hard cut for published schema URIs, extension keywords, and identity-bearing contract values under #908; validation semantics are unchanged apart from the intentional breaking name migration.", - "content_hash": "59a5a2fc7c28eb5d27725916def11b11af919e13be7942ded83df30c05be833d" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "812f8314c76208d588b459cfc99637e9fba1c9f7519602c3b8ea6f7a62a4475c" } } diff --git a/contracts/schema-publication/entries/experiment-derived-measure-v1.json b/contracts/schema-publication/entries/experiment-derived-measure-v1.json index 6282a604a..79437b07f 100644 --- a/contracts/schema-publication/entries/experiment-derived-measure-v1.json +++ b/contracts/schema-publication/entries/experiment-derived-measure-v1.json @@ -2,9 +2,9 @@ "contract_id": "experiment-derived-measure-v1", "schema_path": "contracts/schemas/experiment-core/experiment-derived-measure-v1.json", "stability": "draft", - "content_hash": "99668f7dd86d118944dc3c4c90998a042bbbf00fad0d34d0fb9e78c9a95e3e30", + "content_hash": "3ff95c83a82d4cb6c9a9200dcb51331dc7dc553c3914b7800c05ecf3ba9d4fa3", "last_change": { - "summary": "Completed the RAES identity hard cut for published schema URIs, extension keywords, and identity-bearing contract values under #908; validation semantics are unchanged apart from the intentional breaking name migration.", - "content_hash": "99668f7dd86d118944dc3c4c90998a042bbbf00fad0d34d0fb9e78c9a95e3e30" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "3ff95c83a82d4cb6c9a9200dcb51331dc7dc553c3914b7800c05ecf3ba9d4fa3" } } diff --git a/contracts/schema-publication/entries/experiment-evidence-record-v1.json b/contracts/schema-publication/entries/experiment-evidence-record-v1.json index cf1ef0b93..3a509ad0c 100644 --- a/contracts/schema-publication/entries/experiment-evidence-record-v1.json +++ b/contracts/schema-publication/entries/experiment-evidence-record-v1.json @@ -2,9 +2,9 @@ "contract_id": "experiment-evidence-record-v1", "schema_path": "contracts/schemas/experiment-core/experiment-evidence-record-v1.json", "stability": "draft", - "content_hash": "3a41753ecb4c852af0dbf324794493597641a16e9ec564e642905e459e8da92f", + "content_hash": "a98b73cf0f590db45dabbef72606e53868482ae28d1bb0852a445ed4ecef762b", "last_change": { - "summary": "Completed the RAES identity hard cut for published schema URIs, extension keywords, and identity-bearing contract values under #908; validation semantics are unchanged apart from the intentional breaking name migration.", - "content_hash": "3a41753ecb4c852af0dbf324794493597641a16e9ec564e642905e459e8da92f" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "a98b73cf0f590db45dabbef72606e53868482ae28d1bb0852a445ed4ecef762b" } } diff --git a/contracts/schema-publication/entries/experiment-run-v1.json b/contracts/schema-publication/entries/experiment-run-v1.json index 1a7ddabdf..7a7fc7510 100644 --- a/contracts/schema-publication/entries/experiment-run-v1.json +++ b/contracts/schema-publication/entries/experiment-run-v1.json @@ -2,9 +2,9 @@ "contract_id": "experiment-run-v1", "schema_path": "contracts/schemas/experiment-core/experiment-run-v1.json", "stability": "draft", - "content_hash": "f6e1c277a1a48e764cbbcf8433d666fa7bbd9bb1d38953f8b55b9c4a1a1d1180", + "content_hash": "c998b0253d760ec9714d8895f20b79c7786e10cfbed35441dabfffb0b988ac83", "last_change": { - "summary": "Completed the RAES identity hard cut for published schema URIs, extension keywords, and identity-bearing contract values under #908; validation semantics are unchanged apart from the intentional breaking name migration.", - "content_hash": "f6e1c277a1a48e764cbbcf8433d666fa7bbd9bb1d38953f8b55b9c4a1a1d1180" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "c998b0253d760ec9714d8895f20b79c7786e10cfbed35441dabfffb0b988ac83" } } diff --git a/contracts/schema-publication/entries/experiment-study-v1.json b/contracts/schema-publication/entries/experiment-study-v1.json index c0c26cdf8..32f01a89e 100644 --- a/contracts/schema-publication/entries/experiment-study-v1.json +++ b/contracts/schema-publication/entries/experiment-study-v1.json @@ -2,9 +2,9 @@ "contract_id": "experiment-study-v1", "schema_path": "contracts/schemas/experiment-core/experiment-study-v1.json", "stability": "draft", - "content_hash": "e3968289f399d09a974dfb7ac04266d5e37f9ad68abaa73e49c3862c87f69a03", + "content_hash": "1accca3d930ce66005cd4a46400147271c111a287b2dd3760af91e403231f33a", "last_change": { - "summary": "Completed the RAES identity hard cut for published schema URIs, extension keywords, and identity-bearing contract values under #908; validation semantics are unchanged apart from the intentional breaking name migration.", - "content_hash": "e3968289f399d09a974dfb7ac04266d5e37f9ad68abaa73e49c3862c87f69a03" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "1accca3d930ce66005cd4a46400147271c111a287b2dd3760af91e403231f33a" } } diff --git a/contracts/schema-publication/entries/experiment-task-v1.json b/contracts/schema-publication/entries/experiment-task-v1.json index 57d65f4a2..2d9003f54 100644 --- a/contracts/schema-publication/entries/experiment-task-v1.json +++ b/contracts/schema-publication/entries/experiment-task-v1.json @@ -2,9 +2,9 @@ "contract_id": "experiment-task-v1", "schema_path": "contracts/schemas/experiment-core/experiment-task-v1.json", "stability": "draft", - "content_hash": "5f3745dde0403ecfd24c5e37cc8522ac5568c8b01fc235cfc8b1b337b2a5071e", + "content_hash": "328f94b60bb8d6cc607c6b095fbf93cf2fb555c949c9d98ec3b56ab1387c085f", "last_change": { - "summary": "Completed the RAES identity hard cut for published schema URIs, extension keywords, and identity-bearing contract values under #908; validation semantics are unchanged apart from the intentional breaking name migration.", - "content_hash": "5f3745dde0403ecfd24c5e37cc8522ac5568c8b01fc235cfc8b1b337b2a5071e" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "328f94b60bb8d6cc607c6b095fbf93cf2fb555c949c9d98ec3b56ab1387c085f" } } diff --git a/contracts/schema-publication/entries/exploit-path-analysis-evidence-v1.json b/contracts/schema-publication/entries/exploit-path-analysis-evidence-v1.json index e9b0500d6..9eed41065 100644 --- a/contracts/schema-publication/entries/exploit-path-analysis-evidence-v1.json +++ b/contracts/schema-publication/entries/exploit-path-analysis-evidence-v1.json @@ -2,9 +2,9 @@ "contract_id": "exploit-path-analysis-evidence-v1", "schema_path": "contracts/schemas/exploit-path-analysis/exploit-path-analysis-evidence-v1.json", "stability": "draft", - "content_hash": "d51c86c5f939fdc485bb5d1b2057d0069a5c976316e4f71c84eb85fa3ea6f77a", + "content_hash": "0c0c96288ea61dbfb8f05b9e6ab26af0e8cde30ec04869d160193d9618924970", "last_change": { - "summary": "Completed the RAES identity hard cut for published schema URIs, extension keywords, and identity-bearing contract values under #908; validation semantics are unchanged apart from the intentional breaking name migration.", - "content_hash": "d51c86c5f939fdc485bb5d1b2057d0069a5c976316e4f71c84eb85fa3ea6f77a" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "0c0c96288ea61dbfb8f05b9e6ab26af0e8cde30ec04869d160193d9618924970" } } diff --git a/contracts/schema-publication/entries/instantiated-scenario-snapshot-v1.json b/contracts/schema-publication/entries/instantiated-scenario-snapshot-v1.json index 1ec99433e..abf0a263a 100644 --- a/contracts/schema-publication/entries/instantiated-scenario-snapshot-v1.json +++ b/contracts/schema-publication/entries/instantiated-scenario-snapshot-v1.json @@ -2,9 +2,9 @@ "contract_id": "instantiated-scenario-snapshot-v1", "schema_path": "contracts/schemas/sdl/instantiated-scenario-snapshot-v1.json", "stability": "draft", - "content_hash": "871d7c3f4cbb86a50caf28ec04c957e2624f893c9956ab1ee80880a8e41e2608", + "content_hash": "de78a77ae1d67b7349e557d42ca5a8afad6d30f1003af5eb3009c5eb2783bf1d", "last_change": { - "summary": "Published portable artifact requirements and scoped participant resource budgets in immutable scenario snapshots for issues #920 and #899.", - "content_hash": "871d7c3f4cbb86a50caf28ec04c957e2624f893c9956ab1ee80880a8e41e2608" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "de78a77ae1d67b7349e557d42ca5a8afad6d30f1003af5eb3009c5eb2783bf1d" } } diff --git a/contracts/schema-publication/entries/instantiated-scenario-v1.json b/contracts/schema-publication/entries/instantiated-scenario-v1.json index 983a88cc5..ca5be2fd2 100644 --- a/contracts/schema-publication/entries/instantiated-scenario-v1.json +++ b/contracts/schema-publication/entries/instantiated-scenario-v1.json @@ -2,9 +2,9 @@ "contract_id": "instantiated-scenario-v1", "schema_path": "contracts/schemas/sdl/instantiated-scenario-v1.json", "stability": "draft", - "content_hash": "91fc70f7f34b378304d125aed4729a6d20048a2539ff00abc3729af2be7cfbfe", + "content_hash": "e48a8fae49b47e70ad14eb750f865d2211d03fccbf91e824a562cc62772cc3da", "last_change": { - "summary": "Published portable artifact requirements and scoped participant resource budgets in instantiated scenarios for issues #920 and #899.", - "content_hash": "91fc70f7f34b378304d125aed4729a6d20048a2539ff00abc3729af2be7cfbfe" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "e48a8fae49b47e70ad14eb750f865d2211d03fccbf91e824a562cc62772cc3da" } } diff --git a/contracts/schema-publication/entries/nist-csf-defensive-categories-source-v1.json b/contracts/schema-publication/entries/nist-csf-defensive-categories-source-v1.json index 0dd3f4687..5bcac908b 100644 --- a/contracts/schema-publication/entries/nist-csf-defensive-categories-source-v1.json +++ b/contracts/schema-publication/entries/nist-csf-defensive-categories-source-v1.json @@ -2,9 +2,9 @@ "contract_id": "nist-csf-defensive-categories-source-v1", "schema_path": "contracts/schemas/concept-authority/nist-csf-defensive-categories-source-v1.json", "stability": "draft", - "content_hash": "f5aa81e3c9c0cac489bc1ff89eb65a94b751d50f73c58baedb82371faf72c14f", + "content_hash": "93e71d0a86591f26ef8fe899aa5a476d4bdb4e948942ae704b61020ce4b326e7", "last_change": { - "summary": "Completed the RAES identity hard cut for published schema URIs, extension keywords, and identity-bearing contract values under #908; validation semantics are unchanged apart from the intentional breaking name migration.", - "content_hash": "f5aa81e3c9c0cac489bc1ff89eb65a94b751d50f73c58baedb82371faf72c14f" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "93e71d0a86591f26ef8fe899aa5a476d4bdb4e948942ae704b61020ce4b326e7" } } diff --git a/contracts/schema-publication/entries/operation-receipt-v1.json b/contracts/schema-publication/entries/operation-receipt-v1.json index e9581c6c6..39bb6a2f7 100644 --- a/contracts/schema-publication/entries/operation-receipt-v1.json +++ b/contracts/schema-publication/entries/operation-receipt-v1.json @@ -2,9 +2,9 @@ "contract_id": "operation-receipt-v1", "schema_path": "contracts/schemas/control-plane/operation-receipt-v1.json", "stability": "draft", - "content_hash": "195b33906287ca5b04fdf1820c48b79f25e6279311f7c79bfbe4c43f1aa7aeba", + "content_hash": "e1f5d43c0303e20df01920b4b2c00482518f6efe3a12c6a40576ea477c7663bc", "last_change": { - "summary": "Completed the RAES identity hard cut for published schema URIs, extension keywords, and identity-bearing contract values under #908; validation semantics are unchanged apart from the intentional breaking name migration.", - "content_hash": "195b33906287ca5b04fdf1820c48b79f25e6279311f7c79bfbe4c43f1aa7aeba" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "e1f5d43c0303e20df01920b4b2c00482518f6efe3a12c6a40576ea477c7663bc" } } diff --git a/contracts/schema-publication/entries/operation-status-v1.json b/contracts/schema-publication/entries/operation-status-v1.json index 5b4838f50..89348a02d 100644 --- a/contracts/schema-publication/entries/operation-status-v1.json +++ b/contracts/schema-publication/entries/operation-status-v1.json @@ -2,9 +2,9 @@ "contract_id": "operation-status-v1", "schema_path": "contracts/schemas/control-plane/operation-status-v1.json", "stability": "draft", - "content_hash": "407c2b148ea3e9490d5e9d0288f8ae1199d04be3f0ad5a2483d84e7ee0b6510a", + "content_hash": "af7ebde21bd81f5f9c1fffecb77b2a88d609a6215d6bc2e0bedc4c4c722821b3", "last_change": { - "summary": "Completed the RAES identity hard cut for published schema URIs, extension keywords, and identity-bearing contract values under #908; validation semantics are unchanged apart from the intentional breaking name migration.", - "content_hash": "407c2b148ea3e9490d5e9d0288f8ae1199d04be3f0ad5a2483d84e7ee0b6510a" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "af7ebde21bd81f5f9c1fffecb77b2a88d609a6215d6bc2e0bedc4c4c722821b3" } } diff --git a/contracts/schema-publication/entries/orchestration-plan-v1.json b/contracts/schema-publication/entries/orchestration-plan-v1.json index 81281e9e7..ae86db1c1 100644 --- a/contracts/schema-publication/entries/orchestration-plan-v1.json +++ b/contracts/schema-publication/entries/orchestration-plan-v1.json @@ -2,9 +2,9 @@ "contract_id": "orchestration-plan-v1", "schema_path": "contracts/schemas/plans/orchestration-plan-v1.json", "stability": "draft", - "content_hash": "b2fe219bb20fe8c30aa8e7cacced28e44671512a7f809d1ab5a1c980b0ab9fef", + "content_hash": "97116f459eba56d281a5c6ba33c7f632f8b683379bf4e1e3b9ab933f43b7e00a", "last_change": { - "summary": "Completed the RAES identity hard cut for published schema URIs, extension keywords, and identity-bearing contract values under #908; validation semantics are unchanged apart from the intentional breaking name migration.", - "content_hash": "b2fe219bb20fe8c30aa8e7cacced28e44671512a7f809d1ab5a1c980b0ab9fef" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "97116f459eba56d281a5c6ba33c7f632f8b683379bf4e1e3b9ab933f43b7e00a" } } diff --git a/contracts/schema-publication/entries/participant-behavior-history-event-stream-v1.json b/contracts/schema-publication/entries/participant-behavior-history-event-stream-v1.json index 40d4e8c5f..1ec9e9759 100644 --- a/contracts/schema-publication/entries/participant-behavior-history-event-stream-v1.json +++ b/contracts/schema-publication/entries/participant-behavior-history-event-stream-v1.json @@ -2,9 +2,9 @@ "contract_id": "participant-behavior-history-event-stream-v1", "schema_path": "contracts/schemas/control-plane/participant-behavior-history-event-stream-v1.json", "stability": "draft", - "content_hash": "46756a33b20550c709ecaacd41bb5621f291be9582c05b313b5076da0a9065f5", + "content_hash": "419b76bd47a8dc23c7d695247f74800bf5ce42d8697f2175a028e1c6cafd18b3", "last_change": { - "summary": "Extended v3 activity history with native resource measurements and policy-scoped budget identity for issue #899.", - "content_hash": "46756a33b20550c709ecaacd41bb5621f291be9582c05b313b5076da0a9065f5" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "419b76bd47a8dc23c7d695247f74800bf5ce42d8697f2175a028e1c6cafd18b3" } } diff --git a/contracts/schema-publication/entries/participant-configuration-result-v1.json b/contracts/schema-publication/entries/participant-configuration-result-v1.json index 1caf5f733..9eb010e71 100644 --- a/contracts/schema-publication/entries/participant-configuration-result-v1.json +++ b/contracts/schema-publication/entries/participant-configuration-result-v1.json @@ -2,9 +2,9 @@ "contract_id": "participant-configuration-result-v1", "schema_path": "contracts/schemas/participant-implementation-configuration/participant-configuration-result-v1.json", "stability": "draft", - "content_hash": "4a591f8bf253fc7caa2a30edc05a665f1ffa64c4764d3fb14f440fa559c03743", + "content_hash": "efb77c0b57d4c27518ffcb3af618d048cf829cb66f36a68a65a958b8033a5adb", "last_change": { - "summary": "Completed the RAES identity hard cut for published schema URIs, extension keywords, and identity-bearing contract values under #908; validation semantics are unchanged apart from the intentional breaking name migration.", - "content_hash": "4a591f8bf253fc7caa2a30edc05a665f1ffa64c4764d3fb14f440fa559c03743" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "efb77c0b57d4c27518ffcb3af618d048cf829cb66f36a68a65a958b8033a5adb" } } diff --git a/contracts/schema-publication/entries/participant-context-view-v1.json b/contracts/schema-publication/entries/participant-context-view-v1.json index e156fc656..bce228744 100644 --- a/contracts/schema-publication/entries/participant-context-view-v1.json +++ b/contracts/schema-publication/entries/participant-context-view-v1.json @@ -2,9 +2,9 @@ "contract_id": "participant-context-view-v1", "schema_path": "contracts/schemas/control-plane/participant-context-view-v1.json", "stability": "draft", - "content_hash": "9d7bfc3de15e89b20bd27e704feb7683806014cbb3fb0babf4f0193db2602ff4", + "content_hash": "40dea81dac51eff81d69768f06ec89a82d21031e408ea97167f7631269e51c01", "last_change": { - "summary": "Completed the RAES identity hard cut for published schema URIs, extension keywords, and identity-bearing contract values under #908; validation semantics are unchanged apart from the intentional breaking name migration.", - "content_hash": "9d7bfc3de15e89b20bd27e704feb7683806014cbb3fb0babf4f0193db2602ff4" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "40dea81dac51eff81d69768f06ec89a82d21031e408ea97167f7631269e51c01" } } diff --git a/contracts/schema-publication/entries/participant-control-occurrence-v1.json b/contracts/schema-publication/entries/participant-control-occurrence-v1.json index ce75ff2cd..84a772b45 100644 --- a/contracts/schema-publication/entries/participant-control-occurrence-v1.json +++ b/contracts/schema-publication/entries/participant-control-occurrence-v1.json @@ -2,9 +2,9 @@ "contract_id": "participant-control-occurrence-v1", "schema_path": "contracts/schemas/participant-runtime/participant-control-occurrence-v1.json", "stability": "draft", - "content_hash": "b9ead3b36df6c998df60f2b328ac3433f547d135fc9526d36b54e8c335a3489f", + "content_hash": "c0330853c6c668fa2ad22afafc968160a0d91776ccab3c4ae6a11ff4cf84d1d0", "last_change": { - "summary": "Completed the RAES identity hard cut for published schema URIs, extension keywords, and identity-bearing contract values under #908; validation semantics are unchanged apart from the intentional breaking name migration.", - "content_hash": "b9ead3b36df6c998df60f2b328ac3433f547d135fc9526d36b54e8c335a3489f" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "c0330853c6c668fa2ad22afafc968160a0d91776ccab3c4ae6a11ff4cf84d1d0" } } diff --git a/contracts/schema-publication/entries/participant-crossing-occurrence-v1.json b/contracts/schema-publication/entries/participant-crossing-occurrence-v1.json index 3fee72863..bc6950052 100644 --- a/contracts/schema-publication/entries/participant-crossing-occurrence-v1.json +++ b/contracts/schema-publication/entries/participant-crossing-occurrence-v1.json @@ -2,9 +2,9 @@ "contract_id": "participant-crossing-occurrence-v1", "schema_path": "contracts/schemas/participant-runtime/participant-crossing-occurrence-v1.json", "stability": "draft", - "content_hash": "34f79eaed648530dbf7b2c948a1cb8e33320caea5f1b0586776f8f28d2b38c10", + "content_hash": "61b5963daceb11e2fe21d47d4c174db1bbfbdfafa3cd96fe263c4f0c4a88d7ff", "last_change": { - "summary": "Completed the RAES identity hard cut for published schema URIs, extension keywords, and identity-bearing contract values under #908; validation semantics are unchanged apart from the intentional breaking name migration.", - "content_hash": "34f79eaed648530dbf7b2c948a1cb8e33320caea5f1b0586776f8f28d2b38c10" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "61b5963daceb11e2fe21d47d4c174db1bbfbdfafa3cd96fe263c4f0c4a88d7ff" } } diff --git a/contracts/schema-publication/entries/participant-decision-surface-v1.json b/contracts/schema-publication/entries/participant-decision-surface-v1.json index 9fddb8963..26f23d49e 100644 --- a/contracts/schema-publication/entries/participant-decision-surface-v1.json +++ b/contracts/schema-publication/entries/participant-decision-surface-v1.json @@ -2,9 +2,9 @@ "contract_id": "participant-decision-surface-v1", "schema_path": "contracts/schemas/control-plane/participant-decision-surface-v1.json", "stability": "draft", - "content_hash": "de312b4eaa535e16bbfa5d5d59081a6dd86ec41936d8c2c402cbe4ca62ff0748", + "content_hash": "5bb921281db72519b486ecc4dcd90e232c39b8bf664bbe73b0c768c07c968f6d", "last_change": { - "summary": "Completed the RAES identity hard cut for published schema URIs, extension keywords, and identity-bearing contract values under #908; validation semantics are unchanged apart from the intentional breaking name migration.", - "content_hash": "de312b4eaa535e16bbfa5d5d59081a6dd86ec41936d8c2c402cbe4ca62ff0748" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "5bb921281db72519b486ecc4dcd90e232c39b8bf664bbe73b0c768c07c968f6d" } } diff --git a/contracts/schema-publication/entries/participant-decision-surface-v2.json b/contracts/schema-publication/entries/participant-decision-surface-v2.json index c189873a3..525671436 100644 --- a/contracts/schema-publication/entries/participant-decision-surface-v2.json +++ b/contracts/schema-publication/entries/participant-decision-surface-v2.json @@ -2,9 +2,9 @@ "contract_id": "participant-decision-surface-v2", "schema_path": "contracts/schemas/control-plane/participant-decision-surface-v2.json", "stability": "draft", - "content_hash": "ec31e314da8d75c87924e2b4cf76945ef419eaf54d02d25ae7c2c20426c411f6", + "content_hash": "792bd595100d3bedcfae287391af40f6607d8d4792b434f72e28f5e74b89ea2d", "last_change": { - "summary": "Published decision-surface v2 with independent decision epochs and state cuts, participant-view and assurance separation, exact-cut exposure authorization, explicit memory scope and delivery state, and delivery-bound selection.", - "content_hash": "ec31e314da8d75c87924e2b4cf76945ef419eaf54d02d25ae7c2c20426c411f6" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "792bd595100d3bedcfae287391af40f6607d8d4792b434f72e28f5e74b89ea2d" } } diff --git a/contracts/schema-publication/entries/participant-episode-history-event-stream-v1.json b/contracts/schema-publication/entries/participant-episode-history-event-stream-v1.json index 6e5baf654..9c353d32c 100644 --- a/contracts/schema-publication/entries/participant-episode-history-event-stream-v1.json +++ b/contracts/schema-publication/entries/participant-episode-history-event-stream-v1.json @@ -2,9 +2,9 @@ "contract_id": "participant-episode-history-event-stream-v1", "schema_path": "contracts/schemas/control-plane/participant-episode-history-event-stream-v1.json", "stability": "draft", - "content_hash": "2ef1c837394083ef263bec41a46113e047f9d8a8ba1a75b09abb5e4e4e95c605", + "content_hash": "debb19e2d7f451e413fe16e23e2ee6f4eb37b04048f7e9409525db37af1bf2d1", "last_change": { - "summary": "Completed the RAES identity hard cut for published schema URIs, extension keywords, and identity-bearing contract values under #908; validation semantics are unchanged apart from the intentional breaking name migration.", - "content_hash": "2ef1c837394083ef263bec41a46113e047f9d8a8ba1a75b09abb5e4e4e95c605" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "debb19e2d7f451e413fe16e23e2ee6f4eb37b04048f7e9409525db37af1bf2d1" } } diff --git a/contracts/schema-publication/entries/participant-episode-state-envelope-v1.json b/contracts/schema-publication/entries/participant-episode-state-envelope-v1.json index 5ea70e5b3..c9219e4e3 100644 --- a/contracts/schema-publication/entries/participant-episode-state-envelope-v1.json +++ b/contracts/schema-publication/entries/participant-episode-state-envelope-v1.json @@ -2,9 +2,9 @@ "contract_id": "participant-episode-state-envelope-v1", "schema_path": "contracts/schemas/control-plane/participant-episode-state-envelope-v1.json", "stability": "draft", - "content_hash": "506a10360067ddd75e086c3e1c6cc031201dfb7ba163220d1ef2d7c53c78e3ed", + "content_hash": "63de32ef14bd0309cec32c3794e3a7c98ac926710e05e457e8f11f6612d89813", "last_change": { - "summary": "Completed the RAES identity hard cut for published schema URIs, extension keywords, and identity-bearing contract values under #908; validation semantics are unchanged apart from the intentional breaking name migration.", - "content_hash": "506a10360067ddd75e086c3e1c6cc031201dfb7ba163220d1ef2d7c53c78e3ed" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "63de32ef14bd0309cec32c3794e3a7c98ac926710e05e457e8f11f6612d89813" } } diff --git a/contracts/schema-publication/entries/participant-execution-binding-v1.json b/contracts/schema-publication/entries/participant-execution-binding-v1.json index 38cfb3932..5e0f0aae4 100644 --- a/contracts/schema-publication/entries/participant-execution-binding-v1.json +++ b/contracts/schema-publication/entries/participant-execution-binding-v1.json @@ -2,9 +2,9 @@ "contract_id": "participant-execution-binding-v1", "schema_path": "contracts/schemas/participant-runtime/participant-execution-binding-v1.json", "stability": "draft", - "content_hash": "fa935e3d933584be0f569db57f692a9f8dbff6877af5b711a3bdc9a5917bd105", + "content_hash": "94e19bb76d962427c4b1a5d86ee3c1eac2a732b1a4e78435a412331e51322bb6", "last_change": { - "summary": "Published the exact native participant action-to-target execution relation and finite execution bounds for issue #898 under the RAES schema identity.", - "content_hash": "fa935e3d933584be0f569db57f692a9f8dbff6877af5b711a3bdc9a5917bd105" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "94e19bb76d962427c4b1a5d86ee3c1eac2a732b1a4e78435a412331e51322bb6" } } diff --git a/contracts/schema-publication/entries/participant-execution-control-v1.json b/contracts/schema-publication/entries/participant-execution-control-v1.json index e7979f76c..1e852e1d0 100644 --- a/contracts/schema-publication/entries/participant-execution-control-v1.json +++ b/contracts/schema-publication/entries/participant-execution-control-v1.json @@ -2,9 +2,9 @@ "contract_id": "participant-execution-control-v1", "schema_path": "contracts/schemas/participant-runtime/participant-execution-control-v1.json", "stability": "draft", - "content_hash": "7aead7ff4a66d15a87fd4504e2fe5cb077f60e0667c274e7734d3b5ccc5357b8", + "content_hash": "bed3cf4d05f53154a3fb0de874a86ef7cc8da4750ed2a61e4d90784ad8e0222a", "last_change": { - "summary": "Published generation-fenced start, pause, resume, bounded drain, reset, and teardown requests for issue #898 under the RAES schema identity.", - "content_hash": "7aead7ff4a66d15a87fd4504e2fe5cb077f60e0667c274e7734d3b5ccc5357b8" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "bed3cf4d05f53154a3fb0de874a86ef7cc8da4750ed2a61e4d90784ad8e0222a" } } diff --git a/contracts/schema-publication/entries/participant-execution-service-state-v1.json b/contracts/schema-publication/entries/participant-execution-service-state-v1.json index 0e235dbe8..54916bd73 100644 --- a/contracts/schema-publication/entries/participant-execution-service-state-v1.json +++ b/contracts/schema-publication/entries/participant-execution-service-state-v1.json @@ -2,9 +2,9 @@ "contract_id": "participant-execution-service-state-v1", "schema_path": "contracts/schemas/participant-runtime/participant-execution-service-state-v1.json", "stability": "draft", - "content_hash": "9e1af40ed0e6c7be3766bb4219b23a3f5dd9f78d65d3faa82474f9b86299da46", + "content_hash": "9b3a688001e9ed6473121fa8e8861ca98a245218919233ce4bf75e0b1ef7fd16", "last_change": { - "summary": "Linked participant execution concurrency readback to authoritative resource-budget states for issue #899.", - "content_hash": "9e1af40ed0e6c7be3766bb4219b23a3f5dd9f78d65d3faa82474f9b86299da46" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "9b3a688001e9ed6473121fa8e8861ca98a245218919233ce4bf75e0b1ef7fd16" } } diff --git a/contracts/schema-publication/entries/participant-history-view-v1.json b/contracts/schema-publication/entries/participant-history-view-v1.json index 3959fee02..9b02a221a 100644 --- a/contracts/schema-publication/entries/participant-history-view-v1.json +++ b/contracts/schema-publication/entries/participant-history-view-v1.json @@ -2,9 +2,9 @@ "contract_id": "participant-history-view-v1", "schema_path": "contracts/schemas/control-plane/participant-history-view-v1.json", "stability": "draft", - "content_hash": "483731937b2dbee8c5bc081f4348398a280a6ef28044c17395dcf635ba99c7c4", + "content_hash": "2eb0de43e8e48b3f6f3eeb008c8f5d3be8b3cd585f4d28b1d7974c82c66a8bc9", "last_change": { - "summary": "Projected v3 native resource measurements and policy-scoped budget identity through history views for issue #899.", - "content_hash": "483731937b2dbee8c5bc081f4348398a280a6ef28044c17395dcf635ba99c7c4" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "2eb0de43e8e48b3f6f3eeb008c8f5d3be8b3cd585f4d28b1d7974c82c66a8bc9" } } diff --git a/contracts/schema-publication/entries/participant-implementation-manifest-v1.json b/contracts/schema-publication/entries/participant-implementation-manifest-v1.json index ec93082c0..32e5295a7 100644 --- a/contracts/schema-publication/entries/participant-implementation-manifest-v1.json +++ b/contracts/schema-publication/entries/participant-implementation-manifest-v1.json @@ -2,9 +2,9 @@ "contract_id": "participant-implementation-manifest-v1", "schema_path": "contracts/schemas/participant-implementation-manifest/participant-implementation-manifest-v1.json", "stability": "draft", - "content_hash": "ea14b7737f13e08900758135825095bf12672b99cf7dd2665b0c6049b0d47a40", + "content_hash": "b4ef963347b98da9a5542f3ebdaa612a5e9396f9d18d15aab6c7528b89b6318c", "last_change": { - "summary": "Allowed participant implementations to declare exact-cut participant-decision-surface-v2 capability.", - "content_hash": "ea14b7737f13e08900758135825095bf12672b99cf7dd2665b0c6049b0d47a40" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "b4ef963347b98da9a5542f3ebdaa612a5e9396f9d18d15aab6c7528b89b6318c" } } diff --git a/contracts/schema-publication/entries/participant-implementation-provenance-v1.json b/contracts/schema-publication/entries/participant-implementation-provenance-v1.json index a4d1007bc..b9ffb38ad 100644 --- a/contracts/schema-publication/entries/participant-implementation-provenance-v1.json +++ b/contracts/schema-publication/entries/participant-implementation-provenance-v1.json @@ -2,9 +2,9 @@ "contract_id": "participant-implementation-provenance-v1", "schema_path": "contracts/schemas/participant-implementation-provenance/participant-implementation-provenance-v1.json", "stability": "draft", - "content_hash": "76d081fc933ededd72648dbab37451b3ce638ed346cd6e0bee69a8fb94d445be", + "content_hash": "58a64bb2393f08a721dfd7bd429a277782a32d9131efdc89800823d5f19ba9e4", "last_change": { - "summary": "Completed the RAES identity hard cut for published schema URIs, extension keywords, and identity-bearing contract values under #908; validation semantics are unchanged apart from the intentional breaking name migration.", - "content_hash": "76d081fc933ededd72648dbab37451b3ce638ed346cd6e0bee69a8fb94d445be" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "58a64bb2393f08a721dfd7bd429a277782a32d9131efdc89800823d5f19ba9e4" } } diff --git a/contracts/schema-publication/entries/participant-joint-action-record-v1.json b/contracts/schema-publication/entries/participant-joint-action-record-v1.json index fc4fd0970..5fc077808 100644 --- a/contracts/schema-publication/entries/participant-joint-action-record-v1.json +++ b/contracts/schema-publication/entries/participant-joint-action-record-v1.json @@ -2,9 +2,9 @@ "contract_id": "participant-joint-action-record-v1", "schema_path": "contracts/schemas/participant-runtime/participant-joint-action-record-v1.json", "stability": "draft", - "content_hash": "0af0593bc1fde776db0835d0baff6cd0ae232051e74eac1b8a26f7d1a532c88e", + "content_hash": "7745b370e9d037e25c2cc8bfeb23e99a8a37a894754e02742e2e8421fcb5b8b3", "last_change": { - "summary": "Completed the RAES identity hard cut for published schema URIs, extension keywords, and identity-bearing contract values under #908; validation semantics are unchanged apart from the intentional breaking name migration.", - "content_hash": "0af0593bc1fde776db0835d0baff6cd0ae232051e74eac1b8a26f7d1a532c88e" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "7745b370e9d037e25c2cc8bfeb23e99a8a37a894754e02742e2e8421fcb5b8b3" } } diff --git a/contracts/schema-publication/entries/participant-lifecycle-event-v1.json b/contracts/schema-publication/entries/participant-lifecycle-event-v1.json index b998548de..a7ec4fea8 100644 --- a/contracts/schema-publication/entries/participant-lifecycle-event-v1.json +++ b/contracts/schema-publication/entries/participant-lifecycle-event-v1.json @@ -2,9 +2,9 @@ "contract_id": "participant-lifecycle-event-v1", "schema_path": "contracts/schemas/participant-runtime/participant-lifecycle-event-v1.json", "stability": "draft", - "content_hash": "3bdfd98d46e24c93a9659550f870c8e7c146255e627e74117ccf7b246dcb2afe", + "content_hash": "65840259111cd740022530b80c28a67be71f65d8d4c5ed298742ce13c3fd2b28", "last_change": { - "summary": "Completed the RAES identity hard cut for published schema URIs, extension keywords, and identity-bearing contract values under #908; validation semantics are unchanged apart from the intentional breaking name migration.", - "content_hash": "3bdfd98d46e24c93a9659550f870c8e7c146255e627e74117ccf7b246dcb2afe" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "65840259111cd740022530b80c28a67be71f65d8d4c5ed298742ce13c3fd2b28" } } diff --git a/contracts/schema-publication/entries/participant-observation-envelope-v1.json b/contracts/schema-publication/entries/participant-observation-envelope-v1.json index 4256b2210..4c11badef 100644 --- a/contracts/schema-publication/entries/participant-observation-envelope-v1.json +++ b/contracts/schema-publication/entries/participant-observation-envelope-v1.json @@ -2,9 +2,9 @@ "contract_id": "participant-observation-envelope-v1", "schema_path": "contracts/schemas/participant-runtime/participant-observation-envelope-v1.json", "stability": "draft", - "content_hash": "c5ad70819e897df97b60db1960e5eac3ac3e1435641e7013b5fd9ae259710823", + "content_hash": "735f292ec936892c59e164d477aae3be1117f3e09805dddc73feb6a021699f7f", "last_change": { - "summary": "Completed the RAES identity hard cut for published schema URIs, extension keywords, and identity-bearing contract values under #908; validation semantics are unchanged apart from the intentional breaking name migration.", - "content_hash": "c5ad70819e897df97b60db1960e5eac3ac3e1435641e7013b5fd9ae259710823" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "735f292ec936892c59e164d477aae3be1117f3e09805dddc73feb6a021699f7f" } } diff --git a/contracts/schema-publication/entries/participant-outcome-report-v1.json b/contracts/schema-publication/entries/participant-outcome-report-v1.json index f14249077..a62612fa2 100644 --- a/contracts/schema-publication/entries/participant-outcome-report-v1.json +++ b/contracts/schema-publication/entries/participant-outcome-report-v1.json @@ -2,9 +2,9 @@ "contract_id": "participant-outcome-report-v1", "schema_path": "contracts/schemas/participant-runtime/participant-outcome-report-v1.json", "stability": "draft", - "content_hash": "782a8d5117940d55d50802e4cd26b34d1740a1b2d1a0503b6240c16b6bc66da9", + "content_hash": "ae05f3898138241264f0a3deca8fabdd5d4336caf486fe58ad6efe0d6203dc93", "last_change": { - "summary": "Completed the RAES identity hard cut for published schema URIs, extension keywords, and identity-bearing contract values under #908; validation semantics are unchanged apart from the intentional breaking name migration.", - "content_hash": "782a8d5117940d55d50802e4cd26b34d1740a1b2d1a0503b6240c16b6bc66da9" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "ae05f3898138241264f0a3deca8fabdd5d4336caf486fe58ad6efe0d6203dc93" } } diff --git a/contracts/schema-publication/entries/participant-resource-budget-event-v1.json b/contracts/schema-publication/entries/participant-resource-budget-event-v1.json index ae0652722..f30992594 100644 --- a/contracts/schema-publication/entries/participant-resource-budget-event-v1.json +++ b/contracts/schema-publication/entries/participant-resource-budget-event-v1.json @@ -2,9 +2,9 @@ "contract_id": "participant-resource-budget-event-v1", "schema_path": "contracts/schemas/participant-runtime/participant-resource-budget-event-v1.json", "stability": "draft", - "content_hash": "b71b0880a3751dac2a51fa34621fdd1b8a1ff6e37ddd6c7a6c52b5ff3938d56b", + "content_hash": "c4e20416e89dd165993176df9e4c7615604335ccb6bab817607e0cb8c6e395ae", "last_change": { - "summary": "Published policy-scoped, transition-consistent resource evidence events with measured-use commits for issue #899.", - "content_hash": "b71b0880a3751dac2a51fa34621fdd1b8a1ff6e37ddd6c7a6c52b5ff3938d56b" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "c4e20416e89dd165993176df9e4c7615604335ccb6bab817607e0cb8c6e395ae" } } diff --git a/contracts/schema-publication/entries/participant-resource-budget-policy-v1.json b/contracts/schema-publication/entries/participant-resource-budget-policy-v1.json index ecec22e26..1116bb4e0 100644 --- a/contracts/schema-publication/entries/participant-resource-budget-policy-v1.json +++ b/contracts/schema-publication/entries/participant-resource-budget-policy-v1.json @@ -2,9 +2,9 @@ "contract_id": "participant-resource-budget-policy-v1", "schema_path": "contracts/schemas/participant-runtime/participant-resource-budget-policy-v1.json", "stability": "draft", - "content_hash": "40280cca88f0aa01c60861cea70aa5f6fff9ded2fd85473c45e339194317fe1d", + "content_hash": "0d3aa2919271d566df9b8d0bb9882cc56f78b4de298c38485c7775fbb34cd574", "last_change": { - "summary": "Published canonical participant resource-budget owners, typed demands, meters, reset policy, and fairness obligations for issue #899.", - "content_hash": "40280cca88f0aa01c60861cea70aa5f6fff9ded2fd85473c45e339194317fe1d" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "0d3aa2919271d566df9b8d0bb9882cc56f78b4de298c38485c7775fbb34cd574" } } diff --git a/contracts/schema-publication/entries/participant-resource-budget-state-v1.json b/contracts/schema-publication/entries/participant-resource-budget-state-v1.json index 0459cd56d..60fde9616 100644 --- a/contracts/schema-publication/entries/participant-resource-budget-state-v1.json +++ b/contracts/schema-publication/entries/participant-resource-budget-state-v1.json @@ -2,9 +2,9 @@ "contract_id": "participant-resource-budget-state-v1", "schema_path": "contracts/schemas/participant-runtime/participant-resource-budget-state-v1.json", "stability": "draft", - "content_hash": "6fddd2ea39a2df27846c35e8c88e9985d64e12b78151f4fc23978d0820d49d8d", + "content_hash": "a37fc7a7613582db22a7b3ae0c225e6643d6deab40fc22b97f389eeb28d23053", "last_change": { - "summary": "Published canonical policy-scoped budget state for generation-fenced reservations, measured use, and reconciliation for issue #899.", - "content_hash": "6fddd2ea39a2df27846c35e8c88e9985d64e12b78151f4fc23978d0820d49d8d" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "a37fc7a7613582db22a7b3ae0c225e6643d6deab40fc22b97f389eeb28d23053" } } diff --git a/contracts/schema-publication/entries/participant-resource-pool-capacity-v1.json b/contracts/schema-publication/entries/participant-resource-pool-capacity-v1.json index e44381acf..de92269cb 100644 --- a/contracts/schema-publication/entries/participant-resource-pool-capacity-v1.json +++ b/contracts/schema-publication/entries/participant-resource-pool-capacity-v1.json @@ -2,9 +2,9 @@ "contract_id": "participant-resource-pool-capacity-v1", "schema_path": "contracts/schemas/participant-runtime/participant-resource-pool-capacity-v1.json", "stability": "draft", - "content_hash": "754e61686f6eab224e3ce605ff403e67797182b6e613deccdbbeaa0ca9d60022", + "content_hash": "7509b853a84876116e1261d134e83c0747321f9bc598b4dc9168790780f57e3f", "last_change": { - "summary": "Published configuration-bound logical pool capacity, owner, meter, fairness, isolation, digest, and evidence claims for issue #899.", - "content_hash": "754e61686f6eab224e3ce605ff403e67797182b6e613deccdbbeaa0ca9d60022" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "7509b853a84876116e1261d134e83c0747321f9bc598b4dc9168790780f57e3f" } } diff --git a/contracts/schema-publication/entries/participant-shared-state-record-v1.json b/contracts/schema-publication/entries/participant-shared-state-record-v1.json index 858df1888..45d10b0e0 100644 --- a/contracts/schema-publication/entries/participant-shared-state-record-v1.json +++ b/contracts/schema-publication/entries/participant-shared-state-record-v1.json @@ -2,9 +2,9 @@ "contract_id": "participant-shared-state-record-v1", "schema_path": "contracts/schemas/participant-runtime/participant-shared-state-record-v1.json", "stability": "draft", - "content_hash": "525cb514917251807cb5c1cdf52dca0118663416e59f36da35045e8cfed8d31b", + "content_hash": "d66c4fd7c34abc68fdd48af3cfea9b7f576c0a62cd5275c0f7305be4100b8b53", "last_change": { - "summary": "Completed the RAES identity hard cut for published schema URIs, extension keywords, and identity-bearing contract values under #908; validation semantics are unchanged apart from the intentional breaking name migration.", - "content_hash": "525cb514917251807cb5c1cdf52dca0118663416e59f36da35045e8cfed8d31b" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "d66c4fd7c34abc68fdd48af3cfea9b7f576c0a62cd5275c0f7305be4100b8b53" } } diff --git a/contracts/schema-publication/entries/participant-status-view-v1.json b/contracts/schema-publication/entries/participant-status-view-v1.json index 49a0644df..715dd8222 100644 --- a/contracts/schema-publication/entries/participant-status-view-v1.json +++ b/contracts/schema-publication/entries/participant-status-view-v1.json @@ -2,9 +2,9 @@ "contract_id": "participant-status-view-v1", "schema_path": "contracts/schemas/control-plane/participant-status-view-v1.json", "stability": "draft", - "content_hash": "704e0997fa71fd8bc199f70034f769d301ccfd4d23a577dc676ae77fbae7758a", + "content_hash": "1550d4f8c8d438b5a9efa4e41c09663d1f586698084312b89a63500f4185b7a1", "last_change": { - "summary": "Completed the RAES identity hard cut for published schema URIs, extension keywords, and identity-bearing contract values under #908; validation semantics are unchanged apart from the intentional breaking name migration.", - "content_hash": "704e0997fa71fd8bc199f70034f769d301ccfd4d23a577dc676ae77fbae7758a" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "1550d4f8c8d438b5a9efa4e41c09663d1f586698084312b89a63500f4185b7a1" } } diff --git a/contracts/schema-publication/entries/participant-time-management-context-v1.json b/contracts/schema-publication/entries/participant-time-management-context-v1.json index 1ad013e64..9b9315adc 100644 --- a/contracts/schema-publication/entries/participant-time-management-context-v1.json +++ b/contracts/schema-publication/entries/participant-time-management-context-v1.json @@ -2,9 +2,9 @@ "contract_id": "participant-time-management-context-v1", "schema_path": "contracts/schemas/participant-runtime/participant-time-management-context-v1.json", "stability": "draft", - "content_hash": "f73a94028c86c301ea487b08ddf985b0badb03a91309e3028dfed05226614c3c", + "content_hash": "39389146e500fcbdde8518c4256e4825eb4592c3cb7cd59a006feb5304ad3d69", "last_change": { - "summary": "Completed the RAES identity hard cut for published schema URIs, extension keywords, and identity-bearing contract values under #908; validation semantics are unchanged apart from the intentional breaking name migration.", - "content_hash": "f73a94028c86c301ea487b08ddf985b0badb03a91309e3028dfed05226614c3c" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "39389146e500fcbdde8518c4256e4825eb4592c3cb7cd59a006feb5304ad3d69" } } diff --git a/contracts/schema-publication/entries/processor-manifest-v2.json b/contracts/schema-publication/entries/processor-manifest-v2.json index 6c781b15b..812942b94 100644 --- a/contracts/schema-publication/entries/processor-manifest-v2.json +++ b/contracts/schema-publication/entries/processor-manifest-v2.json @@ -2,9 +2,9 @@ "contract_id": "processor-manifest-v2", "schema_path": "contracts/schemas/processor-manifest/processor-manifest-v2.json", "stability": "draft", - "content_hash": "17335ec9416d0ec5d0e3d7bee409c6d1caabd6250f8cf4159243e4483ebd8897", + "content_hash": "35278440a89aee708a6527b5e66bc14c3ad200491ba121dd0b48bb9a03ce52d8", "last_change": { - "summary": "Authorized processor declarations for the participant resource-budget policy contract introduced by issue #899.", - "content_hash": "17335ec9416d0ec5d0e3d7bee409c6d1caabd6250f8cf4159243e4483ebd8897" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "35278440a89aee708a6527b5e66bc14c3ad200491ba121dd0b48bb9a03ce52d8" } } diff --git a/contracts/schema-publication/entries/proposition-truth-result-v1.json b/contracts/schema-publication/entries/proposition-truth-result-v1.json index 718f974a9..60181b4df 100644 --- a/contracts/schema-publication/entries/proposition-truth-result-v1.json +++ b/contracts/schema-publication/entries/proposition-truth-result-v1.json @@ -2,9 +2,9 @@ "contract_id": "proposition-truth-result-v1", "schema_path": "contracts/schemas/control-plane/proposition-truth-result-v1.json", "stability": "draft", - "content_hash": "36ead895c2f3be5c975077ccaf4e75e8026fd0a9243c5a67a894999e4f424ac2", + "content_hash": "25f6100c931dcd7e7eeace7f3900763cd9f283987be542f81d8b11beb601cae4", "last_change": { - "summary": "Completed the RAES identity hard cut for published schema URIs, extension keywords, and identity-bearing contract values under #908; validation semantics are unchanged apart from the intentional breaking name migration.", - "content_hash": "36ead895c2f3be5c975077ccaf4e75e8026fd0a9243c5a67a894999e4f424ac2" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "25f6100c931dcd7e7eeace7f3900763cd9f283987be542f81d8b11beb601cae4" } } diff --git a/contracts/schema-publication/entries/provisioning-plan-v1.json b/contracts/schema-publication/entries/provisioning-plan-v1.json index ac69cd29c..6ce732a2a 100644 --- a/contracts/schema-publication/entries/provisioning-plan-v1.json +++ b/contracts/schema-publication/entries/provisioning-plan-v1.json @@ -2,9 +2,9 @@ "contract_id": "provisioning-plan-v1", "schema_path": "contracts/schemas/plans/provisioning-plan-v1.json", "stability": "draft", - "content_hash": "70af50f87d61eb5337ca6658b5e9e9d227a99f38fc66dead05bca5122200f003", + "content_hash": "d4e85ac33f2f2add86c240c617a0d291404604cb3c8631dded6ea0ee766dd487", "last_change": { - "summary": "Completed the RAES identity hard cut for published schema URIs, extension keywords, and identity-bearing contract values under #908; validation semantics are unchanged apart from the intentional breaking name migration.", - "content_hash": "70af50f87d61eb5337ca6658b5e9e9d227a99f38fc66dead05bca5122200f003" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "d4e85ac33f2f2add86c240c617a0d291404604cb3c8631dded6ea0ee766dd487" } } diff --git a/contracts/schema-publication/entries/raes-semantic-invariants-v1.json b/contracts/schema-publication/entries/raes-semantic-invariants-v1.json index af9523d8e..760e91026 100644 --- a/contracts/schema-publication/entries/raes-semantic-invariants-v1.json +++ b/contracts/schema-publication/entries/raes-semantic-invariants-v1.json @@ -2,9 +2,9 @@ "contract_id": "raes-semantic-invariants-v1", "schema_path": "contracts/schemas/profiles/raes-semantic-invariants-v1.json", "stability": "draft", - "content_hash": "cfe89c457ff1ac21334768ab82b30ce2b1e28eb165bb64a91d1b222e05ece943", + "content_hash": "7af5c717c62c9780ea8b6042f0bb5642c04e2b84aee03ce1b3dca5f36823d14b", "last_change": { - "summary": "Completed the RAES identity hard cut for published schema URIs, extension keywords, and identity-bearing contract values under #908; validation semantics are unchanged apart from the intentional breaking name migration.", - "content_hash": "cfe89c457ff1ac21334768ab82b30ce2b1e28eb165bb64a91d1b222e05ece943" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "7af5c717c62c9780ea8b6042f0bb5642c04e2b84aee03ce1b3dca5f36823d14b" } } diff --git a/contracts/schema-publication/entries/random-stream-profile-v1.json b/contracts/schema-publication/entries/random-stream-profile-v1.json index 68416488c..77019219b 100644 --- a/contracts/schema-publication/entries/random-stream-profile-v1.json +++ b/contracts/schema-publication/entries/random-stream-profile-v1.json @@ -2,9 +2,9 @@ "contract_id": "random-stream-profile-v1", "schema_path": "contracts/schemas/profiles/random-stream-profile-v1.json", "stability": "draft", - "content_hash": "28f4a59b393157c1995a5043029c9b109cc512a7e84d64784835619fdff40a59", + "content_hash": "f594185a8db1f8320822089b90649fed6d4175285da232484bc225d2e60775c1", "last_change": { - "summary": "Completed the RAES identity hard cut for published schema URIs, extension keywords, and identity-bearing contract values under #908; validation semantics are unchanged apart from the intentional breaking name migration.", - "content_hash": "28f4a59b393157c1995a5043029c9b109cc512a7e84d64784835619fdff40a59" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "f594185a8db1f8320822089b90649fed6d4175285da232484bc225d2e60775c1" } } diff --git a/contracts/schema-publication/entries/random-stream-vector-v1.json b/contracts/schema-publication/entries/random-stream-vector-v1.json index 19249fae5..253f8d319 100644 --- a/contracts/schema-publication/entries/random-stream-vector-v1.json +++ b/contracts/schema-publication/entries/random-stream-vector-v1.json @@ -2,9 +2,9 @@ "contract_id": "random-stream-vector-v1", "schema_path": "contracts/schemas/profiles/random-stream-vector-v1.json", "stability": "draft", - "content_hash": "32d04d87018c3ac25a85a3a27e3d7f9cbe27ab37477380c7c8d786257d80e883", + "content_hash": "65e838472c5d1ac7a0eb2ffa4bfe6f3a756c77d776158c6dba8510e2edbc9001", "last_change": { - "summary": "Added the closed participant-occurrence stream-address variant to canonical random-stream vectors for issue #897.", - "content_hash": "32d04d87018c3ac25a85a3a27e3d7f9cbe27ab37477380c7c8d786257d80e883" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "65e838472c5d1ac7a0eb2ffa4bfe6f3a756c77d776158c6dba8510e2edbc9001" } } diff --git a/contracts/schema-publication/entries/realization-envelope-v1.json b/contracts/schema-publication/entries/realization-envelope-v1.json index 31c501348..a041ffecd 100644 --- a/contracts/schema-publication/entries/realization-envelope-v1.json +++ b/contracts/schema-publication/entries/realization-envelope-v1.json @@ -2,9 +2,9 @@ "contract_id": "realization-envelope-v1", "schema_path": "contracts/schemas/realization-envelope/realization-envelope-v1.json", "stability": "draft", - "content_hash": "124da1052563cc1457232da763919f02c23f935a86e21e49c1e0d7b781606253", + "content_hash": "1f54cfaf7288a61890972527dc44415924c8590a1d40795bea13f8cd0cf1e878", "last_change": { - "summary": "Completed the RAES identity hard cut for published schema URIs, extension keywords, and identity-bearing contract values under #908; validation semantics are unchanged apart from the intentional breaking name migration.", - "content_hash": "124da1052563cc1457232da763919f02c23f935a86e21e49c1e0d7b781606253" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "1f54cfaf7288a61890972527dc44415924c8590a1d40795bea13f8cd0cf1e878" } } diff --git a/contracts/schema-publication/entries/realized-time-model-v1.json b/contracts/schema-publication/entries/realized-time-model-v1.json index aa9e56952..f5be7d129 100644 --- a/contracts/schema-publication/entries/realized-time-model-v1.json +++ b/contracts/schema-publication/entries/realized-time-model-v1.json @@ -2,9 +2,9 @@ "contract_id": "realized-time-model-v1", "schema_path": "contracts/schemas/time/realized-time-model-v1.json", "stability": "draft", - "content_hash": "0034fe68c2981896e4c8e08743bd9e18ae20f9aa9bde91d92f1af1b2dc0537ba", + "content_hash": "3ce01b4927e0975c48d7398c013ab5624bf6d74dbc04b259d8a9529fd44cca48", "last_change": { - "summary": "Completed the RAES identity hard cut for published schema URIs, extension keywords, and identity-bearing contract values under #908; validation semantics are unchanged apart from the intentional breaking name migration.", - "content_hash": "0034fe68c2981896e4c8e08743bd9e18ae20f9aa9bde91d92f1af1b2dc0537ba" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "3ce01b4927e0975c48d7398c013ab5624bf6d74dbc04b259d8a9529fd44cca48" } } diff --git a/contracts/schema-publication/entries/reference-models-v1.json b/contracts/schema-publication/entries/reference-models-v1.json index d72f89056..943993c6a 100644 --- a/contracts/schema-publication/entries/reference-models-v1.json +++ b/contracts/schema-publication/entries/reference-models-v1.json @@ -2,9 +2,9 @@ "contract_id": "reference-models-v1", "schema_path": "contracts/schemas/concept-authority/reference-models-v1.json", "stability": "draft", - "content_hash": "e028dfbb74c458399eb3012b4abcb09bef09e047fc1dd74dd0f4dc1f20fa64f0", + "content_hash": "6b379f9203be74259f1905e3ff13c25bb3125a04eba9dcc6bafedea40d50e416", "last_change": { - "summary": "Completed the RAES identity hard cut for published schema URIs, extension keywords, and identity-bearing contract values under #908; validation semantics are unchanged apart from the intentional breaking name migration.", - "content_hash": "e028dfbb74c458399eb3012b4abcb09bef09e047fc1dd74dd0f4dc1f20fa64f0" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "6b379f9203be74259f1905e3ff13c25bb3125a04eba9dcc6bafedea40d50e416" } } diff --git a/contracts/schema-publication/entries/reusable-asset-trust-policy-v1.json b/contracts/schema-publication/entries/reusable-asset-trust-policy-v1.json index aacececf1..9eebdac93 100644 --- a/contracts/schema-publication/entries/reusable-asset-trust-policy-v1.json +++ b/contracts/schema-publication/entries/reusable-asset-trust-policy-v1.json @@ -2,9 +2,9 @@ "contract_id": "reusable-asset-trust-policy-v1", "schema_path": "contracts/schemas/asset-trust/reusable-asset-trust-policy-v1.json", "stability": "draft", - "content_hash": "855845de67295da833b426797dfbd60e13bafeaebc2b92e2a1c195748ccebeab", + "content_hash": "8283ffb71a4739e30c9a88ebb8ab90efa8854aa40b58e95e123bc83f54c858b5", "last_change": { - "summary": "Completed the RAES identity hard cut for published schema URIs, extension keywords, and identity-bearing contract values under #908; validation semantics are unchanged apart from the intentional breaking name migration.", - "content_hash": "855845de67295da833b426797dfbd60e13bafeaebc2b92e2a1c195748ccebeab" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "8283ffb71a4739e30c9a88ebb8ab90efa8854aa40b58e95e123bc83f54c858b5" } } diff --git a/contracts/schema-publication/entries/runtime-fact-binding-plane-v1.json b/contracts/schema-publication/entries/runtime-fact-binding-plane-v1.json index 7b17c4b15..41251a382 100644 --- a/contracts/schema-publication/entries/runtime-fact-binding-plane-v1.json +++ b/contracts/schema-publication/entries/runtime-fact-binding-plane-v1.json @@ -2,9 +2,9 @@ "contract_id": "runtime-fact-binding-plane-v1", "schema_path": "contracts/schemas/participant-runtime/runtime-fact-binding-plane-v1.json", "stability": "draft", - "content_hash": "4ebbf42cc283ad2419d0bbb8724f30e437bec1b1cf1058b4c580475eb83f1699", + "content_hash": "ee6c288abf762b601ca0b181a6df5797f172dcff2b7bd5713edfe06f7aedbb4a", "last_change": { - "summary": "Completed the RAES identity hard cut for published schema URIs, extension keywords, and identity-bearing contract values under #908; validation semantics are unchanged apart from the intentional breaking name migration.", - "content_hash": "4ebbf42cc283ad2419d0bbb8724f30e437bec1b1cf1058b4c580475eb83f1699" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "ee6c288abf762b601ca0b181a6df5797f172dcff2b7bd5713edfe06f7aedbb4a" } } diff --git a/contracts/schema-publication/entries/runtime-snapshot-v1.json b/contracts/schema-publication/entries/runtime-snapshot-v1.json index 7b7e432ad..4a9020172 100644 --- a/contracts/schema-publication/entries/runtime-snapshot-v1.json +++ b/contracts/schema-publication/entries/runtime-snapshot-v1.json @@ -2,9 +2,9 @@ "contract_id": "runtime-snapshot-v1", "schema_path": "contracts/schemas/snapshots/runtime-snapshot-v1.json", "stability": "draft", - "content_hash": "73b2b3eba4400777c380b1d532614d29c2eb83ec82da5fef127918768aa2f8d8", + "content_hash": "42201288da8990fe0214a5f02fb53de7d2500dca86f42663ffbddd6823f03ffa", "last_change": { - "summary": "Added artifact satisfaction evidence and participant resource-budget state and allocation evidence for issues #920 and #899.", - "content_hash": "73b2b3eba4400777c380b1d532614d29c2eb83ec82da5fef127918768aa2f8d8" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "42201288da8990fe0214a5f02fb53de7d2500dca86f42663ffbddd6823f03ffa" } } diff --git a/contracts/schema-publication/entries/scenario-instantiation-request-v1.json b/contracts/schema-publication/entries/scenario-instantiation-request-v1.json index a94c67f40..5df9437ab 100644 --- a/contracts/schema-publication/entries/scenario-instantiation-request-v1.json +++ b/contracts/schema-publication/entries/scenario-instantiation-request-v1.json @@ -2,9 +2,9 @@ "contract_id": "scenario-instantiation-request-v1", "schema_path": "contracts/schemas/sdl/scenario-instantiation-request-v1.json", "stability": "draft", - "content_hash": "54a8cdf1108003f61b79b9d9c0f0a7321a4078a55cf81f604c6882dd420b6616", + "content_hash": "f008fbdab7624d288c38fe9e142d24eb55c34cc390032cab35cb0c30344d9e04", "last_change": { - "summary": "Completed the RAES identity hard cut for published schema URIs, extension keywords, and identity-bearing contract values under #908; validation semantics are unchanged apart from the intentional breaking name migration.", - "content_hash": "54a8cdf1108003f61b79b9d9c0f0a7321a4078a55cf81f604c6882dd420b6616" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "f008fbdab7624d288c38fe9e142d24eb55c34cc390032cab35cb0c30344d9e04" } } diff --git a/contracts/schema-publication/entries/scenario-satisfiability-evidence-v1.json b/contracts/schema-publication/entries/scenario-satisfiability-evidence-v1.json index abc441202..07c65390a 100644 --- a/contracts/schema-publication/entries/scenario-satisfiability-evidence-v1.json +++ b/contracts/schema-publication/entries/scenario-satisfiability-evidence-v1.json @@ -2,9 +2,9 @@ "contract_id": "scenario-satisfiability-evidence-v1", "schema_path": "contracts/schemas/satisfiability/scenario-satisfiability-evidence-v1.json", "stability": "draft", - "content_hash": "3ebaa6f78e03ebbdf06052cfc85abc4f1f40746ce0ea7a8eccc96637e1fcdace", + "content_hash": "51e4814898fd1457cb999020332554596f715540ecbd22078e1936ad5468daf0", "last_change": { - "summary": "Carried portable artifact requirements and scoped participant resource budgets through satisfiability evidence for issues #920 and #899.", - "content_hash": "3ebaa6f78e03ebbdf06052cfc85abc4f1f40746ce0ea7a8eccc96637e1fcdace" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "51e4814898fd1457cb999020332554596f715540ecbd22078e1936ad5468daf0" } } diff --git a/contracts/schema-publication/entries/scheduler-isolation-proof-v1.json b/contracts/schema-publication/entries/scheduler-isolation-proof-v1.json index 90d554bef..c6d484ef6 100644 --- a/contracts/schema-publication/entries/scheduler-isolation-proof-v1.json +++ b/contracts/schema-publication/entries/scheduler-isolation-proof-v1.json @@ -2,9 +2,9 @@ "contract_id": "scheduler-isolation-proof-v1", "schema_path": "contracts/schemas/control-plane/scheduler-isolation-proof-v1.json", "stability": "draft", - "content_hash": "ebf37a997518da860d7e023aef431a2d7eb5c1ea9888d88d015ed29ab1a3fd72", + "content_hash": "619f426ef06aca930f668b77820fa522475d73eb241a47423461f565a347f65d", "last_change": { - "summary": "Completed the RAES identity hard cut for published schema URIs, extension keywords, and identity-bearing contract values under #908; validation semantics are unchanged apart from the intentional breaking name migration.", - "content_hash": "ebf37a997518da860d7e023aef431a2d7eb5c1ea9888d88d015ed29ab1a3fd72" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "619f426ef06aca930f668b77820fa522475d73eb241a47423461f565a347f65d" } } diff --git a/contracts/schema-publication/entries/scientific-completeness-assessment-v1.json b/contracts/schema-publication/entries/scientific-completeness-assessment-v1.json index 87878c896..37090f666 100644 --- a/contracts/schema-publication/entries/scientific-completeness-assessment-v1.json +++ b/contracts/schema-publication/entries/scientific-completeness-assessment-v1.json @@ -2,9 +2,9 @@ "contract_id": "scientific-completeness-assessment-v1", "schema_path": "contracts/schemas/profiles/scientific-completeness-assessment-v1.json", "stability": "draft", - "content_hash": "77d73cf5f338802afd8d3d62552148d45e22af0eac562b8d2aaa86a7043ef1de", + "content_hash": "5db146299d691116e445bed420387e0a221801194c4deabbdd50f022ff7de5ac", "last_change": { - "summary": "Completed the RAES identity hard cut for published schema URIs, extension keywords, and identity-bearing contract values under #908; validation semantics are unchanged apart from the intentional breaking name migration.", - "content_hash": "77d73cf5f338802afd8d3d62552148d45e22af0eac562b8d2aaa86a7043ef1de" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "5db146299d691116e445bed420387e0a221801194c4deabbdd50f022ff7de5ac" } } diff --git a/contracts/schema-publication/entries/scientific-completeness-taxonomy-v1.json b/contracts/schema-publication/entries/scientific-completeness-taxonomy-v1.json index 0ed34d232..3d2b01e34 100644 --- a/contracts/schema-publication/entries/scientific-completeness-taxonomy-v1.json +++ b/contracts/schema-publication/entries/scientific-completeness-taxonomy-v1.json @@ -2,9 +2,9 @@ "contract_id": "scientific-completeness-taxonomy-v1", "schema_path": "contracts/schemas/profiles/scientific-completeness-taxonomy-v1.json", "stability": "draft", - "content_hash": "8236164dfb48091b5e3dd8ca187ea6ee4df07ad8da48bc6b84628c74c166b129", + "content_hash": "02fe8159e45d134c69b7d6b5bd05964bd87349d7bdfab7da14dd9974e444323b", "last_change": { - "summary": "Completed the RAES identity hard cut for published schema URIs, extension keywords, and identity-bearing contract values under #908; validation semantics are unchanged apart from the intentional breaking name migration.", - "content_hash": "8236164dfb48091b5e3dd8ca187ea6ee4df07ad8da48bc6b84628c74c166b129" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "02fe8159e45d134c69b7d6b5bd05964bd87349d7bdfab7da14dd9974e444323b" } } diff --git a/contracts/schema-publication/entries/sdl-authoring-input-v1.json b/contracts/schema-publication/entries/sdl-authoring-input-v1.json index 2bd64f743..629e7c8b6 100644 --- a/contracts/schema-publication/entries/sdl-authoring-input-v1.json +++ b/contracts/schema-publication/entries/sdl-authoring-input-v1.json @@ -2,9 +2,9 @@ "contract_id": "sdl-authoring-input-v1", "schema_path": "contracts/schemas/sdl/sdl-authoring-input-v1.json", "stability": "draft", - "content_hash": "d8e490195ae4fb192e559686d8089c8b13ac69d19fb1b8682192275f75f5623e", + "content_hash": "5009bed0bb0cbb633ad9fd5adf4af890a645df6e48f5ca1e2f8750a6db2a6c95", "last_change": { - "summary": "Published portable Source artifact authoring and scoped participant resource-budget policy for issues #920 and #899.", - "content_hash": "d8e490195ae4fb192e559686d8089c8b13ac69d19fb1b8682192275f75f5623e" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "5009bed0bb0cbb633ad9fd5adf4af890a645df6e48f5ca1e2f8750a6db2a6c95" } } diff --git a/contracts/schema-publication/entries/sdl-lineage-ledger-v1.json b/contracts/schema-publication/entries/sdl-lineage-ledger-v1.json index 7de4a7752..89059a08d 100644 --- a/contracts/schema-publication/entries/sdl-lineage-ledger-v1.json +++ b/contracts/schema-publication/entries/sdl-lineage-ledger-v1.json @@ -2,9 +2,9 @@ "contract_id": "sdl-lineage-ledger-v1", "schema_path": "contracts/schemas/provenance/sdl-lineage-ledger-v1.json", "stability": "draft", - "content_hash": "9cbb6dc73655256fb149d2fdabea9af41fae71d56852f0afa528f28ddfdeaf20", + "content_hash": "6cb6ee30ebe8e6744a750eedf04cd8eb53df0047a535e3575e77e71203bf7ca7", "last_change": { - "summary": "Completed the RAES identity hard cut for published schema URIs, extension keywords, and identity-bearing contract values under #908; validation semantics are unchanged apart from the intentional breaking name migration.", - "content_hash": "9cbb6dc73655256fb149d2fdabea9af41fae71d56852f0afa528f28ddfdeaf20" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "6cb6ee30ebe8e6744a750eedf04cd8eb53df0047a535e3575e77e71203bf7ca7" } } diff --git a/contracts/schema-publication/entries/semantic-profile-v1.json b/contracts/schema-publication/entries/semantic-profile-v1.json index 279ea9fbf..161fb31bb 100644 --- a/contracts/schema-publication/entries/semantic-profile-v1.json +++ b/contracts/schema-publication/entries/semantic-profile-v1.json @@ -2,9 +2,9 @@ "contract_id": "semantic-profile-v1", "schema_path": "contracts/schemas/profiles/semantic-profile-v1.json", "stability": "draft", - "content_hash": "a3d9fdfea509aad4ea13977457a6467771c33126d2a43cf553161065114d6b90", + "content_hash": "0c9cb1ea7a9e0aa061e2fd133b270f088dbf451520c02baf7133fa5568260568", "last_change": { - "summary": "Completed the RAES identity hard cut for published schema URIs, extension keywords, and identity-bearing contract values under #908; validation semantics are unchanged apart from the intentional breaking name migration.", - "content_hash": "a3d9fdfea509aad4ea13977457a6467771c33126d2a43cf553161065114d6b90" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "0c9cb1ea7a9e0aa061e2fd133b270f088dbf451520c02baf7133fa5568260568" } } diff --git a/contracts/schema-publication/entries/time-model-v1.json b/contracts/schema-publication/entries/time-model-v1.json index f710d0c46..9a21fd75b 100644 --- a/contracts/schema-publication/entries/time-model-v1.json +++ b/contracts/schema-publication/entries/time-model-v1.json @@ -2,9 +2,9 @@ "contract_id": "time-model-v1", "schema_path": "contracts/schemas/time/time-model-v1.json", "stability": "draft", - "content_hash": "14b9679439dd53c3a0e70f1518c3271ecef729032d2085f0b38707271204870a", + "content_hash": "09d8427a8ec52e44c9d078ba3de889b0fed8812ef0a509ab8a462668d3d6d8cd", "last_change": { - "summary": "Completed the RAES identity hard cut for published schema URIs, extension keywords, and identity-bearing contract values under #908; validation semantics are unchanged apart from the intentional breaking name migration.", - "content_hash": "14b9679439dd53c3a0e70f1518c3271ecef729032d2085f0b38707271204870a" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "09d8427a8ec52e44c9d078ba3de889b0fed8812ef0a509ab8a462668d3d6d8cd" } } diff --git a/contracts/schema-publication/entries/time-runtime-state-v1.json b/contracts/schema-publication/entries/time-runtime-state-v1.json index 76156d582..8cb25ff26 100644 --- a/contracts/schema-publication/entries/time-runtime-state-v1.json +++ b/contracts/schema-publication/entries/time-runtime-state-v1.json @@ -2,9 +2,9 @@ "contract_id": "time-runtime-state-v1", "schema_path": "contracts/schemas/time/time-runtime-state-v1.json", "stability": "draft", - "content_hash": "f5092734db63333c6ffd1120730bc5b3343c90fa2ae6056d2e9a51194e4bca1f", + "content_hash": "a5806e28394dc8722100f3cc6277e8f3ccbcc943724824f204fcfed1f2413bd3", "last_change": { - "summary": "Completed the RAES identity hard cut for published schema URIs, extension keywords, and identity-bearing contract values under #908; validation semantics are unchanged apart from the intentional breaking name migration.", - "content_hash": "f5092734db63333c6ffd1120730bc5b3343c90fa2ae6056d2e9a51194e4bca1f" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "a5806e28394dc8722100f3cc6277e8f3ccbcc943724824f204fcfed1f2413bd3" } } diff --git a/contracts/schema-publication/entries/trial-cleanup-plan-v1.json b/contracts/schema-publication/entries/trial-cleanup-plan-v1.json index ecd1cbd3d..f4737558a 100644 --- a/contracts/schema-publication/entries/trial-cleanup-plan-v1.json +++ b/contracts/schema-publication/entries/trial-cleanup-plan-v1.json @@ -2,9 +2,9 @@ "contract_id": "trial-cleanup-plan-v1", "schema_path": "contracts/schemas/plans/trial-cleanup-plan-v1.json", "stability": "draft", - "content_hash": "4d0ced18dc531cd5e5619bfe5558b49ad5856b5b94afc3d6ca40a4475aedc032", + "content_hash": "79f389e54ad2ba55824d5311db65b59ea9cf33e92271dafcdc89ccefac0f9cd3", "last_change": { - "summary": "Completed the RAES identity hard cut for published schema URIs, extension keywords, and identity-bearing contract values under #908; validation semantics are unchanged apart from the intentional breaking name migration.", - "content_hash": "4d0ced18dc531cd5e5619bfe5558b49ad5856b5b94afc3d6ca40a4475aedc032" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "79f389e54ad2ba55824d5311db65b59ea9cf33e92271dafcdc89ccefac0f9cd3" } } diff --git a/contracts/schema-publication/entries/trial-cleanup-receipt-v1.json b/contracts/schema-publication/entries/trial-cleanup-receipt-v1.json index a6a8455fb..082155360 100644 --- a/contracts/schema-publication/entries/trial-cleanup-receipt-v1.json +++ b/contracts/schema-publication/entries/trial-cleanup-receipt-v1.json @@ -2,9 +2,9 @@ "contract_id": "trial-cleanup-receipt-v1", "schema_path": "contracts/schemas/control-plane/trial-cleanup-receipt-v1.json", "stability": "draft", - "content_hash": "90462009caf9c41e35f764ac9be4e5777d7745994d7d04195ac6a08851a2d690", + "content_hash": "40bc6caaf772ef401160a6c61cee0da6b44a076eefd1d7e84af54736e1302e95", "last_change": { - "summary": "Completed the RAES identity hard cut for published schema URIs, extension keywords, and identity-bearing contract values under #908; validation semantics are unchanged apart from the intentional breaking name migration.", - "content_hash": "90462009caf9c41e35f764ac9be4e5777d7745994d7d04195ac6a08851a2d690" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "40bc6caaf772ef401160a6c61cee0da6b44a076eefd1d7e84af54736e1302e95" } } diff --git a/contracts/schema-publication/entries/uco-alignment-v1.json b/contracts/schema-publication/entries/uco-alignment-v1.json index b8c7ec027..765e396c0 100644 --- a/contracts/schema-publication/entries/uco-alignment-v1.json +++ b/contracts/schema-publication/entries/uco-alignment-v1.json @@ -2,9 +2,9 @@ "contract_id": "uco-alignment-v1", "schema_path": "contracts/schemas/concept-authority/uco-alignment-v1.json", "stability": "draft", - "content_hash": "dc84dac9987d237a7309a15289ee3572dc1096fa5c0ae6b06201e770a1de0086", + "content_hash": "84b03b7be0fcb301324d53389c39e44d61e4c59a20bd8a387db68ebafcc7ef98", "last_change": { - "summary": "Completed the RAES identity hard cut for published schema URIs, extension keywords, and identity-bearing contract values under #908; validation semantics are unchanged apart from the intentional breaking name migration.", - "content_hash": "dc84dac9987d237a7309a15289ee3572dc1096fa5c0ae6b06201e770a1de0086" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "84b03b7be0fcb301324d53389c39e44d61e4c59a20bd8a387db68ebafcc7ef98" } } diff --git a/contracts/schema-publication/entries/validation-basis-disclosure-v1.json b/contracts/schema-publication/entries/validation-basis-disclosure-v1.json index c975e47ad..36ecbc0d7 100644 --- a/contracts/schema-publication/entries/validation-basis-disclosure-v1.json +++ b/contracts/schema-publication/entries/validation-basis-disclosure-v1.json @@ -2,9 +2,9 @@ "contract_id": "validation-basis-disclosure-v1", "schema_path": "contracts/schemas/profiles/validation-basis-disclosure-v1.json", "stability": "draft", - "content_hash": "df23116b3c073e6db1c00ef2cbe419eb63af44a938095616ebfa799b39f59f69", + "content_hash": "cbd474c289d9519baf339ce22eea1613b41e9166ad3ac350f40e1955b434edd3", "last_change": { - "summary": "Completed the RAES identity hard cut for published schema URIs, extension keywords, and identity-bearing contract values under #908; validation semantics are unchanged apart from the intentional breaking name migration.", - "content_hash": "df23116b3c073e6db1c00ef2cbe419eb63af44a938095616ebfa799b39f59f69" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "cbd474c289d9519baf339ce22eea1613b41e9166ad3ac350f40e1955b434edd3" } } diff --git a/contracts/schema-publication/entries/validation-profile-catalog-v1.json b/contracts/schema-publication/entries/validation-profile-catalog-v1.json index 499f9c6a2..17ceec089 100644 --- a/contracts/schema-publication/entries/validation-profile-catalog-v1.json +++ b/contracts/schema-publication/entries/validation-profile-catalog-v1.json @@ -2,9 +2,9 @@ "contract_id": "validation-profile-catalog-v1", "schema_path": "contracts/schemas/profiles/validation-profile-catalog-v1.json", "stability": "draft", - "content_hash": "426679f49e406a66b4b5bd9dde39ba4f01afcb0360161cf6d489cf197c85cd17", + "content_hash": "235bd271397f4a8ab51422bfe8cb570610e0f82177a0197bb10e1f743c03349b", "last_change": { - "summary": "Completed the RAES identity hard cut for published schema URIs, extension keywords, and identity-bearing contract values under #908; validation semantics are unchanged apart from the intentional breaking name migration.", - "content_hash": "426679f49e406a66b4b5bd9dde39ba4f01afcb0360161cf6d489cf197c85cd17" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "235bd271397f4a8ab51422bfe8cb570610e0f82177a0197bb10e1f743c03349b" } } diff --git a/contracts/schema-publication/entries/workflow-cancellation-request-v1.json b/contracts/schema-publication/entries/workflow-cancellation-request-v1.json index c4a5d0ea8..8570b48a9 100644 --- a/contracts/schema-publication/entries/workflow-cancellation-request-v1.json +++ b/contracts/schema-publication/entries/workflow-cancellation-request-v1.json @@ -2,9 +2,9 @@ "contract_id": "workflow-cancellation-request-v1", "schema_path": "contracts/schemas/control-plane/workflow-cancellation-request-v1.json", "stability": "draft", - "content_hash": "32f9286d95c824af920799fcac005851a46d93b437ec3ece04da2a58b7641178", + "content_hash": "83d992309d63b159214f8580d58366ccd408b5720163771269a810cff40f955d", "last_change": { - "summary": "Completed the RAES identity hard cut for published schema URIs, extension keywords, and identity-bearing contract values under #908; validation semantics are unchanged apart from the intentional breaking name migration.", - "content_hash": "32f9286d95c824af920799fcac005851a46d93b437ec3ece04da2a58b7641178" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "83d992309d63b159214f8580d58366ccd408b5720163771269a810cff40f955d" } } diff --git a/contracts/schema-publication/entries/workflow-history-event-stream-v1.json b/contracts/schema-publication/entries/workflow-history-event-stream-v1.json index ed1a61c3c..1a4f128bd 100644 --- a/contracts/schema-publication/entries/workflow-history-event-stream-v1.json +++ b/contracts/schema-publication/entries/workflow-history-event-stream-v1.json @@ -2,9 +2,9 @@ "contract_id": "workflow-history-event-stream-v1", "schema_path": "contracts/schemas/control-plane/workflow-history-event-stream-v1.json", "stability": "draft", - "content_hash": "32f8eb4cd8800a93374f1f76e497b1b96f08e583f4aa2d34775e915c1112a68b", + "content_hash": "22737796b0903c109e718cdb2b14d1a05832019a121437c45f153a9a76caf916", "last_change": { - "summary": "Completed the RAES identity hard cut for published schema URIs, extension keywords, and identity-bearing contract values under #908; validation semantics are unchanged apart from the intentional breaking name migration.", - "content_hash": "32f8eb4cd8800a93374f1f76e497b1b96f08e583f4aa2d34775e915c1112a68b" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "22737796b0903c109e718cdb2b14d1a05832019a121437c45f153a9a76caf916" } } diff --git a/contracts/schema-publication/entries/workflow-result-envelope-v1.json b/contracts/schema-publication/entries/workflow-result-envelope-v1.json index 83ba17d87..ddcdd1341 100644 --- a/contracts/schema-publication/entries/workflow-result-envelope-v1.json +++ b/contracts/schema-publication/entries/workflow-result-envelope-v1.json @@ -2,9 +2,9 @@ "contract_id": "workflow-result-envelope-v1", "schema_path": "contracts/schemas/control-plane/workflow-result-envelope-v1.json", "stability": "draft", - "content_hash": "0a0db3f0da692b83f72a312eb75ffecc25fb74b56600c7ecb64a759f8a3b4c28", + "content_hash": "ca40953f53b3f13a0bcf1e6bf9d631c9a94544278cef6882b3fa140a35022612", "last_change": { - "summary": "Completed the RAES identity hard cut for published schema URIs, extension keywords, and identity-bearing contract values under #908; validation semantics are unchanged apart from the intentional breaking name migration.", - "content_hash": "0a0db3f0da692b83f72a312eb75ffecc25fb74b56600c7ecb64a759f8a3b4c28" + "summary": "Repointed the published schema namespace from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root for issue #908.", + "content_hash": "ca40953f53b3f13a0bcf1e6bf9d631c9a94544278cef6882b3fa140a35022612" } } diff --git a/contracts/schemas/artifact-requirements/artifact-requirement-v1.json b/contracts/schemas/artifact-requirements/artifact-requirement-v1.json index d90d89530..68f42cce2 100644 --- a/contracts/schemas/artifact-requirements/artifact-requirement-v1.json +++ b/contracts/schemas/artifact-requirements/artifact-requirement-v1.json @@ -1071,7 +1071,7 @@ "type": "string" } }, - "$id": "https://raes.dev/schemas/artifact-requirement-v1.json", + "$id": "https://raesystem.github.io/rae/schemas/artifact-requirement-v1.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "description": "Published source-artifact requirement contract.", @@ -1136,6 +1136,6 @@ "id": "raes-semantic-invariants-v1", "keyword": "x-raes-invariants", "required": true, - "uri": "https://raes.dev/schemas/semantic-invariants/v1" + "uri": "https://raesystem.github.io/rae/schemas/semantic-invariants/v1" } } diff --git a/contracts/schemas/asset-trust/reusable-asset-trust-policy-v1.json b/contracts/schemas/asset-trust/reusable-asset-trust-policy-v1.json index ecce95638..84d2ea593 100644 --- a/contracts/schemas/asset-trust/reusable-asset-trust-policy-v1.json +++ b/contracts/schemas/asset-trust/reusable-asset-trust-policy-v1.json @@ -312,7 +312,7 @@ "type": "object" } }, - "$id": "https://raes.dev/schemas/reusable-asset-trust-policy-v1.json", + "$id": "https://raesystem.github.io/rae/schemas/reusable-asset-trust-policy-v1.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "description": "Ecosystem trust/authenticity/integrity policy over reusable assets (GOV-913).\n\nA declarative, expectation-based policy: it declares, per asset family, the\nintegrity/authenticity/provenance/governance evidence the ecosystem requires,\nreferencing the existing RAES mechanisms that carry that evidence. It is not a\nper-asset trust record and it invents no cryptography. See\n``specs/authority/reusable-asset-trust-integrity.md`` (normative) and ADR-071.", diff --git a/contracts/schemas/associated-artifacts/associated-artifact-manifest-v1.json b/contracts/schemas/associated-artifacts/associated-artifact-manifest-v1.json index 484b750da..77c11a68a 100644 --- a/contracts/schemas/associated-artifacts/associated-artifact-manifest-v1.json +++ b/contracts/schemas/associated-artifacts/associated-artifact-manifest-v1.json @@ -327,7 +327,7 @@ "type": "object" } }, - "$id": "https://raes.dev/schemas/associated-artifact-manifest-v1.json", + "$id": "https://raesystem.github.io/rae/schemas/associated-artifact-manifest-v1.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "allOf": [ @@ -470,6 +470,6 @@ "id": "raes-semantic-invariants-v1", "keyword": "x-raes-invariants", "required": true, - "uri": "https://raes.dev/schemas/semantic-invariants/v1" + "uri": "https://raesystem.github.io/rae/schemas/semantic-invariants/v1" } } diff --git a/contracts/schemas/backend-manifest/backend-manifest-v2.json b/contracts/schemas/backend-manifest/backend-manifest-v2.json index f1756ce67..a31627930 100644 --- a/contracts/schemas/backend-manifest/backend-manifest-v2.json +++ b/contracts/schemas/backend-manifest/backend-manifest-v2.json @@ -2214,7 +2214,7 @@ "type": "string" } }, - "$id": "https://raes.dev/schemas/backend-manifest-v2.json", + "$id": "https://raesystem.github.io/rae/schemas/backend-manifest-v2.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "allOf": [ diff --git a/contracts/schemas/concept-authority/atlas-tactics-source-v1.json b/contracts/schemas/concept-authority/atlas-tactics-source-v1.json index 863404d28..86f3d08e5 100644 --- a/contracts/schemas/concept-authority/atlas-tactics-source-v1.json +++ b/contracts/schemas/concept-authority/atlas-tactics-source-v1.json @@ -90,7 +90,7 @@ "type": "object" } }, - "$id": "https://raes.dev/schemas/atlas-tactics-source-v1.json", + "$id": "https://raesystem.github.io/rae/schemas/atlas-tactics-source-v1.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { diff --git a/contracts/schemas/concept-authority/attack-enterprise-tactics-source-v1.json b/contracts/schemas/concept-authority/attack-enterprise-tactics-source-v1.json index 7ddce7c3f..008fac2d1 100644 --- a/contracts/schemas/concept-authority/attack-enterprise-tactics-source-v1.json +++ b/contracts/schemas/concept-authority/attack-enterprise-tactics-source-v1.json @@ -46,7 +46,7 @@ "type": "object" } }, - "$id": "https://raes.dev/schemas/attack-enterprise-tactics-source-v1.json", + "$id": "https://raesystem.github.io/rae/schemas/attack-enterprise-tactics-source-v1.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { diff --git a/contracts/schemas/concept-authority/behavioral-relations-v1.json b/contracts/schemas/concept-authority/behavioral-relations-v1.json index 9abe216eb..dca1a0afa 100644 --- a/contracts/schemas/concept-authority/behavioral-relations-v1.json +++ b/contracts/schemas/concept-authority/behavioral-relations-v1.json @@ -699,7 +699,7 @@ "type": "object" } }, - "$id": "https://raes.dev/schemas/behavioral-relations-v1.json", + "$id": "https://raesystem.github.io/rae/schemas/behavioral-relations-v1.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { @@ -787,6 +787,6 @@ "id": "raes-semantic-invariants-v1", "keyword": "x-raes-invariants", "required": true, - "uri": "https://raes.dev/schemas/semantic-invariants/v1" + "uri": "https://raesystem.github.io/rae/schemas/semantic-invariants/v1" } } diff --git a/contracts/schemas/concept-authority/concept-families-v1.json b/contracts/schemas/concept-authority/concept-families-v1.json index 7ed41c54f..2d58ac354 100644 --- a/contracts/schemas/concept-authority/concept-families-v1.json +++ b/contracts/schemas/concept-authority/concept-families-v1.json @@ -198,7 +198,7 @@ "type": "string" } }, - "$id": "https://raes.dev/schemas/concept-families-v1.json", + "$id": "https://raesystem.github.io/rae/schemas/concept-families-v1.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { diff --git a/contracts/schemas/concept-authority/controlled-vocabularies-v1.json b/contracts/schemas/concept-authority/controlled-vocabularies-v1.json index 15bf16b79..617df48ba 100644 --- a/contracts/schemas/concept-authority/controlled-vocabularies-v1.json +++ b/contracts/schemas/concept-authority/controlled-vocabularies-v1.json @@ -201,7 +201,7 @@ "type": "object" } }, - "$id": "https://raes.dev/schemas/controlled-vocabularies-v1.json", + "$id": "https://raesystem.github.io/rae/schemas/controlled-vocabularies-v1.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { diff --git a/contracts/schemas/concept-authority/nist-csf-defensive-categories-source-v1.json b/contracts/schemas/concept-authority/nist-csf-defensive-categories-source-v1.json index 6ea515e38..5de85e5df 100644 --- a/contracts/schemas/concept-authority/nist-csf-defensive-categories-source-v1.json +++ b/contracts/schemas/concept-authority/nist-csf-defensive-categories-source-v1.json @@ -44,7 +44,7 @@ "type": "object" } }, - "$id": "https://raes.dev/schemas/nist-csf-defensive-categories-source-v1.json", + "$id": "https://raesystem.github.io/rae/schemas/nist-csf-defensive-categories-source-v1.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { diff --git a/contracts/schemas/concept-authority/reference-models-v1.json b/contracts/schemas/concept-authority/reference-models-v1.json index 307e1938e..5fc8a7300 100644 --- a/contracts/schemas/concept-authority/reference-models-v1.json +++ b/contracts/schemas/concept-authority/reference-models-v1.json @@ -77,7 +77,7 @@ "type": "object" } }, - "$id": "https://raes.dev/schemas/reference-models-v1.json", + "$id": "https://raesystem.github.io/rae/schemas/reference-models-v1.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { diff --git a/contracts/schemas/concept-authority/uco-alignment-v1.json b/contracts/schemas/concept-authority/uco-alignment-v1.json index 168c0bb74..7a1a9951f 100644 --- a/contracts/schemas/concept-authority/uco-alignment-v1.json +++ b/contracts/schemas/concept-authority/uco-alignment-v1.json @@ -76,7 +76,7 @@ "type": "object" } }, - "$id": "https://raes.dev/schemas/uco-alignment-v1.json", + "$id": "https://raesystem.github.io/rae/schemas/uco-alignment-v1.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { diff --git a/contracts/schemas/control-plane/evaluation-history-event-stream-v1.json b/contracts/schemas/control-plane/evaluation-history-event-stream-v1.json index fe1927475..e2d9c33bf 100644 --- a/contracts/schemas/control-plane/evaluation-history-event-stream-v1.json +++ b/contracts/schemas/control-plane/evaluation-history-event-stream-v1.json @@ -1,5 +1,5 @@ { - "$id": "https://raes.dev/schemas/evaluation-history-event-stream-v1.json", + "$id": "https://raesystem.github.io/rae/schemas/evaluation-history-event-stream-v1.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "items": { "additionalProperties": false, diff --git a/contracts/schemas/control-plane/evaluation-result-envelope-v1.json b/contracts/schemas/control-plane/evaluation-result-envelope-v1.json index 98b0b870d..72c5d0e01 100644 --- a/contracts/schemas/control-plane/evaluation-result-envelope-v1.json +++ b/contracts/schemas/control-plane/evaluation-result-envelope-v1.json @@ -1,5 +1,5 @@ { - "$id": "https://raes.dev/schemas/evaluation-result-envelope-v1.json", + "$id": "https://raesystem.github.io/rae/schemas/evaluation-result-envelope-v1.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { diff --git a/contracts/schemas/control-plane/operation-receipt-v1.json b/contracts/schemas/control-plane/operation-receipt-v1.json index ac0a08dd2..43fdee56d 100644 --- a/contracts/schemas/control-plane/operation-receipt-v1.json +++ b/contracts/schemas/control-plane/operation-receipt-v1.json @@ -1,5 +1,5 @@ { - "$id": "https://raes.dev/schemas/operation-receipt-v1.json", + "$id": "https://raesystem.github.io/rae/schemas/operation-receipt-v1.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { diff --git a/contracts/schemas/control-plane/operation-status-v1.json b/contracts/schemas/control-plane/operation-status-v1.json index 201a20fd8..45876f47f 100644 --- a/contracts/schemas/control-plane/operation-status-v1.json +++ b/contracts/schemas/control-plane/operation-status-v1.json @@ -1,5 +1,5 @@ { - "$id": "https://raes.dev/schemas/operation-status-v1.json", + "$id": "https://raesystem.github.io/rae/schemas/operation-status-v1.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { diff --git a/contracts/schemas/control-plane/participant-behavior-history-event-stream-v1.json b/contracts/schemas/control-plane/participant-behavior-history-event-stream-v1.json index 738a1a1ce..cb9b19ff0 100644 --- a/contracts/schemas/control-plane/participant-behavior-history-event-stream-v1.json +++ b/contracts/schemas/control-plane/participant-behavior-history-event-stream-v1.json @@ -1253,7 +1253,7 @@ "type": "string" } }, - "$id": "https://raes.dev/schemas/participant-behavior-history-event-stream-v1.json", + "$id": "https://raesystem.github.io/rae/schemas/participant-behavior-history-event-stream-v1.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "items": { "additionalProperties": false, @@ -1538,6 +1538,6 @@ "id": "raes-semantic-invariants-v1", "keyword": "x-raes-invariants", "required": true, - "uri": "https://raes.dev/schemas/semantic-invariants/v1" + "uri": "https://raesystem.github.io/rae/schemas/semantic-invariants/v1" } } diff --git a/contracts/schemas/control-plane/participant-context-view-v1.json b/contracts/schemas/control-plane/participant-context-view-v1.json index 144057f20..0352e28b3 100644 --- a/contracts/schemas/control-plane/participant-context-view-v1.json +++ b/contracts/schemas/control-plane/participant-context-view-v1.json @@ -236,7 +236,7 @@ "type": "object" } }, - "$id": "https://raes.dev/schemas/participant-context-view-v1.json", + "$id": "https://raesystem.github.io/rae/schemas/participant-context-view-v1.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "allOf": [ @@ -509,6 +509,6 @@ "id": "raes-semantic-invariants-v1", "keyword": "x-raes-invariants", "required": true, - "uri": "https://raes.dev/schemas/semantic-invariants/v1" + "uri": "https://raesystem.github.io/rae/schemas/semantic-invariants/v1" } } diff --git a/contracts/schemas/control-plane/participant-decision-surface-v1.json b/contracts/schemas/control-plane/participant-decision-surface-v1.json index 3ec952df3..dd08ef4d2 100644 --- a/contracts/schemas/control-plane/participant-decision-surface-v1.json +++ b/contracts/schemas/control-plane/participant-decision-surface-v1.json @@ -665,7 +665,7 @@ "type": "object" } }, - "$id": "https://raes.dev/schemas/participant-decision-surface-v1.json", + "$id": "https://raesystem.github.io/rae/schemas/participant-decision-surface-v1.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "description": "One participant-local decision projection at one episode order point.", @@ -920,6 +920,6 @@ "id": "raes-semantic-invariants-v1", "keyword": "x-raes-invariants", "required": true, - "uri": "https://raes.dev/schemas/semantic-invariants/v1" + "uri": "https://raesystem.github.io/rae/schemas/semantic-invariants/v1" } } diff --git a/contracts/schemas/control-plane/participant-decision-surface-v2.json b/contracts/schemas/control-plane/participant-decision-surface-v2.json index 2f7b67c9a..bf9598395 100644 --- a/contracts/schemas/control-plane/participant-decision-surface-v2.json +++ b/contracts/schemas/control-plane/participant-decision-surface-v2.json @@ -1331,7 +1331,7 @@ "type": "object" } }, - "$id": "https://raes.dev/schemas/participant-decision-surface-v2.json", + "$id": "https://raesystem.github.io/rae/schemas/participant-decision-surface-v2.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "allOf": [ @@ -1477,6 +1477,6 @@ "id": "raes-semantic-invariants-v1", "keyword": "x-raes-invariants", "required": true, - "uri": "https://raes.dev/schemas/semantic-invariants/v1" + "uri": "https://raesystem.github.io/rae/schemas/semantic-invariants/v1" } } diff --git a/contracts/schemas/control-plane/participant-episode-history-event-stream-v1.json b/contracts/schemas/control-plane/participant-episode-history-event-stream-v1.json index dff63a2e9..e18d6880a 100644 --- a/contracts/schemas/control-plane/participant-episode-history-event-stream-v1.json +++ b/contracts/schemas/control-plane/participant-episode-history-event-stream-v1.json @@ -1,5 +1,5 @@ { - "$id": "https://raes.dev/schemas/participant-episode-history-event-stream-v1.json", + "$id": "https://raesystem.github.io/rae/schemas/participant-episode-history-event-stream-v1.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "items": { "additionalProperties": false, diff --git a/contracts/schemas/control-plane/participant-episode-state-envelope-v1.json b/contracts/schemas/control-plane/participant-episode-state-envelope-v1.json index a2625ca4f..e818f430e 100644 --- a/contracts/schemas/control-plane/participant-episode-state-envelope-v1.json +++ b/contracts/schemas/control-plane/participant-episode-state-envelope-v1.json @@ -1,5 +1,5 @@ { - "$id": "https://raes.dev/schemas/participant-episode-state-envelope-v1.json", + "$id": "https://raesystem.github.io/rae/schemas/participant-episode-state-envelope-v1.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { diff --git a/contracts/schemas/control-plane/participant-history-view-v1.json b/contracts/schemas/control-plane/participant-history-view-v1.json index 0f2e0f9b6..eb319a80b 100644 --- a/contracts/schemas/control-plane/participant-history-view-v1.json +++ b/contracts/schemas/control-plane/participant-history-view-v1.json @@ -1570,7 +1570,7 @@ "type": "string" } }, - "$id": "https://raes.dev/schemas/participant-history-view-v1.json", + "$id": "https://raesystem.github.io/rae/schemas/participant-history-view-v1.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "allOf": [ @@ -1711,6 +1711,6 @@ "id": "raes-semantic-invariants-v1", "keyword": "x-raes-invariants", "required": true, - "uri": "https://raes.dev/schemas/semantic-invariants/v1" + "uri": "https://raesystem.github.io/rae/schemas/semantic-invariants/v1" } } diff --git a/contracts/schemas/control-plane/participant-status-view-v1.json b/contracts/schemas/control-plane/participant-status-view-v1.json index 9b4fd2852..9843ccdcb 100644 --- a/contracts/schemas/control-plane/participant-status-view-v1.json +++ b/contracts/schemas/control-plane/participant-status-view-v1.json @@ -78,7 +78,7 @@ "type": "object" } }, - "$id": "https://raes.dev/schemas/participant-status-view-v1.json", + "$id": "https://raesystem.github.io/rae/schemas/participant-status-view-v1.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "description": "API-408 retrieval projection of one participant's episode status.", diff --git a/contracts/schemas/control-plane/proposition-truth-result-v1.json b/contracts/schemas/control-plane/proposition-truth-result-v1.json index 49df88839..2a6e24850 100644 --- a/contracts/schemas/control-plane/proposition-truth-result-v1.json +++ b/contracts/schemas/control-plane/proposition-truth-result-v1.json @@ -156,7 +156,7 @@ "type": "string" } }, - "$id": "https://raes.dev/schemas/proposition-truth-result-v1.json", + "$id": "https://raesystem.github.io/rae/schemas/proposition-truth-result-v1.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "allOf": [ diff --git a/contracts/schemas/control-plane/scheduler-isolation-proof-v1.json b/contracts/schemas/control-plane/scheduler-isolation-proof-v1.json index f6a5f3446..a0d65a45d 100644 --- a/contracts/schemas/control-plane/scheduler-isolation-proof-v1.json +++ b/contracts/schemas/control-plane/scheduler-isolation-proof-v1.json @@ -40,7 +40,7 @@ "type": "object" } }, - "$id": "https://raes.dev/schemas/scheduler-isolation-proof-v1.json", + "$id": "https://raesystem.github.io/rae/schemas/scheduler-isolation-proof-v1.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "allOf": [ @@ -256,6 +256,6 @@ "id": "raes-semantic-invariants-v1", "keyword": "x-raes-invariants", "required": true, - "uri": "https://raes.dev/schemas/semantic-invariants/v1" + "uri": "https://raesystem.github.io/rae/schemas/semantic-invariants/v1" } } diff --git a/contracts/schemas/control-plane/trial-cleanup-receipt-v1.json b/contracts/schemas/control-plane/trial-cleanup-receipt-v1.json index 732017860..a0669a310 100644 --- a/contracts/schemas/control-plane/trial-cleanup-receipt-v1.json +++ b/contracts/schemas/control-plane/trial-cleanup-receipt-v1.json @@ -90,7 +90,7 @@ "type": "object" } }, - "$id": "https://raes.dev/schemas/trial-cleanup-receipt-v1.json", + "$id": "https://raesystem.github.io/rae/schemas/trial-cleanup-receipt-v1.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "allOf": [ @@ -230,6 +230,6 @@ "id": "raes-semantic-invariants-v1", "keyword": "x-raes-invariants", "required": true, - "uri": "https://raes.dev/schemas/semantic-invariants/v1" + "uri": "https://raesystem.github.io/rae/schemas/semantic-invariants/v1" } } diff --git a/contracts/schemas/control-plane/workflow-cancellation-request-v1.json b/contracts/schemas/control-plane/workflow-cancellation-request-v1.json index fac3f2d34..a6dca7bb0 100644 --- a/contracts/schemas/control-plane/workflow-cancellation-request-v1.json +++ b/contracts/schemas/control-plane/workflow-cancellation-request-v1.json @@ -1,5 +1,5 @@ { - "$id": "https://raes.dev/schemas/workflow-cancellation-request-v1.json", + "$id": "https://raesystem.github.io/rae/schemas/workflow-cancellation-request-v1.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { diff --git a/contracts/schemas/control-plane/workflow-history-event-stream-v1.json b/contracts/schemas/control-plane/workflow-history-event-stream-v1.json index 267b00ff2..2276e6cc8 100644 --- a/contracts/schemas/control-plane/workflow-history-event-stream-v1.json +++ b/contracts/schemas/control-plane/workflow-history-event-stream-v1.json @@ -1,5 +1,5 @@ { - "$id": "https://raes.dev/schemas/workflow-history-event-stream-v1.json", + "$id": "https://raesystem.github.io/rae/schemas/workflow-history-event-stream-v1.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "items": { "additionalProperties": false, diff --git a/contracts/schemas/control-plane/workflow-result-envelope-v1.json b/contracts/schemas/control-plane/workflow-result-envelope-v1.json index 20060ec53..308b2d33c 100644 --- a/contracts/schemas/control-plane/workflow-result-envelope-v1.json +++ b/contracts/schemas/control-plane/workflow-result-envelope-v1.json @@ -151,7 +151,7 @@ "type": "object" } }, - "$id": "https://raes.dev/schemas/workflow-result-envelope-v1.json", + "$id": "https://raesystem.github.io/rae/schemas/workflow-result-envelope-v1.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { diff --git a/contracts/schemas/experiment-core/experiment-apparatus-context-v1.json b/contracts/schemas/experiment-core/experiment-apparatus-context-v1.json index ae3191123..db0b21628 100644 --- a/contracts/schemas/experiment-core/experiment-apparatus-context-v1.json +++ b/contracts/schemas/experiment-core/experiment-apparatus-context-v1.json @@ -1127,7 +1127,7 @@ "type": "object" } }, - "$id": "https://raes.dev/schemas/experiment-apparatus-context-v1.json", + "$id": "https://raesystem.github.io/rae/schemas/experiment-apparatus-context-v1.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "description": "Run-scoped apparatus context for interpreting experiment evidence.", @@ -1348,6 +1348,6 @@ "id": "raes-semantic-invariants-v1", "keyword": "x-raes-invariants", "required": true, - "uri": "https://raes.dev/schemas/semantic-invariants/v1" + "uri": "https://raesystem.github.io/rae/schemas/semantic-invariants/v1" } } diff --git a/contracts/schemas/experiment-core/experiment-authoring-input-v1.json b/contracts/schemas/experiment-core/experiment-authoring-input-v1.json index 983178618..eb892866e 100644 --- a/contracts/schemas/experiment-core/experiment-authoring-input-v1.json +++ b/contracts/schemas/experiment-core/experiment-authoring-input-v1.json @@ -2278,7 +2278,7 @@ "type": "object" } }, - "$id": "https://raes.dev/schemas/experiment-authoring-input-v1.json", + "$id": "https://raesystem.github.io/rae/schemas/experiment-authoring-input-v1.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "allOf": [ @@ -2479,6 +2479,6 @@ "id": "raes-semantic-invariants-v1", "keyword": "x-raes-invariants", "required": true, - "uri": "https://raes.dev/schemas/semantic-invariants/v1" + "uri": "https://raesystem.github.io/rae/schemas/semantic-invariants/v1" } } diff --git a/contracts/schemas/experiment-core/experiment-binding-descriptors-v1.json b/contracts/schemas/experiment-core/experiment-binding-descriptors-v1.json index c44379a4a..aa3a44af6 100644 --- a/contracts/schemas/experiment-core/experiment-binding-descriptors-v1.json +++ b/contracts/schemas/experiment-core/experiment-binding-descriptors-v1.json @@ -323,7 +323,7 @@ "type": "object" } }, - "$id": "https://raes.dev/schemas/experiment-binding-descriptors-v1.json", + "$id": "https://raesystem.github.io/rae/schemas/experiment-binding-descriptors-v1.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "description": "Versioned, collision-free set of authoritative experiment bindings.", @@ -369,6 +369,6 @@ "id": "raes-semantic-invariants-v1", "keyword": "x-raes-invariants", "required": true, - "uri": "https://raes.dev/schemas/semantic-invariants/v1" + "uri": "https://raesystem.github.io/rae/schemas/semantic-invariants/v1" } } diff --git a/contracts/schemas/experiment-core/experiment-capture-spec-v1.json b/contracts/schemas/experiment-core/experiment-capture-spec-v1.json index 7782100a3..45ceb1705 100644 --- a/contracts/schemas/experiment-core/experiment-capture-spec-v1.json +++ b/contracts/schemas/experiment-core/experiment-capture-spec-v1.json @@ -704,7 +704,7 @@ "type": "object" } }, - "$id": "https://raes.dev/schemas/experiment-capture-spec-v1.json", + "$id": "https://raesystem.github.io/rae/schemas/experiment-capture-spec-v1.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "description": "Declarative EXP-707 specification of what experiment evidence to capture.", @@ -810,6 +810,6 @@ "id": "raes-semantic-invariants-v1", "keyword": "x-raes-invariants", "required": true, - "uri": "https://raes.dev/schemas/semantic-invariants/v1" + "uri": "https://raesystem.github.io/rae/schemas/semantic-invariants/v1" } } diff --git a/contracts/schemas/experiment-core/experiment-derived-measure-v1.json b/contracts/schemas/experiment-core/experiment-derived-measure-v1.json index d7d40ae63..6cb09d7f5 100644 --- a/contracts/schemas/experiment-core/experiment-derived-measure-v1.json +++ b/contracts/schemas/experiment-core/experiment-derived-measure-v1.json @@ -253,7 +253,7 @@ "type": "object" } }, - "$id": "https://raes.dev/schemas/experiment-derived-measure-v1.json", + "$id": "https://raesystem.github.io/rae/schemas/experiment-derived-measure-v1.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "allOf": [ @@ -462,6 +462,6 @@ "id": "raes-semantic-invariants-v1", "keyword": "x-raes-invariants", "required": true, - "uri": "https://raes.dev/schemas/semantic-invariants/v1" + "uri": "https://raesystem.github.io/rae/schemas/semantic-invariants/v1" } } diff --git a/contracts/schemas/experiment-core/experiment-evidence-record-v1.json b/contracts/schemas/experiment-core/experiment-evidence-record-v1.json index 96a5aa434..fe95c1c7a 100644 --- a/contracts/schemas/experiment-core/experiment-evidence-record-v1.json +++ b/contracts/schemas/experiment-core/experiment-evidence-record-v1.json @@ -548,7 +548,7 @@ "type": "object" } }, - "$id": "https://raes.dev/schemas/experiment-evidence-record-v1.json", + "$id": "https://raesystem.github.io/rae/schemas/experiment-evidence-record-v1.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "allOf": [ @@ -750,6 +750,6 @@ "id": "raes-semantic-invariants-v1", "keyword": "x-raes-invariants", "required": true, - "uri": "https://raes.dev/schemas/semantic-invariants/v1" + "uri": "https://raesystem.github.io/rae/schemas/semantic-invariants/v1" } } diff --git a/contracts/schemas/experiment-core/experiment-run-v1.json b/contracts/schemas/experiment-core/experiment-run-v1.json index 35f85621b..9beab7c07 100644 --- a/contracts/schemas/experiment-core/experiment-run-v1.json +++ b/contracts/schemas/experiment-core/experiment-run-v1.json @@ -4492,7 +4492,7 @@ "type": "object" } }, - "$id": "https://raes.dev/schemas/experiment-run-v1.json", + "$id": "https://raesystem.github.io/rae/schemas/experiment-run-v1.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "allOf": [ @@ -4886,6 +4886,6 @@ "id": "raes-semantic-invariants-v1", "keyword": "x-raes-invariants", "required": true, - "uri": "https://raes.dev/schemas/semantic-invariants/v1" + "uri": "https://raesystem.github.io/rae/schemas/semantic-invariants/v1" } } diff --git a/contracts/schemas/experiment-core/experiment-study-v1.json b/contracts/schemas/experiment-core/experiment-study-v1.json index 36aa869c5..f941cbe71 100644 --- a/contracts/schemas/experiment-core/experiment-study-v1.json +++ b/contracts/schemas/experiment-core/experiment-study-v1.json @@ -1935,7 +1935,7 @@ "type": "object" } }, - "$id": "https://raes.dev/schemas/experiment-study-v1.json", + "$id": "https://raesystem.github.io/rae/schemas/experiment-study-v1.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "allOf": [ @@ -2295,6 +2295,6 @@ "id": "raes-semantic-invariants-v1", "keyword": "x-raes-invariants", "required": true, - "uri": "https://raes.dev/schemas/semantic-invariants/v1" + "uri": "https://raesystem.github.io/rae/schemas/semantic-invariants/v1" } } diff --git a/contracts/schemas/experiment-core/experiment-task-v1.json b/contracts/schemas/experiment-core/experiment-task-v1.json index cf86adeaa..68fd9abb0 100644 --- a/contracts/schemas/experiment-core/experiment-task-v1.json +++ b/contracts/schemas/experiment-core/experiment-task-v1.json @@ -1843,7 +1843,7 @@ "type": "object" } }, - "$id": "https://raes.dev/schemas/experiment-task-v1.json", + "$id": "https://raesystem.github.io/rae/schemas/experiment-task-v1.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "description": "Experiment task contract that separates scenario material from protocol intent.", @@ -1977,6 +1977,6 @@ "id": "raes-semantic-invariants-v1", "keyword": "x-raes-invariants", "required": true, - "uri": "https://raes.dev/schemas/semantic-invariants/v1" + "uri": "https://raesystem.github.io/rae/schemas/semantic-invariants/v1" } } diff --git a/contracts/schemas/exploit-path-analysis/exploit-path-analysis-evidence-v1.json b/contracts/schemas/exploit-path-analysis/exploit-path-analysis-evidence-v1.json index 29c973c38..f2036f9f5 100644 --- a/contracts/schemas/exploit-path-analysis/exploit-path-analysis-evidence-v1.json +++ b/contracts/schemas/exploit-path-analysis/exploit-path-analysis-evidence-v1.json @@ -758,7 +758,7 @@ "type": "object" } }, - "$id": "https://raes.dev/schemas/exploit-path-analysis-evidence-v1.json", + "$id": "https://raesystem.github.io/rae/schemas/exploit-path-analysis-evidence-v1.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "description": "Closed evidence envelope binding source, snapshot, graph, query, and result.", @@ -963,6 +963,6 @@ "id": "raes-semantic-invariants-v1", "keyword": "x-raes-invariants", "required": true, - "uri": "https://raes.dev/schemas/semantic-invariants/v1" + "uri": "https://raesystem.github.io/rae/schemas/semantic-invariants/v1" } } diff --git a/contracts/schemas/participant-implementation-configuration/participant-configuration-result-v1.json b/contracts/schemas/participant-implementation-configuration/participant-configuration-result-v1.json index 11dbc8ee5..c36f29a3d 100644 --- a/contracts/schemas/participant-implementation-configuration/participant-configuration-result-v1.json +++ b/contracts/schemas/participant-implementation-configuration/participant-configuration-result-v1.json @@ -210,7 +210,7 @@ "type": "object" } }, - "$id": "https://raes.dev/schemas/participant-configuration-result-v1.json", + "$id": "https://raesystem.github.io/rae/schemas/participant-configuration-result-v1.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "description": "Portable result of one complete, atomic participant configuration validation.", @@ -277,6 +277,6 @@ "id": "raes-semantic-invariants-v1", "keyword": "x-raes-invariants", "required": true, - "uri": "https://raes.dev/schemas/semantic-invariants/v1" + "uri": "https://raesystem.github.io/rae/schemas/semantic-invariants/v1" } } diff --git a/contracts/schemas/participant-implementation-manifest/participant-implementation-manifest-v1.json b/contracts/schemas/participant-implementation-manifest/participant-implementation-manifest-v1.json index c29a1a0af..0c9017368 100644 --- a/contracts/schemas/participant-implementation-manifest/participant-implementation-manifest-v1.json +++ b/contracts/schemas/participant-implementation-manifest/participant-implementation-manifest-v1.json @@ -302,7 +302,7 @@ "type": "object" } }, - "$id": "https://raes.dev/schemas/participant-implementation-manifest-v1.json", + "$id": "https://raesystem.github.io/rae/schemas/participant-implementation-manifest-v1.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { diff --git a/contracts/schemas/participant-implementation-provenance/participant-implementation-provenance-v1.json b/contracts/schemas/participant-implementation-provenance/participant-implementation-provenance-v1.json index 94bd627e8..550cfbf3d 100644 --- a/contracts/schemas/participant-implementation-provenance/participant-implementation-provenance-v1.json +++ b/contracts/schemas/participant-implementation-provenance/participant-implementation-provenance-v1.json @@ -221,7 +221,7 @@ "type": "object" } }, - "$id": "https://raes.dev/schemas/participant-implementation-provenance-v1.json", + "$id": "https://raesystem.github.io/rae/schemas/participant-implementation-provenance-v1.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { diff --git a/contracts/schemas/participant-runtime/participant-control-occurrence-v1.json b/contracts/schemas/participant-runtime/participant-control-occurrence-v1.json index dd42d1791..01a28bd07 100644 --- a/contracts/schemas/participant-runtime/participant-control-occurrence-v1.json +++ b/contracts/schemas/participant-runtime/participant-control-occurrence-v1.json @@ -1802,7 +1802,7 @@ "type": "object" } }, - "$id": "https://raes.dev/schemas/participant-control-occurrence-v1.json", + "$id": "https://raesystem.github.io/rae/schemas/participant-control-occurrence-v1.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "description": "Closed participant-runtime carrier for one API-409 control fact.", @@ -2213,6 +2213,6 @@ "id": "raes-semantic-invariants-v1", "keyword": "x-raes-invariants", "required": true, - "uri": "https://raes.dev/schemas/semantic-invariants/v1" + "uri": "https://raesystem.github.io/rae/schemas/semantic-invariants/v1" } } diff --git a/contracts/schemas/participant-runtime/participant-crossing-occurrence-v1.json b/contracts/schemas/participant-runtime/participant-crossing-occurrence-v1.json index 59fbe30ce..6b1e31289 100644 --- a/contracts/schemas/participant-runtime/participant-crossing-occurrence-v1.json +++ b/contracts/schemas/participant-runtime/participant-crossing-occurrence-v1.json @@ -1786,7 +1786,7 @@ "type": "object" } }, - "$id": "https://raes.dev/schemas/participant-crossing-occurrence-v1.json", + "$id": "https://raesystem.github.io/rae/schemas/participant-crossing-occurrence-v1.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "description": "Closed participant-runtime carrier for one API-423 crossing fact.", @@ -2197,6 +2197,6 @@ "id": "raes-semantic-invariants-v1", "keyword": "x-raes-invariants", "required": true, - "uri": "https://raes.dev/schemas/semantic-invariants/v1" + "uri": "https://raesystem.github.io/rae/schemas/semantic-invariants/v1" } } diff --git a/contracts/schemas/participant-runtime/participant-execution-binding-v1.json b/contracts/schemas/participant-runtime/participant-execution-binding-v1.json index 22a380bb6..92ac537a5 100644 --- a/contracts/schemas/participant-runtime/participant-execution-binding-v1.json +++ b/contracts/schemas/participant-runtime/participant-execution-binding-v1.json @@ -1,5 +1,5 @@ { - "$id": "https://raes.dev/schemas/participant-execution-binding-v1.json", + "$id": "https://raesystem.github.io/rae/schemas/participant-execution-binding-v1.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "description": "Exact executable relation between one action and its native targets.", diff --git a/contracts/schemas/participant-runtime/participant-execution-control-v1.json b/contracts/schemas/participant-runtime/participant-execution-control-v1.json index 1fdf3ddb4..d516ad866 100644 --- a/contracts/schemas/participant-runtime/participant-execution-control-v1.json +++ b/contracts/schemas/participant-runtime/participant-execution-control-v1.json @@ -1,5 +1,5 @@ { - "$id": "https://raes.dev/schemas/participant-execution-control-v1.json", + "$id": "https://raesystem.github.io/rae/schemas/participant-execution-control-v1.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "description": "Generation-fenced lifecycle mutation for one admitted execution scope.", diff --git a/contracts/schemas/participant-runtime/participant-execution-service-state-v1.json b/contracts/schemas/participant-runtime/participant-execution-service-state-v1.json index 478224add..028048940 100644 --- a/contracts/schemas/participant-runtime/participant-execution-service-state-v1.json +++ b/contracts/schemas/participant-runtime/participant-execution-service-state-v1.json @@ -1,5 +1,5 @@ { - "$id": "https://raes.dev/schemas/participant-execution-service-state-v1.json", + "$id": "https://raesystem.github.io/rae/schemas/participant-execution-service-state-v1.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "description": "Typed health, readiness, lifecycle, capacity, and evidence readback.", diff --git a/contracts/schemas/participant-runtime/participant-joint-action-record-v1.json b/contracts/schemas/participant-runtime/participant-joint-action-record-v1.json index 8d586e4fe..5f98c8d6d 100644 --- a/contracts/schemas/participant-runtime/participant-joint-action-record-v1.json +++ b/contracts/schemas/participant-runtime/participant-joint-action-record-v1.json @@ -407,7 +407,7 @@ "type": "object" } }, - "$id": "https://raes.dev/schemas/participant-joint-action-record-v1.json", + "$id": "https://raesystem.github.io/rae/schemas/participant-joint-action-record-v1.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "description": "RUN-308 joint action / concurrency record over behavior events.", diff --git a/contracts/schemas/participant-runtime/participant-lifecycle-event-v1.json b/contracts/schemas/participant-runtime/participant-lifecycle-event-v1.json index b52111554..6d2d31ec2 100644 --- a/contracts/schemas/participant-runtime/participant-lifecycle-event-v1.json +++ b/contracts/schemas/participant-runtime/participant-lifecycle-event-v1.json @@ -389,7 +389,7 @@ "type": "object" } }, - "$id": "https://raes.dev/schemas/participant-lifecycle-event-v1.json", + "$id": "https://raesystem.github.io/rae/schemas/participant-lifecycle-event-v1.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "description": "RUN-306 lifecycle boundary record for one participant action event.", diff --git a/contracts/schemas/participant-runtime/participant-observation-envelope-v1.json b/contracts/schemas/participant-runtime/participant-observation-envelope-v1.json index 6ae742ac6..5add5f720 100644 --- a/contracts/schemas/participant-runtime/participant-observation-envelope-v1.json +++ b/contracts/schemas/participant-runtime/participant-observation-envelope-v1.json @@ -409,7 +409,7 @@ "type": "object" } }, - "$id": "https://raes.dev/schemas/participant-observation-envelope-v1.json", + "$id": "https://raesystem.github.io/rae/schemas/participant-observation-envelope-v1.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "description": "SEM-210 participant-visible observation record with explicit guarantees.", diff --git a/contracts/schemas/participant-runtime/participant-outcome-report-v1.json b/contracts/schemas/participant-runtime/participant-outcome-report-v1.json index 42616cb74..b2b825025 100644 --- a/contracts/schemas/participant-runtime/participant-outcome-report-v1.json +++ b/contracts/schemas/participant-runtime/participant-outcome-report-v1.json @@ -413,7 +413,7 @@ "type": "object" } }, - "$id": "https://raes.dev/schemas/participant-outcome-report-v1.json", + "$id": "https://raesystem.github.io/rae/schemas/participant-outcome-report-v1.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "description": "SEM-215 outcome interpretation report.\n\nThe carrier deliberately has no score, reward, or objective-success\nfield: reward and return remain ADR-054 step signals, and objective and\nevaluation results remain their own contract surfaces.", diff --git a/contracts/schemas/participant-runtime/participant-resource-budget-event-v1.json b/contracts/schemas/participant-runtime/participant-resource-budget-event-v1.json index 1dd418c76..33ddb7d4b 100644 --- a/contracts/schemas/participant-runtime/participant-resource-budget-event-v1.json +++ b/contracts/schemas/participant-runtime/participant-resource-budget-event-v1.json @@ -1,5 +1,5 @@ { - "$id": "https://raes.dev/schemas/participant-resource-budget-event-v1.json", + "$id": "https://raesystem.github.io/rae/schemas/participant-resource-budget-event-v1.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { diff --git a/contracts/schemas/participant-runtime/participant-resource-budget-policy-v1.json b/contracts/schemas/participant-runtime/participant-resource-budget-policy-v1.json index d29cfd6bc..86e314f8b 100644 --- a/contracts/schemas/participant-runtime/participant-resource-budget-policy-v1.json +++ b/contracts/schemas/participant-runtime/participant-resource-budget-policy-v1.json @@ -244,7 +244,7 @@ "type": "object" } }, - "$id": "https://raes.dev/schemas/participant-resource-budget-policy-v1.json", + "$id": "https://raesystem.github.io/rae/schemas/participant-resource-budget-policy-v1.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { diff --git a/contracts/schemas/participant-runtime/participant-resource-budget-state-v1.json b/contracts/schemas/participant-runtime/participant-resource-budget-state-v1.json index 58279fbe2..e7aef6775 100644 --- a/contracts/schemas/participant-runtime/participant-resource-budget-state-v1.json +++ b/contracts/schemas/participant-runtime/participant-resource-budget-state-v1.json @@ -1,5 +1,5 @@ { - "$id": "https://raes.dev/schemas/participant-resource-budget-state-v1.json", + "$id": "https://raesystem.github.io/rae/schemas/participant-resource-budget-state-v1.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { diff --git a/contracts/schemas/participant-runtime/participant-resource-pool-capacity-v1.json b/contracts/schemas/participant-runtime/participant-resource-pool-capacity-v1.json index b944f2903..1cb50db49 100644 --- a/contracts/schemas/participant-runtime/participant-resource-pool-capacity-v1.json +++ b/contracts/schemas/participant-runtime/participant-resource-pool-capacity-v1.json @@ -1,5 +1,5 @@ { - "$id": "https://raes.dev/schemas/participant-resource-pool-capacity-v1.json", + "$id": "https://raesystem.github.io/rae/schemas/participant-resource-pool-capacity-v1.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { diff --git a/contracts/schemas/participant-runtime/participant-shared-state-record-v1.json b/contracts/schemas/participant-runtime/participant-shared-state-record-v1.json index cf4e8a7d4..a662f373a 100644 --- a/contracts/schemas/participant-runtime/participant-shared-state-record-v1.json +++ b/contracts/schemas/participant-runtime/participant-shared-state-record-v1.json @@ -551,7 +551,7 @@ "type": "object" } }, - "$id": "https://raes.dev/schemas/participant-shared-state-record-v1.json", + "$id": "https://raesystem.github.io/rae/schemas/participant-shared-state-record-v1.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "anyOf": [ diff --git a/contracts/schemas/participant-runtime/participant-time-management-context-v1.json b/contracts/schemas/participant-runtime/participant-time-management-context-v1.json index f649a8232..74c822259 100644 --- a/contracts/schemas/participant-runtime/participant-time-management-context-v1.json +++ b/contracts/schemas/participant-runtime/participant-time-management-context-v1.json @@ -351,7 +351,7 @@ "type": "object" } }, - "$id": "https://raes.dev/schemas/participant-time-management-context-v1.json", + "$id": "https://raesystem.github.io/rae/schemas/participant-time-management-context-v1.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "description": "RUN-308 time-management basis for concurrent or distributed runtime claims.", diff --git a/contracts/schemas/participant-runtime/runtime-fact-binding-plane-v1.json b/contracts/schemas/participant-runtime/runtime-fact-binding-plane-v1.json index 4aa007e56..cf2cce1db 100644 --- a/contracts/schemas/participant-runtime/runtime-fact-binding-plane-v1.json +++ b/contracts/schemas/participant-runtime/runtime-fact-binding-plane-v1.json @@ -685,7 +685,7 @@ "type": "object" } }, - "$id": "https://raes.dev/schemas/runtime-fact-binding-plane-v1.json", + "$id": "https://raesystem.github.io/rae/schemas/runtime-fact-binding-plane-v1.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { @@ -754,6 +754,6 @@ "id": "raes-semantic-invariants-v1", "keyword": "x-raes-invariants", "required": true, - "uri": "https://raes.dev/schemas/semantic-invariants/v1" + "uri": "https://raesystem.github.io/rae/schemas/semantic-invariants/v1" } } diff --git a/contracts/schemas/plans/evaluation-plan-v1.json b/contracts/schemas/plans/evaluation-plan-v1.json index feeaa8543..8c157bbe4 100644 --- a/contracts/schemas/plans/evaluation-plan-v1.json +++ b/contracts/schemas/plans/evaluation-plan-v1.json @@ -73,7 +73,7 @@ "type": "object" } }, - "$id": "https://raes.dev/schemas/evaluation-plan-v1.json", + "$id": "https://raesystem.github.io/rae/schemas/evaluation-plan-v1.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { diff --git a/contracts/schemas/plans/orchestration-plan-v1.json b/contracts/schemas/plans/orchestration-plan-v1.json index 3ffbbacc3..42a613058 100644 --- a/contracts/schemas/plans/orchestration-plan-v1.json +++ b/contracts/schemas/plans/orchestration-plan-v1.json @@ -75,7 +75,7 @@ "type": "object" } }, - "$id": "https://raes.dev/schemas/orchestration-plan-v1.json", + "$id": "https://raesystem.github.io/rae/schemas/orchestration-plan-v1.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { diff --git a/contracts/schemas/plans/provisioning-plan-v1.json b/contracts/schemas/plans/provisioning-plan-v1.json index 476dbfe75..d66b6f338 100644 --- a/contracts/schemas/plans/provisioning-plan-v1.json +++ b/contracts/schemas/plans/provisioning-plan-v1.json @@ -117,7 +117,7 @@ "type": "object" } }, - "$id": "https://raes.dev/schemas/provisioning-plan-v1.json", + "$id": "https://raesystem.github.io/rae/schemas/provisioning-plan-v1.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { diff --git a/contracts/schemas/plans/trial-cleanup-plan-v1.json b/contracts/schemas/plans/trial-cleanup-plan-v1.json index a22ecba75..8b09fc554 100644 --- a/contracts/schemas/plans/trial-cleanup-plan-v1.json +++ b/contracts/schemas/plans/trial-cleanup-plan-v1.json @@ -263,7 +263,7 @@ "type": "object" } }, - "$id": "https://raes.dev/schemas/trial-cleanup-plan-v1.json", + "$id": "https://raesystem.github.io/rae/schemas/trial-cleanup-plan-v1.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "description": "Schedule-independent cleanup intent carried by one admitted trial entry.", @@ -350,6 +350,6 @@ "id": "raes-semantic-invariants-v1", "keyword": "x-raes-invariants", "required": true, - "uri": "https://raes.dev/schemas/semantic-invariants/v1" + "uri": "https://raesystem.github.io/rae/schemas/semantic-invariants/v1" } } diff --git a/contracts/schemas/processor-manifest/processor-manifest-v2.json b/contracts/schemas/processor-manifest/processor-manifest-v2.json index 5aae39c9d..4581d8bc2 100644 --- a/contracts/schemas/processor-manifest/processor-manifest-v2.json +++ b/contracts/schemas/processor-manifest/processor-manifest-v2.json @@ -283,7 +283,7 @@ "type": "string" } }, - "$id": "https://raes.dev/schemas/processor-manifest-v2.json", + "$id": "https://raesystem.github.io/rae/schemas/processor-manifest-v2.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { diff --git a/contracts/schemas/profiles/backend-profile-v1.json b/contracts/schemas/profiles/backend-profile-v1.json index edad27274..c194da0f9 100644 --- a/contracts/schemas/profiles/backend-profile-v1.json +++ b/contracts/schemas/profiles/backend-profile-v1.json @@ -1,5 +1,5 @@ { - "$id": "https://raes.dev/schemas/backend-profile-v1.json", + "$id": "https://raesystem.github.io/rae/schemas/backend-profile-v1.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "description": "Published backend capability profile (closed-world).", diff --git a/contracts/schemas/profiles/raes-semantic-invariants-v1.json b/contracts/schemas/profiles/raes-semantic-invariants-v1.json index e0ef6bc52..746e92e08 100644 --- a/contracts/schemas/profiles/raes-semantic-invariants-v1.json +++ b/contracts/schemas/profiles/raes-semantic-invariants-v1.json @@ -100,7 +100,7 @@ "type": "boolean" }, "uri": { - "const": "https://raes.dev/schemas/semantic-invariants/v1", + "const": "https://raesystem.github.io/rae/schemas/semantic-invariants/v1", "title": "Uri", "type": "string" } @@ -118,7 +118,7 @@ "type": "object" } }, - "$id": "https://raes.dev/schemas/semantic-invariants/v1", + "$id": "https://raesystem.github.io/rae/schemas/semantic-invariants/v1", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "description": "Published shape for RAES semantic-invariant annotations.", @@ -156,7 +156,7 @@ "type": "string" }, "uri": { - "const": "https://raes.dev/schemas/semantic-invariants/v1", + "const": "https://raesystem.github.io/rae/schemas/semantic-invariants/v1", "title": "Uri", "type": "string" } diff --git a/contracts/schemas/profiles/random-stream-profile-v1.json b/contracts/schemas/profiles/random-stream-profile-v1.json index 451389d81..5c867efc3 100644 --- a/contracts/schemas/profiles/random-stream-profile-v1.json +++ b/contracts/schemas/profiles/random-stream-profile-v1.json @@ -148,7 +148,7 @@ "type": "object" } }, - "$id": "https://raes.dev/schemas/random-stream-profile-v1.json", + "$id": "https://raesystem.github.io/rae/schemas/random-stream-profile-v1.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "description": "Published random-stream profile: one closed, immutable compatibility unit.\n\nChanging any field mints a new ``profile_id`` (the EXP-718 preflight's \"One\nProfile And One Stateless API\" section). This model's JSON Schema is\ngenerated via ``schema_bundle()``, never hand-authored.", @@ -235,6 +235,6 @@ "id": "raes-semantic-invariants-v1", "keyword": "x-raes-invariants", "required": true, - "uri": "https://raes.dev/schemas/semantic-invariants/v1" + "uri": "https://raesystem.github.io/rae/schemas/semantic-invariants/v1" } } diff --git a/contracts/schemas/profiles/random-stream-vector-v1.json b/contracts/schemas/profiles/random-stream-vector-v1.json index 02760cc79..8d50bdfe4 100644 --- a/contracts/schemas/profiles/random-stream-vector-v1.json +++ b/contracts/schemas/profiles/random-stream-vector-v1.json @@ -371,7 +371,7 @@ "type": "object" } }, - "$id": "https://raes.dev/schemas/random-stream-vector-v1.json", + "$id": "https://raesystem.github.io/rae/schemas/random-stream-vector-v1.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "description": "One canonical cross-language conformance vector case.\n\nComputed independently of the reference engine (a throwaway script that\ncalls the ``blake3`` library directly), so the vector tests do not just\ntest the engine against itself.", @@ -458,6 +458,6 @@ "id": "raes-semantic-invariants-v1", "keyword": "x-raes-invariants", "required": true, - "uri": "https://raes.dev/schemas/semantic-invariants/v1" + "uri": "https://raesystem.github.io/rae/schemas/semantic-invariants/v1" } } diff --git a/contracts/schemas/profiles/scientific-completeness-assessment-v1.json b/contracts/schemas/profiles/scientific-completeness-assessment-v1.json index 5848f2176..24b6f93c8 100644 --- a/contracts/schemas/profiles/scientific-completeness-assessment-v1.json +++ b/contracts/schemas/profiles/scientific-completeness-assessment-v1.json @@ -148,7 +148,7 @@ "type": "string" } }, - "$id": "https://raes.dev/schemas/scientific-completeness-assessment-v1.json", + "$id": "https://raesystem.github.io/rae/schemas/scientific-completeness-assessment-v1.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { @@ -233,6 +233,6 @@ "id": "raes-semantic-invariants-v1", "keyword": "x-raes-invariants", "required": true, - "uri": "https://raes.dev/schemas/semantic-invariants/v1" + "uri": "https://raesystem.github.io/rae/schemas/semantic-invariants/v1" } } diff --git a/contracts/schemas/profiles/scientific-completeness-taxonomy-v1.json b/contracts/schemas/profiles/scientific-completeness-taxonomy-v1.json index 50ea27350..fe77f86fe 100644 --- a/contracts/schemas/profiles/scientific-completeness-taxonomy-v1.json +++ b/contracts/schemas/profiles/scientific-completeness-taxonomy-v1.json @@ -276,7 +276,7 @@ "type": "string" } }, - "$id": "https://raes.dev/schemas/scientific-completeness-taxonomy-v1.json", + "$id": "https://raesystem.github.io/rae/schemas/scientific-completeness-taxonomy-v1.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { @@ -358,6 +358,6 @@ "id": "raes-semantic-invariants-v1", "keyword": "x-raes-invariants", "required": true, - "uri": "https://raes.dev/schemas/semantic-invariants/v1" + "uri": "https://raesystem.github.io/rae/schemas/semantic-invariants/v1" } } diff --git a/contracts/schemas/profiles/semantic-profile-v1.json b/contracts/schemas/profiles/semantic-profile-v1.json index e75ab9e8d..dff0034b7 100644 --- a/contracts/schemas/profiles/semantic-profile-v1.json +++ b/contracts/schemas/profiles/semantic-profile-v1.json @@ -92,7 +92,7 @@ "type": "object" } }, - "$id": "https://raes.dev/schemas/semantic-profile-v1.json", + "$id": "https://raesystem.github.io/rae/schemas/semantic-profile-v1.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { diff --git a/contracts/schemas/profiles/validation-basis-disclosure-v1.json b/contracts/schemas/profiles/validation-basis-disclosure-v1.json index e097c9507..a8121095f 100644 --- a/contracts/schemas/profiles/validation-basis-disclosure-v1.json +++ b/contracts/schemas/profiles/validation-basis-disclosure-v1.json @@ -552,7 +552,7 @@ "type": "object" } }, - "$id": "https://raes.dev/schemas/validation-basis-disclosure-v1.json", + "$id": "https://raesystem.github.io/rae/schemas/validation-basis-disclosure-v1.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "description": "Published wrapper adding ``schema_version`` around the embeddable disclosure core.", @@ -579,6 +579,6 @@ "id": "raes-semantic-invariants-v1", "keyword": "x-raes-invariants", "required": true, - "uri": "https://raes.dev/schemas/semantic-invariants/v1" + "uri": "https://raesystem.github.io/rae/schemas/semantic-invariants/v1" } } diff --git a/contracts/schemas/profiles/validation-profile-catalog-v1.json b/contracts/schemas/profiles/validation-profile-catalog-v1.json index 5483184c9..f55f71454 100644 --- a/contracts/schemas/profiles/validation-profile-catalog-v1.json +++ b/contracts/schemas/profiles/validation-profile-catalog-v1.json @@ -187,7 +187,7 @@ "type": "object" } }, - "$id": "https://raes.dev/schemas/validation-profile-catalog-v1.json", + "$id": "https://raesystem.github.io/rae/schemas/validation-profile-catalog-v1.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { @@ -280,6 +280,6 @@ "id": "raes-semantic-invariants-v1", "keyword": "x-raes-invariants", "required": true, - "uri": "https://raes.dev/schemas/semantic-invariants/v1" + "uri": "https://raesystem.github.io/rae/schemas/semantic-invariants/v1" } } diff --git a/contracts/schemas/provenance/sdl-lineage-ledger-v1.json b/contracts/schemas/provenance/sdl-lineage-ledger-v1.json index ca1f1b73a..91ecbf71e 100644 --- a/contracts/schemas/provenance/sdl-lineage-ledger-v1.json +++ b/contracts/schemas/provenance/sdl-lineage-ledger-v1.json @@ -575,7 +575,7 @@ "type": "object" } }, - "$id": "https://raes.dev/schemas/sdl-lineage-ledger-v1.json", + "$id": "https://raesystem.github.io/rae/schemas/sdl-lineage-ledger-v1.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { diff --git a/contracts/schemas/realization-envelope/realization-envelope-v1.json b/contracts/schemas/realization-envelope/realization-envelope-v1.json index bb9e27d2e..af9a25f0d 100644 --- a/contracts/schemas/realization-envelope/realization-envelope-v1.json +++ b/contracts/schemas/realization-envelope/realization-envelope-v1.json @@ -761,7 +761,7 @@ "type": "object" } }, - "$id": "https://raes.dev/schemas/realization-envelope-v1.json", + "$id": "https://raesystem.github.io/rae/schemas/realization-envelope-v1.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "description": "Published backend carrier: shared set expression plus truthful realization claims.", @@ -986,6 +986,6 @@ "id": "raes-semantic-invariants-v1", "keyword": "x-raes-invariants", "required": true, - "uri": "https://raes.dev/schemas/semantic-invariants/v1" + "uri": "https://raesystem.github.io/rae/schemas/semantic-invariants/v1" } } diff --git a/contracts/schemas/satisfiability/scenario-satisfiability-evidence-v1.json b/contracts/schemas/satisfiability/scenario-satisfiability-evidence-v1.json index afe93d0b1..7ae257c77 100644 --- a/contracts/schemas/satisfiability/scenario-satisfiability-evidence-v1.json +++ b/contracts/schemas/satisfiability/scenario-satisfiability-evidence-v1.json @@ -22189,7 +22189,7 @@ "type": "string" } }, - "$id": "https://raes.dev/schemas/scenario-satisfiability-evidence-v1.json", + "$id": "https://raesystem.github.io/rae/schemas/scenario-satisfiability-evidence-v1.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "description": "Closed evidence envelope binding source, model, solver, and result.", @@ -22316,6 +22316,6 @@ "id": "raes-semantic-invariants-v1", "keyword": "x-raes-invariants", "required": true, - "uri": "https://raes.dev/schemas/semantic-invariants/v1" + "uri": "https://raesystem.github.io/rae/schemas/semantic-invariants/v1" } } diff --git a/contracts/schemas/sdl/instantiated-scenario-snapshot-v1.json b/contracts/schemas/sdl/instantiated-scenario-snapshot-v1.json index e073b2fff..1117100b5 100644 --- a/contracts/schemas/sdl/instantiated-scenario-snapshot-v1.json +++ b/contracts/schemas/sdl/instantiated-scenario-snapshot-v1.json @@ -27251,7 +27251,7 @@ "type": "string" } }, - "$id": "https://raes.dev/schemas/instantiated-scenario-snapshot-v1.json", + "$id": "https://raesystem.github.io/rae/schemas/instantiated-scenario-snapshot-v1.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "description": "Sealed canonical envelope for one portable instantiated artifact.", @@ -27329,6 +27329,6 @@ "id": "raes-semantic-invariants-v1", "keyword": "x-raes-invariants", "required": true, - "uri": "https://raes.dev/schemas/semantic-invariants/v1" + "uri": "https://raesystem.github.io/rae/schemas/semantic-invariants/v1" } } diff --git a/contracts/schemas/sdl/instantiated-scenario-v1.json b/contracts/schemas/sdl/instantiated-scenario-v1.json index f25c1f524..1011cab08 100644 --- a/contracts/schemas/sdl/instantiated-scenario-v1.json +++ b/contracts/schemas/sdl/instantiated-scenario-v1.json @@ -26608,7 +26608,7 @@ "type": "string" } }, - "$id": "https://raes.dev/schemas/instantiated-scenario-v1.json", + "$id": "https://raesystem.github.io/rae/schemas/instantiated-scenario-v1.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "description": "Scenario with all ``${var}`` references resolved to concrete values.\n\nUnlike the authoring-input contract, an instantiated scenario MUST NOT\ncontain any unresolved ``${name}`` substitution token in any string value,\nwhether a whole-string placeholder (``\"${os}\"``) or embedded\n(``\"host-${index}\"``). The invariant is enforced both by the model\nvalidator below and by the published ``instantiated-scenario-v1`` JSON\nSchema, which forbids the token in every string field. The schema is\nIf a resolved variable value itself introduces a literal ``${name}``\nsequence, the single-pass substitution step does not interpret it as a\nsecond substitution request; final model admission still treats the result\nas non-concrete and rejects the public instantiation.", @@ -27308,6 +27308,6 @@ "id": "raes-semantic-invariants-v1", "keyword": "x-raes-invariants", "required": true, - "uri": "https://raes.dev/schemas/semantic-invariants/v1" + "uri": "https://raesystem.github.io/rae/schemas/semantic-invariants/v1" } } diff --git a/contracts/schemas/sdl/scenario-instantiation-request-v1.json b/contracts/schemas/sdl/scenario-instantiation-request-v1.json index 8d0ac84ed..040ef81fe 100644 --- a/contracts/schemas/sdl/scenario-instantiation-request-v1.json +++ b/contracts/schemas/sdl/scenario-instantiation-request-v1.json @@ -1,5 +1,5 @@ { - "$id": "https://raes.dev/schemas/scenario-instantiation-request-v1.json", + "$id": "https://raesystem.github.io/rae/schemas/scenario-instantiation-request-v1.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { diff --git a/contracts/schemas/sdl/sdl-authoring-input-v1.json b/contracts/schemas/sdl/sdl-authoring-input-v1.json index 4e7ce6440..761eca048 100644 --- a/contracts/schemas/sdl/sdl-authoring-input-v1.json +++ b/contracts/schemas/sdl/sdl-authoring-input-v1.json @@ -22376,7 +22376,7 @@ "type": "string" } }, - "$id": "https://raes.dev/schemas/sdl-authoring-input-v1.json", + "$id": "https://raesystem.github.io/rae/schemas/sdl-authoring-input-v1.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "description": "Normalized SDL authoring object.\n\nThis model applies after ``sdl-yaml/v1`` source-profile checks, structural\nkey canonicalization, shorthand expansion, enum normalization, and typed\nconstruction, but before module expansion and instantiation. Its JSON\nSchema does not validate YAML presentation details.", @@ -23145,7 +23145,7 @@ "id": "raes-semantic-invariants-v1", "keyword": "x-raes-invariants", "required": true, - "uri": "https://raes.dev/schemas/semantic-invariants/v1" + "uri": "https://raesystem.github.io/rae/schemas/semantic-invariants/v1" }, "x-raes-source-profile": "sdl-yaml/v1", "x-raes-validates-raw-source": false diff --git a/contracts/schemas/snapshots/runtime-snapshot-v1.json b/contracts/schemas/snapshots/runtime-snapshot-v1.json index e0823ece6..7456389a9 100644 --- a/contracts/schemas/snapshots/runtime-snapshot-v1.json +++ b/contracts/schemas/snapshots/runtime-snapshot-v1.json @@ -8144,7 +8144,7 @@ "type": "object" } }, - "$id": "https://raes.dev/schemas/runtime-snapshot-v1.json", + "$id": "https://raesystem.github.io/rae/schemas/runtime-snapshot-v1.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "description": "Published envelope for a live runtime snapshot.\n\nParticipant episode surfaces (``participant_episode_results`` and\n``participant_episode_history``) are both keyed by the stable\n``participant_address`` of the participant the state/history belongs\nto. SEM-208 participant behavior history is keyed the same way and\nrecords action, observation, and state-transition events with compiled\nbehavior-contract addresses. The episode results map carries the\ncurrently-live episode state per participant; prior episodes survive only\nthrough append-only history streams and the ``previous_episode_id`` chain\non each state.", @@ -8362,6 +8362,6 @@ "id": "raes-semantic-invariants-v1", "keyword": "x-raes-invariants", "required": true, - "uri": "https://raes.dev/schemas/semantic-invariants/v1" + "uri": "https://raesystem.github.io/rae/schemas/semantic-invariants/v1" } } diff --git a/contracts/schemas/time/realized-time-model-v1.json b/contracts/schemas/time/realized-time-model-v1.json index 3bb95ec5d..04e332c15 100644 --- a/contracts/schemas/time/realized-time-model-v1.json +++ b/contracts/schemas/time/realized-time-model-v1.json @@ -693,7 +693,7 @@ "type": "object" } }, - "$id": "https://raes.dev/schemas/realized-time-model-v1.json", + "$id": "https://raesystem.github.io/rae/schemas/realized-time-model-v1.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "description": "Run-scoped declaration/realization comparison and apparatus evidence.", diff --git a/contracts/schemas/time/time-model-v1.json b/contracts/schemas/time/time-model-v1.json index efe2990c9..67e202e0b 100644 --- a/contracts/schemas/time/time-model-v1.json +++ b/contracts/schemas/time/time-model-v1.json @@ -479,7 +479,7 @@ "type": "object" } }, - "$id": "https://raes.dev/schemas/time-model-v1.json", + "$id": "https://raesystem.github.io/rae/schemas/time-model-v1.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "description": "Canonical backend-neutral declaration compiled from authored SDL.", diff --git a/contracts/schemas/time/time-runtime-state-v1.json b/contracts/schemas/time/time-runtime-state-v1.json index 4f27ba57b..9afc47e10 100644 --- a/contracts/schemas/time/time-runtime-state-v1.json +++ b/contracts/schemas/time/time-runtime-state-v1.json @@ -175,7 +175,7 @@ "type": "object" } }, - "$id": "https://raes.dev/schemas/time-runtime-state-v1.json", + "$id": "https://raesystem.github.io/rae/schemas/time-runtime-state-v1.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "description": "Typed observable state for all clocks governed by one declaration.", diff --git a/docs/decisions/adrs/adr-096-identity-cutover-and-historical-record-boundary.md b/docs/decisions/adrs/adr-096-identity-cutover-and-historical-record-boundary.md index b65e08de1..51af0f858 100644 --- a/docs/decisions/adrs/adr-096-identity-cutover-and-historical-record-boundary.md +++ b/docs/decisions/adrs/adr-096-identity-cutover-and-historical-record-boundary.md @@ -135,3 +135,4 @@ validation, or evidence semantics beyond their identity-bearing values. | Date | Commit/PR | Summary | |---|---|---| | 2026-07-26 | #908 | Retained the existing SonarCloud project key as an exact, content-bound external-service designation; it is not a current RAES product identity or a general compatibility allowance. | +| 2026-07-27 | #908 | Corrected the canonical published-schema URI root. The root recorded above, `https://raes.dev/schemas/`, names a domain this project does not control, and neither did the retired-identity domain it replaced. The canonical root is now `https://raesystem.github.io/rae/schemas/`, which is bound to the repository's own GitHub organisation and is therefore uniquely ours to assign. `$id` remains an identifier and is not required to resolve, so no DNS or hosting obligation follows from it. | diff --git a/docs/decisions/adrs/adr-index.yaml b/docs/decisions/adrs/adr-index.yaml index 7c028c0e6..a913c2dea 100644 --- a/docs/decisions/adrs/adr-index.yaml +++ b/docs/decisions/adrs/adr-index.yaml @@ -449,6 +449,9 @@ adrs: - date: 2026-07-26 ref: "#908" summary: "Retained the existing SonarCloud project key as an exact, content-bound external-service designation rather than a current RAES product identity." + - date: 2026-07-27 + ref: "#908" + summary: "Repointed the canonical published-schema URI root from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root." - id: ADR-098 path: docs/decisions/adrs/adr-098-portable-artifact-requirement-satisfaction.md pin: cabc306d07b60b7d1c62cf85750a57025651e69f55946261e315d772644309e3 diff --git a/docs/migration/raes-rename.md b/docs/migration/raes-rename.md index 07fea0daf..104242cd6 100644 --- a/docs/migration/raes-rename.md +++ b/docs/migration/raes-rename.md @@ -13,7 +13,7 @@ does not retain public aliases or dual-name compatibility. | Python distribution and imports | `raes` and the owning `raes_*` packages | installed wheel and source-boundary tests | | CLI and MCP commands | `raes`, `raes-mcp` | CLI and MCP construction tests | | MCP server and tools | RAES server metadata and `raes_*` tool identifiers | advertised-tool and guidance tests | -| Published schema namespace | `https://raes.dev/schemas/` | generated parity and schema-publication checks | +| Published schema namespace | `https://raesystem.github.io/rae/schemas/` | generated parity and schema-publication checks | | Contract/profile identities | RAES contract, profile, annotation, and wire identifiers | contract models, fixtures, JSON Schema validation | | Module artifacts | `raes.lock.json`, `raes-trust.yaml`, `.raes/module-cache`, RAES OCI media types and labels | registry, digest, signature, archive, and CLI tests | | Runtime and evidence artifacts | RAES schema names, event/status values, evidence ids, and resource names | DTO, fixture, persistence, and backend tests | diff --git a/implementations/python/packages/raes_contracts/contracts/base.py b/implementations/python/packages/raes_contracts/contracts/base.py index 9c7fd631a..9ee5779dc 100644 --- a/implementations/python/packages/raes_contracts/contracts/base.py +++ b/implementations/python/packages/raes_contracts/contracts/base.py @@ -258,7 +258,7 @@ def _validate_claim_strength(self) -> BehavioralClaimBindingModel: ) -_RAES_SEMANTIC_INVARIANT_PROFILE_URI = "https://raes.dev/schemas/semantic-invariants/v1" +_RAES_SEMANTIC_INVARIANT_PROFILE_URI = "https://raesystem.github.io/rae/schemas/semantic-invariants/v1" def _canonical_digest(digest: str | None) -> str | None: diff --git a/implementations/python/packages/raes_contracts/contracts/schema_constraints.py b/implementations/python/packages/raes_contracts/contracts/schema_constraints.py index 7278aea38..d3f0a77fc 100644 --- a/implementations/python/packages/raes_contracts/contracts/schema_constraints.py +++ b/implementations/python/packages/raes_contracts/contracts/schema_constraints.py @@ -270,7 +270,7 @@ def _attach_instantiation_invariants(contract_id: str, json_schema: dict[str, An def _schema_id_for_contract_id(contract_id: str) -> str: if contract_id == "raes-semantic-invariants-v1": return _RAES_SEMANTIC_INVARIANT_PROFILE_URI - return f"https://raes.dev/schemas/{contract_id}.json" + return f"https://raesystem.github.io/rae/schemas/{contract_id}.json" def _attach_json_schema_metadata(contract_id: str, json_schema: dict[str, Any]) -> None: @@ -350,7 +350,7 @@ class RaesSemanticInvariantProfileModel(ContractModel): schema_version: Literal[_RAES_SEMANTIC_INVARIANTS_SCHEMA_VERSION] profile_id: Literal["raes-semantic-invariants-v1"] - uri: Literal["https://raes.dev/schemas/semantic-invariants/v1"] + uri: Literal["https://raesystem.github.io/rae/schemas/semantic-invariants/v1"] keyword: Literal["x-raes-invariants"] invariant_entry_schema: Literal["#/$defs/RaesSemanticInvariantEntryModel"] profile_reference_schema: Literal["#/$defs/RaesSemanticInvariantProfileReferenceModel"] @@ -361,7 +361,7 @@ class RaesSemanticInvariantProfileReferenceModel(ContractModel): """Host-schema reference to the RAES semantic-invariant profile.""" id: Literal["raes-semantic-invariants-v1"] - uri: Literal["https://raes.dev/schemas/semantic-invariants/v1"] + uri: Literal["https://raesystem.github.io/rae/schemas/semantic-invariants/v1"] contract_id: NonEmptyString keyword: Literal["x-raes-invariants"] required: Literal[True] diff --git a/implementations/python/tests/test_concept_authority.py b/implementations/python/tests/test_concept_authority.py index 3192093be..9cb66884f 100644 --- a/implementations/python/tests/test_concept_authority.py +++ b/implementations/python/tests/test_concept_authority.py @@ -117,7 +117,7 @@ def test_native_family_rejects_authority_metadata(): description="SDL scenarios.", provenance=ConceptProvenanceCategory.NATIVE, authority="RAES", - authority_reference="https://raes.dev/concepts", + authority_reference="https://raesystem.github.io/rae/concepts", extension_scope="SDL-native scenario authoring constructs.", relation_rules=["Must remain the scenario authoring layer."], non_ambiguity_constraints=["Must not redefine adopted cyber-domain families."], diff --git a/implementations/python/tests/test_participant_backend_contracts.py b/implementations/python/tests/test_participant_backend_contracts.py index d772186ee..db8a66fcd 100644 --- a/implementations/python/tests/test_participant_backend_contracts.py +++ b/implementations/python/tests/test_participant_backend_contracts.py @@ -79,7 +79,7 @@ def test_participant_backend_contracts_are_published_closed_world(): assert contract_id in generated schema = generated[contract_id] assert schema["$schema"] == "https://json-schema.org/draft/2020-12/schema" - assert schema["$id"] == f"https://raes.dev/schemas/{contract_id}.json" + assert schema["$id"] == f"https://raesystem.github.io/rae/schemas/{contract_id}.json" assert schema["additionalProperties"] is False diff --git a/implementations/python/tests/test_runtime_contracts.py b/implementations/python/tests/test_runtime_contracts.py index 7bb484c4c..957907697 100644 --- a/implementations/python/tests/test_runtime_contracts.py +++ b/implementations/python/tests/test_runtime_contracts.py @@ -127,7 +127,7 @@ def test_closed_world_contract_models_for_runtime_envelopes(): for contract_id, schema in generated.items(): assert schema["$schema"] == "https://json-schema.org/draft/2020-12/schema" - assert schema["$id"].startswith("https://raes.dev/schemas/") + assert schema["$id"].startswith("https://raesystem.github.io/rae/schemas/") validate_raes_semantic_invariant_annotations(contract_id, schema) assert generated["raes-semantic-invariants-v1"]["additionalProperties"] is False @@ -175,7 +175,7 @@ def test_experiment_core_schemas_publish_closed_world_contracts(): run_schema = generated["experiment-run-v1"] study_schema = generated["experiment-study-v1"] - assert task_schema["x-raes-semantic-profile"]["uri"] == "https://raes.dev/schemas/semantic-invariants/v1" + assert task_schema["x-raes-semantic-profile"]["uri"] == "https://raesystem.github.io/rae/schemas/semantic-invariants/v1" assert "apparatus-archival-times-rfc3339-valid" in _invariant_ids(apparatus_context_schema) assert run_schema["x-raes-semantic-profile"]["required"] is True assert study_schema["x-raes-semantic-profile"]["keyword"] == "x-raes-invariants" diff --git a/tools/policy/historical_identity_records.json b/tools/policy/historical_identity_records.json index c1a78b6ca..8a81b1860 100644 --- a/tools/policy/historical_identity_records.json +++ b/tools/policy/historical_identity_records.json @@ -23,7 +23,7 @@ "record_class": "release-history", "rationale": "Preserves immutable release notes and links published before the RAES identity cutover.", "occurrences": 297, - "content_sha256": "3a1154626ec846e91556113406701d22e69df203237c072adb2fa626ddc5c8f7" + "content_sha256": "6faabd84a6054d74f1778da8ed9d06696af72b95de9b5f26d29f7cb2af0cd50b" }, { "path": "contracts/provenance/sdl-lineage-ledger-v1.json", @@ -499,7 +499,7 @@ "record_class": "historical-index", "rationale": "Indexes immutable pre-cutover ADR titles, paths, pins, and amendment summaries without making them current identity surf\u0061ces.", "occurrences": 4, - "content_sha256": "07647de85678b0bbc9b712a9af0ff61edddaa49955c44536a093f74a0898bba6" + "content_sha256": "8ed12d609d126d54a55342778e4a4007d6f49015298fa49fb3848d5f11d427f1" }, { "path": "docs/decisions/cage-2-replication-design.md", From f9da4f79b91bbc4f68cad97c7aa816db69ee192e Mon Sep 17 00:00:00 2001 From: Brad Edwards Date: Tue, 28 Jul 2026 00:20:53 +0200 Subject: [PATCH 2/5] fix: pin bot-maintained release history by classified tail `check_identity_cutover` pinned CHANGELOG.md by whole-file digest, but release-please rewrites that file on every release, inserting each new section above the existing ones. The pin therefore goes stale at every release by construction. It did at v2.0.0: PR #937 back-merged the release into `dev` with the required `verify` check failing, and the failure was overridden rather than fixed, leaving `dev` red on this gate. Add a `generated-release-history` record class that matches how the file is actually maintained. It pins the classified tail exactly and holds everything written above it to the live-tree rule of zero retired identity occurrences, so newly generated content carries no historical exemption. Editing or truncating the tail still fails closed. This is strictly stricter than the whole-file pin it replaces: the old rule allowed any content anywhere in the file so long as the digest was re-recorded, which is exactly the re-record-and-move-on habit that let the override stand. Manifest schema moves to historical-identity-records/v3. Refs #908 --- ...-cutover-and-historical-record-boundary.md | 1 + docs/decisions/adrs/adr-index.yaml | 3 + .../tests/test_identity_cutover_policy.py | 112 +++++++++- tools/check_identity_cutover.py | 194 +++++++++++++++++- tools/policy/historical_identity_records.json | 21 +- 5 files changed, 314 insertions(+), 17 deletions(-) diff --git a/docs/decisions/adrs/adr-096-identity-cutover-and-historical-record-boundary.md b/docs/decisions/adrs/adr-096-identity-cutover-and-historical-record-boundary.md index 51af0f858..d3d56b216 100644 --- a/docs/decisions/adrs/adr-096-identity-cutover-and-historical-record-boundary.md +++ b/docs/decisions/adrs/adr-096-identity-cutover-and-historical-record-boundary.md @@ -136,3 +136,4 @@ validation, or evidence semantics beyond their identity-bearing values. |---|---|---| | 2026-07-26 | #908 | Retained the existing SonarCloud project key as an exact, content-bound external-service designation; it is not a current RAES product identity or a general compatibility allowance. | | 2026-07-27 | #908 | Corrected the canonical published-schema URI root. The root recorded above, `https://raes.dev/schemas/`, names a domain this project does not control, and neither did the retired-identity domain it replaced. The canonical root is now `https://raesystem.github.io/rae/schemas/`, which is bound to the repository's own GitHub organisation and is therefore uniquely ours to assign. `$id` remains an identifier and is not required to resolve, so no DNS or hosting obligation follows from it. | +| 2026-07-28 | #908 | Split the release-history boundary for bot-maintained files. A whole-file digest cannot hold for `CHANGELOG.md`, which release-please rewrites on every release by inserting each new section above the existing ones; the pin went stale at v2.0.0 and the gate was overridden rather than fixed. Such files are now classified `generated-release-history`, which pins the classified tail exactly and holds everything written above it to the live-tree rule of zero retired identity occurrences. Newly generated content therefore carries no historical exemption. | diff --git a/docs/decisions/adrs/adr-index.yaml b/docs/decisions/adrs/adr-index.yaml index a913c2dea..dfe9419f2 100644 --- a/docs/decisions/adrs/adr-index.yaml +++ b/docs/decisions/adrs/adr-index.yaml @@ -452,6 +452,9 @@ adrs: - date: 2026-07-27 ref: "#908" summary: "Repointed the canonical published-schema URI root from the uncontrolled raes.dev domain to the repository-owned https://raesystem.github.io/rae/schemas/ root." + - date: 2026-07-28 + ref: "#908" + summary: "Added the generated-release-history record class so bot-maintained release notes pin their classified tail exactly while newly generated content is held to zero retired identity occurrences." - id: ADR-098 path: docs/decisions/adrs/adr-098-portable-artifact-requirement-satisfaction.md pin: cabc306d07b60b7d1c62cf85750a57025651e69f55946261e315d772644309e3 diff --git a/implementations/python/tests/test_identity_cutover_policy.py b/implementations/python/tests/test_identity_cutover_policy.py index 9a5938a08..d8158ce83 100644 --- a/implementations/python/tests/test_identity_cutover_policy.py +++ b/implementations/python/tests/test_identity_cutover_policy.py @@ -59,18 +59,36 @@ def _binding(path: str, content: bytes, *, occurrences: int = 1) -> dict[str, ob } +def _generated_record( + path: str, + tail: bytes, + *, + occurrences: int = 1, +) -> dict[str, object]: + return { + "path": path, + "record_class": "generated-release-history", + "rationale": "Pins the classified tail of a bot-maintained release history.", + "occurrences": occurrences, + "content_sha256": hashlib.sha256(tail).hexdigest(), + "classified_suffix_bytes": len(tail), + } + + def _seed_repo( repo_root: Path, *, files: dict[str, str | bytes], records: list[dict[str, object]] | None = None, bindings: list[dict[str, object]] | None = None, + generated: list[dict[str, object]] | None = None, ) -> None: for relative_path, content in files.items(): _write(repo_root / relative_path, content) manifest = { - "schema_version": "historical-identity-records/v2", + "schema_version": "historical-identity-records/v3", "hash_algorithm": "sha256", + "generated_history_records": generated or [], "operational_bindings": bindings or [], "records": records or [], } @@ -332,6 +350,98 @@ def test_unsafe_operational_binding_path_fails_closed(tmp_path: Path) -> None: assert "identity-cutover-manifest-path" in _manifest_rule_ids(tmp_path) +_GENERATED_PATH = "CHANGELOG.md" +_GENERATED_TAIL = f"## [1.0.0]\n\n* retained {RETIRED_UPPER} release note\n".encode() +_GENERATED_HEAD = b"# Changelog\n\n## [2.0.0]\n\n* a released feature\n\n" + + +def _seed_generated_history(repo_root: Path, content: bytes, tail: bytes = _GENERATED_TAIL) -> None: + _seed_repo( + repo_root, + files={_GENERATED_PATH: content}, + generated=[_generated_record(_GENERATED_PATH, tail)], + ) + + +def test_generated_release_history_tolerates_new_sections_above_the_classified_tail(tmp_path: Path) -> None: + """A release bot prepending a section must not turn the gate red.""" + _seed_generated_history(tmp_path, _GENERATED_HEAD + _GENERATED_TAIL) + + assert evaluate_identity_cutover(tmp_path) == [] + + +def test_generated_release_history_rejects_retired_identity_in_generated_head(tmp_path: Path) -> None: + head = f"# Changelog\n\n## [2.0.0]\n\n* revive the {RETIRED_LOWER}-invariants profile\n\n".encode() + _seed_generated_history(tmp_path, head + _GENERATED_TAIL) + + assert "identity-cutover-generated-head" in _manifest_rule_ids(tmp_path) + + +def test_generated_release_history_rejects_edited_tail(tmp_path: Path) -> None: + edited_tail = _GENERATED_TAIL.replace(b"1.0.0", b"1.0.1") + _seed_generated_history(tmp_path, _GENERATED_HEAD + edited_tail) + + assert "identity-cutover-generated-content" in _manifest_rule_ids(tmp_path) + + +def test_generated_release_history_rejects_truncated_tail(tmp_path: Path) -> None: + _seed_generated_history(tmp_path, _GENERATED_TAIL[:4]) + + assert "identity-cutover-generated-content" in _manifest_rule_ids(tmp_path) + + +def test_generated_release_history_verifies_tail_occurrence_count(tmp_path: Path) -> None: + _seed_repo( + tmp_path, + files={_GENERATED_PATH: _GENERATED_HEAD + _GENERATED_TAIL}, + generated=[_generated_record(_GENERATED_PATH, _GENERATED_TAIL, occurrences=2)], + ) + + assert "identity-cutover-generated-count" in _manifest_rule_ids(tmp_path) + + +def test_generated_release_history_path_must_be_tracked(tmp_path: Path) -> None: + _seed_generated_history(tmp_path, _GENERATED_HEAD + _GENERATED_TAIL) + (tmp_path / _GENERATED_PATH).unlink() + _git(tmp_path, "rm", "--cached", "-q", _GENERATED_PATH) + + assert "identity-cutover-manifest-path" in _manifest_rule_ids(tmp_path) + + +def test_generated_release_history_rejects_non_positive_suffix_bytes(tmp_path: Path) -> None: + record = _generated_record(_GENERATED_PATH, _GENERATED_TAIL) + record["classified_suffix_bytes"] = 0 + _seed_repo( + tmp_path, + files={_GENERATED_PATH: _GENERATED_HEAD + _GENERATED_TAIL}, + generated=[record], + ) + + assert "identity-cutover-manifest" in _manifest_rule_ids(tmp_path) + + +def test_generated_release_history_rejects_duplicate_content_bound_path(tmp_path: Path) -> None: + content = _GENERATED_HEAD + _GENERATED_TAIL + _seed_repo( + tmp_path, + files={_GENERATED_PATH: content}, + records=[_record(_GENERATED_PATH, content, record_class="release-history")], + generated=[_generated_record(_GENERATED_PATH, _GENERATED_TAIL)], + ) + + assert "identity-cutover-manifest" in _manifest_rule_ids(tmp_path) + + +def test_repository_changelog_is_bound_as_generated_release_history() -> None: + """The real CHANGELOG must stay on the append-tolerant class, not a whole-file pin.""" + manifest = json.loads((REPO_ROOT / MANIFEST_PATH).read_text(encoding="utf-8")) + generated = {entry["path"] for entry in manifest["generated_history_records"]} + pinned = {entry["path"] for entry in manifest["records"]} + + assert "CHANGELOG.md" in generated + assert "CHANGELOG.md" not in pinned + + def test_identity_cutover_check_is_registered_in_canonical_policy_graph() -> None: noxfile_source = (REPO_ROOT / "noxfile.py").read_text(encoding="utf-8") assert '"tools/check_identity_cutover.py"' in noxfile_source diff --git a/tools/check_identity_cutover.py b/tools/check_identity_cutover.py index f8fd894d6..e9a8e1407 100644 --- a/tools/check_identity_cutover.py +++ b/tools/check_identity_cutover.py @@ -23,7 +23,7 @@ ) MANIFEST_PATH = "tools/policy/historical_identity_records.json" -MANIFEST_SCHEMA = "historical-identity-records/v2" +MANIFEST_SCHEMA = "historical-identity-records/v3" MAX_MANIFEST_BYTES = 1_000_000 SHA256_RE = re.compile(r"^[0-9a-f]{64}$") IDENTITY_PATTERN = re.compile( @@ -43,6 +43,7 @@ "research-record", } OPERATIONAL_BINDING_CLASSES = {"external-service-project-key"} +GENERATED_HISTORY_CLASSES = {"generated-release-history"} RULE_LIVE = "identity-cutover-live-token" RULE_MANIFEST = "identity-cutover-manifest" @@ -51,6 +52,9 @@ RULE_HISTORICAL_COUNT = "identity-cutover-historical-count" RULE_OPERATIONAL_CONTENT = "identity-cutover-operational-content" RULE_OPERATIONAL_COUNT = "identity-cutover-operational-count" +RULE_GENERATED_CONTENT = "identity-cutover-generated-content" +RULE_GENERATED_COUNT = "identity-cutover-generated-count" +RULE_GENERATED_HEAD = "identity-cutover-generated-head" RULE_TRACKED_TREE = "identity-cutover-tracked-tree" @@ -72,13 +76,36 @@ class OperationalBinding: content_sha256: str +@dataclass(frozen=True) +class GeneratedHistoryRecord: + """A record whose immutable history is a suffix and whose head is machine-written. + + ``release-history`` pins a whole file, which cannot hold for a file a release + bot rewrites. release-please inserts each new release above the existing ones, + so the retired-identity exemption is bound to the classified tail while the + generated head is held to the stricter live-tree rule of zero occurrences. + """ + + path: str + record_class: str + rationale: str + occurrences: int + content_sha256: str + classified_suffix_bytes: int + + def _manifest_failure(message: str) -> PolicyFailure: return PolicyFailure(RULE_MANIFEST, message, MANIFEST_PATH) def _load_historical_records( repo_root: Path, -) -> tuple[dict[str, HistoricalRecord], dict[str, OperationalBinding], list[PolicyFailure]]: +) -> tuple[ + dict[str, HistoricalRecord], + dict[str, OperationalBinding], + dict[str, GeneratedHistoryRecord], + list[PolicyFailure], +]: try: payload = load_bounded_json_object( repo_root, @@ -86,7 +113,7 @@ def _load_historical_records( max_bytes=MAX_MANIFEST_BYTES, ) except (OSError, UnicodeDecodeError, ValueError) as exc: - return {}, {}, [_manifest_failure(str(exc))] + return {}, {}, {}, [_manifest_failure(str(exc))] failures: list[PolicyFailure] = [] if payload.get("schema_version") != MANIFEST_SCHEMA: @@ -96,11 +123,15 @@ def _load_historical_records( raw_records = payload.get("records") if not isinstance(raw_records, list): failures.append(_manifest_failure("records must be a list")) - return {}, {}, failures + return {}, {}, {}, failures raw_bindings = payload.get("operational_bindings") if not isinstance(raw_bindings, list): failures.append(_manifest_failure("operational_bindings must be a list")) - return {}, {}, failures + return {}, {}, {}, failures + raw_generated = payload.get("generated_history_records") + if not isinstance(raw_generated, list): + failures.append(_manifest_failure("generated_history_records must be a list")) + return {}, {}, {}, failures records: dict[str, HistoricalRecord] = {} expected_keys = { @@ -210,7 +241,79 @@ def _load_historical_records( occurrences=occurrences, content_sha256=content_sha256, ) - return records, bindings, failures + + generated: dict[str, GeneratedHistoryRecord] = {} + generated_keys = { + "path", + "record_class", + "rationale", + "occurrences", + "content_sha256", + "classified_suffix_bytes", + } + for index, raw_record in enumerate(raw_generated): + if not isinstance(raw_record, dict): + failures.append(_manifest_failure(f"generated_history_records[{index}] must be an object")) + continue + if set(raw_record) != generated_keys: + failures.append( + _manifest_failure(f"generated_history_records[{index}] must contain exactly {sorted(generated_keys)!r}") + ) + continue + path = raw_record.get("path") + record_class = raw_record.get("record_class") + rationale = raw_record.get("rationale") + occurrences = raw_record.get("occurrences") + content_sha256 = raw_record.get("content_sha256") + suffix_bytes = raw_record.get("classified_suffix_bytes") + if not isinstance(path, str) or not path: + failures.append(_manifest_failure(f"generated_history_records[{index}].path must be a non-empty string")) + continue + if path in records or path in bindings or path in generated: + failures.append(_manifest_failure(f"duplicate content-bound path {path!r}")) + continue + if safe_repo_path(repo_root, path) is None: + failures.append(PolicyFailure(RULE_MANIFEST_PATH, "generated history path is unsafe", path)) + continue + if record_class not in GENERATED_HISTORY_CLASSES: + failures.append( + _manifest_failure( + f"generated_history_records[{index}].record_class must be one of " + f"{sorted(GENERATED_HISTORY_CLASSES)!r}" + ) + ) + continue + if not isinstance(rationale, str) or not rationale.strip(): + failures.append(_manifest_failure(f"generated_history_records[{index}].rationale must be non-empty")) + continue + if isinstance(occurrences, bool) or not isinstance(occurrences, int) or occurrences < 1: + failures.append( + _manifest_failure(f"generated_history_records[{index}].occurrences must be a positive integer") + ) + continue + if not isinstance(content_sha256, str) or not SHA256_RE.fullmatch(content_sha256): + failures.append( + _manifest_failure( + f"generated_history_records[{index}].content_sha256 must be a lowercase sha256 digest" + ) + ) + continue + if isinstance(suffix_bytes, bool) or not isinstance(suffix_bytes, int) or suffix_bytes < 1: + failures.append( + _manifest_failure( + f"generated_history_records[{index}].classified_suffix_bytes must be a positive integer" + ) + ) + continue + generated[path] = GeneratedHistoryRecord( + path=path, + record_class=record_class, + rationale=rationale, + occurrences=occurrences, + content_sha256=content_sha256, + classified_suffix_bytes=suffix_bytes, + ) + return records, bindings, generated, failures def _tracked_paths(repo_root: Path) -> tuple[list[str], list[PolicyFailure]]: @@ -231,8 +334,72 @@ def _match_lines(content: bytes, matches: list[re.Match[bytes]]) -> list[int]: return [content.count(b"\n", 0, match.start()) + 1 for match in matches] +def _evaluate_generated_history( + record: GeneratedHistoryRecord, + content: bytes, + relative_path: str, +) -> list[PolicyFailure]: + """Pin the classified tail exactly and hold the generated head to zero occurrences.""" + boundary = len(content) - record.classified_suffix_bytes + if boundary < 0: + return [ + PolicyFailure( + RULE_GENERATED_CONTENT, + ( + f"generated history record is {len(content)} bytes, shorter than its classified " + f"suffix of {record.classified_suffix_bytes} bytes; the immutable tail was truncated" + ), + relative_path, + ) + ] + + head, suffix = content[:boundary], content[boundary:] + failures: list[PolicyFailure] = [] + + digest = hashlib.sha256(suffix).hexdigest() + if digest != record.content_sha256: + failures.append( + PolicyFailure( + RULE_GENERATED_CONTENT, + "generated history record tail no longer matches its classified digest", + relative_path, + ) + ) + + suffix_matches = list(IDENTITY_PATTERN.finditer(suffix)) + if len(suffix_matches) != record.occurrences: + failures.append( + PolicyFailure( + RULE_GENERATED_COUNT, + ( + f"generated history record declares {record.occurrences} occurrences in its " + f"classified tail but contains {len(suffix_matches)}" + ), + relative_path, + ) + ) + + head_matches = list(IDENTITY_PATTERN.finditer(head)) + if head_matches: + lines = _match_lines(content, head_matches) + displayed = ", ".join(str(line) for line in lines[:8]) + suffix_note = "" if len(lines) <= 8 else f", plus {len(lines) - 8} more" + failures.append( + PolicyFailure( + RULE_GENERATED_HEAD, + ( + f"contains {len(head_matches)} retired identity occurrence(s) outside the classified " + f"tail at line(s) {displayed}{suffix_note}; newly generated content carries no exemption" + ), + relative_path, + ) + ) + + return failures + + def evaluate_identity_cutover(repo_root: Path = REPO_ROOT) -> list[PolicyFailure]: - records, bindings, failures = _load_historical_records(repo_root) + records, bindings, generated, failures = _load_historical_records(repo_root) tracked_paths, tracked_failures = _tracked_paths(repo_root) failures.extend(tracked_failures) if failures: @@ -255,6 +422,14 @@ def evaluate_identity_cutover(repo_root: Path = REPO_ROOT) -> list[PolicyFailure binding_path, ) ) + for generated_path in sorted(generated.keys() - tracked): + failures.append( + PolicyFailure( + RULE_MANIFEST_PATH, + "generated history record is not a tracked file", + generated_path, + ) + ) for relative_path in tracked_paths: path = safe_repo_path(repo_root, relative_path) @@ -279,6 +454,11 @@ def evaluate_identity_cutover(repo_root: Path = REPO_ROOT) -> list[PolicyFailure ) continue + generated_record = generated.get(relative_path) + if generated_record is not None: + failures.extend(_evaluate_generated_history(generated_record, content, relative_path)) + continue + matches = list(IDENTITY_PATTERN.finditer(content)) record = records.get(relative_path) binding = bindings.get(relative_path) diff --git a/tools/policy/historical_identity_records.json b/tools/policy/historical_identity_records.json index 8a81b1860..300127b0e 100644 --- a/tools/policy/historical_identity_records.json +++ b/tools/policy/historical_identity_records.json @@ -1,6 +1,16 @@ { - "schema_version": "historical-identity-records/v2", + "schema_version": "historical-identity-records/v3", "hash_algorithm": "sha256", + "generated_history_records": [ + { + "path": "CHANGELOG.md", + "record_class": "generated-release-history", + "rationale": "release-please rewrites this file on every release, inserting each new section above the existing ones, so a whole-file pin cannot hold. The classified tail carries the release notes published before the RAES identity cutover and is pinned exactly; everything release-please writes above it is held to the live-tree rule of zero retired identity occurrences.", + "occurrences": 297, + "content_sha256": "b3106e6e633e4045124ca19307c57c10efbfc87ccbb4048f415f0c4acbefcb3f", + "classified_suffix_bytes": 150639 + } + ], "operational_bindings": [ { "path": ".ground-control.yaml", @@ -18,13 +28,6 @@ } ], "records": [ - { - "path": "CHANGELOG.md", - "record_class": "release-history", - "rationale": "Preserves immutable release notes and links published before the RAES identity cutover.", - "occurrences": 297, - "content_sha256": "6faabd84a6054d74f1778da8ed9d06696af72b95de9b5f26d29f7cb2af0cd50b" - }, { "path": "contracts/provenance/sdl-lineage-ledger-v1.json", "record_class": "provenance-record", @@ -499,7 +502,7 @@ "record_class": "historical-index", "rationale": "Indexes immutable pre-cutover ADR titles, paths, pins, and amendment summaries without making them current identity surf\u0061ces.", "occurrences": 4, - "content_sha256": "8ed12d609d126d54a55342778e4a4007d6f49015298fa49fb3848d5f11d427f1" + "content_sha256": "bf67dc26ef70cd1ff977cc75caad187e76ec894267595d347c374abc0bb0647d" }, { "path": "docs/decisions/cage-2-replication-design.md", From b9daa5fa356738b1c9b6931783a48908b43a2b85 Mon Sep 17 00:00:00 2001 From: Brad Edwards Date: Tue, 28 Jul 2026 00:42:47 +0200 Subject: [PATCH 3/5] fix: reject retired naming in changelog-bound PR text MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The identity gate holds the generated head of CHANGELOG.md to zero retired identity occurrences, but nothing checked the text that lands there. A feature PR into `dev` is squash-merged, so its title becomes the commit release-please writes into the changelog, and any BREAKING CHANGE footer becomes a changelog entry. A retired name in either surfaced days later as a red release PR, far from the change that caused it. Check both at the point they are authored, in the existing PR title guard that already runs on PRs targeting `dev` from the trusted base ref. Body prose is deliberately not checked. Explaining the retired name is legitimate — this PR's own description does it — and only the title and breaking-change footers reach the changelog. The pattern is duplicated in text form rather than imported, because check_pr_title is stdlib-only by design and check_identity_cutover pulls in PyYAML. A test asserts the two patterns agree on the same samples so they cannot drift. Refs #908 --- .github/workflows/pr-title-lint.yml | 7 +- .../python/tests/test_pr_title_guard.py | 93 +++++++++++++++ tools/check_pr_title.py | 110 ++++++++++++++++-- 3 files changed, 196 insertions(+), 14 deletions(-) diff --git a/.github/workflows/pr-title-lint.yml b/.github/workflows/pr-title-lint.yml index 191566d27..a79685a04 100644 --- a/.github/workflows/pr-title-lint.yml +++ b/.github/workflows/pr-title-lint.yml @@ -41,8 +41,11 @@ jobs: with: python-version: "3.12" - name: Validate PR title - # The checker reads the title from $GITHUB_EVENT_PATH (set automatically - # by the runner). It is stdlib-only, so no dependency install is needed. + # The checker reads the title and body from $GITHUB_EVENT_PATH (set + # automatically by the runner). It is stdlib-only, so no dependency + # install is needed. The body is read only for `BREAKING CHANGE:` + # footers, which release-please copies into CHANGELOG.md along with the + # squashed title (#908); body prose is not inspected. run: | if [ ! -f tools/check_pr_title.py ]; then echo "::notice::tools/check_pr_title.py is not on the base ref yet; skipping (bootstrap for the PR that introduces the guard). Enforcement is active for every subsequent PR." diff --git a/implementations/python/tests/test_pr_title_guard.py b/implementations/python/tests/test_pr_title_guard.py index a3f0bb721..4d73e8c99 100644 --- a/implementations/python/tests/test_pr_title_guard.py +++ b/implementations/python/tests/test_pr_title_guard.py @@ -23,8 +23,10 @@ from tools.check_pr_title import ( # noqa: E402 BRANDED_PREFIXES, CONVENTIONAL_TYPES, + RETIRED_IDENTITY_PATTERN, RULE_AGENT_BRAND, RULE_CONVENTIONAL, + RULE_RETIRED_IDENTITY, RULE_SUBJECT_LOWERCASE, main, validate_pr_title, @@ -148,6 +150,97 @@ def test_cli_missing_title_fails_closed(tmp_path: Path) -> None: assert main(["--event-path", str(empty)]) != 0 +# --- Retired project naming in changelog-bound text (issue #908) --- + +_RETIRED_LOWER = "a" + "ces" +_RETIRED_UPPER = "A" + "CES" + + +@pytest.mark.parametrize( + "title", + [ + f"fix: drop the {_RETIRED_UPPER} compatibility shim", + f"feat: publish {_RETIRED_LOWER}-invariants v2", + f"refactor: rename {_RETIRED_LOWER}_boundaries", + ], +) +def test_retired_identity_in_title_is_rejected(title: str) -> None: + assert RULE_RETIRED_IDENTITY in _rule_ids(title) + + +@pytest.mark.parametrize( + "title", + [ + "fix: rework surfaces and interfaces in namespaces", + "refactor: replace traces with spans", + "feat: repoint schema namespace to raesystem.github.io", + ], +) +def test_words_containing_the_retired_token_are_not_matched(title: str) -> None: + """The rule is word-boundary anchored; 'surfaces' must not trip it.""" + assert RULE_RETIRED_IDENTITY not in _rule_ids(title) + + +def test_retired_identity_in_breaking_change_footer_is_rejected() -> None: + body = f"Some prose.\n\nBREAKING CHANGE: {_RETIRED_LOWER}-invariants is removed.\n" + violations = validate_pr_title("fix: tidy identifiers", body) + + assert RULE_RETIRED_IDENTITY in {v.rule_id for v in violations} + + +def test_retired_identity_in_body_prose_is_allowed() -> None: + """Explaining the retired name is legitimate; only footers reach the changelog.""" + body = f"This PR finishes migrating away from {_RETIRED_UPPER}. Historical records keep the name.\n" + + assert validate_pr_title("fix: tidy identifiers", body) == [] + + +def test_multiline_breaking_change_footer_is_checked_in_full() -> None: + body = f"BREAKING CHANGE: identifiers move.\nConsumers pinning {_RETIRED_LOWER}-invariants must update.\n" + violations = validate_pr_title("fix: tidy identifiers", body) + + assert RULE_RETIRED_IDENTITY in {v.rule_id for v in violations} + + +def test_retired_identity_reported_alongside_shape_violations() -> None: + """A malformed *and* retired-named title must report both, not just the shape.""" + rule_ids = _rule_ids(f"not-a-type: drop {_RETIRED_UPPER}") + + assert RULE_RETIRED_IDENTITY in rule_ids + assert RULE_CONVENTIONAL in rule_ids + + +def test_retired_identity_pattern_matches_the_identity_cutover_gate() -> None: + """The text pattern here must not drift from the bytes pattern in the gate. + + ``check_pr_title`` is stdlib-only and cannot import the gate (which pulls in + PyYAML), so equivalence is asserted rather than shared. + """ + from tools.check_identity_cutover import IDENTITY_PATTERN + + samples = [ + f"{_RETIRED_UPPER}", + f"{_RETIRED_LOWER}-invariants", + f"{_RETIRED_LOWER}_boundaries", + f"{_RETIRED_LOWER}.dev", + "surfaces", + "interfaces", + "namespaces", + "raes", + f"pl{_RETIRED_LOWER}", + f"drop the {_RETIRED_UPPER} shim", + ] + for sample in samples: + text_matches = RETIRED_IDENTITY_PATTERN.findall(sample) + byte_matches = [m.decode() for m in IDENTITY_PATTERN.findall(sample.encode())] + assert text_matches == byte_matches, sample + + +def test_body_is_optional() -> None: + assert validate_pr_title("fix: a clean title") == [] + assert validate_pr_title("fix: a clean title", None) == [] + + @pytest.mark.integration def test_cli_subprocess_runs_standalone(tmp_path: Path) -> None: # The CI workflow runs the checker as a bare stdlib script; prove it needs diff --git a/tools/check_pr_title.py b/tools/check_pr_title.py index e28cd79de..0b0519507 100644 --- a/tools/check_pr_title.py +++ b/tools/check_pr_title.py @@ -15,6 +15,15 @@ * Enforce the Ground Control ``/implement`` Step 9 conventional title shape ``(): `` with a single allowed type. * Require the subject to start lowercase (``^[a-z].*$``). + * Reject retired project naming in the text that reaches ``CHANGELOG.md`` + (issue #908). A feature PR into ``dev`` is squash-merged, so its title + becomes the commit release-please reads, and any ``BREAKING CHANGE:`` + footer becomes a changelog entry. ``check_identity_cutover`` holds the + generated head of ``CHANGELOG.md`` to zero retired identity occurrences, + so without this rule a retired name in a title surfaces as a red release + PR days later instead of on the PR that introduced it. The PR *body* is + otherwise unchecked: discussing the retired name is legitimate, and only + the title and breaking-change footers reach the changelog. Security: the PR title is untrusted GitHub event data. The CLI reads it from ``$GITHUB_EVENT_PATH`` (parsed as JSON) or the ``PR_TITLE`` env var, never from @@ -62,10 +71,23 @@ #: Subject must start lowercase (matches the Step 9 rule). SUBJECT_PATTERN: str = r"^[a-z].*$" +#: Retired project naming, word-boundary anchored so ``surfaces``, +#: ``interfaces``, ``namespaces`` and friends do not match. This is the text +#: form of ``tools/check_identity_cutover.IDENTITY_PATTERN``; the two are held +#: equivalent by ``test_pr_title_guard`` rather than imported, because this +#: module is deliberately stdlib-only and the identity checker pulls in PyYAML. +RETIRED_IDENTITY_PATTERN: re.Pattern[str] = re.compile( + r"(? re.Pattern[str]: return re.compile(rf"^(?:{alternation})(?:\([^()\n]+\))?(?:!)?: (?P.+)$") +def _breaking_change_footers(body: str) -> list[str]: + """Return the ``BREAKING CHANGE:`` footer blocks release-please publishes. + + A footer runs from its marker to the next footer or the end of the body, so + a multi-line breaking-change description is checked in full. + """ + starts = [match.start() for match in BREAKING_CHANGE_FOOTER.finditer(body)] + if not starts: + return [] + bounds = starts + [len(body)] + return [body[bounds[index] : bounds[index + 1]] for index in range(len(starts))] + + +def _retired_identity_violations(title: str, body: str | None) -> list[TitleViolation]: + violations: list[TitleViolation] = [] + + title_matches = RETIRED_IDENTITY_PATTERN.findall(title) + if title_matches: + found = ", ".join(sorted(set(title_matches))) + violations.append( + TitleViolation( + RULE_RETIRED_IDENTITY, + "PR title must not contain retired project naming " + f"({found}). A feature PR into 'dev' is squash-merged, so this " + "title becomes the commit release-please writes into " + "CHANGELOG.md, where check_identity_cutover rejects it.", + ) + ) + + for footer in _breaking_change_footers(body or ""): + footer_matches = RETIRED_IDENTITY_PATTERN.findall(footer) + if not footer_matches: + continue + found = ", ".join(sorted(set(footer_matches))) + violations.append( + TitleViolation( + RULE_RETIRED_IDENTITY, + "PR body BREAKING CHANGE footer must not contain retired " + f"project naming ({found}); release-please copies breaking-" + "change footers into CHANGELOG.md. Prose elsewhere in the body " + "is not checked.", + ) + ) + break + + return violations + + def validate_pr_title( title: str | None, + body: str | None = None, *, branded_prefixes: Sequence[str] = BRANDED_PREFIXES, types: Sequence[str] = CONVENTIONAL_TYPES, subject_pattern: str = SUBJECT_PATTERN, require_scope: bool = False, ) -> list[TitleViolation]: - """Validate ``title`` against the PR title policy and return violations. + """Validate ``title`` (and any changelog-bound part of ``body``) and return + violations. An empty list means the title is acceptable. """ @@ -127,6 +199,11 @@ def validate_pr_title( ) return violations + # Rule 4: retired project naming in changelog-bound text. Appended rather + # than returned so a title that is both malformed and retired-named reports + # both, and checked before the shape rules so it survives their early exit. + violations.extend(_retired_identity_violations(stripped, body)) + # Rule 2: conventional-commit shape with a single allowed type. match = _conventional_re(types).match(stripped) if match is None: @@ -162,14 +239,16 @@ def validate_pr_title( return violations -def _resolve_title(args: argparse.Namespace) -> str | None: - """Resolve the PR title without ever shell-interpolating untrusted data. +def _resolve_title(args: argparse.Namespace) -> tuple[str | None, str | None]: + """Resolve the PR title and body without shell-interpolating untrusted data. - Priority: explicit ``--title`` (local/testing) -> ``$GITHUB_EVENT_PATH`` - JSON (the CI path) -> ``PR_TITLE`` env var. + Priority: explicit ``--title``/``--body`` (local/testing) -> + ``$GITHUB_EVENT_PATH`` JSON (the CI path) -> ``PR_TITLE``/``PR_BODY`` env + vars. The body is optional everywhere; only its breaking-change footers are + inspected, and a missing body simply means there are none. """ if args.title is not None: - return args.title + return args.title, args.body event_path = args.event_path or os.environ.get("GITHUB_EVENT_PATH") if event_path: @@ -181,16 +260,18 @@ def _resolve_title(args: argparse.Namespace) -> str | None: f"pr-title-guard: could not read event JSON from {event_path}: {exc}", file=sys.stderr, ) - return None - title = (event.get("pull_request") or {}).get("title") + return None, None + pull_request = event.get("pull_request") or {} + title = pull_request.get("title") + body = pull_request.get("body") if title is None: print( "pr-title-guard: no pull_request.title in event payload.", file=sys.stderr, ) - return title + return title, (body if isinstance(body, str) else None) - return os.environ.get("PR_TITLE") + return os.environ.get("PR_TITLE"), os.environ.get("PR_BODY") def main(argv: Sequence[str] | None = None) -> int: @@ -202,6 +283,11 @@ def main(argv: Sequence[str] | None = None) -> int: default=None, help="PR title to validate directly (local/testing only).", ) + parser.add_argument( + "--body", + default=None, + help="PR body to validate alongside --title (local/testing only).", + ) parser.add_argument( "--event-path", default=None, @@ -209,7 +295,7 @@ def main(argv: Sequence[str] | None = None) -> int: ) args = parser.parse_args(argv) - title = _resolve_title(args) + title, body = _resolve_title(args) if title is None: # Fail closed: a pull_request event should always carry a title. print( @@ -218,7 +304,7 @@ def main(argv: Sequence[str] | None = None) -> int: ) return 2 - violations = validate_pr_title(title) + violations = validate_pr_title(title, body) if violations: print(f"pr-title-guard: rejected PR title: {title!r}", file=sys.stderr) for violation in violations: From 1d500496a3606cb05b10d0d25d383c3d84172b3f Mon Sep 17 00:00:00 2001 From: Brad Edwards Date: Tue, 28 Jul 2026 00:50:19 +0200 Subject: [PATCH 4/5] fix: check commit messages, not the PR body, for breaking-change footers The previous commit checked the PR body for BREAKING CHANGE footers. That is the wrong text. This repository squashes with squash_merge_commit_title=PR_TITLE and squash_merge_commit_message=COMMIT_MESSAGES, so the squash commit body release-please parses is the concatenated commit messages; the PR body never reaches it. Supply the PR's commit messages to the guard from the workflow and check those. The messages are fetched with a read-only token and written to a file rather than passed as an argument, so untrusted PR data is never shell-interpolated. The PR body is still checked, so the rule holds if the squash setting changes. Refs #908 --- .github/workflows/pr-title-lint.yml | 25 +++++++++-- .../python/tests/test_pr_title_guard.py | 27 ++++++++++++ tools/check_pr_title.py | 43 ++++++++++++++++--- 3 files changed, 84 insertions(+), 11 deletions(-) diff --git a/.github/workflows/pr-title-lint.yml b/.github/workflows/pr-title-lint.yml index a79685a04..fb4f6ea34 100644 --- a/.github/workflows/pr-title-lint.yml +++ b/.github/workflows/pr-title-lint.yml @@ -20,6 +20,7 @@ on: permissions: contents: read + pull-requests: read concurrency: group: pr-title-lint-${{ github.event.pull_request.number }} @@ -40,15 +41,31 @@ jobs: - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 with: python-version: "3.12" + - name: Collect PR commit messages + # This repo squashes with squash_merge_commit_message=COMMIT_MESSAGES, + # so these messages -- not the PR body -- become the squash commit body + # release-please reads for BREAKING CHANGE footers (#908). Written to a + # file rather than an argument: the messages are untrusted PR data and + # must never be shell-interpolated. + env: + GH_TOKEN: ${{ github.token }} + PR_NUMBER: ${{ github.event.pull_request.number }} + run: | + gh api --paginate \ + "repos/${GITHUB_REPOSITORY}/pulls/${PR_NUMBER}/commits" \ + --jq '.[].commit.message' > "${RUNNER_TEMP}/pr-commit-messages.txt" + - name: Validate PR title # The checker reads the title and body from $GITHUB_EVENT_PATH (set # automatically by the runner). It is stdlib-only, so no dependency - # install is needed. The body is read only for `BREAKING CHANGE:` - # footers, which release-please copies into CHANGELOG.md along with the - # squashed title (#908); body prose is not inspected. + # install is needed. Body and commit messages are read only for + # `BREAKING CHANGE:` footers, which release-please copies into + # CHANGELOG.md along with the squashed title (#908); prose elsewhere is + # not inspected. run: | if [ ! -f tools/check_pr_title.py ]; then echo "::notice::tools/check_pr_title.py is not on the base ref yet; skipping (bootstrap for the PR that introduces the guard). Enforcement is active for every subsequent PR." exit 0 fi - python tools/check_pr_title.py + python tools/check_pr_title.py \ + --commit-messages-file "${RUNNER_TEMP}/pr-commit-messages.txt" diff --git a/implementations/python/tests/test_pr_title_guard.py b/implementations/python/tests/test_pr_title_guard.py index 4d73e8c99..109c50f9b 100644 --- a/implementations/python/tests/test_pr_title_guard.py +++ b/implementations/python/tests/test_pr_title_guard.py @@ -236,6 +236,33 @@ def test_retired_identity_pattern_matches_the_identity_cutover_gate() -> None: assert text_matches == byte_matches, sample +def test_cli_checks_commit_messages_file(tmp_path: Path) -> None: + """Squash uses COMMIT_MESSAGES, so commit footers are the changelog-bound text.""" + messages = tmp_path / "commits.txt" + messages.write_text( + f"fix: something\n\nBREAKING CHANGE: {_RETIRED_LOWER}-invariants is removed.\n", + encoding="utf-8", + ) + + assert main(["--title", "fix: a clean title", "--commit-messages-file", str(messages)]) == 1 + + +def test_cli_commit_messages_prose_is_allowed(tmp_path: Path) -> None: + messages = tmp_path / "commits.txt" + messages.write_text( + f"fix: something\n\nExplains the move away from {_RETIRED_UPPER} naming.\n", + encoding="utf-8", + ) + + assert main(["--title", "fix: a clean title", "--commit-messages-file", str(messages)]) == 0 + + +def test_cli_unreadable_commit_messages_file_fails_closed(tmp_path: Path) -> None: + missing = tmp_path / "absent.txt" + + assert main(["--title", "fix: a clean title", "--commit-messages-file", str(missing)]) == 2 + + def test_body_is_optional() -> None: assert validate_pr_title("fix: a clean title") == [] assert validate_pr_title("fix: a clean title", None) == [] diff --git a/tools/check_pr_title.py b/tools/check_pr_title.py index 0b0519507..abd9838d7 100644 --- a/tools/check_pr_title.py +++ b/tools/check_pr_title.py @@ -21,9 +21,15 @@ footer becomes a changelog entry. ``check_identity_cutover`` holds the generated head of ``CHANGELOG.md`` to zero retired identity occurrences, so without this rule a retired name in a title surfaces as a red release - PR days later instead of on the PR that introduced it. The PR *body* is - otherwise unchecked: discussing the retired name is legitimate, and only - the title and breaking-change footers reach the changelog. + PR days later instead of on the PR that introduced it. + + This repository squashes with ``squash_merge_commit_title=PR_TITLE`` and + ``squash_merge_commit_message=COMMIT_MESSAGES``, so the changelog-bound + text is the PR title plus the *commit messages* -- not the PR body. The + workflow supplies the commit messages via ``--commit-messages-file``; the + PR body is checked too, so the rule still holds if that setting changes. + Prose outside a breaking-change footer is never checked: discussing the + retired name is legitimate and does not reach the changelog. Security: the PR title is untrusted GitHub event data. The CLI reads it from ``$GITHUB_EVENT_PATH`` (parsed as JSON) or the ``PR_TITLE`` env var, never from @@ -153,10 +159,10 @@ def _retired_identity_violations(title: str, body: str | None) -> list[TitleViol violations.append( TitleViolation( RULE_RETIRED_IDENTITY, - "PR body BREAKING CHANGE footer must not contain retired " - f"project naming ({found}); release-please copies breaking-" - "change footers into CHANGELOG.md. Prose elsewhere in the body " - "is not checked.", + "BREAKING CHANGE footer must not contain retired project " + f"naming ({found}); release-please copies breaking-change " + "footers from the squashed commit messages into CHANGELOG.md. " + "Prose outside a footer is not checked.", ) ) break @@ -288,6 +294,16 @@ def main(argv: Sequence[str] | None = None) -> int: default=None, help="PR body to validate alongside --title (local/testing only).", ) + parser.add_argument( + "--commit-messages-file", + default=None, + help=( + "Path to a file holding the PR's commit messages. This repository " + "squashes with squash_merge_commit_message=COMMIT_MESSAGES, so " + "those messages -- not the PR body -- become the squash commit " + "body release-please reads for BREAKING CHANGE footers." + ), + ) parser.add_argument( "--event-path", default=None, @@ -296,6 +312,19 @@ def main(argv: Sequence[str] | None = None) -> int: args = parser.parse_args(argv) title, body = _resolve_title(args) + if args.commit_messages_file: + try: + with open(args.commit_messages_file, encoding="utf-8") as handle: + commit_messages = handle.read() + except OSError as exc: + # Fail closed: the caller asked for commit messages to be checked. + print( + f"pr-title-guard: could not read commit messages from {args.commit_messages_file}: {exc}", + file=sys.stderr, + ) + return 2 + body = f"{body}\n\n{commit_messages}" if body else commit_messages + if title is None: # Fail closed: a pull_request event should always carry a title. print( From 1a82d14c5bf510493a06986a5a011ed148706842 Mon Sep 17 00:00:00 2001 From: Brad Edwards Date: Tue, 28 Jul 2026 01:06:00 +0200 Subject: [PATCH 5/5] fix: repair PR guard bootstrap and reformat a renamed test Two CI failures on this branch. `ruff format` rejected tests/test_runtime_contracts.py. The namespace rewrite lengthened a URI past the 120-column limit and I only linted the files I edited by hand, not the ones the rewrite touched. `title-guard` failed with "unrecognized arguments: --commit-messages-file". The workflow file comes from the PR head but the checker is deliberately taken from the base ref, so on the PR that introduces the flag the base copy cannot accept it yet. Probe for support before passing it, matching the bootstrap shape the workflow already uses for a missing checker. Commit-message footer enforcement becomes active from the next PR onward; title enforcement is unaffected now. Refs #908 --- .github/workflows/pr-title-lint.yml | 14 ++++++++++++-- .../python/tests/test_runtime_contracts.py | 5 ++++- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/.github/workflows/pr-title-lint.yml b/.github/workflows/pr-title-lint.yml index fb4f6ea34..1f1a223d5 100644 --- a/.github/workflows/pr-title-lint.yml +++ b/.github/workflows/pr-title-lint.yml @@ -67,5 +67,15 @@ jobs: echo "::notice::tools/check_pr_title.py is not on the base ref yet; skipping (bootstrap for the PR that introduces the guard). Enforcement is active for every subsequent PR." exit 0 fi - python tools/check_pr_title.py \ - --commit-messages-file "${RUNNER_TEMP}/pr-commit-messages.txt" + # The checker comes from the base ref, but this workflow file comes + # from the PR head, so on the PR that introduces --commit-messages-file + # the base copy does not accept it yet. Probe before passing it, the + # same bootstrap shape as the missing-file case above. Enforcement of + # commit-message footers is active from the next PR onward. + guard_args=() + if python tools/check_pr_title.py --help 2>/dev/null | grep -q -- '--commit-messages-file'; then + guard_args+=(--commit-messages-file "${RUNNER_TEMP}/pr-commit-messages.txt") + else + echo "::notice::base-ref tools/check_pr_title.py predates --commit-messages-file; title-only enforcement for this PR." + fi + python tools/check_pr_title.py "${guard_args[@]}" diff --git a/implementations/python/tests/test_runtime_contracts.py b/implementations/python/tests/test_runtime_contracts.py index 957907697..dd576598e 100644 --- a/implementations/python/tests/test_runtime_contracts.py +++ b/implementations/python/tests/test_runtime_contracts.py @@ -175,7 +175,10 @@ def test_experiment_core_schemas_publish_closed_world_contracts(): run_schema = generated["experiment-run-v1"] study_schema = generated["experiment-study-v1"] - assert task_schema["x-raes-semantic-profile"]["uri"] == "https://raesystem.github.io/rae/schemas/semantic-invariants/v1" + assert ( + task_schema["x-raes-semantic-profile"]["uri"] + == "https://raesystem.github.io/rae/schemas/semantic-invariants/v1" + ) assert "apparatus-archival-times-rfc3339-valid" in _invariant_ids(apparatus_context_schema) assert run_schema["x-raes-semantic-profile"]["required"] is True assert study_schema["x-raes-semantic-profile"]["keyword"] == "x-raes-invariants"