rcf-lite 0.29.0 → 0.30.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (737) hide show
  1. package/CHANGELOG.md +87 -0
  2. package/blueprints/application-account-settings/contributions/requirements/application-account-settings-req-001.json +1 -1
  3. package/blueprints/application-account-settings/contributions/requirements/application-account-settings-req-002.json +1 -1
  4. package/blueprints/application-account-settings/contributions/requirements/application-account-settings-req-003.json +1 -1
  5. package/blueprints/application-account-settings/contributions/requirements/application-account-settings-req-004.json +1 -1
  6. package/blueprints/application-account-settings/contributions/requirements/application-account-settings-req-005.json +1 -1
  7. package/blueprints/application-account-settings/contributions/requirements/application-account-settings-req-006.json +1 -1
  8. package/blueprints/application-account-settings/contributions/requirements/application-account-settings-req-007.json +1 -1
  9. package/blueprints/application-account-settings/contributions/requirements/application-account-settings-req-009.json +1 -1
  10. package/blueprints/application-account-settings/contributions/tacs/tac-2601-application-account-settings-shell.json +4 -4
  11. package/blueprints/application-account-settings/contributions/tacs/tac-2602-application-account-settings-capability-discovery.json +2 -2
  12. package/blueprints/application-account-settings/contributions/tacs/tac-2603-application-account-settings-hosted-ui-bridge.json +2 -2
  13. package/blueprints/application-account-settings/contributions/tacs/tac-2604-application-account-settings-session-store.json +7 -7
  14. package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25105.json +3 -15
  15. package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25106.json +2 -10
  16. package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25111.json +3 -6
  17. package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25112.json +4 -4
  18. package/blueprints/application-admin-console/contributions/requirements/application-admin-console-req-001.json +1 -1
  19. package/blueprints/application-admin-console/contributions/requirements/application-admin-console-req-002.json +1 -1
  20. package/blueprints/application-admin-console/contributions/requirements/application-admin-console-req-003.json +1 -1
  21. package/blueprints/application-admin-console/contributions/requirements/application-admin-console-req-004.json +1 -1
  22. package/blueprints/application-admin-console/contributions/requirements/application-admin-console-req-005.json +1 -1
  23. package/blueprints/application-admin-console/contributions/requirements/application-admin-console-req-006.json +1 -1
  24. package/blueprints/application-admin-console/contributions/requirements/application-admin-console-req-007.json +1 -1
  25. package/blueprints/application-admin-console/contributions/requirements/application-admin-console-req-008.json +1 -1
  26. package/blueprints/application-admin-console/contributions/requirements/application-admin-console-req-009.json +1 -1
  27. package/blueprints/application-admin-console/contributions/requirements/application-admin-console-req-014.json +1 -1
  28. package/blueprints/application-admin-console/contributions/tacs/tac-2201-application-admin-console-shell.json +4 -4
  29. package/blueprints/application-admin-console/contributions/tacs/tac-2202-application-admin-console-capability-discovery.json +7 -7
  30. package/blueprints/application-admin-console/contributions/tacs/tac-2203-application-admin-console-permission-matrix.json +2 -2
  31. package/blueprints/application-admin-console/contributions/tacs/tac-2204-application-admin-console-audit-view.json +2 -2
  32. package/blueprints/application-admin-console/contributions/tacs/tac-2214-application-admin-console-access-gated-signin-surface.json +3 -2
  33. package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21107.json +2 -2
  34. package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21111.json +3 -11
  35. package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21112.json +4 -4
  36. package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21815.json +2 -2
  37. package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21816.json +2 -2
  38. package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-001.json +1 -1
  39. package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-002.json +1 -2
  40. package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-004.json +1 -1
  41. package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-008.json +1 -1
  42. package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-016.json +1 -1
  43. package/blueprints/application-api-rest/contributions/tacs/tac-301-application-api-rest-request-pipeline.json +4 -4
  44. package/blueprints/application-api-rest/contributions/tacs/tac-302-application-api-rest-auth-middleware.json +4 -4
  45. package/blueprints/application-api-rest/contributions/tacs/tac-303-application-api-rest-contract-surface.json +4 -4
  46. package/blueprints/application-api-rest/contributions/tacs/tac-304-application-api-rest-resource-layer.json +4 -4
  47. package/blueprints/application-api-rest/contributions/tacs/tac-305-application-api-rest-observability.json +4 -4
  48. package/blueprints/application-api-rest/contributions/tacs/tac-306-application-api-rest-operability.json +4 -4
  49. package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2102.json +1 -1
  50. package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2103.json +1 -1
  51. package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2104.json +4 -4
  52. package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2105.json +2 -2
  53. package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2108.json +1 -1
  54. package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2110.json +1 -1
  55. package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2111.json +1 -1
  56. package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2118.json +1 -1
  57. package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2119.json +2 -2
  58. package/blueprints/application-charts/contributions/tacs/tac-1901-application-charts-render-shell.json +4 -4
  59. package/blueprints/application-charts/contributions/tacs/tac-1902-application-charts-keyboard-traversal.json +4 -4
  60. package/blueprints/application-charts/contributions/user-stories/application-charts-us-18105.json +1 -1
  61. package/blueprints/application-dashboard/contributions/tacs/tac-2001-application-dashboard-tile-grid.json +4 -4
  62. package/blueprints/application-dashboard/contributions/tacs/tac-2002-application-dashboard-filter-chrome.json +4 -4
  63. package/blueprints/application-dashboard/contributions/tacs/tac-2003-application-dashboard-export-handle.json +2 -2
  64. package/blueprints/application-dashboard/contributions/user-stories/application-dashboard-us-19106.json +1 -1
  65. package/blueprints/application-datatable/contributions/tacs/tac-1801-application-datatable-shell.json +4 -4
  66. package/blueprints/application-datatable/contributions/tacs/tac-1802-application-datatable-query-adapter.json +4 -4
  67. package/blueprints/application-datatable/contributions/tacs/tac-1803-application-datatable-selection-model.json +2 -2
  68. package/blueprints/application-datatable/contributions/user-stories/application-datatable-us-17101.json +1 -1
  69. package/blueprints/application-datatable/contributions/user-stories/application-datatable-us-17102.json +1 -1
  70. package/blueprints/application-datatable/contributions/user-stories/application-datatable-us-17103.json +1 -1
  71. package/blueprints/application-datatable/contributions/user-stories/application-datatable-us-17105.json +1 -1
  72. package/blueprints/application-empty-error-states/contributions/requirements/application-empty-error-states-req-001.json +1 -1
  73. package/blueprints/application-empty-error-states/contributions/requirements/application-empty-error-states-req-002.json +1 -1
  74. package/blueprints/application-empty-error-states/contributions/requirements/application-empty-error-states-req-003.json +1 -1
  75. package/blueprints/application-empty-error-states/contributions/requirements/application-empty-error-states-req-004.json +1 -1
  76. package/blueprints/application-empty-error-states/contributions/requirements/application-empty-error-states-req-005.json +2 -2
  77. package/blueprints/application-empty-error-states/contributions/requirements/application-empty-error-states-req-006.json +1 -1
  78. package/blueprints/application-empty-error-states/contributions/requirements/application-empty-error-states-req-007.json +2 -2
  79. package/blueprints/application-empty-error-states/contributions/tacs/tac-2301-application-empty-error-states-state-machine.json +5 -5
  80. package/blueprints/application-empty-error-states/contributions/tacs/tac-2302-application-empty-error-states-recovery-router.json +2 -2
  81. package/blueprints/application-empty-error-states/contributions/tacs/tac-2303-application-empty-error-states-offline-buffer.json +5 -5
  82. package/blueprints/application-error-handling/contributions/tacs/tac-1701-application-error-handling-boundary.json +6 -6
  83. package/blueprints/application-error-handling/contributions/tacs/tac-1702-application-error-handling-record-factory.json +4 -4
  84. package/blueprints/application-error-handling/contributions/user-stories/application-error-handling-us-16101.json +1 -1
  85. package/blueprints/application-error-handling/contributions/user-stories/application-error-handling-us-16107.json +4 -4
  86. package/blueprints/application-file-upload/contributions/requirements/application-file-upload-req-001.json +1 -1
  87. package/blueprints/application-file-upload/contributions/requirements/application-file-upload-req-002.json +1 -1
  88. package/blueprints/application-file-upload/contributions/requirements/application-file-upload-req-003.json +1 -1
  89. package/blueprints/application-file-upload/contributions/requirements/application-file-upload-req-004.json +1 -1
  90. package/blueprints/application-file-upload/contributions/requirements/application-file-upload-req-005.json +1 -1
  91. package/blueprints/application-file-upload/contributions/requirements/application-file-upload-req-006.json +2 -2
  92. package/blueprints/application-file-upload/contributions/requirements/application-file-upload-req-007.json +2 -2
  93. package/blueprints/application-file-upload/contributions/tacs/tac-2401-application-file-upload-input.json +7 -7
  94. package/blueprints/application-file-upload/contributions/tacs/tac-2402-application-file-upload-transport.json +8 -8
  95. package/blueprints/application-file-upload/contributions/tacs/tac-2403-application-file-upload-progress-announcer.json +11 -11
  96. package/blueprints/application-file-upload/contributions/user-stories/application-file-upload-us-23102.json +1 -1
  97. package/blueprints/application-file-upload/contributions/user-stories/application-file-upload-us-23105.json +1 -1
  98. package/blueprints/application-forms-wizard/contributions/requirements/application-forms-wizard-req-001.json +1 -1
  99. package/blueprints/application-forms-wizard/contributions/requirements/application-forms-wizard-req-002.json +1 -1
  100. package/blueprints/application-forms-wizard/contributions/requirements/application-forms-wizard-req-003.json +1 -1
  101. package/blueprints/application-forms-wizard/contributions/requirements/application-forms-wizard-req-004.json +1 -1
  102. package/blueprints/application-forms-wizard/contributions/requirements/application-forms-wizard-req-005.json +1 -1
  103. package/blueprints/application-forms-wizard/contributions/requirements/application-forms-wizard-req-006.json +2 -2
  104. package/blueprints/application-forms-wizard/contributions/tacs/tac-2501-application-forms-wizard-task-list.json +7 -7
  105. package/blueprints/application-forms-wizard/contributions/tacs/tac-2502-application-forms-wizard-error-summary.json +4 -4
  106. package/blueprints/application-forms-wizard/contributions/tacs/tac-2503-application-forms-wizard-draft-store.json +4 -4
  107. package/blueprints/application-forms-wizard/contributions/user-stories/application-forms-wizard-us-24101.json +1 -1
  108. package/blueprints/application-notifications-in-app/contributions/requirements/application-notifications-in-app-req-001.json +1 -1
  109. package/blueprints/application-notifications-in-app/contributions/requirements/application-notifications-in-app-req-002.json +1 -1
  110. package/blueprints/application-notifications-in-app/contributions/requirements/application-notifications-in-app-req-003.json +1 -1
  111. package/blueprints/application-notifications-in-app/contributions/requirements/application-notifications-in-app-req-004.json +1 -1
  112. package/blueprints/application-notifications-in-app/contributions/requirements/application-notifications-in-app-req-005.json +2 -2
  113. package/blueprints/application-notifications-in-app/contributions/requirements/application-notifications-in-app-req-006.json +2 -2
  114. package/blueprints/application-notifications-in-app/contributions/tacs/tac-2101-application-notifications-in-app-live-region.json +6 -6
  115. package/blueprints/application-notifications-in-app/contributions/tacs/tac-2102-application-notifications-in-app-centre.json +9 -9
  116. package/blueprints/application-notifications-in-app/contributions/tacs/tac-2103-application-notifications-in-app-preferences.json +4 -4
  117. package/blueprints/application-notifications-in-app/contributions/user-stories/application-notifications-in-app-us-20101.json +1 -1
  118. package/blueprints/application-notifications-in-app/contributions/user-stories/application-notifications-in-app-us-20102.json +1 -1
  119. package/blueprints/application-notifications-in-app/contributions/user-stories/application-notifications-in-app-us-20103.json +2 -2
  120. package/blueprints/application-notifications-in-app/contributions/user-stories/application-notifications-in-app-us-20105.json +4 -4
  121. package/blueprints/application-onboarding-tour/contributions/requirements/application-onboarding-tour-req-001.json +1 -1
  122. package/blueprints/application-onboarding-tour/contributions/requirements/application-onboarding-tour-req-002.json +1 -1
  123. package/blueprints/application-onboarding-tour/contributions/requirements/application-onboarding-tour-req-003.json +1 -1
  124. package/blueprints/application-onboarding-tour/contributions/requirements/application-onboarding-tour-req-004.json +1 -1
  125. package/blueprints/application-onboarding-tour/contributions/requirements/application-onboarding-tour-req-005.json +1 -1
  126. package/blueprints/application-onboarding-tour/contributions/requirements/application-onboarding-tour-req-006.json +1 -1
  127. package/blueprints/application-onboarding-tour/contributions/tacs/tac-2701-application-onboarding-tour-step-runner.json +4 -4
  128. package/blueprints/application-onboarding-tour/contributions/tacs/tac-2702-application-onboarding-tour-checklist-slot.json +2 -2
  129. package/blueprints/application-onboarding-tour/contributions/tacs/tac-2703-application-onboarding-tour-completion-store.json +2 -2
  130. package/blueprints/application-onboarding-tour/contributions/user-stories/application-onboarding-tour-us-26108.json +2 -2
  131. package/blueprints/application-spa/contributions/requirements/application-spa-req-004.json +1 -2
  132. package/blueprints/application-spa/contributions/requirements/application-spa-req-007.json +1 -1
  133. package/blueprints/application-spa/contributions/requirements/application-spa-req-014.json +1 -1
  134. package/blueprints/application-spa/contributions/requirements/application-spa-req-015.json +1 -1
  135. package/blueprints/application-spa/contributions/requirements/application-spa-req-017.json +1 -1
  136. package/blueprints/application-spa/contributions/requirements/application-spa-req-018.json +1 -1
  137. package/blueprints/application-spa/contributions/tacs/tac-201-application-spa-app-shell.json +4 -4
  138. package/blueprints/application-spa/contributions/tacs/tac-202-application-spa-theme-system.json +4 -4
  139. package/blueprints/application-spa/contributions/tacs/tac-207-application-spa-token-adherence-probe.json +6 -6
  140. package/blueprints/application-spa/contributions/tacs/tac-208-application-spa-icon-adherence-probe.json +6 -6
  141. package/blueprints/application-spa/contributions/tacs/tac-209-application-spa-csp-styled-adherence-probe.json +6 -6
  142. package/blueprints/application-spa/contributions/tacs/tac-210-application-spa-external-dependency-provisioning-probe.json +8 -8
  143. package/blueprints/application-spa/contributions/tacs/tac-211-application-spa-core-flow-e2e-probe.json +8 -8
  144. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1101.json +2 -2
  145. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1102.json +1 -1
  146. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1107.json +1 -1
  147. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1117.json +1 -1
  148. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1129.json +4 -4
  149. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1130.json +4 -4
  150. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1131.json +1 -1
  151. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1132.json +6 -6
  152. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1133.json +5 -5
  153. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1134.json +2 -2
  154. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-001.json +1 -1
  155. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-002.json +1 -1
  156. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-003.json +1 -1
  157. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-004.json +1 -1
  158. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-005.json +1 -1
  159. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-006.json +1 -1
  160. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-007.json +1 -1
  161. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-008.json +1 -1
  162. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-009.json +1 -1
  163. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-010.json +1 -1
  164. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-011.json +1 -1
  165. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-012.json +1 -1
  166. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-013.json +1 -1
  167. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-014.json +1 -1
  168. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-015.json +1 -1
  169. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-016.json +1 -1
  170. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-017.json +1 -1
  171. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-018.json +1 -1
  172. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-019.json +1 -1
  173. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-020.json +1 -1
  174. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-021.json +1 -1
  175. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-022.json +1 -1
  176. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-023.json +1 -1
  177. package/blueprints/delivery-ci-workflows/contributions/tacs/tac-701-delivery-ci-workflows-gate-runner.json +6 -6
  178. package/blueprints/delivery-ci-workflows/contributions/tacs/tac-702-delivery-ci-workflows-gate-report.json +4 -4
  179. package/blueprints/delivery-ci-workflows/contributions/tacs/tac-703-delivery-ci-workflows-aggregate-report.json +4 -4
  180. package/blueprints/delivery-ci-workflows/contributions/tacs/tac-704-delivery-ci-workflows-workflow-materialiser.json +6 -6
  181. package/blueprints/delivery-ci-workflows/contributions/tacs/tac-705-delivery-ci-workflows-release-workflow.json +6 -6
  182. package/blueprints/delivery-ci-workflows/contributions/tacs/tac-706-delivery-ci-workflows-scheduled-audit.json +4 -4
  183. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6101.json +1 -1
  184. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6102.json +1 -1
  185. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6103.json +1 -1
  186. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6104.json +1 -1
  187. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6106.json +1 -1
  188. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6107.json +1 -1
  189. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6109.json +1 -1
  190. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6110.json +1 -1
  191. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6111.json +1 -1
  192. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6113.json +1 -1
  193. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6115.json +1 -1
  194. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6116.json +1 -1
  195. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6117.json +1 -1
  196. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6118.json +1 -1
  197. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6119.json +1 -1
  198. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6120.json +1 -1
  199. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6122.json +1 -1
  200. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6123.json +1 -1
  201. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6124.json +1 -1
  202. package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-001.json +1 -1
  203. package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-002.json +1 -1
  204. package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-003.json +1 -1
  205. package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-004.json +1 -1
  206. package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-005.json +1 -1
  207. package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-006.json +1 -1
  208. package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-007.json +1 -1
  209. package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-008.json +1 -1
  210. package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-009.json +1 -1
  211. package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-010.json +1 -1
  212. package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-011.json +1 -1
  213. package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-012.json +1 -1
  214. package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-013.json +1 -1
  215. package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-014.json +1 -1
  216. package/blueprints/deploy-cloudflare-workers/contributions/tacs/tac-1301-deploy-cloudflare-workers-deploy-adapter.json +6 -6
  217. package/blueprints/deploy-cloudflare-workers/contributions/tacs/tac-1302-deploy-cloudflare-workers-wrangler-manifest.json +8 -8
  218. package/blueprints/deploy-cloudflare-workers/contributions/tacs/tac-1303-deploy-cloudflare-workers-preview-url-resolver.json +6 -6
  219. package/blueprints/deploy-cloudflare-workers/contributions/tacs/tac-1304-deploy-cloudflare-workers-promote-gate.json +8 -8
  220. package/blueprints/deploy-cloudflare-workers/contributions/tacs/tac-1305-deploy-cloudflare-workers-served-surface-verifier.json +8 -8
  221. package/blueprints/deploy-cloudflare-workers/contributions/tacs/tac-1306-deploy-cloudflare-workers-deploy-ci-workflows.json +8 -8
  222. package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12101.json +1 -1
  223. package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12102.json +2 -2
  224. package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12105.json +1 -1
  225. package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12109.json +1 -1
  226. package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12113.json +2 -2
  227. package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12114.json +1 -1
  228. package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12115.json +1 -1
  229. package/blueprints/deploy-hetzner-server/contributions/requirements/deploy-hetzner-server-req-001.json +1 -1
  230. package/blueprints/deploy-hetzner-server/contributions/requirements/deploy-hetzner-server-req-002.json +1 -1
  231. package/blueprints/deploy-hetzner-server/contributions/requirements/deploy-hetzner-server-req-003.json +1 -1
  232. package/blueprints/deploy-hetzner-server/contributions/requirements/deploy-hetzner-server-req-004.json +1 -1
  233. package/blueprints/deploy-hetzner-server/contributions/requirements/deploy-hetzner-server-req-005.json +1 -1
  234. package/blueprints/deploy-hetzner-server/contributions/requirements/deploy-hetzner-server-req-006.json +1 -1
  235. package/blueprints/deploy-hetzner-server/contributions/tacs/tac-3801-deploy-hetzner-server-provisioner.json +3 -2
  236. package/blueprints/deploy-hetzner-server/contributions/tacs/tac-3802-deploy-hetzner-server-manifest-schema.json +3 -2
  237. package/blueprints/deploy-hetzner-server/contributions/tacs/tac-3803-deploy-hetzner-server-cloud-init-template.json +3 -2
  238. package/blueprints/deploy-hetzner-server/contributions/tacs/tac-3804-deploy-hetzner-server-firewall-shape.json +3 -2
  239. package/blueprints/deploy-hetzner-server/contributions/user-stories/deploy-hetzner-server-us-37101.json +4 -4
  240. package/blueprints/deploy-hetzner-server/contributions/user-stories/deploy-hetzner-server-us-37102.json +3 -3
  241. package/blueprints/deploy-hetzner-server/contributions/user-stories/deploy-hetzner-server-us-37103.json +4 -4
  242. package/blueprints/deploy-hetzner-server/contributions/user-stories/deploy-hetzner-server-us-37104.json +2 -2
  243. package/blueprints/deploy-hetzner-server/contributions/user-stories/deploy-hetzner-server-us-37105.json +2 -2
  244. package/blueprints/deploy-hetzner-server/contributions/user-stories/deploy-hetzner-server-us-37106.json +3 -3
  245. package/blueprints/deploy-hetzner-server/contributions/user-stories/deploy-hetzner-server-us-37107.json +2 -2
  246. package/blueprints/deploy-hetzner-server/contributions/user-stories/deploy-hetzner-server-us-37108.json +2 -2
  247. package/blueprints/deploy-hetzner-server/contributions/user-stories/deploy-hetzner-server-us-37109.json +2 -2
  248. package/blueprints/edge-cloudflare-access/contributions/requirements/edge-cloudflare-access-req-001.json +1 -1
  249. package/blueprints/edge-cloudflare-access/contributions/requirements/edge-cloudflare-access-req-002.json +1 -1
  250. package/blueprints/edge-cloudflare-access/contributions/requirements/edge-cloudflare-access-req-003.json +1 -1
  251. package/blueprints/edge-cloudflare-access/contributions/requirements/edge-cloudflare-access-req-004.json +1 -1
  252. package/blueprints/edge-cloudflare-access/contributions/requirements/edge-cloudflare-access-req-005.json +1 -1
  253. package/blueprints/edge-cloudflare-access/contributions/requirements/edge-cloudflare-access-req-006.json +1 -1
  254. package/blueprints/edge-cloudflare-access/contributions/requirements/edge-cloudflare-access-req-007.json +1 -1
  255. package/blueprints/edge-cloudflare-access/contributions/tacs/tac-3501-edge-cloudflare-access-jwt-validator.json +6 -4
  256. package/blueprints/edge-cloudflare-access/contributions/tacs/tac-3502-edge-cloudflare-access-application-declaration.json +3 -2
  257. package/blueprints/edge-cloudflare-access/contributions/tacs/tac-3503-edge-cloudflare-access-policy-shape.json +3 -2
  258. package/blueprints/edge-cloudflare-access/contributions/tacs/tac-3504-edge-cloudflare-access-audit-sink.json +3 -2
  259. package/blueprints/edge-cloudflare-access/contributions/user-stories/edge-cloudflare-access-us-34101.json +1 -1
  260. package/blueprints/edge-cloudflare-access/contributions/user-stories/edge-cloudflare-access-us-34102.json +5 -5
  261. package/blueprints/edge-cloudflare-access/contributions/user-stories/edge-cloudflare-access-us-34103.json +1 -1
  262. package/blueprints/edge-cloudflare-access/contributions/user-stories/edge-cloudflare-access-us-34104.json +3 -3
  263. package/blueprints/edge-cloudflare-access/contributions/user-stories/edge-cloudflare-access-us-34105.json +1 -1
  264. package/blueprints/edge-cloudflare-access/contributions/user-stories/edge-cloudflare-access-us-34106.json +1 -1
  265. package/blueprints/edge-cloudflare-access/contributions/user-stories/edge-cloudflare-access-us-34107.json +5 -5
  266. package/blueprints/edge-cloudflare-access/contributions/user-stories/edge-cloudflare-access-us-34110.json +1 -1
  267. package/blueprints/edge-cloudflare-rate-limiting/contributions/requirements/edge-cloudflare-rate-limiting-req-001.json +1 -1
  268. package/blueprints/edge-cloudflare-rate-limiting/contributions/requirements/edge-cloudflare-rate-limiting-req-002.json +1 -1
  269. package/blueprints/edge-cloudflare-rate-limiting/contributions/requirements/edge-cloudflare-rate-limiting-req-003.json +1 -1
  270. package/blueprints/edge-cloudflare-rate-limiting/contributions/requirements/edge-cloudflare-rate-limiting-req-004.json +1 -1
  271. package/blueprints/edge-cloudflare-rate-limiting/contributions/requirements/edge-cloudflare-rate-limiting-req-005.json +1 -1
  272. package/blueprints/edge-cloudflare-rate-limiting/contributions/tacs/tac-3701-edge-cloudflare-rate-limiting-manifest-schema.json +6 -4
  273. package/blueprints/edge-cloudflare-rate-limiting/contributions/tacs/tac-3702-edge-cloudflare-rate-limiting-management-surface-doc.json +3 -2
  274. package/blueprints/edge-cloudflare-rate-limiting/contributions/tacs/tac-3703-edge-cloudflare-rate-limiting-drift-audit-runner.json +3 -2
  275. package/blueprints/edge-cloudflare-rate-limiting/contributions/user-stories/edge-cloudflare-rate-limiting-us-36101.json +2 -2
  276. package/blueprints/edge-cloudflare-rate-limiting/contributions/user-stories/edge-cloudflare-rate-limiting-us-36103.json +1 -1
  277. package/blueprints/edge-cloudflare-rate-limiting/contributions/user-stories/edge-cloudflare-rate-limiting-us-36104.json +6 -6
  278. package/blueprints/edge-cloudflare-rate-limiting/contributions/user-stories/edge-cloudflare-rate-limiting-us-36106.json +2 -2
  279. package/blueprints/edge-cloudflare-tunnel/contributions/requirements/edge-cloudflare-tunnel-req-001.json +1 -1
  280. package/blueprints/edge-cloudflare-tunnel/contributions/requirements/edge-cloudflare-tunnel-req-002.json +1 -1
  281. package/blueprints/edge-cloudflare-tunnel/contributions/requirements/edge-cloudflare-tunnel-req-003.json +1 -1
  282. package/blueprints/edge-cloudflare-tunnel/contributions/requirements/edge-cloudflare-tunnel-req-004.json +1 -1
  283. package/blueprints/edge-cloudflare-tunnel/contributions/requirements/edge-cloudflare-tunnel-req-005.json +1 -1
  284. package/blueprints/edge-cloudflare-tunnel/contributions/requirements/edge-cloudflare-tunnel-req-006.json +1 -1
  285. package/blueprints/edge-cloudflare-tunnel/contributions/requirements/edge-cloudflare-tunnel-req-007.json +1 -1
  286. package/blueprints/edge-cloudflare-tunnel/contributions/tacs/tac-4001-edge-cloudflare-tunnel-connector-shape.json +3 -2
  287. package/blueprints/edge-cloudflare-tunnel/contributions/tacs/tac-4002-edge-cloudflare-tunnel-manifest-schema.json +3 -2
  288. package/blueprints/edge-cloudflare-tunnel/contributions/tacs/tac-4003-edge-cloudflare-tunnel-access-binding.json +3 -2
  289. package/blueprints/edge-cloudflare-tunnel/contributions/tacs/tac-4004-edge-cloudflare-tunnel-zone-and-hostname-apply.json +3 -2
  290. package/blueprints/edge-cloudflare-tunnel/contributions/user-stories/edge-cloudflare-tunnel-us-39101.json +3 -3
  291. package/blueprints/edge-cloudflare-tunnel/contributions/user-stories/edge-cloudflare-tunnel-us-39102.json +2 -2
  292. package/blueprints/edge-cloudflare-tunnel/contributions/user-stories/edge-cloudflare-tunnel-us-39103.json +4 -4
  293. package/blueprints/edge-cloudflare-tunnel/contributions/user-stories/edge-cloudflare-tunnel-us-39104.json +2 -2
  294. package/blueprints/edge-cloudflare-tunnel/contributions/user-stories/edge-cloudflare-tunnel-us-39105.json +2 -2
  295. package/blueprints/edge-cloudflare-tunnel/contributions/user-stories/edge-cloudflare-tunnel-us-39106.json +5 -5
  296. package/blueprints/edge-cloudflare-tunnel/contributions/user-stories/edge-cloudflare-tunnel-us-39107.json +2 -2
  297. package/blueprints/edge-cloudflare-tunnel/contributions/user-stories/edge-cloudflare-tunnel-us-39108.json +3 -3
  298. package/blueprints/edge-cloudflare-tunnel/contributions/user-stories/edge-cloudflare-tunnel-us-39109.json +4 -4
  299. package/blueprints/edge-cloudflare-tunnel/contributions/user-stories/edge-cloudflare-tunnel-us-39110.json +3 -3
  300. package/blueprints/edge-cloudflare-turnstile/contributions/requirements/edge-cloudflare-turnstile-req-001.json +1 -1
  301. package/blueprints/edge-cloudflare-turnstile/contributions/requirements/edge-cloudflare-turnstile-req-002.json +1 -1
  302. package/blueprints/edge-cloudflare-turnstile/contributions/requirements/edge-cloudflare-turnstile-req-003.json +1 -1
  303. package/blueprints/edge-cloudflare-turnstile/contributions/requirements/edge-cloudflare-turnstile-req-004.json +1 -1
  304. package/blueprints/edge-cloudflare-turnstile/contributions/requirements/edge-cloudflare-turnstile-req-005.json +1 -1
  305. package/blueprints/edge-cloudflare-turnstile/contributions/tacs/tac-3601-edge-cloudflare-turnstile-widget-mount.json +3 -2
  306. package/blueprints/edge-cloudflare-turnstile/contributions/tacs/tac-3602-edge-cloudflare-turnstile-server-verifier.json +9 -6
  307. package/blueprints/edge-cloudflare-turnstile/contributions/tacs/tac-3603-edge-cloudflare-turnstile-magic-link-hook.json +3 -2
  308. package/blueprints/edge-cloudflare-turnstile/contributions/user-stories/edge-cloudflare-turnstile-us-35101.json +3 -3
  309. package/blueprints/edge-cloudflare-turnstile/contributions/user-stories/edge-cloudflare-turnstile-us-35102.json +4 -4
  310. package/blueprints/edge-cloudflare-turnstile/contributions/user-stories/edge-cloudflare-turnstile-us-35103.json +6 -6
  311. package/blueprints/edge-cloudflare-turnstile/contributions/user-stories/edge-cloudflare-turnstile-us-35104.json +2 -2
  312. package/blueprints/edge-cloudflare-turnstile/contributions/user-stories/edge-cloudflare-turnstile-us-35105.json +1 -1
  313. package/blueprints/email-smtp-resend/contributions/requirements/email-smtp-resend-req-001.json +1 -1
  314. package/blueprints/email-smtp-resend/contributions/requirements/email-smtp-resend-req-002.json +1 -1
  315. package/blueprints/email-smtp-resend/contributions/requirements/email-smtp-resend-req-003.json +1 -1
  316. package/blueprints/email-smtp-resend/contributions/requirements/email-smtp-resend-req-004.json +1 -1
  317. package/blueprints/email-smtp-resend/contributions/requirements/email-smtp-resend-req-005.json +1 -1
  318. package/blueprints/email-smtp-resend/contributions/requirements/email-smtp-resend-req-006.json +1 -1
  319. package/blueprints/email-smtp-resend/contributions/tacs/tac-401-email-smtp-resend-send-adapter.json +8 -8
  320. package/blueprints/email-smtp-resend/contributions/tacs/tac-402-email-smtp-resend-webhook-verifier.json +10 -10
  321. package/blueprints/email-smtp-resend/contributions/user-stories/email-smtp-resend-us-4101.json +1 -1
  322. package/blueprints/email-smtp-resend/contributions/user-stories/email-smtp-resend-us-4102.json +1 -1
  323. package/blueprints/email-smtp-resend/contributions/user-stories/email-smtp-resend-us-4103.json +1 -1
  324. package/blueprints/email-smtp-resend/contributions/user-stories/email-smtp-resend-us-4105.json +1 -1
  325. package/blueprints/email-smtp-resend/contributions/user-stories/email-smtp-resend-us-4106.json +2 -2
  326. package/blueprints/jobs-background/contributions/requirements/jobs-background-req-001.json +1 -1
  327. package/blueprints/jobs-background/contributions/requirements/jobs-background-req-002.json +1 -1
  328. package/blueprints/jobs-background/contributions/requirements/jobs-background-req-003.json +1 -1
  329. package/blueprints/jobs-background/contributions/requirements/jobs-background-req-004.json +1 -1
  330. package/blueprints/jobs-background/contributions/requirements/jobs-background-req-005.json +1 -1
  331. package/blueprints/jobs-background/contributions/requirements/jobs-background-req-006.json +1 -1
  332. package/blueprints/jobs-background/contributions/tacs/tac-3101-jobs-background-job-definition.json +4 -4
  333. package/blueprints/jobs-background/contributions/tacs/tac-3102-jobs-background-scheduler.json +6 -6
  334. package/blueprints/jobs-background/contributions/tacs/tac-3103-jobs-background-run-log.json +6 -6
  335. package/blueprints/jobs-background/contributions/user-stories/jobs-background-us-30101.json +1 -1
  336. package/blueprints/jobs-background/contributions/user-stories/jobs-background-us-30102.json +3 -3
  337. package/blueprints/jobs-background/contributions/user-stories/jobs-background-us-30103.json +1 -1
  338. package/blueprints/jobs-background/contributions/user-stories/jobs-background-us-30104.json +4 -4
  339. package/blueprints/jobs-background/contributions/user-stories/jobs-background-us-30105.json +1 -1
  340. package/blueprints/jobs-background/contributions/user-stories/jobs-background-us-30106.json +1 -1
  341. package/blueprints/jobs-background/contributions/user-stories/jobs-background-us-30107.json +1 -1
  342. package/blueprints/jobs-background/contributions/user-stories/jobs-background-us-30108.json +1 -1
  343. package/blueprints/jobs-background/contributions/user-stories/jobs-background-us-30109.json +1 -1
  344. package/blueprints/messaging-queue-cloudflare/contributions/requirements/messaging-queue-cloudflare-req-001.json +1 -1
  345. package/blueprints/messaging-queue-cloudflare/contributions/requirements/messaging-queue-cloudflare-req-002.json +1 -1
  346. package/blueprints/messaging-queue-cloudflare/contributions/requirements/messaging-queue-cloudflare-req-003.json +1 -1
  347. package/blueprints/messaging-queue-cloudflare/contributions/requirements/messaging-queue-cloudflare-req-004.json +1 -1
  348. package/blueprints/messaging-queue-cloudflare/contributions/requirements/messaging-queue-cloudflare-req-005.json +1 -1
  349. package/blueprints/messaging-queue-cloudflare/contributions/requirements/messaging-queue-cloudflare-req-006.json +1 -1
  350. package/blueprints/messaging-queue-cloudflare/contributions/tacs/tac-3001-messaging-queue-cloudflare-producer-facade.json +6 -6
  351. package/blueprints/messaging-queue-cloudflare/contributions/tacs/tac-3002-messaging-queue-cloudflare-consumer-registration.json +2 -2
  352. package/blueprints/messaging-queue-cloudflare/contributions/tacs/tac-3003-messaging-queue-cloudflare-event-sink.json +2 -2
  353. package/blueprints/messaging-queue-cloudflare/contributions/user-stories/messaging-queue-cloudflare-us-29101.json +1 -1
  354. package/blueprints/messaging-queue-cloudflare/contributions/user-stories/messaging-queue-cloudflare-us-29102.json +1 -1
  355. package/blueprints/messaging-queue-cloudflare/contributions/user-stories/messaging-queue-cloudflare-us-29103.json +1 -1
  356. package/blueprints/messaging-queue-cloudflare/contributions/user-stories/messaging-queue-cloudflare-us-29104.json +2 -2
  357. package/blueprints/messaging-queue-cloudflare/contributions/user-stories/messaging-queue-cloudflare-us-29105.json +1 -1
  358. package/blueprints/messaging-queue-cloudflare/contributions/user-stories/messaging-queue-cloudflare-us-29106.json +2 -2
  359. package/blueprints/messaging-queue-cloudflare/contributions/user-stories/messaging-queue-cloudflare-us-29107.json +1 -1
  360. package/blueprints/messaging-queue-cloudflare/contributions/user-stories/messaging-queue-cloudflare-us-29108.json +1 -1
  361. package/blueprints/object-storage-s3/contributions/requirements/object-storage-s3-req-001.json +1 -1
  362. package/blueprints/object-storage-s3/contributions/requirements/object-storage-s3-req-002.json +1 -1
  363. package/blueprints/object-storage-s3/contributions/requirements/object-storage-s3-req-003.json +1 -1
  364. package/blueprints/object-storage-s3/contributions/requirements/object-storage-s3-req-004.json +1 -1
  365. package/blueprints/object-storage-s3/contributions/requirements/object-storage-s3-req-005.json +1 -1
  366. package/blueprints/object-storage-s3/contributions/requirements/object-storage-s3-req-006.json +1 -1
  367. package/blueprints/object-storage-s3/contributions/requirements/object-storage-s3-req-101.json +1 -1
  368. package/blueprints/object-storage-s3/contributions/tacs/tac-2901-object-storage-s3-facade.json +6 -6
  369. package/blueprints/object-storage-s3/contributions/tacs/tac-2902-object-storage-s3-multipart-uploader.json +2 -2
  370. package/blueprints/object-storage-s3/contributions/tacs/tac-2903-object-storage-s3-event-sink.json +2 -2
  371. package/blueprints/object-storage-s3/contributions/tacs/tac-2904-object-storage-s3-hetzner-endpoint-helper.json +2 -2
  372. package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28101.json +1 -1
  373. package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28102.json +1 -1
  374. package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28103.json +2 -2
  375. package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28104.json +1 -1
  376. package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28105.json +2 -2
  377. package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28106.json +1 -1
  378. package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28110.json +1 -1
  379. package/blueprints/observability-essentials/contributions/requirements/observability-essentials-req-001.json +1 -1
  380. package/blueprints/observability-essentials/contributions/requirements/observability-essentials-req-002.json +1 -1
  381. package/blueprints/observability-essentials/contributions/requirements/observability-essentials-req-003.json +1 -1
  382. package/blueprints/observability-essentials/contributions/requirements/observability-essentials-req-004.json +1 -1
  383. package/blueprints/observability-essentials/contributions/requirements/observability-essentials-req-005.json +1 -1
  384. package/blueprints/observability-essentials/contributions/requirements/observability-essentials-req-006.json +1 -1
  385. package/blueprints/observability-essentials/contributions/requirements/observability-essentials-req-007.json +1 -1
  386. package/blueprints/observability-essentials/contributions/requirements/observability-essentials-req-008.json +1 -1
  387. package/blueprints/observability-essentials/contributions/requirements/observability-essentials-req-009.json +1 -1
  388. package/blueprints/observability-essentials/contributions/requirements/observability-essentials-req-010.json +1 -1
  389. package/blueprints/observability-essentials/contributions/tacs/tac-801-observability-essentials-liveness-probe.json +4 -4
  390. package/blueprints/observability-essentials/contributions/tacs/tac-802-observability-essentials-readiness-probe.json +12 -12
  391. package/blueprints/observability-essentials/contributions/tacs/tac-803-observability-essentials-status-page.json +6 -6
  392. package/blueprints/observability-essentials/contributions/tacs/tac-804-observability-essentials-notification-outcome.json +8 -8
  393. package/blueprints/observability-essentials/contributions/user-stories/observability-essentials-us-7101.json +1 -1
  394. package/blueprints/observability-essentials/contributions/user-stories/observability-essentials-us-7103.json +3 -3
  395. package/blueprints/observability-essentials/contributions/user-stories/observability-essentials-us-7106.json +2 -2
  396. package/blueprints/observability-essentials/contributions/user-stories/observability-essentials-us-7107.json +1 -1
  397. package/blueprints/observability-logging/contributions/requirements/observability-logging-req-001.json +1 -1
  398. package/blueprints/observability-logging/contributions/requirements/observability-logging-req-002.json +1 -1
  399. package/blueprints/observability-logging/contributions/requirements/observability-logging-req-003.json +1 -1
  400. package/blueprints/observability-logging/contributions/requirements/observability-logging-req-004.json +1 -1
  401. package/blueprints/observability-logging/contributions/requirements/observability-logging-req-005.json +1 -1
  402. package/blueprints/observability-logging/contributions/requirements/observability-logging-req-006.json +8 -2
  403. package/blueprints/observability-logging/contributions/tacs/tac-1601-observability-logging-logger-factory.json +6 -6
  404. package/blueprints/observability-logging/contributions/tacs/tac-1602-observability-logging-redaction-boundary.json +2 -2
  405. package/blueprints/observability-logging/contributions/user-stories/observability-logging-us-15101.json +4 -4
  406. package/blueprints/observability-logging/contributions/user-stories/observability-logging-us-15103.json +2 -2
  407. package/blueprints/observability-logging/contributions/user-stories/observability-logging-us-15104.json +2 -2
  408. package/blueprints/observability-logging/contributions/user-stories/observability-logging-us-15105.json +1 -1
  409. package/blueprints/observability-logging/contributions/user-stories/observability-logging-us-15106.json +1 -1
  410. package/blueprints/observability-logging/contributions/user-stories/observability-logging-us-15107.json +2 -2
  411. package/blueprints/observability-logging/contributions/user-stories/observability-logging-us-15108.json +1 -1
  412. package/blueprints/observability-logging/contributions/user-stories/observability-logging-us-15109.json +3 -3
  413. package/blueprints/observability-probe-endpoints/contributions/requirements/observability-probe-endpoints-req-001.json +1 -1
  414. package/blueprints/observability-probe-endpoints/contributions/requirements/observability-probe-endpoints-req-002.json +1 -1
  415. package/blueprints/observability-probe-endpoints/contributions/requirements/observability-probe-endpoints-req-003.json +1 -1
  416. package/blueprints/observability-probe-endpoints/contributions/requirements/observability-probe-endpoints-req-004.json +1 -1
  417. package/blueprints/observability-probe-endpoints/contributions/requirements/observability-probe-endpoints-req-005.json +1 -1
  418. package/blueprints/observability-probe-endpoints/contributions/requirements/observability-probe-endpoints-req-006.json +1 -1
  419. package/blueprints/observability-probe-endpoints/contributions/requirements/observability-probe-endpoints-req-007.json +1 -1
  420. package/blueprints/observability-probe-endpoints/contributions/requirements/observability-probe-endpoints-req-008.json +1 -1
  421. package/blueprints/observability-probe-endpoints/contributions/tacs/tac-1501-observability-probe-endpoints-profile-resolver.json +6 -6
  422. package/blueprints/observability-probe-endpoints/contributions/tacs/tac-1502-observability-probe-endpoints-handler-set.json +4 -4
  423. package/blueprints/observability-probe-endpoints/contributions/tacs/tac-1503-observability-probe-endpoints-listener-topology.json +6 -6
  424. package/blueprints/observability-probe-endpoints/contributions/tacs/tac-1504-observability-probe-endpoints-non-http-adapters.json +4 -4
  425. package/blueprints/observability-probe-endpoints/contributions/user-stories/observability-probe-endpoints-us-14101.json +2 -2
  426. package/blueprints/observability-probe-endpoints/contributions/user-stories/observability-probe-endpoints-us-14102.json +1 -1
  427. package/blueprints/observability-probe-endpoints/contributions/user-stories/observability-probe-endpoints-us-14105.json +3 -3
  428. package/blueprints/persistence-data-d1/contributions/requirements/persistence-data-d1-req-001.json +1 -1
  429. package/blueprints/persistence-data-d1/contributions/requirements/persistence-data-d1-req-002.json +1 -1
  430. package/blueprints/persistence-data-d1/contributions/requirements/persistence-data-d1-req-003.json +1 -1
  431. package/blueprints/persistence-data-d1/contributions/requirements/persistence-data-d1-req-004.json +1 -1
  432. package/blueprints/persistence-data-d1/contributions/requirements/persistence-data-d1-req-005.json +1 -1
  433. package/blueprints/persistence-data-d1/contributions/requirements/persistence-data-d1-req-006.json +1 -1
  434. package/blueprints/persistence-data-d1/contributions/requirements/persistence-data-d1-req-007.json +1 -1
  435. package/blueprints/persistence-data-d1/contributions/tacs/tac-1401-persistence-data-d1-facade.json +6 -6
  436. package/blueprints/persistence-data-d1/contributions/tacs/tac-1402-persistence-data-d1-migration-catalog.json +4 -4
  437. package/blueprints/persistence-data-d1/contributions/tacs/tac-1403-persistence-data-d1-deploy-gate.json +4 -4
  438. package/blueprints/persistence-data-d1/contributions/tacs/tac-1404-persistence-data-d1-recovery-runner.json +4 -4
  439. package/blueprints/persistence-data-d1/contributions/user-stories/persistence-data-d1-us-13101.json +2 -2
  440. package/blueprints/persistence-data-d1/contributions/user-stories/persistence-data-d1-us-13102.json +1 -1
  441. package/blueprints/persistence-data-d1/contributions/user-stories/persistence-data-d1-us-13107.json +2 -2
  442. package/blueprints/persistence-data-postgres/contributions/requirements/persistence-data-postgres-req-001.json +1 -1
  443. package/blueprints/persistence-data-postgres/contributions/requirements/persistence-data-postgres-req-002.json +1 -1
  444. package/blueprints/persistence-data-postgres/contributions/requirements/persistence-data-postgres-req-003.json +1 -1
  445. package/blueprints/persistence-data-postgres/contributions/requirements/persistence-data-postgres-req-004.json +1 -1
  446. package/blueprints/persistence-data-postgres/contributions/requirements/persistence-data-postgres-req-005.json +1 -1
  447. package/blueprints/persistence-data-postgres/contributions/requirements/persistence-data-postgres-req-006.json +1 -1
  448. package/blueprints/persistence-data-postgres/contributions/requirements/persistence-data-postgres-req-007.json +1 -1
  449. package/blueprints/persistence-data-postgres/contributions/tacs/tac-2801-persistence-data-postgres-facade.json +6 -6
  450. package/blueprints/persistence-data-postgres/contributions/tacs/tac-2802-persistence-data-postgres-migration-runner.json +4 -4
  451. package/blueprints/persistence-data-postgres/contributions/tacs/tac-2803-persistence-data-postgres-transaction-helper.json +2 -2
  452. package/blueprints/persistence-data-postgres/contributions/tacs/tac-2804-persistence-data-postgres-recovery-runner.json +4 -4
  453. package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27101.json +1 -1
  454. package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27102.json +4 -4
  455. package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27103.json +1 -1
  456. package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27104.json +2 -2
  457. package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27105.json +1 -1
  458. package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27106.json +1 -1
  459. package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27107.json +1 -1
  460. package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27108.json +1 -1
  461. package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27109.json +1 -1
  462. package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27110.json +1 -1
  463. package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-001.json +1 -1
  464. package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-002.json +1 -1
  465. package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-003.json +1 -1
  466. package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-004.json +1 -1
  467. package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-005.json +1 -1
  468. package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-006.json +1 -1
  469. package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-007.json +1 -1
  470. package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-008.json +1 -1
  471. package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-009.json +1 -1
  472. package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-010.json +1 -1
  473. package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-011.json +1 -1
  474. package/blueprints/persistence-data-sqlite/contributions/tacs/tac-601-persistence-data-sqlite-store.json +6 -6
  475. package/blueprints/persistence-data-sqlite/contributions/tacs/tac-602-persistence-data-sqlite-migration-runner.json +2 -2
  476. package/blueprints/persistence-data-sqlite/contributions/tacs/tac-603-persistence-data-sqlite-migration-catalog.json +4 -4
  477. package/blueprints/persistence-data-sqlite/contributions/tacs/tac-604-persistence-data-sqlite-backup-runner.json +2 -2
  478. package/blueprints/persistence-data-sqlite/contributions/user-stories/persistence-data-sqlite-us-5101.json +2 -2
  479. package/blueprints/persistence-data-sqlite/contributions/user-stories/persistence-data-sqlite-us-5103.json +1 -1
  480. package/blueprints/persistence-data-sqlite/contributions/user-stories/persistence-data-sqlite-us-5104.json +1 -1
  481. package/blueprints/persistence-data-sqlite/contributions/user-stories/persistence-data-sqlite-us-5106.json +1 -1
  482. package/blueprints/persistence-data-sqlite/contributions/user-stories/persistence-data-sqlite-us-5110.json +2 -2
  483. package/blueprints/persistence-data-sqlite/contributions/user-stories/persistence-data-sqlite-us-5111.json +1 -1
  484. package/blueprints/platform-cloudflare-cron-triggers/contributions/requirements/platform-cloudflare-cron-triggers-req-001.json +1 -1
  485. package/blueprints/platform-cloudflare-cron-triggers/contributions/requirements/platform-cloudflare-cron-triggers-req-002.json +1 -1
  486. package/blueprints/platform-cloudflare-cron-triggers/contributions/requirements/platform-cloudflare-cron-triggers-req-003.json +1 -1
  487. package/blueprints/platform-cloudflare-cron-triggers/contributions/requirements/platform-cloudflare-cron-triggers-req-004.json +1 -1
  488. package/blueprints/platform-cloudflare-cron-triggers/contributions/tacs/tac-3301-platform-cloudflare-cron-triggers-scheduled-handler.json +6 -1
  489. package/blueprints/platform-cloudflare-cron-triggers/contributions/tacs/tac-3302-platform-cloudflare-cron-triggers-expression-router.json +9 -2
  490. package/blueprints/platform-cloudflare-cron-triggers/contributions/tacs/tac-3303-platform-cloudflare-cron-triggers-event-sink.json +6 -1
  491. package/blueprints/platform-cloudflare-cron-triggers/contributions/user-stories/platform-cloudflare-cron-triggers-us-32101.json +6 -6
  492. package/blueprints/platform-cloudflare-cron-triggers/contributions/user-stories/platform-cloudflare-cron-triggers-us-32102.json +5 -5
  493. package/blueprints/platform-cloudflare-cron-triggers/contributions/user-stories/platform-cloudflare-cron-triggers-us-32103.json +3 -3
  494. package/blueprints/platform-cloudflare-cron-triggers/contributions/user-stories/platform-cloudflare-cron-triggers-us-32104.json +4 -4
  495. package/blueprints/platform-cloudflare-cron-triggers/contributions/user-stories/platform-cloudflare-cron-triggers-us-32105.json +4 -4
  496. package/blueprints/platform-cloudflare-cron-triggers/contributions/user-stories/platform-cloudflare-cron-triggers-us-32106.json +4 -4
  497. package/blueprints/platform-cloudflare-cron-triggers/contributions/user-stories/platform-cloudflare-cron-triggers-us-32107.json +3 -3
  498. package/blueprints/platform-cloudflare-durable-objects/contributions/requirements/platform-cloudflare-durable-objects-req-001.json +1 -1
  499. package/blueprints/platform-cloudflare-durable-objects/contributions/requirements/platform-cloudflare-durable-objects-req-002.json +1 -1
  500. package/blueprints/platform-cloudflare-durable-objects/contributions/requirements/platform-cloudflare-durable-objects-req-003.json +1 -1
  501. package/blueprints/platform-cloudflare-durable-objects/contributions/requirements/platform-cloudflare-durable-objects-req-004.json +1 -1
  502. package/blueprints/platform-cloudflare-durable-objects/contributions/requirements/platform-cloudflare-durable-objects-req-005.json +1 -1
  503. package/blueprints/platform-cloudflare-durable-objects/contributions/requirements/platform-cloudflare-durable-objects-req-006.json +1 -1
  504. package/blueprints/platform-cloudflare-durable-objects/contributions/requirements/platform-cloudflare-durable-objects-req-007.json +1 -1
  505. package/blueprints/platform-cloudflare-durable-objects/contributions/requirements/platform-cloudflare-durable-objects-req-008.json +1 -1
  506. package/blueprints/platform-cloudflare-durable-objects/contributions/tacs/tac-3401-platform-cloudflare-durable-objects-namespace-facade.json +6 -4
  507. package/blueprints/platform-cloudflare-durable-objects/contributions/tacs/tac-3402-platform-cloudflare-durable-objects-single-cell-shape.json +6 -4
  508. package/blueprints/platform-cloudflare-durable-objects/contributions/tacs/tac-3403-platform-cloudflare-durable-objects-alarm-handler.json +6 -4
  509. package/blueprints/platform-cloudflare-durable-objects/contributions/tacs/tac-3404-platform-cloudflare-durable-objects-websocket-hub.json +6 -4
  510. package/blueprints/platform-cloudflare-durable-objects/contributions/tacs/tac-3405-platform-cloudflare-durable-objects-event-sink.json +3 -2
  511. package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33101.json +5 -5
  512. package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33102.json +4 -4
  513. package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33103.json +5 -5
  514. package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33104.json +5 -5
  515. package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33105.json +5 -5
  516. package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33106.json +4 -4
  517. package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33107.json +3 -3
  518. package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33108.json +5 -5
  519. package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33109.json +3 -3
  520. package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33110.json +4 -4
  521. package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33111.json +3 -3
  522. package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33112.json +3 -3
  523. package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33113.json +5 -5
  524. package/blueprints/platform-cloudflare-kv/contributions/requirements/platform-cloudflare-kv-req-001.json +1 -1
  525. package/blueprints/platform-cloudflare-kv/contributions/requirements/platform-cloudflare-kv-req-002.json +1 -1
  526. package/blueprints/platform-cloudflare-kv/contributions/requirements/platform-cloudflare-kv-req-003.json +1 -1
  527. package/blueprints/platform-cloudflare-kv/contributions/requirements/platform-cloudflare-kv-req-004.json +1 -1
  528. package/blueprints/platform-cloudflare-kv/contributions/requirements/platform-cloudflare-kv-req-005.json +1 -1
  529. package/blueprints/platform-cloudflare-kv/contributions/requirements/platform-cloudflare-kv-req-006.json +1 -1
  530. package/blueprints/platform-cloudflare-kv/contributions/requirements/platform-cloudflare-kv-req-007.json +1 -1
  531. package/blueprints/platform-cloudflare-kv/contributions/tacs/tac-3201-platform-cloudflare-kv-facade.json +3 -2
  532. package/blueprints/platform-cloudflare-kv/contributions/tacs/tac-3202-platform-cloudflare-kv-cache-aside.json +3 -2
  533. package/blueprints/platform-cloudflare-kv/contributions/tacs/tac-3203-platform-cloudflare-kv-event-sink.json +3 -2
  534. package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31101.json +4 -4
  535. package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31102.json +3 -3
  536. package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31103.json +4 -4
  537. package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31104.json +4 -4
  538. package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31105.json +4 -4
  539. package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31106.json +3 -3
  540. package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31107.json +3 -3
  541. package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31108.json +3 -3
  542. package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31109.json +4 -4
  543. package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31110.json +5 -5
  544. package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31111.json +5 -5
  545. package/blueprints/platform-docker-compose-host/contributions/requirements/platform-docker-compose-host-req-001.json +1 -1
  546. package/blueprints/platform-docker-compose-host/contributions/requirements/platform-docker-compose-host-req-002.json +1 -1
  547. package/blueprints/platform-docker-compose-host/contributions/requirements/platform-docker-compose-host-req-003.json +1 -1
  548. package/blueprints/platform-docker-compose-host/contributions/requirements/platform-docker-compose-host-req-004.json +1 -1
  549. package/blueprints/platform-docker-compose-host/contributions/requirements/platform-docker-compose-host-req-005.json +1 -1
  550. package/blueprints/platform-docker-compose-host/contributions/requirements/platform-docker-compose-host-req-006.json +1 -1
  551. package/blueprints/platform-docker-compose-host/contributions/requirements/platform-docker-compose-host-req-007.json +1 -1
  552. package/blueprints/platform-docker-compose-host/contributions/tacs/tac-3901-platform-docker-compose-host-compose-layout.json +3 -2
  553. package/blueprints/platform-docker-compose-host/contributions/tacs/tac-3902-platform-docker-compose-host-secrets-mount.json +3 -2
  554. package/blueprints/platform-docker-compose-host/contributions/tacs/tac-3903-platform-docker-compose-host-healthcheck-lint.json +3 -2
  555. package/blueprints/platform-docker-compose-host/contributions/tacs/tac-3904-platform-docker-compose-host-reverse-proxy-artefact.json +3 -2
  556. package/blueprints/platform-docker-compose-host/contributions/user-stories/platform-docker-compose-host-us-38101.json +5 -5
  557. package/blueprints/platform-docker-compose-host/contributions/user-stories/platform-docker-compose-host-us-38102.json +4 -4
  558. package/blueprints/platform-docker-compose-host/contributions/user-stories/platform-docker-compose-host-us-38103.json +4 -4
  559. package/blueprints/platform-docker-compose-host/contributions/user-stories/platform-docker-compose-host-us-38104.json +4 -4
  560. package/blueprints/platform-docker-compose-host/contributions/user-stories/platform-docker-compose-host-us-38105.json +3 -3
  561. package/blueprints/platform-docker-compose-host/contributions/user-stories/platform-docker-compose-host-us-38106.json +3 -3
  562. package/blueprints/platform-docker-compose-host/contributions/user-stories/platform-docker-compose-host-us-38107.json +3 -3
  563. package/blueprints/platform-docker-compose-host/contributions/user-stories/platform-docker-compose-host-us-38108.json +3 -3
  564. package/blueprints/platform-docker-compose-host/contributions/user-stories/platform-docker-compose-host-us-38109.json +3 -3
  565. package/blueprints/platform-docker-compose-host/contributions/user-stories/platform-docker-compose-host-us-38110.json +3 -3
  566. package/blueprints/security-auth-clerk/contributions/requirements/security-auth-clerk-req-001.json +1 -1
  567. package/blueprints/security-auth-clerk/contributions/requirements/security-auth-clerk-req-002.json +1 -1
  568. package/blueprints/security-auth-clerk/contributions/requirements/security-auth-clerk-req-003.json +1 -1
  569. package/blueprints/security-auth-clerk/contributions/requirements/security-auth-clerk-req-004.json +1 -1
  570. package/blueprints/security-auth-clerk/contributions/requirements/security-auth-clerk-req-006.json +1 -1
  571. package/blueprints/security-auth-clerk/contributions/requirements/security-auth-clerk-req-010.json +1 -1
  572. package/blueprints/security-auth-clerk/contributions/requirements/security-auth-clerk-req-011.json +1 -1
  573. package/blueprints/security-auth-clerk/contributions/tacs/tac-1001-security-auth-clerk-middleware.json +6 -6
  574. package/blueprints/security-auth-clerk/contributions/tacs/tac-1002-security-auth-clerk-authorisation-adapter.json +8 -3
  575. package/blueprints/security-auth-clerk/contributions/tacs/tac-1003-security-auth-clerk-session-verifier.json +8 -8
  576. package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9102.json +1 -1
  577. package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9108.json +1 -1
  578. package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9112.json +6 -6
  579. package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9113.json +6 -6
  580. package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-002.json +1 -1
  581. package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-003.json +1 -1
  582. package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-004.json +1 -1
  583. package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-005.json +1 -1
  584. package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-006.json +1 -1
  585. package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-011.json +1 -1
  586. package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-013.json +1 -1
  587. package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-014.json +1 -1
  588. package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-015.json +1 -1
  589. package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-016.json +1 -1
  590. package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-017.json +1 -1
  591. package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-018.json +1 -1
  592. package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-019.json +1 -1
  593. package/blueprints/security-auth-keycloak/contributions/tacs/tac-1201-security-auth-keycloak-discovery-client.json +10 -10
  594. package/blueprints/security-auth-keycloak/contributions/tacs/tac-1202-security-auth-keycloak-jwt-verifier.json +8 -8
  595. package/blueprints/security-auth-keycloak/contributions/tacs/tac-1203-security-auth-keycloak-introspection-client.json +8 -8
  596. package/blueprints/security-auth-keycloak/contributions/tacs/tac-1204-security-auth-keycloak-provider-router.json +6 -6
  597. package/blueprints/security-auth-keycloak/contributions/tacs/tac-1205-security-auth-keycloak-role-adapter.json +4 -4
  598. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11102.json +1 -1
  599. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11103.json +2 -2
  600. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11104.json +1 -1
  601. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11106.json +3 -3
  602. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11111.json +2 -2
  603. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11114.json +1 -1
  604. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11115.json +5 -5
  605. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11116.json +7 -7
  606. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11117.json +7 -7
  607. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11118.json +7 -7
  608. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11119.json +7 -7
  609. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11120.json +6 -6
  610. package/blueprints/security-auth-magic-link/contributions/requirements/security-auth-magic-link-req-002.json +1 -1
  611. package/blueprints/security-auth-magic-link/contributions/requirements/security-auth-magic-link-req-003.json +1 -1
  612. package/blueprints/security-auth-magic-link/contributions/requirements/security-auth-magic-link-req-004.json +1 -1
  613. package/blueprints/security-auth-magic-link/contributions/requirements/security-auth-magic-link-req-005.json +1 -1
  614. package/blueprints/security-auth-magic-link/contributions/requirements/security-auth-magic-link-req-008.json +1 -1
  615. package/blueprints/security-auth-magic-link/contributions/requirements/security-auth-magic-link-req-009.json +1 -1
  616. package/blueprints/security-auth-magic-link/contributions/requirements/security-auth-magic-link-req-010.json +1 -1
  617. package/blueprints/security-auth-magic-link/contributions/requirements/security-auth-magic-link-req-011.json +1 -1
  618. package/blueprints/security-auth-magic-link/contributions/tacs/tac-501-security-auth-magic-link-manager.json +6 -6
  619. package/blueprints/security-auth-magic-link/contributions/tacs/tac-502-security-auth-magic-link-session-manager.json +6 -6
  620. package/blueprints/security-auth-magic-link/contributions/tacs/tac-503-security-auth-magic-link-login-routes.json +10 -10
  621. package/blueprints/security-auth-magic-link/contributions/tacs/tac-504-security-auth-magic-link-email-delivery-adapter.json +2 -2
  622. package/blueprints/security-auth-magic-link/contributions/tacs/tac-505-security-auth-magic-link-principal-registry.json +2 -2
  623. package/blueprints/security-auth-magic-link/contributions/user-stories/security-auth-magic-link-us-3111.json +2 -2
  624. package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-002.json +1 -1
  625. package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-003.json +1 -1
  626. package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-005.json +1 -1
  627. package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-006.json +1 -1
  628. package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-008.json +1 -1
  629. package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-009.json +1 -1
  630. package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-011.json +1 -1
  631. package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-012.json +1 -1
  632. package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-013.json +1 -1
  633. package/blueprints/security-auth-oauth2/contributions/tacs/tac-1101-security-auth-oauth2-flow-controller.json +24 -14
  634. package/blueprints/security-auth-oauth2/contributions/tacs/tac-1102-security-auth-oauth2-provider-adapter.json +4 -4
  635. package/blueprints/security-auth-oauth2/contributions/tacs/tac-1103-security-auth-oauth2-session-bridge.json +10 -10
  636. package/blueprints/security-auth-oauth2/contributions/tacs/tac-1104-security-auth-oauth2-provider-selector.json +8 -3
  637. package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10111.json +1 -1
  638. package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10112.json +1 -1
  639. package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10114.json +5 -5
  640. package/blueprints/security-secrets-management/contributions/requirements/security-secrets-management-req-001.json +1 -1
  641. package/blueprints/security-secrets-management/contributions/requirements/security-secrets-management-req-002.json +1 -1
  642. package/blueprints/security-secrets-management/contributions/requirements/security-secrets-management-req-003.json +1 -1
  643. package/blueprints/security-secrets-management/contributions/requirements/security-secrets-management-req-004.json +1 -1
  644. package/blueprints/security-secrets-management/contributions/requirements/security-secrets-management-req-005.json +1 -1
  645. package/blueprints/security-secrets-management/contributions/requirements/security-secrets-management-req-006.json +1 -1
  646. package/blueprints/security-secrets-management/contributions/requirements/security-secrets-management-req-007.json +1 -1
  647. package/blueprints/security-secrets-management/contributions/requirements/security-secrets-management-req-008.json +1 -1
  648. package/blueprints/security-secrets-management/contributions/requirements/security-secrets-management-req-009.json +1 -1
  649. package/blueprints/security-secrets-management/contributions/tacs/tac-901-security-secrets-management-manager-client.json +8 -8
  650. package/blueprints/security-secrets-management/contributions/tacs/tac-902-security-secrets-management-manifest.json +4 -4
  651. package/blueprints/security-secrets-management/contributions/tacs/tac-903-security-secrets-management-env-reflector.json +4 -4
  652. package/blueprints/security-secrets-management/contributions/tacs/tac-904-security-secrets-management-rotation-gate.json +8 -8
  653. package/blueprints/security-secrets-management/contributions/tacs/tac-905-security-secrets-management-agent-cli.json +4 -4
  654. package/fixtures/canary-manifest.json +6 -6
  655. package/guidance/define-litmus.md +102 -0
  656. package/guidance/manifest.json +2 -1
  657. package/package.json +1 -1
  658. package/rcf/adrs/adr-4131-gates-bite-ack-recorded-override.json +30 -0
  659. package/rcf/code-nodes/cn-753.json +19 -0
  660. package/rcf/code-nodes/cn-754.json +17 -0
  661. package/rcf/code-nodes/cn-755.json +14 -0
  662. package/rcf/code-nodes/cn-756.json +15 -0
  663. package/rcf/code-nodes/cn-757.json +21 -0
  664. package/rcf/code-nodes/cn-758.json +16 -0
  665. package/rcf/code-nodes/cn-759.json +21 -0
  666. package/rcf/code-nodes/cn-760.json +19 -0
  667. package/rcf/code-nodes/cn-761.json +16 -0
  668. package/rcf/code-nodes/cn-762.json +18 -0
  669. package/rcf/code-nodes/cn-763.json +18 -0
  670. package/rcf/code-nodes/cn-764.json +15 -0
  671. package/rcf/code-nodes/cn-765.json +23 -0
  672. package/rcf/code-nodes/cn-766.json +17 -0
  673. package/rcf/code-nodes/cn-767.json +17 -0
  674. package/rcf/code-nodes/cn-768.json +19 -0
  675. package/rcf/code-nodes/cn-769.json +17 -0
  676. package/rcf/code-nodes/cn-770.json +18 -0
  677. package/rcf/fbs/fbs-202.json +69 -9
  678. package/rcf/requirements/req-174.json +2 -2
  679. package/rcf/requirements/req-175.json +2 -2
  680. package/rcf/requirements/req-177.json +31 -0
  681. package/rcf/requirements/req-178.json +31 -0
  682. package/rcf/requirements/req-179.json +31 -0
  683. package/rcf/tacs/tac-001.json +7 -7
  684. package/rcf/tacs/tac-002.json +23 -23
  685. package/rcf/tacs/tac-003.json +5 -5
  686. package/rcf/tacs/tac-004.json +9 -9
  687. package/rcf/tacs/tac-005.json +7 -7
  688. package/rcf/tacs/tac-006.json +21 -21
  689. package/rcf/tacs/tac-007.json +7 -7
  690. package/rcf/tacs/tac-008.json +7 -7
  691. package/rcf/tacs/tac-4101-feedback-cli.json +5 -5
  692. package/rcf/tacs/tac-4102-feedback-store.json +9 -9
  693. package/rcf/tacs/tac-4103-feedback-redact.json +5 -5
  694. package/rcf/tacs/tac-4104-feedback-fingerprint.json +3 -3
  695. package/rcf/tacs/tac-4105-feedback-render.json +7 -7
  696. package/rcf/tacs/tac-4106-feedback-destination.json +5 -5
  697. package/rcf/tacs/tac-4107-feedback-gh.json +7 -7
  698. package/rcf/tacs/tac-4108-feedback-hook.json +7 -7
  699. package/rcf/tacs/tac-4121-define-ledgers.json +3 -2
  700. package/rcf/tacs/tac-4122-define-gates.json +31 -3
  701. package/rcf/tacs/tac-4123-define-readiness.json +29 -3
  702. package/rcf/tacs/tac-4125-build-bundle-refuse-override-skip.json +43 -0
  703. package/rcf/tacs/tac-4126-define-validate-findings.json +32 -0
  704. package/rcf/tacs/tac-4128-define-guidance.json +8 -2
  705. package/rcf/tacs/tac-4129-define-questions.json +3 -3
  706. package/rcf/tacs/tac-4134-wespa-host-fixture.json +9 -9
  707. package/rcf/test-suites/ts-222.json +4 -4
  708. package/rcf/test-suites/ts-228.json +4 -4
  709. package/rcf/test-suites/ts-230.json +76 -0
  710. package/rcf/test-suites/ts-231.json +104 -0
  711. package/rcf/test-suites/ts-232.json +109 -0
  712. package/rcf/test-suites/ts-233.json +61 -0
  713. package/rcf/test-suites/ts-234.json +53 -0
  714. package/rcf/test-suites/ts-235.json +53 -0
  715. package/rcf/user-stories/us-17404.json +51 -0
  716. package/rcf/user-stories/us-17405.json +61 -0
  717. package/rcf/user-stories/us-17406.json +51 -0
  718. package/rcf/user-stories/us-17503.json +2 -2
  719. package/rcf/user-stories/us-17504.json +46 -0
  720. package/rcf/user-stories/us-17702.json +51 -0
  721. package/rcf/user-stories/us-17802.json +40 -0
  722. package/rcf/user-stories/us-17902.json +46 -0
  723. package/releases/releases.yaml +11 -1
  724. package/src/blueprint/consistency-lint.js +72 -3
  725. package/src/cli/build.js +206 -3
  726. package/src/cli/freeze.js +68 -18
  727. package/src/cli/readiness.js +136 -35
  728. package/src/cli/validate.js +8 -0
  729. package/src/define/concern-catalogue.js +130 -0
  730. package/src/define/freeze-record.js +74 -0
  731. package/src/define/probe-runner.js +55 -0
  732. package/src/define/validate-findings.js +256 -0
  733. package/src/query/gates.js +947 -12
  734. package/src/query/index.js +6 -1
  735. package/src/query/readiness.js +179 -2
  736. package/src/query/refuse-on-admissibility.js +137 -4
  737. package/src/ruleset/ruleset.json +35 -0
