[rtems-central commit] spec: Replace constraint scope with a link

Sebastian Huber sebh at rtems.org
Fri Apr 30 05:02:48 UTC 2021


Module:    rtems-central
Branch:    master
Commit:    d419c8fc9eb47222f98bbc39a507cc986ae2d21a
Changeset: http://git.rtems.org/rtems-central/commit/?id=d419c8fc9eb47222f98bbc39a507cc986ae2d21a

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Thu Apr 29 10:16:04 2021 +0200

spec: Replace constraint scope with a link

---

 rtemsspec/tests/spec-interface/constraint-a.yml            |  5 +++--
 spec/acfg/constraint/clock-ticks-per-second.yml            |  5 +++--
 spec/acfg/constraint/imfs-memfile-bytes-per-block.yml      |  5 +++--
 spec/acfg/constraint/init-driver-table.yml                 |  5 +++--
 spec/acfg/constraint/init-idle-task-body.yml               |  5 +++--
 spec/acfg/constraint/init-mpci-table.yml                   |  5 +++--
 spec/acfg/constraint/init-posix-thread-entry-point.yml     |  5 +++--
 spec/acfg/constraint/init-task-entry-point.yml             |  5 +++--
 spec/acfg/constraint/init-task-stack-allocator-init.yml    |  5 +++--
 spec/acfg/constraint/init-task-stack-allocator.yml         |  5 +++--
 spec/acfg/constraint/init-task-stack-deallocator.yml       |  5 +++--
 spec/acfg/constraint/init-userext-table.yml                |  5 +++--
 spec/acfg/constraint/max-clock-ticks.yml                   |  5 +++--
 spec/acfg/constraint/max-drivers.yml                       |  5 +++--
 spec/acfg/constraint/max-obj.yml                           |  5 +++--
 spec/acfg/constraint/max-priority.yml                      |  5 +++--
 spec/acfg/constraint/max-processors.yml                    |  5 +++--
 spec/acfg/constraint/max-size.yml                          |  5 +++--
 spec/acfg/constraint/max-tasks.yml                         |  5 +++--
 spec/acfg/constraint/max-uint32.yml                        |  5 +++--
 spec/acfg/constraint/max-uintptr.yml                       |  5 +++--
 spec/acfg/constraint/memory-size.yml                       |  5 +++--
 spec/acfg/constraint/min-16.yml                            |  5 +++--
 spec/acfg/constraint/min-bsp-app.yml                       |  5 +++--
 spec/acfg/constraint/min-clock-ticks.yml                   |  5 +++--
 spec/acfg/constraint/min-one.yml                           |  5 +++--
 spec/acfg/constraint/min-task-stack-size.yml               |  5 +++--
 spec/acfg/constraint/min-zero.yml                          |  5 +++--
 spec/acfg/constraint/mpci-receive-server-stack.yml         |  5 +++--
 spec/acfg/constraint/multiple-of-bdbuf-buffer-min-size.yml |  5 +++--
 .../acfg/constraint/multiple-of-task-storage-alignment.yml |  5 +++--
 spec/acfg/constraint/posix-api.yml                         |  5 +++--
 spec/acfg/constraint/power-of-two.yml                      |  5 +++--
 spec/acfg/constraint/scheduler-assignments-count.yml       |  5 +++--
 spec/acfg/constraint/scheduler-assignments-macros.yml      |  5 +++--
 spec/acfg/constraint/stack-space.yml                       |  5 +++--
 spec/acfg/constraint/task-stack-from-alloc.yml             |  5 +++--
 spec/acfg/constraint/type-rtems-name.yml                   |  5 +++--
 spec/acfg/constraint/type-task-argument.yml                |  5 +++--
 spec/acfg/constraint/unlimited-allocation-size.yml         |  5 +++--
 spec/acfg/constraint/unlimited.yml                         |  5 +++--
 spec/acfg/constraint/use-task-storage-size.yml             |  5 +++--
 spec/acfg/constraint/valid-idle-stack-area.yml             |  5 +++--
 spec/acfg/constraint/valid-isr-stack-alignment.yml         |  5 +++--
 spec/acfg/constraint/valid-isr-stack-area.yml              |  5 +++--
 spec/acfg/constraint/valid-task-attributes.yml             |  5 +++--
 spec/acfg/constraint/valid-task-modes.yml                  |  5 +++--
 spec/acfg/constraint/valid-task-priority.yml               |  5 +++--
 spec/acfg/constraint/wkspace.yml                           |  5 +++--
 spec/constraint/affinity-may-preempt.yml                   |  5 +++--
 spec/constraint/clock-driver.yml                           |  5 +++--
 spec/constraint/clock-tick.yml                             |  5 +++--
 spec/constraint/cpu-simple-vectored-interrupts.yml         |  5 +++--
 spec/constraint/directive-creator-only.yml                 |  5 +++--
 spec/constraint/directive-ctx-any.yml                      |  5 +++--
 spec/constraint/directive-ctx-const.yml                    |  5 +++--
 spec/constraint/directive-ctx-devinit.yml                  |  5 +++--
 spec/constraint/directive-ctx-fatal.yml                    |  5 +++--
 spec/constraint/directive-ctx-isr-local.yml                |  5 +++--
 spec/constraint/directive-ctx-isr.yml                      |  5 +++--
 spec/constraint/directive-ctx-task.yml                     |  5 +++--
 spec/constraint/directive-no-preempt-local.yml             |  5 +++--
 spec/constraint/directive-no-preempt.yml                   |  5 +++--
 spec/constraint/directive-no-return.yml                    |  5 +++--
 spec/constraint/directive-remote.yml                       |  5 +++--
 spec/constraint/extensions-fatal.yml                       |  5 +++--
 .../constraint/fatal-bad-thread-dispatch-disable-level.yml |  5 +++--
 spec/constraint/fatal-bad-thread-dispatch-environment.yml  |  5 +++--
 spec/constraint/interrupt-enable.yml                       |  5 +++--
 spec/constraint/mp-send.yml                                |  5 +++--
 spec/constraint/no-atexit.yml                              |  5 +++--
 spec/constraint/no-impl.yml                                |  5 +++--
 spec/constraint/obj-unlimited-alloc.yml                    |  5 +++--
 spec/constraint/obj-unlimited-free.yml                     |  5 +++--
 spec/constraint/object-allocator.yml                       |  5 +++--
 spec/constraint/priority-may-preempt.yml                   |  5 +++--
 spec/constraint/terminate.yml                              |  5 +++--
 spec/constraint/unblock-may-preempt.yml                    |  5 +++--
 spec/req/usage-constraints.yml                             | 14 ++++++++++++++
 spec/rtems/barrier/constraint/max.yml                      |  5 +++--
 spec/rtems/constraint/delete-by-any-task.yml               |  5 +++--
 spec/rtems/constraint/directive-ctx-isr-no-wait.yml        |  5 +++--
 spec/rtems/constraint/mp-max-global-objects.yml            |  5 +++--
 spec/rtems/constraint/request-may-block.yml                |  5 +++--
 spec/rtems/dpmem/constraint/max.yml                        |  5 +++--
 spec/rtems/init/constraint/directive-ctx-boot.yml          |  5 +++--
 spec/rtems/intr/constraint/no-smp.yml                      |  5 +++--
 spec/rtems/message/constraint/max.yml                      |  5 +++--
 spec/rtems/message/constraint/receive-isr.yml              |  5 +++--
 spec/rtems/part/constraint/max.yml                         |  5 +++--
 spec/rtems/ratemon/constraint/max.yml                      |  5 +++--
 spec/rtems/region/constraint/max.yml                       |  5 +++--
 spec/rtems/sem/constraint/max.yml                          |  5 +++--
 spec/rtems/sem/constraint/obtain-devinit.yml               |  5 +++--
 spec/rtems/sem/constraint/obtain-isr.yml                   |  5 +++--
 spec/rtems/sem/constraint/release-devinit.yml              |  5 +++--
 spec/rtems/sem/constraint/release-isr.yml                  |  5 +++--
 spec/rtems/task/constraint/max.yml                         |  5 +++--
 spec/rtems/task/constraint/preempt-enable.yml              |  5 +++--
 spec/rtems/timer/constraint/max.yml                        |  5 +++--
 spec/rtems/userext/constraint/max.yml                      |  5 +++--
 spec/spec/constraint.yml                                   |  4 ----
 102 files changed, 314 insertions(+), 204 deletions(-)

