diff --git a/rocrate_validator/profiles/five-safes-crate/11_workflow_execution_phase.ttl b/rocrate_validator/profiles/five-safes-crate/11_workflow_execution_phase.ttl
new file mode 100644
index 000000000..6eab5680b
--- /dev/null
+++ b/rocrate_validator/profiles/five-safes-crate/11_workflow_execution_phase.ttl
@@ -0,0 +1,145 @@
+# Copyright (c) 2025 eScience Lab, The University of Manchester
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+@prefix ro: <./> .
+@prefix ro-crate: .
+@prefix five-safes-crate: .
+@prefix rdf: .
+@prefix schema: .
+@prefix purl: .
+@prefix sh: .
+@prefix validator: .
+@prefix xsd: .
+
+
+#=== MUST shapes ===#
+
+five-safes-crate:WorkflowMustHaveDescriptiveName
+ a sh:NodeShape ;
+ sh:name "WorkflowExecution" ;
+ sh:targetClass ro-crate:WorkflowRunAction ;
+
+ sh:property [
+ a sh:PropertyShape ;
+ sh:name "name" ;
+ sh:minCount 1 ;
+ sh:description "The `CreateAction` corresponding to the workflow run MUST have a name string of at least 10 characters." ;
+ sh:path schema:name ;
+ sh:datatype xsd:string ;
+ sh:minLength 10 ;
+ sh:severity sh:Violation ;
+ sh:message "The `CreateAction` corresponding to the workflow run MUST have a name string of at least 10 characters." ;
+ ] .
+
+
+five-safes-crate:WorkflowMustHaveActionStatusWithAllowedValues
+ a sh:NodeShape ;
+ sh:name "WorkflowExecution" ;
+ sh:targetClass ro-crate:WorkflowRunAction ;
+ sh:property [
+ a sh:PropertyShape ;
+ sh:minCount 1 ;
+ sh:name "actionStatus" ;
+ sh:description "`CreateAction` MUST have an actionStatus with an allowed value (see https://schema.org/ActionStatusType)." ;
+ sh:path schema:actionStatus ;
+ sh:in (
+ "http://schema.org/PotentialActionStatus"
+ "http://schema.org/ActiveActionStatus"
+ "http://schema.org/CompletedActionStatus"
+ "http://schema.org/FailedActionStatus"
+ ) ;
+ sh:severity sh:Violation ;
+ sh:message "`CreateAction` MUST have an actionStatus with an allowed value (see https://schema.org/ActionStatusType)." ;
+ ] .
+
+
+#=== SHOULD shapes ===#
+
+five-safes-crate:WorkflowexecutionObjectHasEndTimeIfEnded
+ a sh:NodeShape ;
+ sh:name "WorkflowExecution" ;
+ sh:description "The workflow run object SHOULD have an endTime property if it has ended." ;
+
+ sh:target [
+ a sh:SPARQLTarget ;
+ sh:select """
+ PREFIX schema:
+ PREFIX rocrate:
+
+ SELECT ?this
+ WHERE {
+ ?this a rocrate:WorkflowRunAction ;
+ schema:actionStatus ?status .
+ FILTER(?status IN (
+ "http://schema.org/CompletedActionStatus",
+ "http://schema.org/FailedActionStatus"
+ ))
+ }
+ """ ;
+ ] ;
+
+ sh:property [
+ a sh:PropertyShape ;
+ sh:name "EndTime" ;
+ sh:path schema:endTime ;
+ sh:minCount 1 ;
+ sh:maxCount 1 ;
+ sh:severity sh:Warning ;
+ sh:description "The workflow execution object SHOULD have an endTime property if it has ended." ;
+ sh:message "The workflow execution object SHOULD have an endTime property if it has ended." ;
+ ] .
+
+
+#=== MAY shapes ===#
+
+five-safes-crate:WorkflowexecutionObjectHasStartTimeIfBegun
+ a sh:NodeShape ;
+ sh:name "WorkflowExecution" ;
+ sh:description (
+ "The workflow execution object MAY have a startTime if actionStatus is "
+ "either ActiveActionStatus, CompletedActionStatus or FailedActionStatus."
+ ) ;
+
+ sh:target [
+ a sh:SPARQLTarget ;
+ sh:select """
+ PREFIX schema:
+ PREFIX rocrate:
+
+ SELECT ?this
+ WHERE {
+ ?this a rocrate:WorkflowRunAction ;
+ schema:actionStatus ?status .
+ FILTER(?status IN (
+ "http://schema.org/CompletedActionStatus",
+ "http://schema.org/FailedActionStatus",
+ "http://schema.org/ActiveActionStatus"
+ ))
+ }
+ """ ;
+ ] ;
+
+ sh:property [
+ a sh:PropertyShape ;
+ sh:name "StartTime" ;
+ sh:path schema:startTime ;
+ sh:minCount 1 ;
+ sh:maxCount 1 ;
+ sh:severity sh:Info ;
+ sh:description (
+ "The workflow execution object MAY have a startTime if actionStatus is "
+ "either ActiveActionStatus, CompletedActionStatus or FailedActionStatus."
+ ) ;
+ sh:message "The workflow execution object MAY have a startTime if actionStatus is either ActiveActionStatus, CompletedActionStatus or FailedActionStatus." ;
+ ] .
diff --git a/rocrate_validator/profiles/five-safes-crate/may/11_workflow_execution_phase.ttl b/rocrate_validator/profiles/five-safes-crate/may/11_workflow_execution_phase.ttl
deleted file mode 100644
index 1b777c835..000000000
--- a/rocrate_validator/profiles/five-safes-crate/may/11_workflow_execution_phase.ttl
+++ /dev/null
@@ -1,64 +0,0 @@
-# Copyright (c) 2025 eScience Lab, The University of Manchester
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-@prefix ro: <./> .
-@prefix ro-crate: .
-@prefix five-safes-crate: .
-@prefix rdf: .
-@prefix schema: .
-@prefix sh: .
-@prefix validator: .
-@prefix xsd: .
-
-
-five-safes-crate:WorkflowexecutionObjectHasStartTimeIfBegun
- a sh:NodeShape ;
- sh:name "WorkflowExecution" ;
- sh:description (
- "The workflow execution object MAY have a startTime if actionStatus is "
- "either ActiveActionStatus, CompletedActionStatus or FailedActionStatus."
- ) ;
-
- sh:target [
- a sh:SPARQLTarget ;
- sh:select """
- PREFIX schema:
- PREFIX rocrate:
-
- SELECT ?this
- WHERE {
- ?this a rocrate:WorkflowRunAction ;
- schema:actionStatus ?status .
- FILTER(?status IN (
- "http://schema.org/CompletedActionStatus",
- "http://schema.org/FailedActionStatus",
- "http://schema.org/ActiveActionStatus"
- ))
- }
- """ ;
- ] ;
-
- sh:property [
- a sh:PropertyShape ;
- sh:name "StartTime" ;
- sh:path schema:startTime ;
- sh:minCount 1 ;
- sh:maxCount 1 ;
- sh:severity sh:Info ;
- sh:description (
- "The workflow execution object MAY have a startTime if actionStatus is "
- "either ActiveActionStatus, CompletedActionStatus or FailedActionStatus."
- ) ;
- sh:message "The workflow execution object MAY have a startTime if actionStatus is either ActiveActionStatus, CompletedActionStatus or FailedActionStatus." ;
- ] .
diff --git a/rocrate_validator/profiles/five-safes-crate/must/11_workflow_execution_phase.ttl b/rocrate_validator/profiles/five-safes-crate/must/11_workflow_execution_phase.ttl
deleted file mode 100644
index f1c33bdff..000000000
--- a/rocrate_validator/profiles/five-safes-crate/must/11_workflow_execution_phase.ttl
+++ /dev/null
@@ -1,62 +0,0 @@
-# Copyright (c) 2025 eScience Lab, The University of Manchester
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-@prefix ro: <./> .
-@prefix ro-crate: .
-@prefix five-safes-crate: .
-@prefix rdf: .
-@prefix schema: .
-@prefix purl: .
-@prefix sh: .
-@prefix validator: .
-@prefix xsd: .
-
-
-five-safes-crate:WorkflowMustHaveDescriptiveName
- a sh:NodeShape ;
- sh:name "WorkflowExecution" ;
- sh:targetClass ro-crate:WorkflowRunAction ;
-
- sh:property [
- a sh:PropertyShape ;
- sh:name "name" ;
- sh:minCount 1 ;
- sh:description "The `CreateAction` corresponding to the workflow run MUST have a name string of at least 10 characters." ;
- sh:path schema:name ;
- sh:datatype xsd:string ;
- sh:minLength 10 ;
- sh:severity sh:Violation ;
- sh:message "The `CreateAction` corresponding to the workflow run MUST have a name string of at least 10 characters." ;
- ] .
-
-
-five-safes-crate:WorkflowMustHaveActionStatusWithAllowedValues
- a sh:NodeShape ;
- sh:name "WorkflowExecution" ;
- sh:targetClass ro-crate:WorkflowRunAction ;
- sh:property [
- a sh:PropertyShape ;
- sh:minCount 1 ;
- sh:name "actionStatus" ;
- sh:description "`CreateAction` MUST have an actionStatus with an allowed value (see https://schema.org/ActionStatusType)." ;
- sh:path schema:actionStatus ;
- sh:in (
- "http://schema.org/PotentialActionStatus"
- "http://schema.org/ActiveActionStatus"
- "http://schema.org/CompletedActionStatus"
- "http://schema.org/FailedActionStatus"
- ) ;
- sh:severity sh:Violation ;
- sh:message "`CreateAction` MUST have an actionStatus with an allowed value (see https://schema.org/ActionStatusType)." ;
- ] .
diff --git a/rocrate_validator/profiles/five-safes-crate/should/11_workflow_execution_phase.ttl b/rocrate_validator/profiles/five-safes-crate/should/11_workflow_execution_phase.ttl
deleted file mode 100644
index f2061b5b9..000000000
--- a/rocrate_validator/profiles/five-safes-crate/should/11_workflow_execution_phase.ttl
+++ /dev/null
@@ -1,58 +0,0 @@
-# Copyright (c) 2025 eScience Lab, The University of Manchester
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-@prefix ro: <./> .
-@prefix ro-crate: .
-@prefix five-safes-crate: .
-@prefix rdf: .
-@prefix schema: .
-@prefix purl: .
-@prefix sh: .
-@prefix validator: .
-@prefix xsd: .
-
-
-five-safes-crate:WorkflowexecutionObjectHasEndTimeIfEnded
- a sh:NodeShape ;
- sh:name "WorkflowExecution" ;
- sh:description "The workflow run object SHOULD have an endTime property if it has ended." ;
-
- sh:target [
- a sh:SPARQLTarget ;
- sh:select """
- PREFIX schema:
- PREFIX rocrate:
-
- SELECT ?this
- WHERE {
- ?this a rocrate:WorkflowRunAction ;
- schema:actionStatus ?status .
- FILTER(?status IN (
- "http://schema.org/CompletedActionStatus",
- "http://schema.org/FailedActionStatus"
- ))
- }
- """ ;
- ] ;
-
- sh:property [
- a sh:PropertyShape ;
- sh:name "EndTime" ;
- sh:path schema:endTime ;
- sh:minCount 1 ;
- sh:maxCount 1 ;
- sh:severity sh:Warning ;
- sh:description "The workflow execution object SHOULD have an endTime property if it has ended." ;
- sh:message "The workflow execution object SHOULD have an endTime property if it has ended." ;
- ] .