@@ -16,7 +16,7 @@
16
16
  // every other query verb has.
17
17
 
18
18
  import { parseArgs } from 'node:util';
19
- import { readFile } from 'node:fs/promises';
19
+ import { readFile, stat } from 'node:fs/promises';
20
20
  import { join } from 'node:path';
21
21
 
22
22
  import { resolveTestPointers, walkTree } from '#core/store';
@@ -29,13 +29,17 @@ import {
29
29
  STAGE_GATES,
30
30
  STAGE_ORDER,
31
31
  STAGE_SHORT_NAMES,
32
+ ackable,
33
+ extractInterfacePathTokens,
32
34
  stagePolicy,
33
35
  } from '../query/gates.js';
34
36
  import {
35
37
  computeReadiness,
38
+ countLitmusReadersAtHash,
36
39
  formatTreeLine,
37
40
  formatVerdictLines,
38
41
  parseLevelFlag,
42
+ parseLitmusFlag,
39
43
  parsePersonaFlag,
40
44
  } from '../query/readiness.js';
41
45
  import { runWithAdmissibilityGate } from '../query/index.js';
@@ -45,6 +49,7 @@ const OPTION_SPEC = {
45
49
  check: { type: 'string' },
46
50
  level: { type: 'string' },
47
51
  persona: { type: 'string' },
52
+ litmus: { type: 'string' },
48
53
  help: { type: 'boolean' },
49
54
  };