diff --git a/rtemsspec/tests/spec-interface/constraint-a.yml b/rtemsspec/tests/spec-interface/constraint-a.yml
index 4854484..6d2a748 100644
--- a/rtemsspec/tests/spec-interface/constraint-a.yml
+++ b/rtemsspec/tests/spec-interface/constraint-a.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   Constraint A for ${func:/name}.
 type: constraint
diff --git a/spec/acfg/constraint/clock-ticks-per-second.yml b/spec/acfg/constraint/clock-ticks-per-second.yml
index c04789a..c3b89e6 100644
--- a/spec/acfg/constraint/clock-ticks-per-second.yml
+++ b/spec/acfg/constraint/clock-ticks-per-second.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2020, 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   The resulting clock ticks per second should be an integer.
 type: constraint
diff --git a/spec/acfg/constraint/imfs-memfile-bytes-per-block.yml b/spec/acfg/constraint/imfs-memfile-bytes-per-block.yml
index 2bb25af..818acde 100644
--- a/spec/acfg/constraint/imfs-memfile-bytes-per-block.yml
+++ b/spec/acfg/constraint/imfs-memfile-bytes-per-block.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   The value of the application configuration option shall be equal to 16, 32,
   64, 128, 256, or 512.
diff --git a/spec/acfg/constraint/init-driver-table.yml b/spec/acfg/constraint/init-driver-table.yml
index 71b38bf..085b5e2 100644
--- a/spec/acfg/constraint/init-driver-table.yml
+++ b/spec/acfg/constraint/init-driver-table.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2020, 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   The value of the application configuration option shall be a list of
   initializers for structures of type
diff --git a/spec/acfg/constraint/init-idle-task-body.yml b/spec/acfg/constraint/init-idle-task-body.yml
index 6a11ac8..c3d549f 100644
--- a/spec/acfg/constraint/init-idle-task-body.yml
+++ b/spec/acfg/constraint/init-idle-task-body.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2020, 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   The value of the application configuration option shall be defined to a valid
   function pointer of the type ``void *( *idle_body )( uintptr_t )``.
diff --git a/spec/acfg/constraint/init-mpci-table.yml b/spec/acfg/constraint/init-mpci-table.yml
index 9f9c145..f2ad370 100644
--- a/spec/acfg/constraint/init-mpci-table.yml
+++ b/spec/acfg/constraint/init-mpci-table.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2020, 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   The value of the application configuration option shall be a pointer to
   ${/rtems/type/if/mpci-table:/name}.
diff --git a/spec/acfg/constraint/init-posix-thread-entry-point.yml b/spec/acfg/constraint/init-posix-thread-entry-point.yml
index f93a3ae..e6181de 100644
--- a/spec/acfg/constraint/init-posix-thread-entry-point.yml
+++ b/spec/acfg/constraint/init-posix-thread-entry-point.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2020, 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   The value of the application configuration option shall be defined to a valid
   function pointer of the type ``void *( *entry_point )( void * )``.
diff --git a/spec/acfg/constraint/init-task-entry-point.yml b/spec/acfg/constraint/init-task-entry-point.yml
index 335bb89..1c99d2b 100644
--- a/spec/acfg/constraint/init-task-entry-point.yml
+++ b/spec/acfg/constraint/init-task-entry-point.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2020, 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   The value of the application configuration option shall be defined to a valid
   function pointer of the type
diff --git a/spec/acfg/constraint/init-task-stack-allocator-init.yml b/spec/acfg/constraint/init-task-stack-allocator-init.yml
index 52105d1..4df9bcc 100644
--- a/spec/acfg/constraint/init-task-stack-allocator-init.yml
+++ b/spec/acfg/constraint/init-task-stack-allocator-init.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2020, 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   The value of the application configuration option shall be defined to a valid
   function pointer of the type ``void ( *initialize )( size_t )`` or to