50
55
 
@@ -73,11 +78,16 @@ Options:
73
78
  brief | skeleton | shapes | stories |
74
79
  crosscut | consistency | decisions |
75
80
  freeze. Exits 4 on a blocking-stage
76
- failure (D1 / D2 / D4 / D7 / D8); exits 0
77
- with a visible '[warn]' line on an
78
- unacknowledged warn-with-ack failure
79
- (D3 / D5 / D6). Use --check all to print
80
- every stage under this exit-code policy.
81
+ failure (D1 / D2 / D4 / D7 / D8) and on
82
+ an unacknowledged D3 or D5 bite failure
83
+ (ADR-4131, 0.30.0 PR 5 and PR 6); exits 0
84
+ when D3 or D5 is acknowledged at the
85
+ current tree hash; exits 0 with a visible
86
+ '[warn]' line on an unacknowledged warn-
87
+ with-ack failure (D6 until PR 7 bites it).
88
+ Use
89
+ --check all to print every stage under
90
+ this exit-code policy.
81
91
  --level <intent|build> Pick which verdict the exit code follows.
82
92
  --level intent exits 4 when
83
93
  levels.intentComplete.ok is false
@@ -97,6 +107,17 @@ Options:
97
107
  per-stage detail to matching-persona
98
108
  checks. Never affects the exit code or
99
109
  the JSON content.
110
+ --litmus <n> Require n distinct litmus readings at the
111
+ current tree hash before passing (0.30.0
112
+ PR 7, ADR-4131 extended). A litmus reading
113
+ is a probe-ledger entry whose finding
114
+ begins litmus:<reader>: and whose text
115
+ includes the current tree hash. Fewer
116
+ than n distinct readers exits 4 naming
117
+ the shortfall. No process is spawned and
118
+ no network call is made; the harness
119
+ lands the readings through
120
+ rcf define ledger probes add.
100
121
  --help Print this help.
101
122
  `;
102
123
 
@@ -108,6 +129,42 @@ const STATE_LABEL = {
108
129
  notApplicable: 'notApplicable',
109
130
  };
110
131
 
132
+ /**
133
+ * ADR-4131 (0.30.0 PR 5): walk the tree's TAC interfaces, extract the
134
+ * `path:` tokens the engineer named, resolve each one against
135
+ * `projectRoot` on disk, and return the set of tokens that resolve.
136
+ * `shapes:pathsResolve` reads the set from the stage context and
137
+ * decides the D3 bite without I/O. The compute is pure; this helper is
138
+ * the one place I/O happens for the check.
139
+ *
140
+ * @param {string} projectRoot
141
+ * @param {import('#core/store/walker.js').TreeModel} tree
142
+ * @returns {Promise<Set<string>>}
143
+ */
144
+ async function resolveInterfacePaths(projectRoot, tree) {
145
+ const resolved = new Set();
146
+ /** @type {Set<string>} */
147
+ const candidates = new Set();
148
+ for (const tac of tree.tacs ?? []) {
149
+ for (const iface of tac.interfaces ?? []) {
150
+ const desc = typeof iface?.description === 'string' ? iface.description : '';
151
+ for (const token of extractInterfacePathTokens(desc)) {
152
+ candidates.add(token);
153
+ }
154
+ }
155
+ }
156
+ await Promise.all([...candidates].map(async (token) => {
157
+ try {
158
+ await stat(join(projectRoot, token));
159
+ resolved.add(token);
160
+ } catch {
161
+ // Missing path stays out of the set; the gate decides whether
162
+ // `authoredAt: D3` lets it through.
163
+ }
164
+ }));
165
+ return resolved;
166
+ }
167
+
111
168
  /**
112
169
  * Read `rcf/.identity/profile.md` when it exists; return null on
113
170
  * ENOENT. Any other read error surfaces as null so the profile
@@ -209,6 +266,15 @@ export async function main(argv, deps = {}) {
209
266
  return 2;
210
267
  }
211
268
 
269
+ /** @type {number | null} */
270
+ let litmus;
271
+ try {
272
+ litmus = parseLitmusFlag(flags.litmus);
273
+ } catch (err) {
274
+ stderr.write(`[error] usage readiness: ${/** @type {Error} */ (err).message}\n`);
275
+ return 2;
276
+ }
277
+
212
278
  const projectRoot = await findProjectRoot(cwd);
213
279
  if (!projectRoot) {
214
280
  stderr.write('[error] usage no project root found (no rcf/manifest.json in this directory or any ancestor). Run `npx rcf init` to create and wire a project.\n');
@@ -219,11 +285,12 @@ export async function main(argv, deps = {}) {
219
285
  const staleErrors = await checkCodeNodeResolution({ projectRoot, tree });
220
286
  const validateErrors = [...errors, ...staleErrors];
221
287
 
222
- const [freeze, ledgers, testPointers, profileText] = await Promise.all([
288
+ const [freeze, ledgers, testPointers, profileText, resolvedPaths] = await Promise.all([
223
289
  loadFreezeRecord({ projectRoot }),
224
290
  loadAllLedgers({ projectRoot }),
225
291
  resolveTestPointers({ projectRoot, tree }),
226
292
  readProfileText(projectRoot),
293
+ resolveInterfacePaths(projectRoot, tree),
227
294
  ]);
228
295
 
229
296
  const startedAt = Date.now();
@@ -232,33 +299,34 @@ export async function main(argv, deps = {}) {
232
299
  : null;
233
300
 
234
301
  // Readiness is a diagnostic: even a chain that refuses admissibility
235
- // wants to know which stage gate blocks it. The wrap runs first so
236
- // the ruleset toolScope guard is honoured (NV-BL-SR-03 addendum);
237
- // on refuse the refusal envelope is threaded through as informational
238
- // context and the compute still runs (ADR-4123).
302
+ // wants to know which stage gate blocks it (AC-17902-4). Compute
303
+ // readiness once up front, then run the admissibility wrap passing
304
+ // the computed stages and validate-errors so it can cite
305
+ // NV-DL-ADM-02 (D4 floor), NV-DL-ADM-03 (D3 bite) and NV-DL-ADM-04
306
+ // (validate findings) alongside the NV-BL rules (PR 9).
307
+ /** @type {import('../query/readiness.js').ReadinessResult} */
308
+ const result = computeReadiness(tree, {
309
+ freeze,
310
+ ledgers,
311
+ profile: undefined,
312
+ profileText,
313
+ testPointers,
314
+ validateErrors,
315
+ resolvedPaths,
316
+ });
239
317
  const gated = await runWithAdmissibilityGate({
240
318
  tree,
241
319
  chainRulesetVersion,
242
- produce: () => computeReadiness(tree, {
243
- freeze,
244
- ledgers,
245
- profile: undefined,
246
- profileText,
247
- testPointers,
248
- validateErrors,
249
- }),
320
+ defineStages: result.stages,
321
+ defineValidateErrors: validateErrors,
322
+ produce: () => result,
250
323
  });
251
-
252
- /** @type {import('../query/readiness.js').ReadinessResult} */
253
- const result = gated.status === 'refused-admissibility'
254
- ? computeReadiness(tree, {
255
- freeze, ledgers, profile: undefined, profileText, testPointers, validateErrors,
256
- })
257
- : gated.payload;
258
324
  const wallMs = Date.now() - startedAt;
259
325
 
260
326
  if (gated.status === 'refused-admissibility') {
261
327
  stderr.write(`[warn] readiness: chain admissibility refused (informational; the readiness compute still ran). ${gated.refusal}\n`);
328
+ } else if (Array.isArray(gated.defineRules) && gated.defineRules.length > 0) {
329
+ stderr.write(`[warn] readiness: DEFINE-stage admissibility rules bite (informational; the readiness compute still ran): [${gated.defineRules.join(', ')}]. Resolve the failing stages or record an --ack reason on freeze.gates to satisfy recordedInChain.\n`);
262
330
  }
263
331
 
264
332
  if (flags.json) {
@@ -267,13 +335,13 @@ export async function main(argv, deps = {}) {
267
335
  // `_meta.level` is null when the flag was absent (spec section
268
336
  // 3.3): consumers can tell "no --level given" from "--level
269
337
  // build" explicitly, which matters for the ticket artefact.
270
- const envelope = { ...result, _meta: { wallMs, level } };
338
+ const envelope = { ...result, _meta: { wallMs, level, litmus } };
271
339
  stdout.write(`${JSON.stringify(envelope, null, 2)}\n`);
272
- return decideExitCode(result, checkStage, level, stderr);
340
+ return decideExitCode(result, checkStage, level, litmus, ledgers, stderr);
273
341
  }
274
342
 
275
343
  renderText(stdout, stderr, result, wallMs, checkStage, level, persona, profileText);
276
- return decideExitCode(result, checkStage, level, stderr);
344
+ return decideExitCode(result, checkStage, level, litmus, ledgers, stderr);
277
345
  }
278
346
 
279
347
  /**
@@ -426,13 +494,15 @@ function formatChipLine(result) {
426
494
 
427
495
  /**
428
496
  * Decide the exit code for an invocation (spec section 3.2 matrix):
429
- * - No `--check` and no `--level`: always 0.
497
+ * - No `--check`, no `--level`, no `--litmus`: always 0.
430
498
  * - `--check` alone: today's stage policy (4 on blocking failure,
431
499
  * 0 with `[warn]` on warn-with-ack failure).
432
500
  * - `--level intent`: 4 iff `levels.intentComplete.ok === false`.
433
501
  * - `--level build`: 4 iff `levels.readyToBuild.ok === false`
434
502
  * (stricter than `--check all`; the warn line still prints).
435
- * - Both: 4 if either policy says 4.
503
+ * - `--litmus <n>`: 4 iff fewer than n distinct litmus readings at
504
+ * the current tree hash (spec section 11.6, ADR-4131 extended).
505
+ * - Several: 4 if any policy says 4.
436
506
  *
437
507
  * Warn lines are emitted whenever a warn-with-ack stage is failing,
438
508
  * independent of exit code, so an operator always sees why.
@@ -440,13 +510,27 @@ function formatChipLine(result) {
440
510
  * @param {import('../query/readiness.js').ReadinessResult} result
441
511
  * @param {string | null} checkStage
442
512
  * @param {'intent' | 'build' | null} level
513
+ * @param {number | null} litmus
514
+ * @param {object} ledgers
443
515
  * @param {NodeJS.WritableStream} stderr
444
516
  * @returns {number}
445
517
  */
446
- function decideExitCode(result, checkStage, level, stderr) {
518
+ function decideExitCode(result, checkStage, level, litmus, ledgers, stderr) {
447
519
  let exitCode = 0;
448
520
 
449
- // --check policy (unchanged from PR A).
521
+ // --check policy. ADR-4131 (0.30.0 PR 5): D3 bites, so a failing D3
522
+ // without an acknowledgement at the current tree hash exits 4.
523
+ // 0.30.0 PR 6 lifts the bite to D5 (crosscut:catalogue, the four new
524
+ // D4/D2 engineer checks ride D5's ack because the --ack channel is
525
+ // per gate). 0.30.0 PR 7 lifts the bite to D6 (the four consistency
526
+ // scans; the --ack channel D3/D5/D6 already share stays unchanged).
527
+ // The 'acknowledged' state is already folded by foldState() in
528
+ // gates.js when the freeze record acknowledges the gate at the
529
+ // current hash, so a failing-but-unacked bite stays failing here and
530
+ // exit 4 is the right answer. `ackable(stage)` names the three gates
531
+ // that accept an --ack override; a failing ackable stage that is not
532
+ // acknowledged bites.
533
+ const BITING_STAGES = new Set(['D3', 'D5', 'D6']);
450
534
  if (checkStage) {
451
535
  const stages = checkStage === 'all'
452
536
  ? result.stages
@@ -454,9 +538,10 @@ function decideExitCode(result, checkStage, level, stderr) {
454
538
  for (const s of stages) {
455
539
  if (s.state !== 'failing') continue;
456
540
  const policy = stagePolicy(s.stage);
457
- if (policy === 'blocking') {
541
+ const bites = BITING_STAGES.has(s.stage);
542
+ if (policy === 'blocking' || bites) {
458
543
  exitCode = 4;
459
- } else {
544
+ } else if (ackable(s.stage)) {
460
545
  stderr.write(`[warn] readiness: ${s.stage} (${s.gate}) is failing without an acknowledgement at the current tree hash. Run \`rcf define freeze --ack ${s.gate} --reason "<text>"\` to acknowledge, or edit the tree to clear the failure.\n`);