diff --git a/spec/acfg/constraint/init-task-stack-allocator.yml b/spec/acfg/constraint/init-task-stack-allocator.yml
index 01f5030..b4d98e4 100644
--- a/spec/acfg/constraint/init-task-stack-allocator.yml
+++ b/spec/acfg/constraint/init-task-stack-allocator.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2020, 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   The value of the application configuration option shall be defined to a valid
   function pointer of the type ``void *( *allocate )( size_t )``.
diff --git a/spec/acfg/constraint/init-task-stack-deallocator.yml b/spec/acfg/constraint/init-task-stack-deallocator.yml
index 37b4fe9..f0a02f2 100644
--- a/spec/acfg/constraint/init-task-stack-deallocator.yml
+++ b/spec/acfg/constraint/init-task-stack-deallocator.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2020, 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   The value of the application configuration option shall be defined to a valid
   function pointer of the type ``void ( *deallocate )( void * )``.
diff --git a/spec/acfg/constraint/init-userext-table.yml b/spec/acfg/constraint/init-userext-table.yml
index a2d810e..929cee4 100644
--- a/spec/acfg/constraint/init-userext-table.yml
+++ b/spec/acfg/constraint/init-userext-table.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2020, 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   The value of the application configuration option shall be a list of
   initializers for structures of type ${/rtems/userext/if/table:/name}.
diff --git a/spec/acfg/constraint/max-clock-ticks.yml b/spec/acfg/constraint/max-clock-ticks.yml
index 1af539f..53fdeb4 100644
--- a/spec/acfg/constraint/max-clock-ticks.yml
+++ b/spec/acfg/constraint/max-clock-ticks.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2020, 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   The value of the application configuration option shall be less than or equal
   to a value defined by the ${/glossary/clock-driver:/term}.
diff --git a/spec/acfg/constraint/max-drivers.yml b/spec/acfg/constraint/max-drivers.yml
index de644d3..ec35a24 100644
--- a/spec/acfg/constraint/max-drivers.yml
+++ b/spec/acfg/constraint/max-drivers.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2020, 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   The value of the application configuration option shall be greater than or
   equal than the number of statically configured device drivers.
diff --git a/spec/acfg/constraint/max-obj.yml b/spec/acfg/constraint/max-obj.yml
index 562040e..158d646 100644
--- a/spec/acfg/constraint/max-obj.yml
+++ b/spec/acfg/constraint/max-obj.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   The value of the application configuration option shall be less than or equal
   to 65535.
diff --git a/spec/acfg/constraint/max-priority.yml b/spec/acfg/constraint/max-priority.yml
index f76648d..67f2c3e 100644
--- a/spec/acfg/constraint/max-priority.yml
+++ b/spec/acfg/constraint/max-priority.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   The value of the application configuration option shall be equal to 3, 7, 31,
   63, 127, or 255.
diff --git a/spec/acfg/constraint/max-processors.yml b/spec/acfg/constraint/max-processors.yml
index c951e38..9f04287 100644
--- a/spec/acfg/constraint/max-processors.yml
+++ b/spec/acfg/constraint/max-processors.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   The value of the application configuration option shall be less than or
   equal to ${/score/cpu/if/maximum-processors:/name}.
diff --git a/spec/acfg/constraint/max-size.yml b/spec/acfg/constraint/max-size.yml
index 0866a2b..dcbd9d9 100644
--- a/spec/acfg/constraint/max-size.yml
+++ b/spec/acfg/constraint/max-size.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   The value of the application configuration option shall be less than or
   equal to ${/c/if/size_max:/name}.
diff --git a/spec/acfg/constraint/max-tasks.yml b/spec/acfg/constraint/max-tasks.yml
index e5eeea6..9ef1a3d 100644
--- a/spec/acfg/constraint/max-tasks.yml
+++ b/spec/acfg/constraint/max-tasks.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   The value of the application configuration option shall be less than or
   equal to ${../if/max-tasks:/name}.
diff --git a/spec/acfg/constraint/max-uint32.yml b/spec/acfg/constraint/max-uint32.yml
index d84b1cc..9a4e460 100644
--- a/spec/acfg/constraint/max-uint32.yml
+++ b/spec/acfg/constraint/max-uint32.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   The value of the application configuration option shall be less than or
   equal to ${/c/if/uint32_max:/name}.
diff --git a/spec/acfg/constraint/max-uintptr.yml b/spec/acfg/constraint/max-uintptr.yml
index 73f06ac..0885660 100644
--- a/spec/acfg/constraint/max-uintptr.yml
+++ b/spec/acfg/constraint/max-uintptr.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   The value of the application configuration option shall be less than or
   equal to ${/c/if/uintptr_max:/name}.
diff --git a/spec/acfg/constraint/memory-size.yml b/spec/acfg/constraint/memory-size.yml
index 01dfa83..8c091a5 100644
--- a/spec/acfg/constraint/memory-size.yml
+++ b/spec/acfg/constraint/memory-size.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   The value of the application configuration option shall be less than or equal
   to a BSP-specific and application-specific value which depends on the size of
diff --git a/spec/acfg/constraint/min-16.yml b/spec/acfg/constraint/min-16.yml
index 8108362..aed32e1 100644
--- a/spec/acfg/constraint/min-16.yml
+++ b/spec/acfg/constraint/min-16.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   The value of the application configuration option shall be greater than or
   equal to 16.
diff --git a/spec/acfg/constraint/min-bsp-app.yml b/spec/acfg/constraint/min-bsp-app.yml
index d60beeb..cb3e49e 100644
--- a/spec/acfg/constraint/min-bsp-app.yml
+++ b/spec/acfg/constraint/min-bsp-app.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   The value of the application configuration option shall be greater than or
   equal to a BSP-specific and application-specific minimum value.