461
546
  }
462
547
  }
@@ -490,6 +575,22 @@ function decideExitCode(result, checkStage, level, stderr) {
490
575
  }
491
576
  }
492
577
 
578
+ // --litmus policy (0.30.0 PR 7, ADR-4131 extended; R9 clarified
579
+ // 2026-10-03, w-2026-10-03-dave-011). Count distinct readers who
580
+ // have landed a probe-ledger entry at the current LITMUS HASH whose
581
+ // finding begins litmus:<reader>:; exit 4 when fewer than n have
582
+ // attested. The litmus hash is the tree hash computed with the
583
+ // probes ledger excluded (see computeLitmusHash in src/query/readiness.js)
584
+ // so a reader's own write does not shift the hash it is attesting to.
585
+ if (typeof litmus === 'number' && litmus > 0) {
586
+ const hash = result.tree.litmusHash;
587
+ const readers = countLitmusReadersAtHash(ledgers, hash);
588
+ if (readers.size < litmus) {
589
+ stderr.write(`[warn] readiness: --litmus ${litmus} requires ${litmus} distinct litmus reading(s) at litmus hash ${hash}; found ${readers.size}. Spawn ${litmus - readers.size} more fresh-context reader(s) and land their readings through \`rcf define ledger probes add --req <reqId> --finding "litmus:<reader>: ..." --severity low\` with the litmus hash in the finding text (read it from \`rcf define readiness --json\` under \`tree.litmusHash\`).\n`);
590
+ exitCode = 4;
591
+ }
592
+ }
593
+
493
594
  return exitCode;