diff --git a/spec/acfg/constraint/min-clock-ticks.yml b/spec/acfg/constraint/min-clock-ticks.yml
index f4aeff5..9a4538d 100644
--- a/spec/acfg/constraint/min-clock-ticks.yml
+++ b/spec/acfg/constraint/min-clock-ticks.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2020, 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   The value of the application configuration option shall be greater than or
   equal to a value defined by the ${/glossary/clock-driver:/term}.
diff --git a/spec/acfg/constraint/min-one.yml b/spec/acfg/constraint/min-one.yml
index 68180d0..5782714 100644
--- a/spec/acfg/constraint/min-one.yml
+++ b/spec/acfg/constraint/min-one.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   The value of the application configuration option shall be greater than or
   equal to one.
diff --git a/spec/acfg/constraint/min-task-stack-size.yml b/spec/acfg/constraint/min-task-stack-size.yml
index d8f4722..4ac3823 100644
--- a/spec/acfg/constraint/min-task-stack-size.yml
+++ b/spec/acfg/constraint/min-task-stack-size.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   The value of the application configuration option shall be greater than or
   equal to ${../if/min-task-stack-size:/name}.
diff --git a/spec/acfg/constraint/min-zero.yml b/spec/acfg/constraint/min-zero.yml
index 4bd0c47..de5498f 100644
--- a/spec/acfg/constraint/min-zero.yml
+++ b/spec/acfg/constraint/min-zero.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   The value of the application configuration option shall be greater than or
   equal to zero.
diff --git a/spec/acfg/constraint/mpci-receive-server-stack.yml b/spec/acfg/constraint/mpci-receive-server-stack.yml
index dfa410e..92a1a8d 100644
--- a/spec/acfg/constraint/mpci-receive-server-stack.yml
+++ b/spec/acfg/constraint/mpci-receive-server-stack.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2020, 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   The value of the application configuration option shall be small enough so
   that the MPCI receive server stack area calculation carried out by
diff --git a/spec/acfg/constraint/multiple-of-bdbuf-buffer-min-size.yml b/spec/acfg/constraint/multiple-of-bdbuf-buffer-min-size.yml
index f0d1f51..e669aa6 100644
--- a/spec/acfg/constraint/multiple-of-bdbuf-buffer-min-size.yml
+++ b/spec/acfg/constraint/multiple-of-bdbuf-buffer-min-size.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2020, 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   The value of the application configuration option shall be an integral
   multiple of ${bdbuf-buffer-min-size:/name}.
diff --git a/spec/acfg/constraint/multiple-of-task-storage-alignment.yml b/spec/acfg/constraint/multiple-of-task-storage-alignment.yml
index 4190bd1..16f5190 100644
--- a/spec/acfg/constraint/multiple-of-task-storage-alignment.yml
+++ b/spec/acfg/constraint/multiple-of-task-storage-alignment.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2020, 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   The value of the application configuration option shall be an integral
   multiple of ${/rtems/task/if/storage-alignment:/name}.
diff --git a/spec/acfg/constraint/posix-api.yml b/spec/acfg/constraint/posix-api.yml
index 34cf932..5e4a9a4 100644
--- a/spec/acfg/constraint/posix-api.yml
+++ b/spec/acfg/constraint/posix-api.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   The value of the application configuration option shall be zero if the POSIX
   API is not enabled (e.g. RTEMS was built without the
diff --git a/spec/acfg/constraint/power-of-two.yml b/spec/acfg/constraint/power-of-two.yml
index 9c39295..41ac08e 100644
--- a/spec/acfg/constraint/power-of-two.yml
+++ b/spec/acfg/constraint/power-of-two.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2020, 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   The value of the application configuration option shall be a power of two.
 type: constraint
diff --git a/spec/acfg/constraint/scheduler-assignments-count.yml b/spec/acfg/constraint/scheduler-assignments-count.yml
index eeab70e..a6bd49c 100644
--- a/spec/acfg/constraint/scheduler-assignments-count.yml
+++ b/spec/acfg/constraint/scheduler-assignments-count.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2020, 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   The value of the application configuration option shall be a list of exactly
   ${../if/max-processors:/name} elements.
diff --git a/spec/acfg/constraint/scheduler-assignments-macros.yml b/spec/acfg/constraint/scheduler-assignments-macros.yml
index 8560394..6099c34 100644
--- a/spec/acfg/constraint/scheduler-assignments-macros.yml
+++ b/spec/acfg/constraint/scheduler-assignments-macros.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2020, 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   The value of the application configuration option shall be a list of the
   following macros:
diff --git a/spec/acfg/constraint/stack-space.yml b/spec/acfg/constraint/stack-space.yml
index 950f6ec..494f2d4 100644
--- a/spec/acfg/constraint/stack-space.yml
+++ b/spec/acfg/constraint/stack-space.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   The value of the application configuration option shall be small enough so
   that the task stack space calculation carried out by ``<rtems/confdefs.h>``
diff --git a/spec/acfg/constraint/task-stack-from-alloc.yml b/spec/acfg/constraint/task-stack-from-alloc.yml
index 47e4353..0f04fe4 100644
--- a/spec/acfg/constraint/task-stack-from-alloc.yml
+++ b/spec/acfg/constraint/task-stack-from-alloc.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2020, 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   The value of the application configuration option shall be defined to a macro
   which accepts exactly one parameter and returns an unsigned integer.  The
diff --git a/spec/acfg/constraint/type-rtems-name.yml b/spec/acfg/constraint/type-rtems-name.yml
index 6d274c6..5bb7a44 100644
--- a/spec/acfg/constraint/type-rtems-name.yml
+++ b/spec/acfg/constraint/type-rtems-name.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2020, 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   The value of the application configuration option shall be convertible to an
   integer of type ${/rtems/type/if/name:/name}.
diff --git a/spec/acfg/constraint/type-task-argument.yml b/spec/acfg/constraint/type-task-argument.yml
index 8d448ce..2d4512c 100644
--- a/spec/acfg/constraint/type-task-argument.yml
+++ b/spec/acfg/constraint/type-task-argument.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2020, 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   The value of the application configuration option shall be convertible to an
   integer of type ${/rtems/task/if/argument:/name}.
diff --git a/spec/acfg/constraint/unlimited-allocation-size.yml b/spec/acfg/constraint/unlimited-allocation-size.yml
index aed4585..eb297ee 100644
--- a/spec/acfg/constraint/unlimited-allocation-size.yml
+++ b/spec/acfg/constraint/unlimited-allocation-size.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2020, 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   The value of the application configuration option shall meet the constraints
   of all object classes to which it is applied.
diff --git a/spec/acfg/constraint/unlimited.yml b/spec/acfg/constraint/unlimited.yml
index d9da9b2..829a16b 100644
--- a/spec/acfg/constraint/unlimited.yml
+++ b/spec/acfg/constraint/unlimited.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   The value of the application configuration option may be defined through
   ${/rtems/config/if/resource-unlimited:/name} the enable unlimited objects for
diff --git a/spec/acfg/constraint/use-task-storage-size.yml b/spec/acfg/constraint/use-task-storage-size.yml
index 861d937..a94546e 100644
--- a/spec/acfg/constraint/use-task-storage-size.yml
+++ b/spec/acfg/constraint/use-task-storage-size.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2020, 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   The value of the application configuration option shall be defined using
   ${/rtems/task/if/storage-size:/name}.
diff --git a/spec/acfg/constraint/valid-idle-stack-area.yml b/spec/acfg/constraint/valid-idle-stack-area.yml
index 42bec62..32651f5 100644
--- a/spec/acfg/constraint/valid-idle-stack-area.yml
+++ b/spec/acfg/constraint/valid-idle-stack-area.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   The value of the application configuration option shall be small enough so
   that the IDLE task stack area calculation carried out by
diff --git a/spec/acfg/constraint/valid-isr-stack-alignment.yml b/spec/acfg/constraint/valid-isr-stack-alignment.yml
index f821d16..33240c8 100644
--- a/spec/acfg/constraint/valid-isr-stack-alignment.yml
+++ b/spec/acfg/constraint/valid-isr-stack-alignment.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   The value of the application configuration option shall be aligned according
   to ${/score/cpu/if/interrupt-stack-alignment:/name}.
diff --git a/spec/acfg/constraint/valid-isr-stack-area.yml b/spec/acfg/constraint/valid-isr-stack-area.yml
index 9bbd5f0..2124a28 100644
--- a/spec/acfg/constraint/valid-isr-stack-area.yml
+++ b/spec/acfg/constraint/valid-isr-stack-area.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   The value of the application configuration option shall be small enough so
   that the interrupt stack area calculation carried out by
diff --git a/spec/acfg/constraint/valid-task-attributes.yml b/spec/acfg/constraint/valid-task-attributes.yml
index 6a74878..092fb1a 100644
--- a/spec/acfg/constraint/valid-task-attributes.yml
+++ b/spec/acfg/constraint/valid-task-attributes.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2020, 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   The value of the application configuration option shall be a valid task
   attribute set.
diff --git a/spec/acfg/constraint/valid-task-modes.yml b/spec/acfg/constraint/valid-task-modes.yml
index 5255e0f..705ab6e 100644
--- a/spec/acfg/constraint/valid-task-modes.yml
+++ b/spec/acfg/constraint/valid-task-modes.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2020, 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   The value of the application configuration option shall be a valid task
   mode set.
diff --git a/spec/acfg/constraint/valid-task-priority.yml b/spec/acfg/constraint/valid-task-priority.yml
index f3d96d6..ae5d312 100644
--- a/spec/acfg/constraint/valid-task-priority.yml
+++ b/spec/acfg/constraint/valid-task-priority.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   The value of the application configuration option shall be a valid Classic
   API task priority.  The set of valid task priorities depends on the scheduler
diff --git a/spec/acfg/constraint/wkspace.yml b/spec/acfg/constraint/wkspace.yml
index c206ddc..c8d304f 100644
--- a/spec/acfg/constraint/wkspace.yml
+++ b/spec/acfg/constraint/wkspace.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   The value of the application configuration option shall be small enough so
   that the RTEMS Workspace size calculation carried out by
diff --git a/spec/constraint/affinity-may-preempt.yml b/spec/constraint/affinity-may-preempt.yml
index 99bbc13..471924e 100644
--- a/spec/constraint/affinity-may-preempt.yml
+++ b/spec/constraint/affinity-may-preempt.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   The directive may change the processor affinity of a task.  This may cause
   the calling task to be preempted.
diff --git a/spec/constraint/clock-driver.yml b/spec/constraint/clock-driver.yml
index 72d9f26..cf89e41 100644
--- a/spec/constraint/clock-driver.yml
+++ b/spec/constraint/clock-driver.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   The directive requires a ${/glossary/clock-driver:/term}.
 type: constraint
diff --git a/spec/constraint/clock-tick.yml b/spec/constraint/clock-tick.yml
index 67bd307..c93d279 100644
--- a/spec/constraint/clock-tick.yml
+++ b/spec/constraint/clock-tick.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   The timeout functionality of the directive requires a
   ${/glossary/clock-tick:/term}.
diff --git a/spec/constraint/cpu-simple-vectored-interrupts.yml b/spec/constraint/cpu-simple-vectored-interrupts.yml
index 30878e5..9f948cf 100644
--- a/spec/constraint/cpu-simple-vectored-interrupts.yml
+++ b/spec/constraint/cpu-simple-vectored-interrupts.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   The directive is only available where the ${/glossary/target-arch:/term}
   support enabled simple vectored interrupts.
diff --git a/spec/constraint/directive-creator-only.yml b/spec/constraint/directive-creator-only.yml
index f185d77..9b1b534 100644
--- a/spec/constraint/directive-creator-only.yml
+++ b/spec/constraint/directive-creator-only.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   The directive may be used exclusively by the task which created the
   associated object.
diff --git a/spec/constraint/directive-ctx-any.yml b/spec/constraint/directive-ctx-any.yml
index d2026b6..34b66ed 100644
--- a/spec/constraint/directive-ctx-any.yml
+++ b/spec/constraint/directive-ctx-any.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   The directive may be called from within any runtime context.
 type: constraint
diff --git a/spec/constraint/directive-ctx-const.yml b/spec/constraint/directive-ctx-const.yml
index 9866934..50fe4b2 100644
--- a/spec/constraint/directive-ctx-const.yml
+++ b/spec/constraint/directive-ctx-const.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   The directive is implemented by a macro and may be called from within C/C++
   constant expressions.  In addition, a function implementation of the
diff --git a/spec/constraint/directive-ctx-devinit.yml b/spec/constraint/directive-ctx-devinit.yml
index 1522864..c9b0b09 100644
--- a/spec/constraint/directive-ctx-devinit.yml
+++ b/spec/constraint/directive-ctx-devinit.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   The directive may be called from within device driver initialization context.
 type: constraint
diff --git a/spec/constraint/directive-ctx-fatal.yml b/spec/constraint/directive-ctx-fatal.yml
index 3e4a2a4..8ae44f6 100644
--- a/spec/constraint/directive-ctx-fatal.yml
+++ b/spec/constraint/directive-ctx-fatal.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   The directive may be called from within fatal context.
 type: constraint
diff --git a/spec/constraint/directive-ctx-isr-local.yml b/spec/constraint/directive-ctx-isr-local.yml
index 170b10b..13c2856 100644
--- a/spec/constraint/directive-ctx-isr-local.yml
+++ b/spec/constraint/directive-ctx-isr-local.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   When the directive operates on a local object, the directive may be called
   from within interrupt context.
diff --git a/spec/constraint/directive-ctx-isr.yml b/spec/constraint/directive-ctx-isr.yml
index c1645eb..5df3dd0 100644
--- a/spec/constraint/directive-ctx-isr.yml
+++ b/spec/constraint/directive-ctx-isr.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   The directive may be called from within interrupt context.
 type: constraint
diff --git a/spec/constraint/directive-ctx-task.yml b/spec/constraint/directive-ctx-task.yml
index c2f8716..5c8c7d5 100644
--- a/spec/constraint/directive-ctx-task.yml
+++ b/spec/constraint/directive-ctx-task.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   The directive may be called from within task context.
 type: constraint
diff --git a/spec/constraint/directive-no-preempt-local.yml b/spec/constraint/directive-no-preempt-local.yml
index 0a444da..5ef9ff5 100644
--- a/spec/constraint/directive-no-preempt-local.yml
+++ b/spec/constraint/directive-no-preempt-local.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   When the directive operates on a local object, the directive will not cause
   the calling task to be preempted.
diff --git a/spec/constraint/directive-no-preempt.yml b/spec/constraint/directive-no-preempt.yml
index 847913c..2196c88 100644
--- a/spec/constraint/directive-no-preempt.yml
+++ b/spec/constraint/directive-no-preempt.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   The directive will not cause the calling task to be preempted.
 type: constraint
diff --git a/spec/constraint/directive-no-return.yml b/spec/constraint/directive-no-return.yml
index 7566acd..357c353 100644
--- a/spec/constraint/directive-no-return.yml
+++ b/spec/constraint/directive-no-return.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   The directive will not return to the caller.
 type: constraint
diff --git a/spec/constraint/directive-remote.yml b/spec/constraint/directive-remote.yml
index 61f25ad..ba54aa5 100644
--- a/spec/constraint/directive-remote.yml
+++ b/spec/constraint/directive-remote.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   When the directive operates on a remote object, the directive sends a message
   to the remote node and waits for a reply.  This will preempt the calling
diff --git a/spec/constraint/extensions-fatal.yml b/spec/constraint/extensions-fatal.yml
index 759ef11..9e5736c 100644
--- a/spec/constraint/extensions-fatal.yml
+++ b/spec/constraint/extensions-fatal.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   The directive invokes the fatal error extensions in
   ${/glossary/extension-forward-order:/term}.
diff --git a/spec/constraint/fatal-bad-thread-dispatch-disable-level.yml b/spec/constraint/fatal-bad-thread-dispatch-disable-level.yml
index be1b87c..012659f 100644
--- a/spec/constraint/fatal-bad-thread-dispatch-disable-level.yml
+++ b/spec/constraint/fatal-bad-thread-dispatch-disable-level.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   While thread dispatching is disabled, if the directive performs a thread
   dispatch, then the fatal error with the fatal source
diff --git a/spec/constraint/fatal-bad-thread-dispatch-environment.yml b/spec/constraint/fatal-bad-thread-dispatch-environment.yml
index 27140cd..95af31a 100644
--- a/spec/constraint/fatal-bad-thread-dispatch-environment.yml
+++ b/spec/constraint/fatal-bad-thread-dispatch-environment.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   Where the ${/glossary/target-arch:/term} enabled robust thread dispatching,
   or the system was built with SMP support enabled and inter-processor
diff --git a/spec/constraint/interrupt-enable.yml b/spec/constraint/interrupt-enable.yml
index 6766312..698f019 100644
--- a/spec/constraint/interrupt-enable.yml
+++ b/spec/constraint/interrupt-enable.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   While at least one maskable interrupt is pending, when the directive enables
   maskable interrupts, the pending interrupts are immediately serviced.  The
diff --git a/spec/constraint/mp-send.yml b/spec/constraint/mp-send.yml
index 70195c6..9df1006 100644
--- a/spec/constraint/mp-send.yml
+++ b/spec/constraint/mp-send.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   When the directive operates on a global object, the directive sends a message
   to remote nodes.  This may preempt the calling task.
diff --git a/spec/constraint/no-atexit.yml b/spec/constraint/no-atexit.yml
index d4d848d..ae6dbad 100644
--- a/spec/constraint/no-atexit.yml
+++ b/spec/constraint/no-atexit.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   The directive does not invoke handlers registered by ${/c/if/atexit:/name}
   or ${/c/if/on-exit:/name}.
diff --git a/spec/constraint/no-impl.yml b/spec/constraint/no-impl.yml
index 338c1b9..eb9e33a 100644
--- a/spec/constraint/no-impl.yml
+++ b/spec/constraint/no-impl.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   The directive is not implemented.
 type: constraint
diff --git a/spec/constraint/obj-unlimited-alloc.yml b/spec/constraint/obj-unlimited-alloc.yml
index 8e5ede3..2306d37 100644
--- a/spec/constraint/obj-unlimited-alloc.yml
+++ b/spec/constraint/obj-unlimited-alloc.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   Where the object class corresponding to the directive is configured to use
   unlimited objects, the directive may allocate memory from the RTEMS
diff --git a/spec/constraint/obj-unlimited-free.yml b/spec/constraint/obj-unlimited-free.yml
index c65584e..c0902ac 100644
--- a/spec/constraint/obj-unlimited-free.yml
+++ b/spec/constraint/obj-unlimited-free.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   Where the object class corresponding to the directive is configured to use
   unlimited objects, the directive may free memory to the RTEMS Workspace.
diff --git a/spec/constraint/object-allocator.yml b/spec/constraint/object-allocator.yml
index 297ef55..0d27fce 100644
--- a/spec/constraint/object-allocator.yml
+++ b/spec/constraint/object-allocator.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   The directive may obtain and release the object allocator mutex.  This may
   cause the calling task to be preempted.
diff --git a/spec/constraint/priority-may-preempt.yml b/spec/constraint/priority-may-preempt.yml
index 271ee05..5c95eea 100644
--- a/spec/constraint/priority-may-preempt.yml
+++ b/spec/constraint/priority-may-preempt.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   The directive may change the priority of a task.  This may cause the calling
   task to be preempted.
diff --git a/spec/constraint/terminate.yml b/spec/constraint/terminate.yml
index 4002ba8..914cc9f 100644
--- a/spec/constraint/terminate.yml
+++ b/spec/constraint/terminate.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   The directive may terminate the system.
 type: constraint
diff --git a/spec/constraint/unblock-may-preempt.yml b/spec/constraint/unblock-may-preempt.yml
index cb0c7b5..f0e9e41 100644
--- a/spec/constraint/unblock-may-preempt.yml
+++ b/spec/constraint/unblock-may-preempt.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   The directive may unblock a task.  This may cause the calling task to be
   preempted.
diff --git a/spec/req/usage-constraints.yml b/spec/req/usage-constraints.yml
new file mode 100644
index 0000000..f774c4e
--- /dev/null
+++ b/spec/req/usage-constraints.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de
+enabled-by: true
+links:
+- role: requirement-refinement
+  uid: root
+non-functional-type: design
+rationale: null
+references: []
+requirement-type: non-functional
+text: |
+  The system shall document usage constraints of interfaces.
+type: requirement
diff --git a/spec/rtems/barrier/constraint/max.yml b/spec/rtems/barrier/constraint/max.yml
index 7cd39c3..d8b1f94 100644
--- a/spec/rtems/barrier/constraint/max.yml
+++ b/spec/rtems/barrier/constraint/max.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   The number of barriers available to the application is configured through
   the ${/acfg/if/max-barriers:/name} application configuration option.
diff --git a/spec/rtems/constraint/delete-by-any-task.yml b/spec/rtems/constraint/delete-by-any-task.yml
index 2fa1bd1..99ac912 100644
--- a/spec/rtems/constraint/delete-by-any-task.yml
+++ b/spec/rtems/constraint/delete-by-any-task.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   The calling task does not have to be the task that created the object.  Any
   local task that knows the object identifier can delete the object.
diff --git a/spec/rtems/constraint/directive-ctx-isr-no-wait.yml b/spec/rtems/constraint/directive-ctx-isr-no-wait.yml
index d3b5bb3..0ebda30 100644
--- a/spec/rtems/constraint/directive-ctx-isr-no-wait.yml
+++ b/spec/rtems/constraint/directive-ctx-isr-no-wait.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   When the ${../option/if/no-wait:/name} option is set, the directive may be
   called from within interrupt context.
diff --git a/spec/rtems/constraint/mp-max-global-objects.yml b/spec/rtems/constraint/mp-max-global-objects.yml
index f2bf001..b2da9aa 100644
--- a/spec/rtems/constraint/mp-max-global-objects.yml
+++ b/spec/rtems/constraint/mp-max-global-objects.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   The number of global objects available to the application is configured
   through the ${/acfg/if/mp-max-global-objects:/name} application configuration
diff --git a/spec/rtems/constraint/request-may-block.yml b/spec/rtems/constraint/request-may-block.yml
index a4b5172..61006c7 100644
--- a/spec/rtems/constraint/request-may-block.yml
+++ b/spec/rtems/constraint/request-may-block.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   When the request cannot be immediately satisfied and the
   ${../option/if/wait:/name} option is set, the calling task blocks at some
diff --git a/spec/rtems/dpmem/constraint/max.yml b/spec/rtems/dpmem/constraint/max.yml
index b9e6c6f..ef03368 100644
--- a/spec/rtems/dpmem/constraint/max.yml
+++ b/spec/rtems/dpmem/constraint/max.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   The number of ports available to the application is configured through
   the ${/acfg/if/max-ports:/name} application configuration option.
diff --git a/spec/rtems/init/constraint/directive-ctx-boot.yml b/spec/rtems/init/constraint/directive-ctx-boot.yml
index f313b88..e7eabcd 100644
--- a/spec/rtems/init/constraint/directive-ctx-boot.yml
+++ b/spec/rtems/init/constraint/directive-ctx-boot.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   The directive should be called by ${/bsp/if/boot-card:/name} only.
 type: constraint
diff --git a/spec/rtems/intr/constraint/no-smp.yml b/spec/rtems/intr/constraint/no-smp.yml
index 401d687..6f0ebfe 100644
--- a/spec/rtems/intr/constraint/no-smp.yml
+++ b/spec/rtems/intr/constraint/no-smp.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   Where the system was built with SMP support enabled, the directive is not
   available.  Its use will result in compiler warnings and linker errors.  The
diff --git a/spec/rtems/message/constraint/max.yml b/spec/rtems/message/constraint/max.yml
index 6c3f233..2689ca8 100644
--- a/spec/rtems/message/constraint/max.yml
+++ b/spec/rtems/message/constraint/max.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   The number of message queues available to the application is configured
   through the ${/acfg/if/max-message-queues:/name} application configuration
diff --git a/spec/rtems/message/constraint/receive-isr.yml b/spec/rtems/message/constraint/receive-isr.yml
index 45da94c..3eb2038 100644
--- a/spec/rtems/message/constraint/receive-isr.yml
+++ b/spec/rtems/message/constraint/receive-isr.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   When a local queue is accessed and the ${../../option/if/no-wait:/name}
   option is set, the directive may be called from within interrupt context.
diff --git a/spec/rtems/part/constraint/max.yml b/spec/rtems/part/constraint/max.yml
index ccf39f9..ef1e768 100644
--- a/spec/rtems/part/constraint/max.yml
+++ b/spec/rtems/part/constraint/max.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   The number of partitions available to the application is configured through
   the ${/acfg/if/max-partitions:/name} application configuration option.
diff --git a/spec/rtems/ratemon/constraint/max.yml b/spec/rtems/ratemon/constraint/max.yml
index 8db642e..a07375a 100644
--- a/spec/rtems/ratemon/constraint/max.yml
+++ b/spec/rtems/ratemon/constraint/max.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   The number of periods available to the application is configured through the
   ${/acfg/if/max-periods:/name} application configuration option.
diff --git a/spec/rtems/region/constraint/max.yml b/spec/rtems/region/constraint/max.yml
index 61dd552..75d294f 100644
--- a/spec/rtems/region/constraint/max.yml
+++ b/spec/rtems/region/constraint/max.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   The number of regions available to the application is configured through
   the ${/acfg/if/max-regions:/name} application configuration option.
diff --git a/spec/rtems/sem/constraint/max.yml b/spec/rtems/sem/constraint/max.yml
index f80d82a..1343fbb 100644
--- a/spec/rtems/sem/constraint/max.yml
+++ b/spec/rtems/sem/constraint/max.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   The number of semaphores available to the application is configured through
   the ${/acfg/if/max-semaphores:/name} application configuration option.
diff --git a/spec/rtems/sem/constraint/obtain-devinit.yml b/spec/rtems/sem/constraint/obtain-devinit.yml
index 46a099a..eca34ae 100644
--- a/spec/rtems/sem/constraint/obtain-devinit.yml
+++ b/spec/rtems/sem/constraint/obtain-devinit.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   When a local semaphore is accessed and the request can be immediately
   satisfied, the directive may be called from within device driver
diff --git a/spec/rtems/sem/constraint/obtain-isr.yml b/spec/rtems/sem/constraint/obtain-isr.yml
index e69be16..0038948 100644
--- a/spec/rtems/sem/constraint/obtain-isr.yml
+++ b/spec/rtems/sem/constraint/obtain-isr.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   When a local, counting semaphore or a local, simple binary semaphore is
   accessed and the ${../../option/if/no-wait:/name} option is set, the
diff --git a/spec/rtems/sem/constraint/release-devinit.yml b/spec/rtems/sem/constraint/release-devinit.yml
index d926265..cd8983b 100644
--- a/spec/rtems/sem/constraint/release-devinit.yml
+++ b/spec/rtems/sem/constraint/release-devinit.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   When a local semaphore is accessed, the directive may be called from within
   device driver initialization context.
diff --git a/spec/rtems/sem/constraint/release-isr.yml b/spec/rtems/sem/constraint/release-isr.yml
index 9dc47cd..bb4df89 100644
--- a/spec/rtems/sem/constraint/release-isr.yml
+++ b/spec/rtems/sem/constraint/release-isr.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   When a local, counting semaphore or a local, simple binary semaphore is
   accessed, the directive may be called from within interrupt context.
diff --git a/spec/rtems/task/constraint/max.yml b/spec/rtems/task/constraint/max.yml
index f072f03..24e38d2 100644
--- a/spec/rtems/task/constraint/max.yml
+++ b/spec/rtems/task/constraint/max.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   The number of tasks available to the application is configured through
   the ${/acfg/if/max-tasks:/name} application configuration option.
diff --git a/spec/rtems/task/constraint/preempt-enable.yml b/spec/rtems/task/constraint/preempt-enable.yml
index 1d754da..8a0cee3 100644
--- a/spec/rtems/task/constraint/preempt-enable.yml
+++ b/spec/rtems/task/constraint/preempt-enable.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   When the directive enables preemption for the calling task, another task may
   preempt the calling task.
diff --git a/spec/rtems/timer/constraint/max.yml b/spec/rtems/timer/constraint/max.yml
index f0505bf..a0f3364 100644
--- a/spec/rtems/timer/constraint/max.yml
+++ b/spec/rtems/timer/constraint/max.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   The number of timers available to the application is configured through
   the ${/acfg/if/max-timers:/name} application configuration option.
diff --git a/spec/rtems/userext/constraint/max.yml b/spec/rtems/userext/constraint/max.yml
index 6e9294b..5a13a32 100644
--- a/spec/rtems/userext/constraint/max.yml
+++ b/spec/rtems/userext/constraint/max.yml
@@ -2,9 +2,10 @@ SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
 - Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
-links: []
+links:
+- role: requirement-refinement
+  uid: /req/usage-constraints
 rationale: null
-scope: user
 text: |
   The number of extension sets available to the application is configured
   through the ${/acfg/if/max-user-extensions:/name} application configuration
diff --git a/spec/spec/constraint.yml b/spec/spec/constraint.yml
index 07670b7..71444f3 100644
--- a/spec/spec/constraint.yml
+++ b/spec/spec/constraint.yml
@@ -19,10 +19,6 @@ spec-info:
           If the value is present, then it shall state the rationale or
           justification of the constraint.
         spec-type: optional-str
-      scope:
-        description: |
-          It shall be the scope of the constraint.
-        spec-type: str
       text:
         description: |
           It shall state the constraint.



More information about the vc mailing list