494
595
  }
495
596
 
@@ -8,6 +8,8 @@ import { formatErrors } from '#core/errors';
8
8
  import { checkCodeNodeResolution, walkTree } from '#core/store';
9
9
  import { validateCompanionPinsResolvable } from '../blueprint/companions.js';
10
10
  import { findProjectRoot } from '../view/index.js';
11
+ // 0.30.0 PR 8 (REQ-178 / TAC-4126): define-validate findings.
12
+ import { collectDefineValidateFindings } from '../define/validate-findings.js';
11
13
 
12
14
  const OPTION_SPEC = {
13
15
  quiet: { type: 'boolean' },
@@ -133,6 +135,12 @@ export async function main(argv, deps = {}) {
133
135
  // a pin that names no known provider is exit 3.
134
136
  const companionsErrors = await validateCompanionPinsResolvable({ projectRoot, tree });
135
137
  errors.push(...companionsErrors);
138
+ // 0.30.0 PR 8 (REQ-178, TAC-4126): interface kind outside vocabulary,
139
+ // bracketed AC class prefix outside the known classes, tacIds naming
140
+ // a non-TAC, and an unresolving ownerRef or deliveredBy. Absence of
141
+ // a class marker is NOT a finding (decision 10 kept).
142
+ const defineValidateFindings = collectDefineValidateFindings(tree);
143
+ errors.push(...defineValidateFindings);
136
144
  if (flags.json) {
137
145
  const issues = errors.map((e) => ({
138
146
  id: e.documentId ?? null,
@@ -0,0 +1,130 @@
1
+ // Concern catalogue (REQ-174 amendment paragraph; spec 2026-10-01
2
+ // section 4 row "D5 catalogue", 0.30.0 PR 6).
3
+ //
4
+ // Eight concerns keyed by REQ shape. For every REQ in scope, D5's
5
+ // crosscut:catalogue check enumerates the applicable (reqShape,
6
+ // concern) pairs via this module and asserts a concern-ledger entry
7
+ // keyed <REQ>:<concern> exists with disposition applied or waived (a
8
+ // waived entry carries a reason).
9
+ //
10
+ // The catalogue is deliberately keyed on the concern name so a
11
+ // shape-wise question like "what concerns apply to this REQ?" is a
12
+ // filter against one map, not a scan across eight. The reverse view
13
+ // (which shape triggers which concern) is a transpose and lives in
14
+ // applicableConcernsFor().
15
+ //
16
+ // Keys share names with the baseline catalogue
17
+ // (packages/rcf-lite/src/core/baseline-catalog) where names coincide:
18
+ // `auth` is the only name the two share today (the baseline-AC
19
+ // catalogue has no per-concern crosscut keys yet). The gate reader
20
+ // composes the ledger key as `<REQ>:<concern>`, so no key translation
21
+ // is needed between the two surfaces.
22
+ //
23
+ // Pure: no I/O, no state, no time. The export is frozen at module
24
+ // load so a consumer cannot mutate the shared source.
25
+
26
+ /**
27
+ * Canonical ordering of concern names (spec section 4 row 'D5
28
+ * catalogue'). Readers that iterate the catalogue use this so display
29
+ * order stays stable.
30
+ *
31
+ * @type {ReadonlyArray<string>}
32
+ */
33
+ export const CONCERN_KEYS = Object.freeze([
34
+ 'auth',
35
+ 'errorEnvelope',
36
+ 'loggingAudit',
37
+ 'retention',
38
+ 'performance',
39
+ 'secrets',
40
+ 'timeAndTimezone',
41
+ 'concurrencyIdempotency',
42
+ ]);
43
+
44
+ /**
45
+ * The eight REQ shapes the catalogue reasons over. These are the
46
+ * values a REQ's shapeClassification.shapes array may carry; a REQ
47
+ * may carry more than one. `other` is the catch-all whose only
48
+ * applicable concern today is none.
49
+ *
50
+ * @type {ReadonlyArray<string>}
51
+ */
52
+ export const REQ_SHAPES = Object.freeze([
53
+ 'auth',
54
+ 'httpApi',
55
+ 'cliCommand',
56
+ 'persistence',
57
+ 'batch',
58
+ 'externalIntegration',
59
+ 'webUi',
60
+ 'other',
61
+ ]);
62
+
63
+ /**
64
+ * Shape set helper. The `loggingAudit` row below reads "every shape
65
+ * but other"; expressing that once beats enumerating the seven
66
+ * concrete shapes.
67
+ */
68
+ const ALL_BUT_OTHER = Object.freeze(REQ_SHAPES.filter((s) => s !== 'other'));
69
+
70
+ /**
71
+ * Per-concern applicability map keyed by concern name (spec section 4
72
+ * row 'D5 catalogue', verbatim):
73
+ *
74
+ * auth -> auth, httpApi
75
+ * errorEnvelope -> httpApi, cliCommand
76
+ * loggingAudit -> every REQ shape but other
77
+ * retention -> persistence
78
+ * performance -> httpApi, batch
79
+ * secrets -> auth, externalIntegration
80
+ * timeAndTimezone -> persistence, batch
81
+ * concurrencyIdempotency -> httpApi, persistence
82
+ *
83
+ * @type {Readonly<Record<string, ReadonlyArray<string>>>}
84
+ */
85
+ export const CONCERN_APPLICABILITY = Object.freeze({
86
+ auth: Object.freeze(['auth', 'httpApi']),
87
+ errorEnvelope: Object.freeze(['httpApi', 'cliCommand']),
88
+ loggingAudit: ALL_BUT_OTHER,
89
+ retention: Object.freeze(['persistence']),
90
+ performance: Object.freeze(['httpApi', 'batch']),
91
+ secrets: Object.freeze(['auth', 'externalIntegration']),
92
+ timeAndTimezone: Object.freeze(['persistence', 'batch']),
93
+ concurrencyIdempotency: Object.freeze(['httpApi', 'persistence']),
94
+ });
95
+
96
+ /**
97
+ * Which concerns apply to a REQ shape. Reads the per-concern map
98
+ * once and returns the names, in CONCERN_KEYS order, whose shape set
99
+ * contains the input. An unknown shape returns [].
100
+ *
101
+ * @param {string} reqShape
102
+ * @returns {string[]}
103
+ */
104
+ export function applicableConcernsFor(reqShape) {
105
+ if (typeof reqShape !== 'string' || reqShape.length === 0) return [];
106
+ const out = [];
107
+ for (const concern of CONCERN_KEYS) {
108
+ const shapes = CONCERN_APPLICABILITY[concern];
109
+ if (shapes && shapes.includes(reqShape)) out.push(concern);
110
+ }
111
+ return out;
112
+ }
113
+
114
+ /**
115
+ * Union of applicable concerns across a set of REQ shapes. A REQ
116
+ * carries an array of shapes (shapeClassification.shapes); the
117
+ * applicable concerns for that REQ are the union of applicableConcerns
118
+ * for each shape, in CONCERN_KEYS order with no duplicates.
119
+ *
120
+ * @param {Iterable<string>} shapes
121
+ * @returns {string[]}
122
+ */
123
+ export function applicableConcernsForShapes(shapes) {
124
+ const seen = new Set();
125
+ for (const shape of shapes ?? []) {
126
+ for (const c of applicableConcernsFor(shape)) seen.add(c);
127
+ }
128
+ // Preserve canonical order.
129
+ return CONCERN_KEYS.filter((c) => seen.has(c));
130
+ }
@@ -44,6 +44,8 @@
44
44
  import { mkdir, readFile, writeFile } from 'node:fs/promises';
45
45
  import { dirname, join } from 'node:path';
46
46
 
47
+ import { computeTreeHash } from '../query/delta.js';
48
+
47
49
  /**
48
50
  * Relative path (under the project root) of the freeze record. Used by
49
51
  * the walker-invisibility invariant test and by every caller that
@@ -245,3 +247,75 @@ export async function saveFreezeRecord({ projectRoot, record }) {
245
247
  await writeFile(filePath, `${JSON.stringify(validated, null, 2)}\n`, 'utf8');
246
248
  return { filePath };
247
249
  }
250
+
251
+ /**
252
+ * Apply `freeze.override { reason, by, at }` to the project's freeze
253
+ * record and persist it (0.30.0 PR 8, REQ-177 / TAC-4125). When no
254
+ * freeze record exists, a minimal placeholder is created so the
255
+ * override has a home: `frozenAt = at`, `treeHash` from the live tree
256
+ * via computeTreeHash on the supplied `docHashes` (passed by the
257
+ * caller so this module stays pure of walker I/O), `briefStatements`
258
+ * from the caller (defaults to 0 when the brief ledger is absent).
259
+ * On an existing record the override is set in place and every other
260
+ * field is preserved.
261
+ *
262
+ * The writer validates through saveFreezeRecord so the on-disk schema
263
+ * stays canonical. A missing-non-empty reason throws before any write.
264
+ *
265
+ * @param {object} args
266
+ * @param {string} args.projectRoot
267
+ * @param {string} args.reason - operator-supplied non-empty reason string.
268
+ * @param {string} args.by - author identity recorded on the override.
269
+ * @param {string} args.at - ISO-8601 timestamp.
270
+ * @param {Record<string, string>} [args.docHashes] - the live tree's docHashes map; used only when no prior record exists so a minimal record can be stamped.
271
+ * @param {string} [args.treeHash] - the live tree hash; used only when no prior record exists.
272
+ * @param {number} [args.briefStatements] - brief ledger high-water mark; used only when no prior record exists.
273
+ * @returns {Promise<{ filePath: string, record: import('../query/delta.js').FreezeRecord & Record<string, unknown> }>}
274
+ */
275
+ export async function applyOverrideToFreezeRecord({
276
+ projectRoot,
277
+ reason,
278
+ by,
279
+ at,
280
+ docHashes = {},
281
+ treeHash = null,
282
+ briefStatements = 0,
283
+ }) {
284
+ if (typeof reason !== 'string' || reason.length === 0) {
285
+ throw new FreezeRecordError(
286
+ "applyOverrideToFreezeRecord: 'reason' must be a non-empty string.",
287
+ { filePath: FREEZE_RECORD_REL_PATH, field: 'override.reason' },
288
+ );
289
+ }
290
+ if (typeof by !== 'string' || by.length === 0) {
291
+ throw new FreezeRecordError(
292
+ "applyOverrideToFreezeRecord: 'by' must be a non-empty string.",
293
+ { filePath: FREEZE_RECORD_REL_PATH, field: 'override.by' },
294
+ );
295
+ }
296
+ if (typeof at !== 'string' || at.length === 0) {
297
+ throw new FreezeRecordError(
298
+ "applyOverrideToFreezeRecord: 'at' must be a non-empty string.",
299
+ { filePath: FREEZE_RECORD_REL_PATH, field: 'override.at' },
300
+ );
301
+ }
302
+ const existing = await loadFreezeRecord({ projectRoot });
303
+ // On an unfrozen tree, mint a minimal record whose treeHash is the
304
+ // live tree hash computed from the caller-supplied docHashes map,
305
+ // so the override is attached to a verifiable snapshot rather than a
306
+ // placeholder. Callers (the build CLI) pass computeDelta's
307
+ // currentDocHashes so the hash agrees with the delta model.
308
+ const computedTreeHash = treeHash ?? computeTreeHash(docHashes);
309
+ /** @type {import('../query/delta.js').FreezeRecord & Record<string, unknown>} */
310
+ const record = existing
311
+ ? { ...existing, override: { reason, by, at } }
312
+ : {
313
+ frozenAt: at,
314
+ treeHash: computedTreeHash,
315
+ docHashes: { ...docHashes },
316
+ briefStatements,
317
+ override: { reason, by, at },
318
+ };
319
+ const { filePath } = await saveFreezeRecord({ projectRoot, record });
320
+ return { filePath, record };
321
+ }
@@ -0,0 +1,55 @@
1
+ // Probe runner seam (REQ-175; spec 2026-10-01 section 4 row 'D6 scans
2
+ // and the injectable probe runner' and section 11.6; ADR-4131 extended
3
+ // by DEFINE step 3 PR 7).
4
+ //
5
+ // A probeRunner is `({ reqId, tree }) => findings[]` where each
6
+ // finding is `{ reqId, finding, severity?, hash?, status? }`. The
7
+ // shape mirrors a probe-ledger entry minus the ids and timestamps
8
+ // computeReadiness assigns when it merges the findings into the probe
9
+ // ledger it hands the gate.
10
+ //
11
+ // IMPORTANT: NO RUNNER SHIPS. rcf-lite has no LLM at runtime and does
12
+ // not spawn processes or make network calls. The harness is the
13
+ // runner: it either calls `ledger probes add` directly, or it drives a
14
+ // test invocation that passes a stub runner into computeReadiness. The
15
+ // seam exists so a test harness or a future harness-driven call site
16
+ // has one named extension point rather than monkey-patching the
17
+ // probe-ledger reader.
18
+ //
19
+ // Shape alone; the function stays as a type-level reference and is not
20
+ // invoked by the CLI today.
21
+
22
+ /**
23
+ * @typedef {{
24
+ * reqId: string,
25
+ * finding: string,
26
+ * severity?: 'low' | 'medium' | 'high',
27
+ * hash?: string,
28
+ * status?: 'open' | 'closed' | 'attested',
29
+ * }} ProbeFinding
30
+ */
31
+
32
+ /**
33
+ * @typedef {(args: { reqId: string, tree: unknown }) => ProbeFinding[]} ProbeRunner
34
+ */
35
+
36
+ /**
37
+ * The default "no runner" sentinel. computeReadiness treats a null or
38
+ * absent runner as "do not inject findings"; its result then equals
39
+ * the 0.29.0 result on the same fixture (AC-17504-2).
40
+ *
41
+ * @type {ProbeRunner | null}
42
+ */
43
+ export const NO_PROBE_RUNNER = null;
44
+
45
+ /**
46
+ * Guard that a value is a usable probeRunner function. Pure. Exported
47
+ * so computeReadiness can skip injection cleanly on a non-function
48
+ * (`undefined`, `null`, or a mis-typed value) without throwing.
49
+ *
50
+ * @param {unknown} value
51
+ * @returns {value is ProbeRunner}
52
+ */
53
+ export function isProbeRunner(value) {
54
+ return typeof value === 'function';
55
+ }