rcf-lite 0.28.4 → 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 (882) hide show
  1. package/CHANGELOG.md +194 -1
  2. package/bin/rcf.js +4 -0
  3. package/blueprints/application-account-settings/contributions/requirements/application-account-settings-req-001.json +1 -1
  4. package/blueprints/application-account-settings/contributions/requirements/application-account-settings-req-002.json +1 -1
  5. package/blueprints/application-account-settings/contributions/requirements/application-account-settings-req-003.json +1 -1
  6. package/blueprints/application-account-settings/contributions/requirements/application-account-settings-req-004.json +1 -1
  7. package/blueprints/application-account-settings/contributions/requirements/application-account-settings-req-005.json +1 -1
  8. package/blueprints/application-account-settings/contributions/requirements/application-account-settings-req-006.json +1 -1
  9. package/blueprints/application-account-settings/contributions/requirements/application-account-settings-req-007.json +1 -1
  10. package/blueprints/application-account-settings/contributions/requirements/application-account-settings-req-009.json +1 -1
  11. package/blueprints/application-account-settings/contributions/tacs/tac-2601-application-account-settings-shell.json +4 -4
  12. package/blueprints/application-account-settings/contributions/tacs/tac-2602-application-account-settings-capability-discovery.json +2 -2
  13. package/blueprints/application-account-settings/contributions/tacs/tac-2603-application-account-settings-hosted-ui-bridge.json +2 -2
  14. package/blueprints/application-account-settings/contributions/tacs/tac-2604-application-account-settings-session-store.json +7 -7
  15. package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25105.json +3 -15
  16. package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25106.json +2 -10
  17. package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25111.json +3 -6
  18. package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25112.json +4 -4
  19. package/blueprints/application-admin-console/contributions/requirements/application-admin-console-req-001.json +1 -1
  20. package/blueprints/application-admin-console/contributions/requirements/application-admin-console-req-002.json +1 -1
  21. package/blueprints/application-admin-console/contributions/requirements/application-admin-console-req-003.json +1 -1
  22. package/blueprints/application-admin-console/contributions/requirements/application-admin-console-req-004.json +1 -1
  23. package/blueprints/application-admin-console/contributions/requirements/application-admin-console-req-005.json +1 -1
  24. package/blueprints/application-admin-console/contributions/requirements/application-admin-console-req-006.json +1 -1
  25. package/blueprints/application-admin-console/contributions/requirements/application-admin-console-req-007.json +1 -1
  26. package/blueprints/application-admin-console/contributions/requirements/application-admin-console-req-008.json +1 -1
  27. package/blueprints/application-admin-console/contributions/requirements/application-admin-console-req-009.json +1 -1
  28. package/blueprints/application-admin-console/contributions/requirements/application-admin-console-req-014.json +1 -1
  29. package/blueprints/application-admin-console/contributions/tacs/tac-2201-application-admin-console-shell.json +4 -4
  30. package/blueprints/application-admin-console/contributions/tacs/tac-2202-application-admin-console-capability-discovery.json +7 -7
  31. package/blueprints/application-admin-console/contributions/tacs/tac-2203-application-admin-console-permission-matrix.json +2 -2
  32. package/blueprints/application-admin-console/contributions/tacs/tac-2204-application-admin-console-audit-view.json +2 -2
  33. package/blueprints/application-admin-console/contributions/tacs/tac-2214-application-admin-console-access-gated-signin-surface.json +3 -2
  34. package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21107.json +2 -2
  35. package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21111.json +3 -11
  36. package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21112.json +4 -4
  37. package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21815.json +2 -2
  38. package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21816.json +2 -2
  39. package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-001.json +1 -1
  40. package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-002.json +1 -2
  41. package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-004.json +1 -1
  42. package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-008.json +1 -1
  43. package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-016.json +1 -1
  44. package/blueprints/application-api-rest/contributions/tacs/tac-301-application-api-rest-request-pipeline.json +4 -4
  45. package/blueprints/application-api-rest/contributions/tacs/tac-302-application-api-rest-auth-middleware.json +4 -4
  46. package/blueprints/application-api-rest/contributions/tacs/tac-303-application-api-rest-contract-surface.json +4 -4
  47. package/blueprints/application-api-rest/contributions/tacs/tac-304-application-api-rest-resource-layer.json +4 -4
  48. package/blueprints/application-api-rest/contributions/tacs/tac-305-application-api-rest-observability.json +4 -4
  49. package/blueprints/application-api-rest/contributions/tacs/tac-306-application-api-rest-operability.json +4 -4
  50. package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2102.json +1 -1
  51. package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2103.json +1 -1
  52. package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2104.json +4 -4
  53. package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2105.json +2 -2
  54. package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2108.json +1 -1
  55. package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2110.json +1 -1
  56. package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2111.json +1 -1
  57. package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2118.json +1 -1
  58. package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2119.json +2 -2
  59. package/blueprints/application-charts/contributions/tacs/tac-1901-application-charts-render-shell.json +4 -4
  60. package/blueprints/application-charts/contributions/tacs/tac-1902-application-charts-keyboard-traversal.json +4 -4
  61. package/blueprints/application-charts/contributions/user-stories/application-charts-us-18105.json +1 -1
  62. package/blueprints/application-dashboard/contributions/tacs/tac-2001-application-dashboard-tile-grid.json +4 -4
  63. package/blueprints/application-dashboard/contributions/tacs/tac-2002-application-dashboard-filter-chrome.json +4 -4
  64. package/blueprints/application-dashboard/contributions/tacs/tac-2003-application-dashboard-export-handle.json +2 -2
  65. package/blueprints/application-dashboard/contributions/user-stories/application-dashboard-us-19106.json +1 -1
  66. package/blueprints/application-datatable/contributions/tacs/tac-1801-application-datatable-shell.json +4 -4
  67. package/blueprints/application-datatable/contributions/tacs/tac-1802-application-datatable-query-adapter.json +4 -4
  68. package/blueprints/application-datatable/contributions/tacs/tac-1803-application-datatable-selection-model.json +2 -2
  69. package/blueprints/application-datatable/contributions/user-stories/application-datatable-us-17101.json +1 -1
  70. package/blueprints/application-datatable/contributions/user-stories/application-datatable-us-17102.json +1 -1
  71. package/blueprints/application-datatable/contributions/user-stories/application-datatable-us-17103.json +1 -1
  72. package/blueprints/application-datatable/contributions/user-stories/application-datatable-us-17105.json +1 -1
  73. package/blueprints/application-empty-error-states/contributions/requirements/application-empty-error-states-req-001.json +1 -1
  74. package/blueprints/application-empty-error-states/contributions/requirements/application-empty-error-states-req-002.json +1 -1
  75. package/blueprints/application-empty-error-states/contributions/requirements/application-empty-error-states-req-003.json +1 -1
  76. package/blueprints/application-empty-error-states/contributions/requirements/application-empty-error-states-req-004.json +1 -1
  77. package/blueprints/application-empty-error-states/contributions/requirements/application-empty-error-states-req-005.json +2 -2
  78. package/blueprints/application-empty-error-states/contributions/requirements/application-empty-error-states-req-006.json +1 -1
  79. package/blueprints/application-empty-error-states/contributions/requirements/application-empty-error-states-req-007.json +2 -2
  80. package/blueprints/application-empty-error-states/contributions/tacs/tac-2301-application-empty-error-states-state-machine.json +5 -5
  81. package/blueprints/application-empty-error-states/contributions/tacs/tac-2302-application-empty-error-states-recovery-router.json +2 -2
  82. package/blueprints/application-empty-error-states/contributions/tacs/tac-2303-application-empty-error-states-offline-buffer.json +5 -5
  83. package/blueprints/application-error-handling/contributions/tacs/tac-1701-application-error-handling-boundary.json +6 -6
  84. package/blueprints/application-error-handling/contributions/tacs/tac-1702-application-error-handling-record-factory.json +4 -4
  85. package/blueprints/application-error-handling/contributions/user-stories/application-error-handling-us-16101.json +1 -1
  86. package/blueprints/application-error-handling/contributions/user-stories/application-error-handling-us-16107.json +4 -4
  87. package/blueprints/application-file-upload/contributions/requirements/application-file-upload-req-001.json +1 -1
  88. package/blueprints/application-file-upload/contributions/requirements/application-file-upload-req-002.json +1 -1
  89. package/blueprints/application-file-upload/contributions/requirements/application-file-upload-req-003.json +1 -1
  90. package/blueprints/application-file-upload/contributions/requirements/application-file-upload-req-004.json +1 -1
  91. package/blueprints/application-file-upload/contributions/requirements/application-file-upload-req-005.json +1 -1
  92. package/blueprints/application-file-upload/contributions/requirements/application-file-upload-req-006.json +2 -2
  93. package/blueprints/application-file-upload/contributions/requirements/application-file-upload-req-007.json +2 -2
  94. package/blueprints/application-file-upload/contributions/tacs/tac-2401-application-file-upload-input.json +7 -7
  95. package/blueprints/application-file-upload/contributions/tacs/tac-2402-application-file-upload-transport.json +8 -8
  96. package/blueprints/application-file-upload/contributions/tacs/tac-2403-application-file-upload-progress-announcer.json +11 -11
  97. package/blueprints/application-file-upload/contributions/user-stories/application-file-upload-us-23102.json +1 -1
  98. package/blueprints/application-file-upload/contributions/user-stories/application-file-upload-us-23105.json +1 -1
  99. package/blueprints/application-forms-wizard/contributions/requirements/application-forms-wizard-req-001.json +1 -1
  100. package/blueprints/application-forms-wizard/contributions/requirements/application-forms-wizard-req-002.json +1 -1
  101. package/blueprints/application-forms-wizard/contributions/requirements/application-forms-wizard-req-003.json +1 -1
  102. package/blueprints/application-forms-wizard/contributions/requirements/application-forms-wizard-req-004.json +1 -1
  103. package/blueprints/application-forms-wizard/contributions/requirements/application-forms-wizard-req-005.json +1 -1
  104. package/blueprints/application-forms-wizard/contributions/requirements/application-forms-wizard-req-006.json +2 -2
  105. package/blueprints/application-forms-wizard/contributions/tacs/tac-2501-application-forms-wizard-task-list.json +7 -7
  106. package/blueprints/application-forms-wizard/contributions/tacs/tac-2502-application-forms-wizard-error-summary.json +4 -4
  107. package/blueprints/application-forms-wizard/contributions/tacs/tac-2503-application-forms-wizard-draft-store.json +4 -4
  108. package/blueprints/application-forms-wizard/contributions/user-stories/application-forms-wizard-us-24101.json +1 -1
  109. package/blueprints/application-notifications-in-app/contributions/requirements/application-notifications-in-app-req-001.json +1 -1
  110. package/blueprints/application-notifications-in-app/contributions/requirements/application-notifications-in-app-req-002.json +1 -1
  111. package/blueprints/application-notifications-in-app/contributions/requirements/application-notifications-in-app-req-003.json +1 -1
  112. package/blueprints/application-notifications-in-app/contributions/requirements/application-notifications-in-app-req-004.json +1 -1
  113. package/blueprints/application-notifications-in-app/contributions/requirements/application-notifications-in-app-req-005.json +2 -2
  114. package/blueprints/application-notifications-in-app/contributions/requirements/application-notifications-in-app-req-006.json +2 -2
  115. package/blueprints/application-notifications-in-app/contributions/tacs/tac-2101-application-notifications-in-app-live-region.json +6 -6
  116. package/blueprints/application-notifications-in-app/contributions/tacs/tac-2102-application-notifications-in-app-centre.json +9 -9
  117. package/blueprints/application-notifications-in-app/contributions/tacs/tac-2103-application-notifications-in-app-preferences.json +4 -4
  118. package/blueprints/application-notifications-in-app/contributions/user-stories/application-notifications-in-app-us-20101.json +1 -1
  119. package/blueprints/application-notifications-in-app/contributions/user-stories/application-notifications-in-app-us-20102.json +1 -1
  120. package/blueprints/application-notifications-in-app/contributions/user-stories/application-notifications-in-app-us-20103.json +2 -2
  121. package/blueprints/application-notifications-in-app/contributions/user-stories/application-notifications-in-app-us-20105.json +4 -4
  122. package/blueprints/application-onboarding-tour/contributions/requirements/application-onboarding-tour-req-001.json +1 -1
  123. package/blueprints/application-onboarding-tour/contributions/requirements/application-onboarding-tour-req-002.json +1 -1
  124. package/blueprints/application-onboarding-tour/contributions/requirements/application-onboarding-tour-req-003.json +1 -1
  125. package/blueprints/application-onboarding-tour/contributions/requirements/application-onboarding-tour-req-004.json +1 -1
  126. package/blueprints/application-onboarding-tour/contributions/requirements/application-onboarding-tour-req-005.json +1 -1
  127. package/blueprints/application-onboarding-tour/contributions/requirements/application-onboarding-tour-req-006.json +1 -1
  128. package/blueprints/application-onboarding-tour/contributions/tacs/tac-2701-application-onboarding-tour-step-runner.json +4 -4
  129. package/blueprints/application-onboarding-tour/contributions/tacs/tac-2702-application-onboarding-tour-checklist-slot.json +2 -2
  130. package/blueprints/application-onboarding-tour/contributions/tacs/tac-2703-application-onboarding-tour-completion-store.json +2 -2
  131. package/blueprints/application-onboarding-tour/contributions/user-stories/application-onboarding-tour-us-26108.json +2 -2
  132. package/blueprints/application-spa/contributions/requirements/application-spa-req-004.json +1 -2
  133. package/blueprints/application-spa/contributions/requirements/application-spa-req-007.json +1 -1
  134. package/blueprints/application-spa/contributions/requirements/application-spa-req-014.json +1 -1
  135. package/blueprints/application-spa/contributions/requirements/application-spa-req-015.json +1 -1
  136. package/blueprints/application-spa/contributions/requirements/application-spa-req-017.json +1 -1
  137. package/blueprints/application-spa/contributions/requirements/application-spa-req-018.json +1 -1
  138. package/blueprints/application-spa/contributions/tacs/tac-201-application-spa-app-shell.json +4 -4
  139. package/blueprints/application-spa/contributions/tacs/tac-202-application-spa-theme-system.json +4 -4
  140. package/blueprints/application-spa/contributions/tacs/tac-207-application-spa-token-adherence-probe.json +6 -6
  141. package/blueprints/application-spa/contributions/tacs/tac-208-application-spa-icon-adherence-probe.json +6 -6
  142. package/blueprints/application-spa/contributions/tacs/tac-209-application-spa-csp-styled-adherence-probe.json +6 -6
  143. package/blueprints/application-spa/contributions/tacs/tac-210-application-spa-external-dependency-provisioning-probe.json +8 -8
  144. package/blueprints/application-spa/contributions/tacs/tac-211-application-spa-core-flow-e2e-probe.json +8 -8
  145. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1101.json +2 -2
  146. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1102.json +1 -1
  147. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1107.json +1 -1
  148. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1117.json +1 -1
  149. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1129.json +4 -4
  150. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1130.json +4 -4
  151. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1131.json +1 -1
  152. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1132.json +6 -6
  153. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1133.json +5 -5
  154. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1134.json +2 -2
  155. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-001.json +1 -1
  156. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-002.json +1 -1
  157. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-003.json +1 -1
  158. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-004.json +1 -1
  159. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-005.json +1 -1
  160. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-006.json +1 -1
  161. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-007.json +1 -1
  162. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-008.json +1 -1
  163. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-009.json +1 -1
  164. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-010.json +1 -1
  165. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-011.json +1 -1
  166. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-012.json +1 -1
  167. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-013.json +1 -1
  168. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-014.json +1 -1
  169. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-015.json +1 -1
  170. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-016.json +1 -1
  171. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-017.json +1 -1
  172. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-018.json +1 -1
  173. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-019.json +1 -1
  174. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-020.json +1 -1
  175. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-021.json +1 -1
  176. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-022.json +1 -1
  177. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-023.json +1 -1
  178. package/blueprints/delivery-ci-workflows/contributions/tacs/tac-701-delivery-ci-workflows-gate-runner.json +6 -6
  179. package/blueprints/delivery-ci-workflows/contributions/tacs/tac-702-delivery-ci-workflows-gate-report.json +4 -4
  180. package/blueprints/delivery-ci-workflows/contributions/tacs/tac-703-delivery-ci-workflows-aggregate-report.json +4 -4
  181. package/blueprints/delivery-ci-workflows/contributions/tacs/tac-704-delivery-ci-workflows-workflow-materialiser.json +6 -6
  182. package/blueprints/delivery-ci-workflows/contributions/tacs/tac-705-delivery-ci-workflows-release-workflow.json +6 -6
  183. package/blueprints/delivery-ci-workflows/contributions/tacs/tac-706-delivery-ci-workflows-scheduled-audit.json +4 -4
  184. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6101.json +1 -1
  185. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6102.json +1 -1
  186. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6103.json +1 -1
  187. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6104.json +1 -1
  188. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6106.json +1 -1
  189. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6107.json +1 -1
  190. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6109.json +1 -1
  191. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6110.json +1 -1
  192. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6111.json +1 -1
  193. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6113.json +1 -1
  194. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6115.json +1 -1
  195. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6116.json +1 -1
  196. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6117.json +1 -1
  197. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6118.json +1 -1
  198. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6119.json +1 -1
  199. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6120.json +1 -1
  200. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6122.json +1 -1
  201. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6123.json +1 -1
  202. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6124.json +1 -1
  203. package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-001.json +1 -1
  204. package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-002.json +1 -1
  205. package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-003.json +1 -1
  206. package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-004.json +1 -1
  207. package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-005.json +1 -1
  208. package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-006.json +1 -1
  209. package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-007.json +1 -1
  210. package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-008.json +1 -1
  211. package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-009.json +1 -1
  212. package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-010.json +1 -1
  213. package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-011.json +1 -1
  214. package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-012.json +1 -1
  215. package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-013.json +1 -1
  216. package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-014.json +1 -1
  217. package/blueprints/deploy-cloudflare-workers/contributions/tacs/tac-1301-deploy-cloudflare-workers-deploy-adapter.json +6 -6
  218. package/blueprints/deploy-cloudflare-workers/contributions/tacs/tac-1302-deploy-cloudflare-workers-wrangler-manifest.json +8 -8
  219. package/blueprints/deploy-cloudflare-workers/contributions/tacs/tac-1303-deploy-cloudflare-workers-preview-url-resolver.json +6 -6
  220. package/blueprints/deploy-cloudflare-workers/contributions/tacs/tac-1304-deploy-cloudflare-workers-promote-gate.json +8 -8
  221. package/blueprints/deploy-cloudflare-workers/contributions/tacs/tac-1305-deploy-cloudflare-workers-served-surface-verifier.json +8 -8
  222. package/blueprints/deploy-cloudflare-workers/contributions/tacs/tac-1306-deploy-cloudflare-workers-deploy-ci-workflows.json +8 -8
  223. package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12101.json +1 -1
  224. package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12102.json +2 -2
  225. package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12105.json +1 -1
  226. package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12109.json +1 -1
  227. package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12113.json +2 -2
  228. package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12114.json +1 -1
  229. package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12115.json +1 -1
  230. package/blueprints/deploy-hetzner-server/contributions/requirements/deploy-hetzner-server-req-001.json +1 -1
  231. package/blueprints/deploy-hetzner-server/contributions/requirements/deploy-hetzner-server-req-002.json +1 -1
  232. package/blueprints/deploy-hetzner-server/contributions/requirements/deploy-hetzner-server-req-003.json +1 -1
  233. package/blueprints/deploy-hetzner-server/contributions/requirements/deploy-hetzner-server-req-004.json +1 -1
  234. package/blueprints/deploy-hetzner-server/contributions/requirements/deploy-hetzner-server-req-005.json +1 -1
  235. package/blueprints/deploy-hetzner-server/contributions/requirements/deploy-hetzner-server-req-006.json +1 -1
  236. package/blueprints/deploy-hetzner-server/contributions/tacs/tac-3801-deploy-hetzner-server-provisioner.json +3 -2
  237. package/blueprints/deploy-hetzner-server/contributions/tacs/tac-3802-deploy-hetzner-server-manifest-schema.json +3 -2
  238. package/blueprints/deploy-hetzner-server/contributions/tacs/tac-3803-deploy-hetzner-server-cloud-init-template.json +3 -2
  239. package/blueprints/deploy-hetzner-server/contributions/tacs/tac-3804-deploy-hetzner-server-firewall-shape.json +3 -2
  240. package/blueprints/deploy-hetzner-server/contributions/user-stories/deploy-hetzner-server-us-37101.json +4 -4
  241. package/blueprints/deploy-hetzner-server/contributions/user-stories/deploy-hetzner-server-us-37102.json +3 -3
  242. package/blueprints/deploy-hetzner-server/contributions/user-stories/deploy-hetzner-server-us-37103.json +4 -4
  243. package/blueprints/deploy-hetzner-server/contributions/user-stories/deploy-hetzner-server-us-37104.json +2 -2
  244. package/blueprints/deploy-hetzner-server/contributions/user-stories/deploy-hetzner-server-us-37105.json +2 -2
  245. package/blueprints/deploy-hetzner-server/contributions/user-stories/deploy-hetzner-server-us-37106.json +3 -3
  246. package/blueprints/deploy-hetzner-server/contributions/user-stories/deploy-hetzner-server-us-37107.json +2 -2
  247. package/blueprints/deploy-hetzner-server/contributions/user-stories/deploy-hetzner-server-us-37108.json +2 -2
  248. package/blueprints/deploy-hetzner-server/contributions/user-stories/deploy-hetzner-server-us-37109.json +2 -2
  249. package/blueprints/edge-cloudflare-access/contributions/requirements/edge-cloudflare-access-req-001.json +1 -1
  250. package/blueprints/edge-cloudflare-access/contributions/requirements/edge-cloudflare-access-req-002.json +1 -1
  251. package/blueprints/edge-cloudflare-access/contributions/requirements/edge-cloudflare-access-req-003.json +1 -1
  252. package/blueprints/edge-cloudflare-access/contributions/requirements/edge-cloudflare-access-req-004.json +1 -1
  253. package/blueprints/edge-cloudflare-access/contributions/requirements/edge-cloudflare-access-req-005.json +1 -1
  254. package/blueprints/edge-cloudflare-access/contributions/requirements/edge-cloudflare-access-req-006.json +1 -1
  255. package/blueprints/edge-cloudflare-access/contributions/requirements/edge-cloudflare-access-req-007.json +1 -1
  256. package/blueprints/edge-cloudflare-access/contributions/tacs/tac-3501-edge-cloudflare-access-jwt-validator.json +6 -4
  257. package/blueprints/edge-cloudflare-access/contributions/tacs/tac-3502-edge-cloudflare-access-application-declaration.json +3 -2
  258. package/blueprints/edge-cloudflare-access/contributions/tacs/tac-3503-edge-cloudflare-access-policy-shape.json +3 -2
  259. package/blueprints/edge-cloudflare-access/contributions/tacs/tac-3504-edge-cloudflare-access-audit-sink.json +3 -2
  260. package/blueprints/edge-cloudflare-access/contributions/user-stories/edge-cloudflare-access-us-34101.json +1 -1
  261. package/blueprints/edge-cloudflare-access/contributions/user-stories/edge-cloudflare-access-us-34102.json +5 -5
  262. package/blueprints/edge-cloudflare-access/contributions/user-stories/edge-cloudflare-access-us-34103.json +1 -1
  263. package/blueprints/edge-cloudflare-access/contributions/user-stories/edge-cloudflare-access-us-34104.json +3 -3
  264. package/blueprints/edge-cloudflare-access/contributions/user-stories/edge-cloudflare-access-us-34105.json +1 -1
  265. package/blueprints/edge-cloudflare-access/contributions/user-stories/edge-cloudflare-access-us-34106.json +1 -1
  266. package/blueprints/edge-cloudflare-access/contributions/user-stories/edge-cloudflare-access-us-34107.json +5 -5
  267. package/blueprints/edge-cloudflare-access/contributions/user-stories/edge-cloudflare-access-us-34110.json +1 -1
  268. package/blueprints/edge-cloudflare-rate-limiting/contributions/requirements/edge-cloudflare-rate-limiting-req-001.json +1 -1
  269. package/blueprints/edge-cloudflare-rate-limiting/contributions/requirements/edge-cloudflare-rate-limiting-req-002.json +1 -1
  270. package/blueprints/edge-cloudflare-rate-limiting/contributions/requirements/edge-cloudflare-rate-limiting-req-003.json +1 -1
  271. package/blueprints/edge-cloudflare-rate-limiting/contributions/requirements/edge-cloudflare-rate-limiting-req-004.json +1 -1
  272. package/blueprints/edge-cloudflare-rate-limiting/contributions/requirements/edge-cloudflare-rate-limiting-req-005.json +1 -1
  273. package/blueprints/edge-cloudflare-rate-limiting/contributions/tacs/tac-3701-edge-cloudflare-rate-limiting-manifest-schema.json +6 -4
  274. package/blueprints/edge-cloudflare-rate-limiting/contributions/tacs/tac-3702-edge-cloudflare-rate-limiting-management-surface-doc.json +3 -2
  275. package/blueprints/edge-cloudflare-rate-limiting/contributions/tacs/tac-3703-edge-cloudflare-rate-limiting-drift-audit-runner.json +3 -2
  276. package/blueprints/edge-cloudflare-rate-limiting/contributions/user-stories/edge-cloudflare-rate-limiting-us-36101.json +2 -2
  277. package/blueprints/edge-cloudflare-rate-limiting/contributions/user-stories/edge-cloudflare-rate-limiting-us-36103.json +1 -1
  278. package/blueprints/edge-cloudflare-rate-limiting/contributions/user-stories/edge-cloudflare-rate-limiting-us-36104.json +6 -6
  279. package/blueprints/edge-cloudflare-rate-limiting/contributions/user-stories/edge-cloudflare-rate-limiting-us-36106.json +2 -2
  280. package/blueprints/edge-cloudflare-tunnel/contributions/requirements/edge-cloudflare-tunnel-req-001.json +1 -1
  281. package/blueprints/edge-cloudflare-tunnel/contributions/requirements/edge-cloudflare-tunnel-req-002.json +1 -1
  282. package/blueprints/edge-cloudflare-tunnel/contributions/requirements/edge-cloudflare-tunnel-req-003.json +1 -1
  283. package/blueprints/edge-cloudflare-tunnel/contributions/requirements/edge-cloudflare-tunnel-req-004.json +1 -1
  284. package/blueprints/edge-cloudflare-tunnel/contributions/requirements/edge-cloudflare-tunnel-req-005.json +1 -1
  285. package/blueprints/edge-cloudflare-tunnel/contributions/requirements/edge-cloudflare-tunnel-req-006.json +1 -1
  286. package/blueprints/edge-cloudflare-tunnel/contributions/requirements/edge-cloudflare-tunnel-req-007.json +1 -1
  287. package/blueprints/edge-cloudflare-tunnel/contributions/tacs/tac-4001-edge-cloudflare-tunnel-connector-shape.json +3 -2
  288. package/blueprints/edge-cloudflare-tunnel/contributions/tacs/tac-4002-edge-cloudflare-tunnel-manifest-schema.json +3 -2
  289. package/blueprints/edge-cloudflare-tunnel/contributions/tacs/tac-4003-edge-cloudflare-tunnel-access-binding.json +3 -2
  290. package/blueprints/edge-cloudflare-tunnel/contributions/tacs/tac-4004-edge-cloudflare-tunnel-zone-and-hostname-apply.json +3 -2
  291. package/blueprints/edge-cloudflare-tunnel/contributions/user-stories/edge-cloudflare-tunnel-us-39101.json +3 -3
  292. package/blueprints/edge-cloudflare-tunnel/contributions/user-stories/edge-cloudflare-tunnel-us-39102.json +2 -2
  293. package/blueprints/edge-cloudflare-tunnel/contributions/user-stories/edge-cloudflare-tunnel-us-39103.json +4 -4
  294. package/blueprints/edge-cloudflare-tunnel/contributions/user-stories/edge-cloudflare-tunnel-us-39104.json +2 -2
  295. package/blueprints/edge-cloudflare-tunnel/contributions/user-stories/edge-cloudflare-tunnel-us-39105.json +2 -2
  296. package/blueprints/edge-cloudflare-tunnel/contributions/user-stories/edge-cloudflare-tunnel-us-39106.json +5 -5
  297. package/blueprints/edge-cloudflare-tunnel/contributions/user-stories/edge-cloudflare-tunnel-us-39107.json +2 -2
  298. package/blueprints/edge-cloudflare-tunnel/contributions/user-stories/edge-cloudflare-tunnel-us-39108.json +3 -3
  299. package/blueprints/edge-cloudflare-tunnel/contributions/user-stories/edge-cloudflare-tunnel-us-39109.json +4 -4
  300. package/blueprints/edge-cloudflare-tunnel/contributions/user-stories/edge-cloudflare-tunnel-us-39110.json +3 -3
  301. package/blueprints/edge-cloudflare-turnstile/contributions/requirements/edge-cloudflare-turnstile-req-001.json +1 -1
  302. package/blueprints/edge-cloudflare-turnstile/contributions/requirements/edge-cloudflare-turnstile-req-002.json +1 -1
  303. package/blueprints/edge-cloudflare-turnstile/contributions/requirements/edge-cloudflare-turnstile-req-003.json +1 -1
  304. package/blueprints/edge-cloudflare-turnstile/contributions/requirements/edge-cloudflare-turnstile-req-004.json +1 -1
  305. package/blueprints/edge-cloudflare-turnstile/contributions/requirements/edge-cloudflare-turnstile-req-005.json +1 -1
  306. package/blueprints/edge-cloudflare-turnstile/contributions/tacs/tac-3601-edge-cloudflare-turnstile-widget-mount.json +3 -2
  307. package/blueprints/edge-cloudflare-turnstile/contributions/tacs/tac-3602-edge-cloudflare-turnstile-server-verifier.json +9 -6
  308. package/blueprints/edge-cloudflare-turnstile/contributions/tacs/tac-3603-edge-cloudflare-turnstile-magic-link-hook.json +3 -2
  309. package/blueprints/edge-cloudflare-turnstile/contributions/user-stories/edge-cloudflare-turnstile-us-35101.json +3 -3
  310. package/blueprints/edge-cloudflare-turnstile/contributions/user-stories/edge-cloudflare-turnstile-us-35102.json +4 -4
  311. package/blueprints/edge-cloudflare-turnstile/contributions/user-stories/edge-cloudflare-turnstile-us-35103.json +6 -6
  312. package/blueprints/edge-cloudflare-turnstile/contributions/user-stories/edge-cloudflare-turnstile-us-35104.json +2 -2
  313. package/blueprints/edge-cloudflare-turnstile/contributions/user-stories/edge-cloudflare-turnstile-us-35105.json +1 -1
  314. package/blueprints/email-smtp-resend/contributions/requirements/email-smtp-resend-req-001.json +1 -1
  315. package/blueprints/email-smtp-resend/contributions/requirements/email-smtp-resend-req-002.json +1 -1
  316. package/blueprints/email-smtp-resend/contributions/requirements/email-smtp-resend-req-003.json +1 -1
  317. package/blueprints/email-smtp-resend/contributions/requirements/email-smtp-resend-req-004.json +1 -1
  318. package/blueprints/email-smtp-resend/contributions/requirements/email-smtp-resend-req-005.json +1 -1
  319. package/blueprints/email-smtp-resend/contributions/requirements/email-smtp-resend-req-006.json +1 -1
  320. package/blueprints/email-smtp-resend/contributions/tacs/tac-401-email-smtp-resend-send-adapter.json +8 -8
  321. package/blueprints/email-smtp-resend/contributions/tacs/tac-402-email-smtp-resend-webhook-verifier.json +10 -10
  322. package/blueprints/email-smtp-resend/contributions/user-stories/email-smtp-resend-us-4101.json +1 -1
  323. package/blueprints/email-smtp-resend/contributions/user-stories/email-smtp-resend-us-4102.json +1 -1
  324. package/blueprints/email-smtp-resend/contributions/user-stories/email-smtp-resend-us-4103.json +1 -1
  325. package/blueprints/email-smtp-resend/contributions/user-stories/email-smtp-resend-us-4105.json +1 -1
  326. package/blueprints/email-smtp-resend/contributions/user-stories/email-smtp-resend-us-4106.json +2 -2
  327. package/blueprints/jobs-background/contributions/requirements/jobs-background-req-001.json +1 -1
  328. package/blueprints/jobs-background/contributions/requirements/jobs-background-req-002.json +1 -1
  329. package/blueprints/jobs-background/contributions/requirements/jobs-background-req-003.json +1 -1
  330. package/blueprints/jobs-background/contributions/requirements/jobs-background-req-004.json +1 -1
  331. package/blueprints/jobs-background/contributions/requirements/jobs-background-req-005.json +1 -1
  332. package/blueprints/jobs-background/contributions/requirements/jobs-background-req-006.json +1 -1
  333. package/blueprints/jobs-background/contributions/tacs/tac-3101-jobs-background-job-definition.json +4 -4
  334. package/blueprints/jobs-background/contributions/tacs/tac-3102-jobs-background-scheduler.json +6 -6
  335. package/blueprints/jobs-background/contributions/tacs/tac-3103-jobs-background-run-log.json +6 -6
  336. package/blueprints/jobs-background/contributions/user-stories/jobs-background-us-30101.json +1 -1
  337. package/blueprints/jobs-background/contributions/user-stories/jobs-background-us-30102.json +3 -3
  338. package/blueprints/jobs-background/contributions/user-stories/jobs-background-us-30103.json +1 -1
  339. package/blueprints/jobs-background/contributions/user-stories/jobs-background-us-30104.json +4 -4
  340. package/blueprints/jobs-background/contributions/user-stories/jobs-background-us-30105.json +1 -1
  341. package/blueprints/jobs-background/contributions/user-stories/jobs-background-us-30106.json +1 -1
  342. package/blueprints/jobs-background/contributions/user-stories/jobs-background-us-30107.json +1 -1
  343. package/blueprints/jobs-background/contributions/user-stories/jobs-background-us-30108.json +1 -1
  344. package/blueprints/jobs-background/contributions/user-stories/jobs-background-us-30109.json +1 -1
  345. package/blueprints/messaging-queue-cloudflare/contributions/requirements/messaging-queue-cloudflare-req-001.json +1 -1
  346. package/blueprints/messaging-queue-cloudflare/contributions/requirements/messaging-queue-cloudflare-req-002.json +1 -1
  347. package/blueprints/messaging-queue-cloudflare/contributions/requirements/messaging-queue-cloudflare-req-003.json +1 -1
  348. package/blueprints/messaging-queue-cloudflare/contributions/requirements/messaging-queue-cloudflare-req-004.json +1 -1
  349. package/blueprints/messaging-queue-cloudflare/contributions/requirements/messaging-queue-cloudflare-req-005.json +1 -1
  350. package/blueprints/messaging-queue-cloudflare/contributions/requirements/messaging-queue-cloudflare-req-006.json +1 -1
  351. package/blueprints/messaging-queue-cloudflare/contributions/tacs/tac-3001-messaging-queue-cloudflare-producer-facade.json +6 -6
  352. package/blueprints/messaging-queue-cloudflare/contributions/tacs/tac-3002-messaging-queue-cloudflare-consumer-registration.json +2 -2
  353. package/blueprints/messaging-queue-cloudflare/contributions/tacs/tac-3003-messaging-queue-cloudflare-event-sink.json +2 -2
  354. package/blueprints/messaging-queue-cloudflare/contributions/user-stories/messaging-queue-cloudflare-us-29101.json +1 -1
  355. package/blueprints/messaging-queue-cloudflare/contributions/user-stories/messaging-queue-cloudflare-us-29102.json +1 -1
  356. package/blueprints/messaging-queue-cloudflare/contributions/user-stories/messaging-queue-cloudflare-us-29103.json +1 -1
  357. package/blueprints/messaging-queue-cloudflare/contributions/user-stories/messaging-queue-cloudflare-us-29104.json +2 -2
  358. package/blueprints/messaging-queue-cloudflare/contributions/user-stories/messaging-queue-cloudflare-us-29105.json +1 -1
  359. package/blueprints/messaging-queue-cloudflare/contributions/user-stories/messaging-queue-cloudflare-us-29106.json +2 -2
  360. package/blueprints/messaging-queue-cloudflare/contributions/user-stories/messaging-queue-cloudflare-us-29107.json +1 -1
  361. package/blueprints/messaging-queue-cloudflare/contributions/user-stories/messaging-queue-cloudflare-us-29108.json +1 -1
  362. package/blueprints/object-storage-s3/contributions/requirements/object-storage-s3-req-001.json +1 -1
  363. package/blueprints/object-storage-s3/contributions/requirements/object-storage-s3-req-002.json +1 -1
  364. package/blueprints/object-storage-s3/contributions/requirements/object-storage-s3-req-003.json +1 -1
  365. package/blueprints/object-storage-s3/contributions/requirements/object-storage-s3-req-004.json +1 -1
  366. package/blueprints/object-storage-s3/contributions/requirements/object-storage-s3-req-005.json +1 -1
  367. package/blueprints/object-storage-s3/contributions/requirements/object-storage-s3-req-006.json +1 -1
  368. package/blueprints/object-storage-s3/contributions/requirements/object-storage-s3-req-101.json +1 -1
  369. package/blueprints/object-storage-s3/contributions/tacs/tac-2901-object-storage-s3-facade.json +6 -6
  370. package/blueprints/object-storage-s3/contributions/tacs/tac-2902-object-storage-s3-multipart-uploader.json +2 -2
  371. package/blueprints/object-storage-s3/contributions/tacs/tac-2903-object-storage-s3-event-sink.json +2 -2
  372. package/blueprints/object-storage-s3/contributions/tacs/tac-2904-object-storage-s3-hetzner-endpoint-helper.json +2 -2
  373. package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28101.json +1 -1
  374. package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28102.json +1 -1
  375. package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28103.json +2 -2
  376. package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28104.json +1 -1
  377. package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28105.json +2 -2
  378. package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28106.json +1 -1
  379. package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28110.json +1 -1
  380. package/blueprints/observability-essentials/contributions/requirements/observability-essentials-req-001.json +1 -1
  381. package/blueprints/observability-essentials/contributions/requirements/observability-essentials-req-002.json +1 -1
  382. package/blueprints/observability-essentials/contributions/requirements/observability-essentials-req-003.json +1 -1
  383. package/blueprints/observability-essentials/contributions/requirements/observability-essentials-req-004.json +1 -1
  384. package/blueprints/observability-essentials/contributions/requirements/observability-essentials-req-005.json +1 -1
  385. package/blueprints/observability-essentials/contributions/requirements/observability-essentials-req-006.json +1 -1
  386. package/blueprints/observability-essentials/contributions/requirements/observability-essentials-req-007.json +1 -1
  387. package/blueprints/observability-essentials/contributions/requirements/observability-essentials-req-008.json +1 -1
  388. package/blueprints/observability-essentials/contributions/requirements/observability-essentials-req-009.json +1 -1
  389. package/blueprints/observability-essentials/contributions/requirements/observability-essentials-req-010.json +1 -1
  390. package/blueprints/observability-essentials/contributions/tacs/tac-801-observability-essentials-liveness-probe.json +4 -4
  391. package/blueprints/observability-essentials/contributions/tacs/tac-802-observability-essentials-readiness-probe.json +12 -12
  392. package/blueprints/observability-essentials/contributions/tacs/tac-803-observability-essentials-status-page.json +6 -6
  393. package/blueprints/observability-essentials/contributions/tacs/tac-804-observability-essentials-notification-outcome.json +8 -8
  394. package/blueprints/observability-essentials/contributions/user-stories/observability-essentials-us-7101.json +1 -1
  395. package/blueprints/observability-essentials/contributions/user-stories/observability-essentials-us-7103.json +3 -3
  396. package/blueprints/observability-essentials/contributions/user-stories/observability-essentials-us-7106.json +2 -2
  397. package/blueprints/observability-essentials/contributions/user-stories/observability-essentials-us-7107.json +1 -1
  398. package/blueprints/observability-logging/contributions/requirements/observability-logging-req-001.json +1 -1
  399. package/blueprints/observability-logging/contributions/requirements/observability-logging-req-002.json +1 -1
  400. package/blueprints/observability-logging/contributions/requirements/observability-logging-req-003.json +1 -1
  401. package/blueprints/observability-logging/contributions/requirements/observability-logging-req-004.json +1 -1
  402. package/blueprints/observability-logging/contributions/requirements/observability-logging-req-005.json +1 -1
  403. package/blueprints/observability-logging/contributions/requirements/observability-logging-req-006.json +8 -2
  404. package/blueprints/observability-logging/contributions/tacs/tac-1601-observability-logging-logger-factory.json +6 -6
  405. package/blueprints/observability-logging/contributions/tacs/tac-1602-observability-logging-redaction-boundary.json +2 -2
  406. package/blueprints/observability-logging/contributions/user-stories/observability-logging-us-15101.json +4 -4
  407. package/blueprints/observability-logging/contributions/user-stories/observability-logging-us-15103.json +2 -2
  408. package/blueprints/observability-logging/contributions/user-stories/observability-logging-us-15104.json +2 -2
  409. package/blueprints/observability-logging/contributions/user-stories/observability-logging-us-15105.json +1 -1
  410. package/blueprints/observability-logging/contributions/user-stories/observability-logging-us-15106.json +1 -1
  411. package/blueprints/observability-logging/contributions/user-stories/observability-logging-us-15107.json +2 -2
  412. package/blueprints/observability-logging/contributions/user-stories/observability-logging-us-15108.json +1 -1
  413. package/blueprints/observability-logging/contributions/user-stories/observability-logging-us-15109.json +3 -3
  414. package/blueprints/observability-probe-endpoints/contributions/requirements/observability-probe-endpoints-req-001.json +1 -1
  415. package/blueprints/observability-probe-endpoints/contributions/requirements/observability-probe-endpoints-req-002.json +1 -1
  416. package/blueprints/observability-probe-endpoints/contributions/requirements/observability-probe-endpoints-req-003.json +1 -1
  417. package/blueprints/observability-probe-endpoints/contributions/requirements/observability-probe-endpoints-req-004.json +1 -1
  418. package/blueprints/observability-probe-endpoints/contributions/requirements/observability-probe-endpoints-req-005.json +1 -1
  419. package/blueprints/observability-probe-endpoints/contributions/requirements/observability-probe-endpoints-req-006.json +1 -1
  420. package/blueprints/observability-probe-endpoints/contributions/requirements/observability-probe-endpoints-req-007.json +1 -1
  421. package/blueprints/observability-probe-endpoints/contributions/requirements/observability-probe-endpoints-req-008.json +1 -1
  422. package/blueprints/observability-probe-endpoints/contributions/tacs/tac-1501-observability-probe-endpoints-profile-resolver.json +6 -6
  423. package/blueprints/observability-probe-endpoints/contributions/tacs/tac-1502-observability-probe-endpoints-handler-set.json +4 -4
  424. package/blueprints/observability-probe-endpoints/contributions/tacs/tac-1503-observability-probe-endpoints-listener-topology.json +6 -6
  425. package/blueprints/observability-probe-endpoints/contributions/tacs/tac-1504-observability-probe-endpoints-non-http-adapters.json +4 -4
  426. package/blueprints/observability-probe-endpoints/contributions/user-stories/observability-probe-endpoints-us-14101.json +2 -2
  427. package/blueprints/observability-probe-endpoints/contributions/user-stories/observability-probe-endpoints-us-14102.json +1 -1
  428. package/blueprints/observability-probe-endpoints/contributions/user-stories/observability-probe-endpoints-us-14105.json +3 -3
  429. package/blueprints/persistence-data-d1/contributions/requirements/persistence-data-d1-req-001.json +1 -1
  430. package/blueprints/persistence-data-d1/contributions/requirements/persistence-data-d1-req-002.json +1 -1
  431. package/blueprints/persistence-data-d1/contributions/requirements/persistence-data-d1-req-003.json +1 -1
  432. package/blueprints/persistence-data-d1/contributions/requirements/persistence-data-d1-req-004.json +1 -1
  433. package/blueprints/persistence-data-d1/contributions/requirements/persistence-data-d1-req-005.json +1 -1
  434. package/blueprints/persistence-data-d1/contributions/requirements/persistence-data-d1-req-006.json +1 -1
  435. package/blueprints/persistence-data-d1/contributions/requirements/persistence-data-d1-req-007.json +1 -1
  436. package/blueprints/persistence-data-d1/contributions/tacs/tac-1401-persistence-data-d1-facade.json +6 -6
  437. package/blueprints/persistence-data-d1/contributions/tacs/tac-1402-persistence-data-d1-migration-catalog.json +4 -4
  438. package/blueprints/persistence-data-d1/contributions/tacs/tac-1403-persistence-data-d1-deploy-gate.json +4 -4
  439. package/blueprints/persistence-data-d1/contributions/tacs/tac-1404-persistence-data-d1-recovery-runner.json +4 -4
  440. package/blueprints/persistence-data-d1/contributions/user-stories/persistence-data-d1-us-13101.json +2 -2
  441. package/blueprints/persistence-data-d1/contributions/user-stories/persistence-data-d1-us-13102.json +1 -1
  442. package/blueprints/persistence-data-d1/contributions/user-stories/persistence-data-d1-us-13107.json +2 -2
  443. package/blueprints/persistence-data-postgres/contributions/requirements/persistence-data-postgres-req-001.json +1 -1
  444. package/blueprints/persistence-data-postgres/contributions/requirements/persistence-data-postgres-req-002.json +1 -1
  445. package/blueprints/persistence-data-postgres/contributions/requirements/persistence-data-postgres-req-003.json +1 -1
  446. package/blueprints/persistence-data-postgres/contributions/requirements/persistence-data-postgres-req-004.json +1 -1
  447. package/blueprints/persistence-data-postgres/contributions/requirements/persistence-data-postgres-req-005.json +1 -1
  448. package/blueprints/persistence-data-postgres/contributions/requirements/persistence-data-postgres-req-006.json +1 -1
  449. package/blueprints/persistence-data-postgres/contributions/requirements/persistence-data-postgres-req-007.json +1 -1
  450. package/blueprints/persistence-data-postgres/contributions/tacs/tac-2801-persistence-data-postgres-facade.json +6 -6
  451. package/blueprints/persistence-data-postgres/contributions/tacs/tac-2802-persistence-data-postgres-migration-runner.json +4 -4
  452. package/blueprints/persistence-data-postgres/contributions/tacs/tac-2803-persistence-data-postgres-transaction-helper.json +2 -2
  453. package/blueprints/persistence-data-postgres/contributions/tacs/tac-2804-persistence-data-postgres-recovery-runner.json +4 -4
  454. package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27101.json +1 -1
  455. package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27102.json +4 -4
  456. package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27103.json +1 -1
  457. package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27104.json +2 -2
  458. package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27105.json +1 -1
  459. package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27106.json +1 -1
  460. package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27107.json +1 -1
  461. package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27108.json +1 -1
  462. package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27109.json +1 -1
  463. package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27110.json +1 -1
  464. package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-001.json +1 -1
  465. package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-002.json +1 -1
  466. package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-003.json +1 -1
  467. package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-004.json +1 -1
  468. package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-005.json +1 -1
  469. package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-006.json +1 -1
  470. package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-007.json +1 -1
  471. package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-008.json +1 -1
  472. package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-009.json +1 -1
  473. package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-010.json +1 -1
  474. package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-011.json +1 -1
  475. package/blueprints/persistence-data-sqlite/contributions/tacs/tac-601-persistence-data-sqlite-store.json +6 -6
  476. package/blueprints/persistence-data-sqlite/contributions/tacs/tac-602-persistence-data-sqlite-migration-runner.json +2 -2
  477. package/blueprints/persistence-data-sqlite/contributions/tacs/tac-603-persistence-data-sqlite-migration-catalog.json +4 -4
  478. package/blueprints/persistence-data-sqlite/contributions/tacs/tac-604-persistence-data-sqlite-backup-runner.json +2 -2
  479. package/blueprints/persistence-data-sqlite/contributions/user-stories/persistence-data-sqlite-us-5101.json +2 -2
  480. package/blueprints/persistence-data-sqlite/contributions/user-stories/persistence-data-sqlite-us-5103.json +1 -1
  481. package/blueprints/persistence-data-sqlite/contributions/user-stories/persistence-data-sqlite-us-5104.json +1 -1
  482. package/blueprints/persistence-data-sqlite/contributions/user-stories/persistence-data-sqlite-us-5106.json +1 -1
  483. package/blueprints/persistence-data-sqlite/contributions/user-stories/persistence-data-sqlite-us-5110.json +2 -2
  484. package/blueprints/persistence-data-sqlite/contributions/user-stories/persistence-data-sqlite-us-5111.json +1 -1
  485. package/blueprints/platform-cloudflare-cron-triggers/contributions/requirements/platform-cloudflare-cron-triggers-req-001.json +1 -1
  486. package/blueprints/platform-cloudflare-cron-triggers/contributions/requirements/platform-cloudflare-cron-triggers-req-002.json +1 -1
  487. package/blueprints/platform-cloudflare-cron-triggers/contributions/requirements/platform-cloudflare-cron-triggers-req-003.json +1 -1
  488. package/blueprints/platform-cloudflare-cron-triggers/contributions/requirements/platform-cloudflare-cron-triggers-req-004.json +1 -1
  489. package/blueprints/platform-cloudflare-cron-triggers/contributions/tacs/tac-3301-platform-cloudflare-cron-triggers-scheduled-handler.json +6 -1
  490. package/blueprints/platform-cloudflare-cron-triggers/contributions/tacs/tac-3302-platform-cloudflare-cron-triggers-expression-router.json +9 -2
  491. package/blueprints/platform-cloudflare-cron-triggers/contributions/tacs/tac-3303-platform-cloudflare-cron-triggers-event-sink.json +6 -1
  492. package/blueprints/platform-cloudflare-cron-triggers/contributions/user-stories/platform-cloudflare-cron-triggers-us-32101.json +6 -6
  493. package/blueprints/platform-cloudflare-cron-triggers/contributions/user-stories/platform-cloudflare-cron-triggers-us-32102.json +5 -5
  494. package/blueprints/platform-cloudflare-cron-triggers/contributions/user-stories/platform-cloudflare-cron-triggers-us-32103.json +3 -3
  495. package/blueprints/platform-cloudflare-cron-triggers/contributions/user-stories/platform-cloudflare-cron-triggers-us-32104.json +4 -4
  496. package/blueprints/platform-cloudflare-cron-triggers/contributions/user-stories/platform-cloudflare-cron-triggers-us-32105.json +4 -4
  497. package/blueprints/platform-cloudflare-cron-triggers/contributions/user-stories/platform-cloudflare-cron-triggers-us-32106.json +4 -4
  498. package/blueprints/platform-cloudflare-cron-triggers/contributions/user-stories/platform-cloudflare-cron-triggers-us-32107.json +3 -3
  499. package/blueprints/platform-cloudflare-durable-objects/contributions/requirements/platform-cloudflare-durable-objects-req-001.json +1 -1
  500. package/blueprints/platform-cloudflare-durable-objects/contributions/requirements/platform-cloudflare-durable-objects-req-002.json +1 -1
  501. package/blueprints/platform-cloudflare-durable-objects/contributions/requirements/platform-cloudflare-durable-objects-req-003.json +1 -1
  502. package/blueprints/platform-cloudflare-durable-objects/contributions/requirements/platform-cloudflare-durable-objects-req-004.json +1 -1
  503. package/blueprints/platform-cloudflare-durable-objects/contributions/requirements/platform-cloudflare-durable-objects-req-005.json +1 -1
  504. package/blueprints/platform-cloudflare-durable-objects/contributions/requirements/platform-cloudflare-durable-objects-req-006.json +1 -1
  505. package/blueprints/platform-cloudflare-durable-objects/contributions/requirements/platform-cloudflare-durable-objects-req-007.json +1 -1
  506. package/blueprints/platform-cloudflare-durable-objects/contributions/requirements/platform-cloudflare-durable-objects-req-008.json +1 -1
  507. package/blueprints/platform-cloudflare-durable-objects/contributions/tacs/tac-3401-platform-cloudflare-durable-objects-namespace-facade.json +6 -4
  508. package/blueprints/platform-cloudflare-durable-objects/contributions/tacs/tac-3402-platform-cloudflare-durable-objects-single-cell-shape.json +6 -4
  509. package/blueprints/platform-cloudflare-durable-objects/contributions/tacs/tac-3403-platform-cloudflare-durable-objects-alarm-handler.json +6 -4
  510. package/blueprints/platform-cloudflare-durable-objects/contributions/tacs/tac-3404-platform-cloudflare-durable-objects-websocket-hub.json +6 -4
  511. package/blueprints/platform-cloudflare-durable-objects/contributions/tacs/tac-3405-platform-cloudflare-durable-objects-event-sink.json +3 -2
  512. package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33101.json +5 -5
  513. package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33102.json +4 -4
  514. package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33103.json +5 -5
  515. package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33104.json +5 -5
  516. package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33105.json +5 -5
  517. package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33106.json +4 -4
  518. package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33107.json +3 -3
  519. package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33108.json +5 -5
  520. package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33109.json +3 -3
  521. package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33110.json +4 -4
  522. package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33111.json +3 -3
  523. package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33112.json +3 -3
  524. package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33113.json +5 -5
  525. package/blueprints/platform-cloudflare-kv/contributions/requirements/platform-cloudflare-kv-req-001.json +1 -1
  526. package/blueprints/platform-cloudflare-kv/contributions/requirements/platform-cloudflare-kv-req-002.json +1 -1
  527. package/blueprints/platform-cloudflare-kv/contributions/requirements/platform-cloudflare-kv-req-003.json +1 -1
  528. package/blueprints/platform-cloudflare-kv/contributions/requirements/platform-cloudflare-kv-req-004.json +1 -1
  529. package/blueprints/platform-cloudflare-kv/contributions/requirements/platform-cloudflare-kv-req-005.json +1 -1
  530. package/blueprints/platform-cloudflare-kv/contributions/requirements/platform-cloudflare-kv-req-006.json +1 -1
  531. package/blueprints/platform-cloudflare-kv/contributions/requirements/platform-cloudflare-kv-req-007.json +1 -1
  532. package/blueprints/platform-cloudflare-kv/contributions/tacs/tac-3201-platform-cloudflare-kv-facade.json +3 -2
  533. package/blueprints/platform-cloudflare-kv/contributions/tacs/tac-3202-platform-cloudflare-kv-cache-aside.json +3 -2
  534. package/blueprints/platform-cloudflare-kv/contributions/tacs/tac-3203-platform-cloudflare-kv-event-sink.json +3 -2
  535. package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31101.json +4 -4
  536. package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31102.json +3 -3
  537. package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31103.json +4 -4
  538. package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31104.json +4 -4
  539. package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31105.json +4 -4
  540. package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31106.json +3 -3
  541. package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31107.json +3 -3
  542. package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31108.json +3 -3
  543. package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31109.json +4 -4
  544. package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31110.json +5 -5
  545. package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31111.json +5 -5
  546. package/blueprints/platform-docker-compose-host/contributions/requirements/platform-docker-compose-host-req-001.json +1 -1
  547. package/blueprints/platform-docker-compose-host/contributions/requirements/platform-docker-compose-host-req-002.json +1 -1
  548. package/blueprints/platform-docker-compose-host/contributions/requirements/platform-docker-compose-host-req-003.json +1 -1
  549. package/blueprints/platform-docker-compose-host/contributions/requirements/platform-docker-compose-host-req-004.json +1 -1
  550. package/blueprints/platform-docker-compose-host/contributions/requirements/platform-docker-compose-host-req-005.json +1 -1
  551. package/blueprints/platform-docker-compose-host/contributions/requirements/platform-docker-compose-host-req-006.json +1 -1
  552. package/blueprints/platform-docker-compose-host/contributions/requirements/platform-docker-compose-host-req-007.json +1 -1
  553. package/blueprints/platform-docker-compose-host/contributions/tacs/tac-3901-platform-docker-compose-host-compose-layout.json +3 -2
  554. package/blueprints/platform-docker-compose-host/contributions/tacs/tac-3902-platform-docker-compose-host-secrets-mount.json +3 -2
  555. package/blueprints/platform-docker-compose-host/contributions/tacs/tac-3903-platform-docker-compose-host-healthcheck-lint.json +3 -2
  556. package/blueprints/platform-docker-compose-host/contributions/tacs/tac-3904-platform-docker-compose-host-reverse-proxy-artefact.json +3 -2
  557. package/blueprints/platform-docker-compose-host/contributions/user-stories/platform-docker-compose-host-us-38101.json +5 -5
  558. package/blueprints/platform-docker-compose-host/contributions/user-stories/platform-docker-compose-host-us-38102.json +4 -4
  559. package/blueprints/platform-docker-compose-host/contributions/user-stories/platform-docker-compose-host-us-38103.json +4 -4
  560. package/blueprints/platform-docker-compose-host/contributions/user-stories/platform-docker-compose-host-us-38104.json +4 -4
  561. package/blueprints/platform-docker-compose-host/contributions/user-stories/platform-docker-compose-host-us-38105.json +3 -3
  562. package/blueprints/platform-docker-compose-host/contributions/user-stories/platform-docker-compose-host-us-38106.json +3 -3
  563. package/blueprints/platform-docker-compose-host/contributions/user-stories/platform-docker-compose-host-us-38107.json +3 -3
  564. package/blueprints/platform-docker-compose-host/contributions/user-stories/platform-docker-compose-host-us-38108.json +3 -3
  565. package/blueprints/platform-docker-compose-host/contributions/user-stories/platform-docker-compose-host-us-38109.json +3 -3
  566. package/blueprints/platform-docker-compose-host/contributions/user-stories/platform-docker-compose-host-us-38110.json +3 -3
  567. package/blueprints/security-auth-clerk/contributions/requirements/security-auth-clerk-req-001.json +1 -1
  568. package/blueprints/security-auth-clerk/contributions/requirements/security-auth-clerk-req-002.json +1 -1
  569. package/blueprints/security-auth-clerk/contributions/requirements/security-auth-clerk-req-003.json +1 -1
  570. package/blueprints/security-auth-clerk/contributions/requirements/security-auth-clerk-req-004.json +1 -1
  571. package/blueprints/security-auth-clerk/contributions/requirements/security-auth-clerk-req-006.json +1 -1
  572. package/blueprints/security-auth-clerk/contributions/requirements/security-auth-clerk-req-010.json +1 -1
  573. package/blueprints/security-auth-clerk/contributions/requirements/security-auth-clerk-req-011.json +1 -1
  574. package/blueprints/security-auth-clerk/contributions/tacs/tac-1001-security-auth-clerk-middleware.json +6 -6
  575. package/blueprints/security-auth-clerk/contributions/tacs/tac-1002-security-auth-clerk-authorisation-adapter.json +8 -3
  576. package/blueprints/security-auth-clerk/contributions/tacs/tac-1003-security-auth-clerk-session-verifier.json +8 -8
  577. package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9102.json +1 -1
  578. package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9108.json +1 -1
  579. package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9112.json +6 -6
  580. package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9113.json +6 -6
  581. package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-002.json +1 -1
  582. package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-003.json +1 -1
  583. package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-004.json +1 -1
  584. package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-005.json +1 -1
  585. package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-006.json +1 -1
  586. package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-011.json +1 -1
  587. package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-013.json +1 -1
  588. package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-014.json +1 -1
  589. package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-015.json +1 -1
  590. package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-016.json +1 -1
  591. package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-017.json +1 -1
  592. package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-018.json +1 -1
  593. package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-019.json +1 -1
  594. package/blueprints/security-auth-keycloak/contributions/tacs/tac-1201-security-auth-keycloak-discovery-client.json +10 -10
  595. package/blueprints/security-auth-keycloak/contributions/tacs/tac-1202-security-auth-keycloak-jwt-verifier.json +8 -8
  596. package/blueprints/security-auth-keycloak/contributions/tacs/tac-1203-security-auth-keycloak-introspection-client.json +8 -8
  597. package/blueprints/security-auth-keycloak/contributions/tacs/tac-1204-security-auth-keycloak-provider-router.json +6 -6
  598. package/blueprints/security-auth-keycloak/contributions/tacs/tac-1205-security-auth-keycloak-role-adapter.json +4 -4
  599. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11102.json +1 -1
  600. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11103.json +2 -2
  601. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11104.json +1 -1
  602. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11106.json +3 -3
  603. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11111.json +2 -2
  604. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11114.json +1 -1
  605. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11115.json +5 -5
  606. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11116.json +7 -7
  607. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11117.json +7 -7
  608. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11118.json +7 -7
  609. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11119.json +7 -7
  610. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11120.json +6 -6
  611. package/blueprints/security-auth-magic-link/contributions/requirements/security-auth-magic-link-req-002.json +1 -1
  612. package/blueprints/security-auth-magic-link/contributions/requirements/security-auth-magic-link-req-003.json +1 -1
  613. package/blueprints/security-auth-magic-link/contributions/requirements/security-auth-magic-link-req-004.json +1 -1
  614. package/blueprints/security-auth-magic-link/contributions/requirements/security-auth-magic-link-req-005.json +1 -1
  615. package/blueprints/security-auth-magic-link/contributions/requirements/security-auth-magic-link-req-008.json +1 -1
  616. package/blueprints/security-auth-magic-link/contributions/requirements/security-auth-magic-link-req-009.json +1 -1
  617. package/blueprints/security-auth-magic-link/contributions/requirements/security-auth-magic-link-req-010.json +1 -1
  618. package/blueprints/security-auth-magic-link/contributions/requirements/security-auth-magic-link-req-011.json +1 -1
  619. package/blueprints/security-auth-magic-link/contributions/tacs/tac-501-security-auth-magic-link-manager.json +6 -6
  620. package/blueprints/security-auth-magic-link/contributions/tacs/tac-502-security-auth-magic-link-session-manager.json +6 -6
  621. package/blueprints/security-auth-magic-link/contributions/tacs/tac-503-security-auth-magic-link-login-routes.json +10 -10
  622. package/blueprints/security-auth-magic-link/contributions/tacs/tac-504-security-auth-magic-link-email-delivery-adapter.json +2 -2
  623. package/blueprints/security-auth-magic-link/contributions/tacs/tac-505-security-auth-magic-link-principal-registry.json +2 -2
  624. package/blueprints/security-auth-magic-link/contributions/user-stories/security-auth-magic-link-us-3111.json +2 -2
  625. package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-002.json +1 -1
  626. package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-003.json +1 -1
  627. package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-005.json +1 -1
  628. package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-006.json +1 -1
  629. package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-008.json +1 -1
  630. package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-009.json +1 -1
  631. package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-011.json +1 -1
  632. package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-012.json +1 -1
  633. package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-013.json +1 -1
  634. package/blueprints/security-auth-oauth2/contributions/tacs/tac-1101-security-auth-oauth2-flow-controller.json +24 -14
  635. package/blueprints/security-auth-oauth2/contributions/tacs/tac-1102-security-auth-oauth2-provider-adapter.json +4 -4
  636. package/blueprints/security-auth-oauth2/contributions/tacs/tac-1103-security-auth-oauth2-session-bridge.json +10 -10
  637. package/blueprints/security-auth-oauth2/contributions/tacs/tac-1104-security-auth-oauth2-provider-selector.json +8 -3
  638. package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10111.json +1 -1
  639. package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10112.json +1 -1
  640. package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10114.json +5 -5
  641. package/blueprints/security-secrets-management/contributions/requirements/security-secrets-management-req-001.json +1 -1
  642. package/blueprints/security-secrets-management/contributions/requirements/security-secrets-management-req-002.json +1 -1
  643. package/blueprints/security-secrets-management/contributions/requirements/security-secrets-management-req-003.json +1 -1
  644. package/blueprints/security-secrets-management/contributions/requirements/security-secrets-management-req-004.json +1 -1
  645. package/blueprints/security-secrets-management/contributions/requirements/security-secrets-management-req-005.json +1 -1
  646. package/blueprints/security-secrets-management/contributions/requirements/security-secrets-management-req-006.json +1 -1
  647. package/blueprints/security-secrets-management/contributions/requirements/security-secrets-management-req-007.json +1 -1
  648. package/blueprints/security-secrets-management/contributions/requirements/security-secrets-management-req-008.json +1 -1
  649. package/blueprints/security-secrets-management/contributions/requirements/security-secrets-management-req-009.json +1 -1
  650. package/blueprints/security-secrets-management/contributions/tacs/tac-901-security-secrets-management-manager-client.json +8 -8
  651. package/blueprints/security-secrets-management/contributions/tacs/tac-902-security-secrets-management-manifest.json +4 -4
  652. package/blueprints/security-secrets-management/contributions/tacs/tac-903-security-secrets-management-env-reflector.json +4 -4
  653. package/blueprints/security-secrets-management/contributions/tacs/tac-904-security-secrets-management-rotation-gate.json +8 -8
  654. package/blueprints/security-secrets-management/contributions/tacs/tac-905-security-secrets-management-agent-cli.json +4 -4
  655. package/fixtures/canary-manifest.json +9 -9
  656. package/guidance/define-draft-shapes.md +89 -0
  657. package/guidance/define-intake.md +97 -0
  658. package/guidance/define-intent.md +107 -0
  659. package/guidance/define-litmus.md +102 -0
  660. package/guidance/discover-prototype.md +67 -0
  661. package/guidance/discovery-prototypes.md +69 -0
  662. package/guidance/harness-template.md +34 -0
  663. package/guidance/managed/agent-instructions-block.hash +1 -1
  664. package/guidance/managed/agent-instructions-block.md +34 -0
  665. package/guidance/manifest.json +10 -2
  666. package/package.json +1 -1
  667. package/rcf/adrs/adr-4124-define-freeze-verb.json +30 -0
  668. package/rcf/adrs/adr-4126-persona-tagged-blockers-two-levels.json +40 -0
  669. package/rcf/adrs/adr-4127-readiness-tab-order-and-register.json +40 -0
  670. package/rcf/adrs/adr-4129-questions-harness-driven-loop.json +25 -0
  671. package/rcf/adrs/adr-4130-intake-harness-split-tool-scanned.json +20 -0
  672. package/rcf/adrs/adr-4131-gates-bite-ack-recorded-override.json +30 -0
  673. package/rcf/adrs/adr-4132-prototypes-in-discovery-as-evidence.json +20 -0
  674. package/rcf/adrs/adr-4133-dag-dependency-depth-layout.json +40 -0
  675. package/rcf/adrs/adr-4134-index-json-route.json +35 -0
  676. package/rcf/adrs/adr-4135-readiness-po-register-and-adapter.json +35 -0
  677. package/rcf/adrs/adr-4136-embedding-host-fixture.json +35 -0
  678. package/rcf/code-nodes/cn-725.json +18 -2
  679. package/rcf/code-nodes/cn-726.json +10 -2
  680. package/rcf/code-nodes/cn-727.json +13 -4
  681. package/rcf/code-nodes/cn-728.json +18 -2
  682. package/rcf/code-nodes/cn-729.json +10 -2
  683. package/rcf/code-nodes/cn-730.json +13 -3
  684. package/rcf/code-nodes/cn-731.json +20 -0
  685. package/rcf/code-nodes/cn-732.json +14 -0
  686. package/rcf/code-nodes/cn-733.json +14 -0
  687. package/rcf/code-nodes/cn-734.json +14 -0
  688. package/rcf/code-nodes/cn-735.json +20 -0
  689. package/rcf/code-nodes/cn-736.json +14 -0
  690. package/rcf/code-nodes/cn-737.json +14 -0
  691. package/rcf/code-nodes/cn-738.json +14 -0
  692. package/rcf/code-nodes/cn-739.json +18 -0
  693. package/rcf/code-nodes/cn-740.json +19 -0
  694. package/rcf/code-nodes/cn-741.json +16 -0
  695. package/rcf/code-nodes/cn-742.json +16 -0
  696. package/rcf/code-nodes/cn-743.json +15 -0
  697. package/rcf/code-nodes/cn-744.json +22 -0
  698. package/rcf/code-nodes/cn-745.json +16 -0
  699. package/rcf/code-nodes/cn-746.json +14 -0
  700. package/rcf/code-nodes/cn-747.json +18 -0
  701. package/rcf/code-nodes/cn-748.json +16 -0
  702. package/rcf/code-nodes/cn-749.json +16 -0
  703. package/rcf/code-nodes/cn-750.json +15 -0
  704. package/rcf/code-nodes/cn-751.json +18 -0
  705. package/rcf/code-nodes/cn-752.json +14 -0
  706. package/rcf/code-nodes/cn-753.json +19 -0
  707. package/rcf/code-nodes/cn-754.json +17 -0
  708. package/rcf/code-nodes/cn-755.json +14 -0
  709. package/rcf/code-nodes/cn-756.json +15 -0
  710. package/rcf/code-nodes/cn-757.json +21 -0
  711. package/rcf/code-nodes/cn-758.json +16 -0
  712. package/rcf/code-nodes/cn-759.json +21 -0
  713. package/rcf/code-nodes/cn-760.json +19 -0
  714. package/rcf/code-nodes/cn-761.json +16 -0
  715. package/rcf/code-nodes/cn-762.json +18 -0
  716. package/rcf/code-nodes/cn-763.json +18 -0
  717. package/rcf/code-nodes/cn-764.json +15 -0
  718. package/rcf/code-nodes/cn-765.json +23 -0
  719. package/rcf/code-nodes/cn-766.json +17 -0
  720. package/rcf/code-nodes/cn-767.json +17 -0
  721. package/rcf/code-nodes/cn-768.json +19 -0
  722. package/rcf/code-nodes/cn-769.json +17 -0
  723. package/rcf/code-nodes/cn-770.json +18 -0
  724. package/rcf/fbs/fbs-196.json +13 -5
  725. package/rcf/fbs/fbs-198.json +42 -0
  726. package/rcf/fbs/fbs-199.json +59 -0
  727. package/rcf/fbs/fbs-200.json +46 -0
  728. package/rcf/fbs/fbs-201.json +49 -0
  729. package/rcf/fbs/fbs-202.json +170 -0
  730. package/rcf/fbs/fbs-203.json +100 -0
  731. package/rcf/requirements/req-002.json +2 -2
  732. package/rcf/requirements/req-173.json +2 -2
  733. package/rcf/requirements/req-174.json +10 -4
  734. package/rcf/requirements/req-175.json +10 -4
  735. package/rcf/requirements/req-176.json +25 -0
  736. package/rcf/requirements/req-177.json +31 -0
  737. package/rcf/requirements/req-178.json +31 -0
  738. package/rcf/requirements/req-179.json +31 -0
  739. package/rcf/requirements/req-180.json +31 -0
  740. package/rcf/requirements/req-181.json +31 -0
  741. package/rcf/requirements/req-182.json +25 -0
  742. package/rcf/requirements/req-186.json +25 -0
  743. package/rcf/requirements/req-187.json +31 -0
  744. package/rcf/requirements/req-188.json +25 -0
  745. package/rcf/tacs/tac-001.json +7 -7
  746. package/rcf/tacs/tac-002.json +23 -23
  747. package/rcf/tacs/tac-003.json +5 -5
  748. package/rcf/tacs/tac-004.json +9 -9
  749. package/rcf/tacs/tac-005.json +7 -7
  750. package/rcf/tacs/tac-006.json +21 -21
  751. package/rcf/tacs/tac-007.json +7 -7
  752. package/rcf/tacs/tac-008.json +7 -7
  753. package/rcf/tacs/tac-4101-feedback-cli.json +5 -5
  754. package/rcf/tacs/tac-4102-feedback-store.json +9 -9
  755. package/rcf/tacs/tac-4103-feedback-redact.json +5 -5
  756. package/rcf/tacs/tac-4104-feedback-fingerprint.json +3 -3
  757. package/rcf/tacs/tac-4105-feedback-render.json +7 -7
  758. package/rcf/tacs/tac-4106-feedback-destination.json +5 -5
  759. package/rcf/tacs/tac-4107-feedback-gh.json +7 -7
  760. package/rcf/tacs/tac-4108-feedback-hook.json +7 -7
  761. package/rcf/tacs/tac-4121-define-ledgers.json +16 -3
  762. package/rcf/tacs/tac-4122-define-gates.json +69 -5
  763. package/rcf/tacs/tac-4123-define-readiness.json +66 -4
  764. package/rcf/tacs/tac-4124-define-freeze.json +28 -0
  765. package/rcf/tacs/tac-4125-build-bundle-refuse-override-skip.json +43 -0
  766. package/rcf/tacs/tac-4126-define-validate-findings.json +32 -0
  767. package/rcf/tacs/tac-4127-readiness-view.json +49 -0
  768. package/rcf/tacs/tac-4128-define-guidance.json +59 -0
  769. package/rcf/tacs/tac-4129-define-questions.json +45 -0
  770. package/rcf/tacs/tac-4130-define-intake-brief.json +35 -0
  771. package/rcf/tacs/tac-4131-build-dag-view.json +39 -0
  772. package/rcf/tacs/tac-4132-id-lookup.json +42 -0
  773. package/rcf/tacs/tac-4133-readiness-po-layer.json +37 -0
  774. package/rcf/tacs/tac-4134-wespa-host-fixture.json +54 -0
  775. package/rcf/test-suites/ts-016.json +3 -3
  776. package/rcf/test-suites/ts-215.json +148 -4
  777. package/rcf/test-suites/ts-216.json +19 -3
  778. package/rcf/test-suites/ts-218.json +78 -0
  779. package/rcf/test-suites/ts-219.json +70 -0
  780. package/rcf/test-suites/ts-220.json +78 -0
  781. package/rcf/test-suites/ts-221.json +78 -0
  782. package/rcf/test-suites/ts-222.json +100 -0
  783. package/rcf/test-suites/ts-223.json +94 -0
  784. package/rcf/test-suites/ts-224.json +70 -0
  785. package/rcf/test-suites/ts-225.json +78 -0
  786. package/rcf/test-suites/ts-226.json +158 -0
  787. package/rcf/test-suites/ts-227.json +38 -0
  788. package/rcf/test-suites/ts-228.json +86 -0
  789. package/rcf/test-suites/ts-229.json +83 -0
  790. package/rcf/test-suites/ts-230.json +76 -0
  791. package/rcf/test-suites/ts-231.json +104 -0
  792. package/rcf/test-suites/ts-232.json +109 -0
  793. package/rcf/test-suites/ts-233.json +61 -0
  794. package/rcf/test-suites/ts-234.json +53 -0
  795. package/rcf/test-suites/ts-235.json +53 -0
  796. package/rcf/user-stories/us-17302.json +50 -0
  797. package/rcf/user-stories/us-17401.json +14 -2
  798. package/rcf/user-stories/us-17402.json +55 -0
  799. package/rcf/user-stories/us-17403.json +60 -0
  800. package/rcf/user-stories/us-17404.json +51 -0
  801. package/rcf/user-stories/us-17405.json +61 -0
  802. package/rcf/user-stories/us-17406.json +51 -0
  803. package/rcf/user-stories/us-17502.json +60 -0
  804. package/rcf/user-stories/us-17503.json +65 -0
  805. package/rcf/user-stories/us-17504.json +46 -0
  806. package/rcf/user-stories/us-17601.json +58 -0
  807. package/rcf/user-stories/us-17702.json +51 -0
  808. package/rcf/user-stories/us-17802.json +40 -0
  809. package/rcf/user-stories/us-17902.json +46 -0
  810. package/rcf/user-stories/us-18001.json +55 -0
  811. package/rcf/user-stories/us-18002.json +35 -0
  812. package/rcf/user-stories/us-18101.json +35 -0
  813. package/rcf/user-stories/us-18202.json +40 -0
  814. package/rcf/user-stories/us-18601.json +55 -0
  815. package/rcf/user-stories/us-18602.json +50 -0
  816. package/rcf/user-stories/us-18603.json +45 -0
  817. package/rcf/user-stories/us-18701.json +50 -0
  818. package/rcf/user-stories/us-18702.json +50 -0
  819. package/rcf/user-stories/us-18801.json +45 -0
  820. package/rcf/user-stories/us-204.json +59 -0
  821. package/rcf/user-stories/us-205.json +64 -0
  822. package/rcf/user-stories/us-206.json +54 -0
  823. package/releases/releases.yaml +21 -1
  824. package/src/blueprint/consistency-lint.js +72 -3
  825. package/src/cli/build.js +206 -3
  826. package/src/cli/freeze.js +780 -0
  827. package/src/cli/help.js +12 -0
  828. package/src/cli/ledger.js +228 -12
  829. package/src/cli/questions.js +288 -0
  830. package/src/cli/readiness.js +393 -74
  831. package/src/cli/validate.js +8 -0
  832. package/src/cli/view.js +29 -0
  833. package/src/define/concern-catalogue.js +130 -0
  834. package/src/define/freeze-record.js +104 -15
  835. package/src/define/ledgers.js +210 -11
  836. package/src/define/probe-runner.js +55 -0
  837. package/src/define/validate-findings.js +256 -0
  838. package/src/intake/index.js +1 -1
  839. package/src/intake/orchestrator.js +117 -0
  840. package/src/mcp/tools.js +354 -0
  841. package/src/query/delta.js +6 -0
  842. package/src/query/gates.js +1258 -48
  843. package/src/query/index.js +22 -3
  844. package/src/query/questions.js +438 -0
  845. package/src/query/readiness.js +427 -9
  846. package/src/query/refuse-on-admissibility.js +137 -4
  847. package/src/ruleset/ruleset.json +35 -0
  848. package/src/server/index.js +24 -2
  849. package/src/server/routes.js +68 -1
  850. package/src/setup/identity-seed.js +17 -0
  851. package/src/view/build-dag.js +563 -0
  852. package/src/view/components/badge.js +41 -0
  853. package/src/view/components/diff.js +72 -0
  854. package/src/view/components/doc-row.js +62 -0
  855. package/src/view/components/empty-state.js +35 -0
  856. package/src/view/components/entity-selector.js +137 -0
  857. package/src/view/components/filter-bar.js +97 -0
  858. package/src/view/components/findings-list.js +49 -0
  859. package/src/view/components/index.js +12 -0
  860. package/src/view/components/pill.js +46 -0
  861. package/src/view/components/sub-tab-strip.js +43 -0
  862. package/src/view/components/toast.js +25 -0
  863. package/src/view/components-fixture.js +265 -0
  864. package/src/view/doc-renderers/architecture.js +304 -0
  865. package/src/view/doc-renderers/build.js +160 -0
  866. package/src/view/doc-renderers/index.js +2 -0
  867. package/src/view/doc-renderers/prd.js +35 -6
  868. package/src/view/html-page.js +700 -602
  869. package/src/view/index.js +96 -3
  870. package/src/view/live-client.js +39 -6
  871. package/src/view/needs-work.js +79 -0
  872. package/src/view/page-init.js +2193 -0
  873. package/src/view/readiness/phrasebook.js +115 -0
  874. package/src/view/readiness/po-layer.js +288 -0
  875. package/src/view/readiness/question-adapter.js +329 -0
  876. package/src/view/readiness/stage-legend.js +71 -0
  877. package/src/view/readiness.js +505 -0
  878. package/src/view/style.css +2017 -382
  879. package/src/view/test-host/embed-client.js +121 -0
  880. package/src/view/test-host/fixture.js +183 -0
  881. package/src/view/test-host/lints.js +220 -0
  882. package/src/view/view-index.js +323 -0
@@ -0,0 +1,102 @@
1
+ # Litmus: landing n fresh-context readings at the current hash
2
+
3
+ This document is the content of the `rcf_define_litmus` MCP prompt
4
+ served argument-free by the server. The agent reads it once per
5
+ session and runs the litmus pass when the operator or the readiness
6
+ verb asks for it.
7
+
8
+ ## What a litmus reading is
9
+
10
+ A litmus reading is a probe-ledger entry whose `finding` field begins
11
+ `litmus:<reader>:` and whose text includes the current litmus hash.
12
+ It is written by `rcf define ledger probes add` just like any other
13
+ probe-ledger entry; the `litmus:` prefix is what the verb reads back
14
+ when it counts "distinct readers at this hash".
15
+
16
+ The litmus hash is the current tree hash computed with the probes
17
+ ledger excluded (ADR-4131 extended, 0.30.0 PR 7 R9). The probes
18
+ ledger is inside `tree.currentTreeHash` by ADR-4120, so a reader
19
+ writing an entry that references `currentTreeHash` would shift the
20
+ hash the reader just attested to. The litmus hash is the content-
21
+ stable version: writing to the probes ledger does not change it, so n
22
+ readers can land their entries at the same hash. Writes to the brief,
23
+ decisions or concerns ledgers do change the litmus hash the same way
24
+ they change `currentTreeHash`; those changes mean the content under
25
+ review has changed and stale litmus readings fall out of the count.
26
+ This trade-off is intentional: litmus readings do not attest to
27
+ probe findings written after them, because probe entries are
28
+ themselves readings.
29
+
30
+ The number of distinct readers is counted across the probe ledger; a
31
+ reader id appears at most once in the count regardless of how many
32
+ `litmus:<reader>:*` entries it has written.
33
+
34
+ ## When to run
35
+
36
+ Run this prompt whenever a verb reports the shortfall:
37
+
38
+ - `rcf define readiness --litmus <n>` exits 4 and prints a `[warn]`
39
+ line naming the current hash and the number of distinct readers
40
+ found. The shortfall is the number of fresh-context readers you
41
+ still owe before the verb will exit 0.
42
+ - `rcf define freeze --litmus <n>` refuses (exit 4) with the same
43
+ reason and writes nothing. The freeze is only legal when n distinct
44
+ readers have attested at the hash the verb was asked to freeze.
45
+
46
+ The harness is the runner. rcf-lite does not spawn processes and does
47
+ not make network calls at runtime. You spawn the readers; they land
48
+ the entries.
49
+
50
+ ## The shape
51
+
52
+ Each reading is one `rcf define ledger probes add` call:
53
+
54
+ ```
55
+ rcf define ledger probes add \
56
+ --req <reqId> \
57
+ --finding "litmus:<reader>: <one-line observation at hash <hash>>" \
58
+ --severity low
59
+ ```
60
+
61
+ Fill in:
62
+
63
+ - `<reader>` is a short id for this reader. Make it unique per fresh
64
+ context (for example `reader-01`, `reader-02`). The verb counts
65
+ distinct readers by this id.
66
+ - `<reqId>` is the REQ the reader is probing. On a readiness pass this
67
+ is typically the first failing REQ or a REQ the operator named; on a
68
+ freeze the ids come from the brief.
69
+ - `<hash>` is the current litmus hash. Read it from
70
+ `rcf define readiness --json` under `tree.litmusHash` (or from the
71
+ `[warn]` line the verb printed; the warn line names the litmus hash
72
+ explicitly).
73
+
74
+ A reading is "at the hash" when the `hash` substring appears anywhere
75
+ in the finding text, not in a separate field. Keep the hash in the
76
+ finding text so the entry is self-describing.
77
+
78
+ ## The loop
79
+
80
+ 1. Read `tree.litmusHash` from `rcf define readiness --json`.
81
+ 2. Spawn n fresh-context readers (one claude session per reader is
82
+ enough; a reader must not share context with another).
83
+ 3. Each reader lands one `litmus:<reader>:` probe-ledger entry at the
84
+ litmus hash. The entry's finding text includes the litmus hash and
85
+ one observation; the reader does not edit the tree.
86
+ 4. Re-run the verb that asked for `--litmus <n>`. The count is now
87
+ n and the verb exits 0 (readiness) or writes the freeze record
88
+ (freeze).
89
+
90
+ Writes to the probes ledger (adding litmus readings is itself one)
91
+ do not shift the litmus hash, so n readers landing their entries in
92
+ sequence all pin to the same hash and all count. A write to the
93
+ brief, decisions or concerns ledgers (changing the content under
94
+ review) does shift the litmus hash and makes earlier readings stale.
95
+ Hand the readers a hash that will still be current when the last
96
+ reading lands; a short freeze-prep window is the common case.
97
+
98
+ ## When n distinct readers have attested
99
+
100
+ The verb exits 0. Nothing else is said; the readings stay in the probe
101
+ ledger. A later tree change makes them stale and the next invocation
102
+ of the verb will require fresh readings at the new hash.
@@ -0,0 +1,67 @@
1
+ # Recording a prototype in DISCOVERY
2
+
3
+ This document is the content of the `rcf_discover_prototype` MCP
4
+ prompt served argument-free by the server. It walks the agent
5
+ through the only path a prototype takes into the chain: as evidence,
6
+ with code burned, and with salvage by re-derivation.
7
+
8
+ The posture is ADR-4132. The code of a prototype is reference only;
9
+ no shape in the project tree is promoted from it. The whole worth of
10
+ the method is that every requirement, story, AC and shape has a
11
+ known origin, and a promotion path would smuggle unowned choices
12
+ past the chain.
13
+
14
+ ## What a prototype is
15
+
16
+ An elicitation instrument built in DISCOVERY to learn what to ask.
17
+ It is recorded in the intake classification as an artefact of kind
18
+ `other` with the prototype's name.
19
+
20
+ ## What is recorded
21
+
22
+ The prototype's outputs are brief statements with source spans
23
+ `prototype:<name>:<observation>`:
24
+
25
+ - Capabilities: what people did with it.
26
+ - Constraints: what they refused or asked for; what they would not
27
+ do without.
28
+ - Open questions: what the prototype raised that the brief had not.
29
+ - Out of scope: what the prototype was never allowed to do.
30
+
31
+ Reactions that need a ruling become decisions with options and a
32
+ default (the enumerated form D7 reads).
33
+
34
+ ## What is burned
35
+
36
+ The code. The burn is one brief statement, kind `constraint`:
37
+
38
+ > Prototype <name> (commit <sha>, burned <date>) is reference only;
39
+ > no code from it is promoted.
40
+
41
+ The build that follows starts from the tree, never from the
42
+ prototype. The constraint sits beside the capabilities and open
43
+ questions the prototype produced; the chain reads them all through
44
+ the same `brief:openQuestions` / `skeleton:resolvedBy` loop as any
45
+ document.
46
+
47
+ ## Salvage by re-derivation
48
+
49
+ The only middle path. Extract requirements from a promising
50
+ prototype as evidence (statements sourced to its files and lines),
51
+ run them through intake and the PO loop like any document, and
52
+ rebuild from the tree. The prototype is a quarry.
53
+
54
+ "Grow the prototype" is rejected. The provenance reason is the one
55
+ Dex's note gives: a shape reaching the project tree without the PO
56
+ loop that owns every settled shape is a shape without a known
57
+ origin, and no amount of auditing after the fact can restore the
58
+ owner.
59
+
60
+ ## The managed-block rule
61
+
62
+ A statement sourced to `prototype:` is evidence. A document that
63
+ cites prototype code as its implementation is a D2 finding the
64
+ engineer resolves by re-deriving. That rule is prose; no check is
65
+ added in 0.30.0, and the engineer running D2 sees the finding
66
+ through the same `skeleton:resolvedBy` surface that reports every
67
+ other pointer.
@@ -0,0 +1,69 @@
1
+ # DISCOVERY home for prototypes
2
+
3
+ This document is the doctrine and the ledger conventions for
4
+ prototypes. It is served under the slug `discovery-prototypes`,
5
+ through `rcf://docs/discovery-prototypes`, and through the
6
+ `rcf_discover_prototype` prompt that wraps it with the walk.
7
+
8
+ The posture is ADR-4132: prototypes live in DISCOVERY as evidence;
9
+ code is burned; salvage is re-derivation.
10
+
11
+ ## What a prototype is
12
+
13
+ An elicitation instrument built in DISCOVERY to learn what to ask.
14
+ It is recorded in the intake classification as an artefact of kind
15
+ `other` with the prototype's name. The prototype belongs to
16
+ DISCOVERY, not DEFINE: it is a tool for learning, not a draft of
17
+ what gets built.
18
+
19
+ ## What is recorded
20
+
21
+ Its outputs are brief statements with source spans
22
+ `prototype:<name>:<observation>`:
23
+
24
+ - Capabilities: what people did with it.
25
+ - Constraints: what they refused or asked for.
26
+ - Open questions: what it raised that the brief had not.
27
+ - Out of scope: what it was never allowed to do.
28
+
29
+ Reactions that need a ruling become decisions with options and a
30
+ default. The intent-complete loop then reads one check
31
+ (`brief:openQuestions`) and the owner answers in one place; the
32
+ prototype's observations ride the same ladder as every other brief
33
+ statement.
34
+
35
+ ## What is burned
36
+
37
+ The code. The burn is one brief statement, kind `constraint`:
38
+
39
+ > Prototype <name> (commit <sha>, burned <date>) is reference only;
40
+ > no code from it is promoted.
41
+
42
+ The build that follows starts from the tree, never from the
43
+ prototype. The brief ledger holds the burn statement alongside the
44
+ other statements the prototype produced; nothing further is said in
45
+ code or in configuration.
46
+
47
+ ## Salvage by re-derivation
48
+
49
+ The only middle path. Extract requirements from a promising
50
+ prototype as evidence (statements sourced to its files and lines),
51
+ run them through intake and the PO loop like any document, and
52
+ rebuild from the tree. The prototype is a quarry.
53
+
54
+ "Grow the prototype" is named here as rejected, with the provenance
55
+ reason from Dex's note: a shape reaching the project tree without
56
+ the PO loop that owns every settled shape is a shape without a known
57
+ origin, and no amount of auditing after the fact can restore the
58
+ owner.
59
+
60
+ ## The managed-block rule
61
+
62
+ The managed block gains one rule the harness picks up through
63
+ `rcf doctor`:
64
+
65
+ > A statement sourced to `prototype:` is evidence. A document that
66
+ > cites prototype code as its implementation is a D2 finding the
67
+ > engineer resolves by re-deriving.
68
+
69
+ That rule is prose; no check is added in 0.30.0.
@@ -406,6 +406,40 @@ queue orchestration, PR authoring and bug triage. The
406
406
  for elicitation, AC coverage depth and conversation integrity. Run `rcf
407
407
  guidance` with no arguments to list every method document the installed
408
408
  package ships.
409
+
410
+ ### Product-owner intent sessions
411
+
412
+ A product-owner session starts with `rcf define questions --persona
413
+ productOwner` (or the `rcf_define_questions` MCP tool) and ends at
414
+ `Intent-complete: yes`. Every answer lands through the write-back the
415
+ question carries, then readiness recomputes; nothing about the owner's
416
+ intent lives only in a chat. The full loop content is in `rcf guidance
417
+ define-intent` and the `rcf_define_intent` prompt. Never improvise a
418
+ PO loop; the questions and their write-backs are the method.
419
+
420
+ ### Prototype rule
421
+
422
+ A prototype is engineer entry material, not a product-owner blocker.
423
+ When the tree reaches `levels.intentComplete.ok`, the agent may
424
+ pre-populate `[draft]` entities, TAC stubs and interfaces so the
425
+ engineer has a starting point; those drafts never re-open the PO
426
+ loop and never block a freeze. If the owner asks for a visible
427
+ prototype before intent-complete, say so (the method is finished the
428
+ intent first) and offer to continue the intent loop; never produce a
429
+ prototype that bypasses the readiness verdict.
430
+
431
+ ### Prototypes in DISCOVERY (ADR-4132)
432
+
433
+ A statement sourced to `prototype:<name>:<observation>` is evidence,
434
+ not implementation. A document that cites prototype code as its
435
+ implementation is a D2 finding the engineer resolves by re-deriving:
436
+ extract requirements from the prototype as evidence, run them through
437
+ intake and the PO loop like any document, and rebuild from the tree.
438
+ The prototype's code is burned (one brief statement, kind
439
+ `constraint`); the build that follows starts from the tree, never
440
+ from the prototype. "Grow the prototype" is rejected on provenance
441
+ grounds. The full doctrine is in `rcf guidance discovery-prototypes`
442
+ and the `rcf_discover_prototype` prompt.
409
443
  ```
410
444
 
411
445
  ## Customisation points
@@ -1 +1 @@
1
- b13d34856570798bf8cced82f5d79998408fe6b30d41a65ba3d3a356c46beef5
1
+ 31dc2627d2a73f5f051a6560dd1c81eac91a87c3a2339c46720648708285e4be
@@ -393,3 +393,37 @@ queue orchestration, PR authoring and bug triage. The
393
393
  for elicitation, AC coverage depth and conversation integrity. Run `rcf
394
394
  guidance` with no arguments to list every method document the installed
395
395
  package ships.
396
+
397
+ ### Product-owner intent sessions
398
+
399
+ A product-owner session starts with `rcf define questions --persona
400
+ productOwner` (or the `rcf_define_questions` MCP tool) and ends at
401
+ `Intent-complete: yes`. Every answer lands through the write-back the
402
+ question carries, then readiness recomputes; nothing about the owner's
403
+ intent lives only in a chat. The full loop content is in `rcf guidance
404
+ define-intent` and the `rcf_define_intent` prompt. Never improvise a
405
+ PO loop; the questions and their write-backs are the method.
406
+
407
+ ### Prototype rule
408
+
409
+ A prototype is engineer entry material, not a product-owner blocker.
410
+ When the tree reaches `levels.intentComplete.ok`, the agent may
411
+ pre-populate `[draft]` entities, TAC stubs and interfaces so the
412
+ engineer has a starting point; those drafts never re-open the PO
413
+ loop and never block a freeze. If the owner asks for a visible
414
+ prototype before intent-complete, say so (the method is finished the
415
+ intent first) and offer to continue the intent loop; never produce a
416
+ prototype that bypasses the readiness verdict.
417
+
418
+ ### Prototypes in DISCOVERY (ADR-4132)
419
+
420
+ A statement sourced to `prototype:<name>:<observation>` is evidence,
421
+ not implementation. A document that cites prototype code as its
422
+ implementation is a D2 finding the engineer resolves by re-deriving:
423
+ extract requirements from the prototype as evidence, run them through
424
+ intake and the PO loop like any document, and rebuild from the tree.
425
+ The prototype's code is burned (one brief statement, kind
426
+ `constraint`); the build that follows starts from the tree, never
427
+ from the prototype. "Grow the prototype" is rejected on provenance
428
+ grounds. The full doctrine is in `rcf guidance discovery-prototypes`
429
+ and the `rcf_discover_prototype` prompt.
@@ -5,11 +5,19 @@
5
5
  {"slug": "build-cycle", "file": "build-cycle.md", "title": "The RCF 5-stage build cycle"},
6
6
  {"slug": "harness-template", "file": "harness-template.md", "title": "Drop-in harness template"},
7
7
  {"slug": "managed/agent-instructions-block", "file": "managed/agent-instructions-block.md", "title": "The rcf doctor managed CLAUDE.md/AGENTS.md block (0.6.0 canonical text)"},
8
- {"slug": "persona-programme", "file": "persona-programme.md", "title": "Persona programme: tail-interview template"}
8
+ {"slug": "persona-programme", "file": "persona-programme.md", "title": "Persona programme: tail-interview template"},
9
+ {"slug": "define-intent", "file": "define-intent.md", "title": "The product-owner intent loop (DEFINE step 3)"},
10
+ {"slug": "define-intake", "file": "define-intake.md", "title": "Document intake into the brief ledger (DEFINE step 3)"},
11
+ {"slug": "discovery-prototypes", "file": "discovery-prototypes.md", "title": "DISCOVERY home for prototypes (DEFINE step 3)"}
9
12
  ],
10
13
  "prompts": [
11
14
  {"name": "rcf_execute_build_cycle", "file": "build-cycle-playbook.md", "description": "How to execute the RCF 5-stage build cycle well: per-stage guidance, referee commands, failure modes, escalation rules. Fetch once per session, then drive rcf build bundle --next."},
12
- {"name": "rcf_elicit_requirements", "file": "elicitation-playbook.md", "description": "How to draw a valid RCF tree out of a conversation: question frames for PRD / REQ / US / AC, the testable-AC quality bar, TAC / ADR capture, FBS queue construction, and when to stop."}
15
+ {"name": "rcf_elicit_requirements", "file": "elicitation-playbook.md", "description": "How to draw a valid RCF tree out of a conversation: question frames for PRD / REQ / US / AC, the testable-AC quality bar, TAC / ADR capture, FBS queue construction, and when to stop."},
16
+ {"name": "rcf_define_intent", "file": "define-intent.md", "description": "Drive the product-owner intent-complete loop with rcf_define_questions, write-backs through existing verbs, and the readiness verdict. Argument-free; starts with --persona productOwner and ends at levels.intentComplete.ok."},
17
+ {"name": "rcf_define_intake", "file": "define-intake.md", "description": "Walk a document folder brief-first, write one statement file per source with [kind] and (source: ...) markers, run brief add --from once per source, and report the scan findings as open questions. Argument-free."},
18
+ {"name": "rcf_define_draft_shapes", "file": "define-draft-shapes.md", "description": "Run the draft pass after L1 is green: pre-populate [draft] core entities per entity statement, [draft] TAC stubs per surface or externalSystem cluster, [draft] interfaces with real kinds inside each stub, and rcf discover req-classify over every REQ created in the loop. Argument-free."},
19
+ {"name": "rcf_discover_prototype", "file": "discover-prototype.md", "description": "Record a prototype in DISCOVERY as evidence: classification, brief statements with prototype:<name>:<observation> source spans, the burn statement, and the salvage-by-re-derivation path. Argument-free."},
20
+ {"name": "rcf_define_litmus", "file": "define-litmus.md", "description": "Spawn n fresh-context readers at the current tree hash and land their readings as probe-ledger entries whose finding begins litmus:<reader>:. Required by rcf define readiness --litmus and rcf define freeze --litmus. Argument-free."}
13
21
  ],
14
22
  "platformInvariants": [
15
23
  {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rcf-lite",
3
- "version": "0.28.4",
3
+ "version": "0.30.0",
4
4
  "type": "module",
5
5
  "description": "One-install tooling for the Requirements Confidence Framework (RCF): the unified `rcf` CLI grouped into the five RCF tool groups (discover, define, build, verify, audit) plus a small core set (init, doctor, guidance, mcp), an MCP server, the live tree viewer and the fresh-context adversarial ship-gate verifier. Consumes @stravica-ai/rcf-schemas.",
6
6
  "license": "Apache-2.0",
@@ -0,0 +1,30 @@
1
+ {
2
+ "createdAt": "2026-09-24T16:33:15Z",
3
+ "updatedAt": "2026-09-24T16:33:15Z",
4
+ "adrId": "ADR-4124-define-freeze-verb",
5
+ "prdId": "PRD-001",
6
+ "tadId": "TAD-001",
7
+ "version": "0.1.0",
8
+ "status": "accepted",
9
+ "title": "rcf define freeze refuses on any failing stage and only D3/D5/D6 accept an --ack override",
10
+ "context": "Proposal 2026-09-22 v3 section 2.5 defines the freeze verb as the only close verb: it runs readiness, refuses on any failing gate, accepts --ack <gate> --reason on the three warn-first gates, and writes the freeze record. Section 3.2 lists five blocking gates in 0.29.0 (D1, D2, D4 floors, D7, D8) and three warn-with-ack gates (D3, D5, D6). Baz ruling 2026-09-24 (Baz decision 2 in section 9): warn-with-ack ack is accepted only on D3 / D5 / D6, never on the blocking gates. Slice 3 has to pick (a) whether ack on a non-warn gate is a usage refusal or a runtime refusal; (b) whether the freeze verb re-runs readiness after ack (or applies acks in-memory); (c) whether admissibility refusal counts as a freeze refusal or a warning. Slice 1 shipped a freeze-record writer with override as an optional nullable field, and the P3 review note flagged the local-schema mismatch (JSDoc said required-nullable, validator said optional).",
11
+ "decision": "The freeze verb refuses (exit 4) on any stage state 'failing' after applying --ack acknowledgements in-memory. --ack is a compile-time contract: unknown gate names (anything outside define.shapes / define.crosscut / define.consistency and their aliases) are usage refusals (exit 2), and every --ack must be paired with a matching --reason (exit 2 on mismatched arities). Acknowledgements are applied to an in-memory freeze.gates map keyed by gate id, and each warn-with-ack stage's state is recomputed with the same fold gates.js foldState uses (WARN_WITH_ACK + at.hash === currentTreeHash). freeze then writes the freeze record with these acknowledgements persisted so slice 5's viewer and a future computeReadiness call render the stage as 'acknowledged' at that hash. Admissibility refusal is informational (ADR-4123 carried): the wrap runs first so the ruleset toolScope guard is honoured, and on refuse the CLI prints a stderr [warn] and the freeze compute continues. The freeze verb never exits 4 solely for a refused-admissibility verdict. Slice 3 also fixes the slice-1 P3 by making validateFreezeRecord require override as a nullable field, and by making saveFreezeRecord always stamp override: null on a fresh freeze so the schema surface is single-sourced before slice 4 reads it. Older records that omit the key are tolerated by loadFreezeRecord defaulting to null on read.",
12
+ "consequences": "One verb, one contract, one exit code path. Operators cannot silently ack a blocking gate: the ack fails at parseArgs time with a message naming the accepted set, which is easier to reason about than a runtime refusal deep in the compute. The in-memory ack recomputation keeps the write path a pure function of the tree + the acks: nothing partial is written if the compute later rejects. Persisted acks show up on the next readiness run because the freeze.gates entry stores { state: 'acknowledged', at: { hash, at, reason } } and gates.js folds against the current tree hash. Honest downside: an operator who acks a warn-with-ack gate and then edits the tree without re-freezing sees the ack disappear on the next readiness run (the hash changed, so foldState drops back to 'failing'). This matches proposal section 2.5 ('closing a change is freezing again') and is the same posture the readiness verb has today. Override-nullable-required means every existing freeze fixture (in tests, in dogfood chains) is expected to carry override: null; the loader tolerates a missing key on read (fills in null) so older records survive, but writing a record without override is a validator failure. The double-dash hygiene is a one-line change per file with a targeted golden-fixture update.",
13
+ "alternativesConsidered": [
14
+ {
15
+ "name": "Accept --ack on any gate; refuse at runtime with a message",
16
+ "summary": "Let --ack take any gate name; the freeze compute checks the ack list against the warn-with-ack set and exits 4 with an error when a blocking gate is acked.",
17
+ "reasonNotChosen": "Slower feedback (parseArgs is instant, the readiness compute takes seconds on a large tree), and it lets an ack land in the ack map that will never be honoured. A usage refusal at parseArgs time matches the rest of the CLI's contract (unknown --check gates are refused there too)."
18
+ },
19
+ {
20
+ "name": "Re-run computeReadiness after applying acks",
21
+ "summary": "Persist an intermediate freeze record with the acks, re-run computeReadiness against it, decide the exit code from the second run.",
22
+ "reasonNotChosen": "Two writes and two computes; the second compute reads the same tree so the only difference is the freeze.gates map. Folding in-memory with gates.js foldState is one function call and matches what a slice-5 viewer would render if it were doing the same thing."
23
+ },
24
+ {
25
+ "name": "Refuse the freeze on refused-admissibility",
26
+ "summary": "Treat a refused-admissibility verdict as a fatal freeze failure; exit 4 with the refusal envelope on stderr.",
27
+ "reasonNotChosen": "ADR-4123 already ruled that readiness is a diagnostic and refuses to hide the block. The freeze verb is the write half of the same object; refusing the freeze solely because admissibility refused means an operator with a valid freezeable tree cannot close the change until the admissibility rules unblock. The refusal is still surfaced as a [warn] on stderr so it is not silent."
28
+ }
29
+ ]
30
+ }
@@ -0,0 +1,40 @@
1
+ {
2
+ "createdAt": "2026-10-01T14:30:00Z",
3
+ "updatedAt": "2026-10-01T14:30:00Z",
4
+ "adrId": "ADR-4126-persona-tagged-blockers-two-levels",
5
+ "prdId": "PRD-001",
6
+ "tadId": "TAD-001",
7
+ "version": "0.1.0",
8
+ "status": "accepted",
9
+ "title": "Intent-complete is a persona cut, computed, never recorded",
10
+ "context": "WSD needs a product-owner exit from DEFINE that a delivery stream can pick up without a hand-over meeting. Dex proposed early-stage gates; the design-spec review (2026-10-01) walked a middle path. D2 and D4 each hold both PO and engineer checks today; a single-persona tag per check would misread both. Operators also need a way to pre-populate shapes at L1 without those shapes reading as the engineer's finished work. The gate table has 20 checks in 0.29.0; two are heterogeneous and one is missing. The train is 4.5 days across three PRs; PR A owns the compute.",
11
+ "decision": "Every gate check in src/query/gates.js declares an owning persona (productOwner | engineer) via a code-side CHECK_PERSONA map and a one-sentence CHECK_QUESTION heading in the persona's register. The two heterogeneous checks are split: skeleton:reqFields becomes skeleton:reqIntent (productOwner: description + domain) + skeleton:reqShape (engineer: shapeClassification.shapes); decisions:allAnswered becomes decisions:wellFormed (productOwner: enumerated per #241 format) + decisions:allAnswered (engineer: zero open). A new D3 check shapes:draftSettled fails every interface whose description still carries the leading [draft] marker, so an L1-pre-populated interface is distinguishable from a settled one; shapes:tacHasInterface counts a draft as present, and shapes:kindVocabulary applies to drafts. L1 intent-complete is 'every productOwner check ok across every stage', computed by computeReadiness and folded into readiness.levels.intentComplete alongside the existing freezeable-equivalent readiness.levels.readyToBuild. Nothing is written; both levels fall out of stages[].checks[] on every read. The notApplicable placeholder (stage:<D>:scope) carries a per-stage fallback persona (STAGE_FALLBACK_PERSONA map) so every check has a persona for the table test and downstream renderers; the placeholder is always ok so it never affects a level. There is no either / shared / both persona; a check that would need both is split instead. Per-item persona override is not introduced; a failing item inherits its check's persona. Open decisions do not block L1 in 0.29.0: an enumerated decision with a default is enough for an engineer to proceed (Baz direction doc, open question 1 answered Dave-recommended). The [draft] marker lives on TAC.interfaces[].description only in 0.29.0, mirroring decision 6's AC-class bracket convention; rcf-schemas 0.6.3 is untouched and the marker migrates with AC.kind to a structured field at schemas 0.7.",
12
+ "consequences": "One ladder, two verdicts. Intent-complete is the ticket artefact a delivery stream reads from `rcf define readiness --level intent --json`; it is not recorded, so no second register of truth and nothing to invalidate on tree change. The persona split in gates.js is one map plus two straightforward loops (reqIntent / reqShape each evaluates every REQ independently; wellFormed / allAnswered each loop decisionEntries); every existing test except the two renamed checks keeps passing unchanged, and the dogfood tree reports two extra findings on reqIntent that were previously masked by the first-failure continue (true findings, not regressions). The notApplicable placeholder carrying a persona is a small schema surface addition that keeps the per-check vocabulary total true. The [draft] marker as a text convention is the same posture AC class carries today (decision 6); the migration cost at schemas 0.7 is one more lift. L1 pre-population is explicit: the L1 agent writes [draft] interfaces as it learns entities and routes from the brief, which makes shapes:tacHasInterface pass earlier for the engineer and leaves shapes:draftSettled as the honest list of what the engineer has yet to own. L2 draft handling is unchanged: a failing shapes:draftSettled keeps D3 failing unless acknowledged at the current hash through the existing --ack define.shapes path (0.29.0 warn-with-ack posture; step 4 makes D3 bite). The levels object cannot disagree with the CLI or the Readiness tab because all three render from the same computeReadiness output. The CLI flags that expose levels (--level, --persona) and the viewer tab land in PRs B and C respectively; this ADR only covers the compute.",
13
+ "alternativesConsidered": [
14
+ {
15
+ "name": "Stage-prefix persona (every check on D1/D2/D4/D7 is productOwner; D3/D5/D6/D8 is engineer)",
16
+ "summary": "Pin persona by stage, skip the per-check tag; no splits.",
17
+ "reasonNotChosen": "Blocks the PO on skeleton:tadPersistence (data stores) and skeleton:deployAdr (which hosting), both engineering decisions. Also passes with unresolved brief statements under an engineer-only D5 even though resolution is a PO question. The per-check map is the source of truth because the owner is a property of the rule, not of the stage."
18
+ },
19
+ {
20
+ "name": "Recorded L1 (freeze-at-intent)",
21
+ "summary": "Write an intent-complete freeze record parallel to the build freeze, with its own hash and ledger.",
22
+ "reasonNotChosen": "Reintroduces stored state the detection model (REQ-172) removed. Two freeze records on one tree are two chances for them to disagree, and the delivery stream's artefact is already the --json output at a tree hash. L1 is a verdict, not a commit."
23
+ },
24
+ {
25
+ "name": "either / shared / both persona value",
26
+ "summary": "Allow a check to be owned by both personas when it reads both ways.",
27
+ "reasonNotChosen": "Hides whose question it is, which was the point of the tag. A heterogeneous check is almost always two checks under one name; splitting is clearer and cheap."
28
+ },
29
+ {
30
+ "name": "[draft] on a new TAC.interfaces[].status field instead of description",
31
+ "summary": "Introduce a structured status enum on the interface shape.",
32
+ "reasonNotChosen": "Schema change for one piece of 0.29.0 metadata; AC class already lives on description as a bracket prefix (decision 6); the two migrate together at schemas 0.7. The 0.29.0 cost is one regex."
33
+ },
34
+ {
35
+ "name": "Per-item persona override on failing[]",
36
+ "summary": "Let a failing { id, why } carry its own persona so one check can fail into both personas.",
37
+ "reasonNotChosen": "A failing item carries no new information its check does not already carry; the operator reads the question heading, not the item. Keeps the API surface narrower and avoids forcing every consumer to fold two persona fields."
38
+ }
39
+ ]
40
+ }
@@ -0,0 +1,40 @@
1
+ {
2
+ "createdAt": "2026-10-01T18:00:00Z",
3
+ "updatedAt": "2026-10-01T18:00:00Z",
4
+ "adrId": "ADR-4127-readiness-tab-order-and-register",
5
+ "prdId": "PRD-001",
6
+ "tadId": "TAD-001",
7
+ "version": "0.1.0",
8
+ "status": "accepted",
9
+ "title": "Readiness is tab 1 always and renders the same object as the CLI; the register orders persona groups and never hides one",
10
+ "context": "DEFINE step 2 (0.29.0) exposes two verdicts on the one readiness ladder. The CLI prints them (PR B); the viewer must carry the same object so the two surfaces cannot disagree. Overview today is just the PRD body (phase 3.6 dropped the diagram), so it never earns first-tab status, and operators asked for a landing surface that leads with 'can I build and whose questions stand in the way'. The persona register from profile.md orders the CLI text report; the tab must honour the same register without ever hiding the non-register group.",
11
+ "decision": "Readiness is tab 1 of the HTML review surface, always, and renders the computeReadiness result directly. The former Overview tab is renamed PRD with no content change; the data-tab=overview and id=tab-overview identifiers are preserved so every existing `#tab-overview` hash link still resolves. The viewer's renderer is pure: it reads the result object and the profile text and emits HTML; it never recomputes readiness or hits disk. The profile register from pickRegister orders the persona groups (productOwner-first by default; engineer-first when the register says engineer; unstated prints the pair in default order). The non-register group is always rendered with its count visible; collapsed by default, never omitted from the DOM. The Freeze now control is enabled iff levels.readyToBuild.ok; disabled, it names the failing gates from levels.readyToBuild.blockedBy. There is no intent-complete button at L1 (nothing to record; ADR-4126). The 0.29.0 diff component in the delta list is document-level only; criterion-level before-and-after is deferred to the UX review (open question 7 of the step 2 spec).",
12
+ "consequences": "One readiness object renders three ways (CLI text, CLI JSON, viewer tab) with no second register of truth; AC-18001-7 asserts the identity by walking the rendered anchors and matching them to the --json for the same tree hash. The Overview-to-PRD rename is cosmetic for hash routing and content; existing anchors keep working. Shared components land once, pay down the drift between tabs, and are additive on the Product Map and Requirements tabs in 0.29.0 (re-pointing is a follow-up where the swap is not mechanical). Deferring the criterion-level diff keeps PR C small and leaves the AC-class before-and-after question to the UX review it belongs to.",
13
+ "alternativesConsidered": [
14
+ {
15
+ "name": "Readiness as the fifth tab, Overview stays first",
16
+ "summary": "Keep Overview as the landing tab and add Readiness at the end.",
17
+ "reasonNotChosen": "Overview is one block today (the PRD body); it does not earn the landing. Making an operator click to see the verdict is friction for the thing the surface exists to answer."
18
+ },
19
+ {
20
+ "name": "Rename to data-tab=prd and migrate hash anchors",
21
+ "summary": "Rename both the label and the identifier so the surface reads consistently.",
22
+ "reasonNotChosen": "Every existing `#tab-overview` link in documents and in commit messages breaks. The label is for humans; the identifier is for links. Keeping the identifier is cheaper than migrating every link."
23
+ },
24
+ {
25
+ "name": "Hide the non-register persona group",
26
+ "summary": "When the register is productOwner, omit the engineer group from the DOM entirely (and vice versa).",
27
+ "reasonNotChosen": "AC-18001-5 is must-not for a reason: hiding a persona breaks the parity the CLI --json offers. The tab is a diagnostic, not a filter; the collapse-with-count-visible pattern honours the register without losing visibility."
28
+ },
29
+ {
30
+ "name": "Recompute readiness in the browser",
31
+ "summary": "Ship the raw tree to the client and compute readiness there.",
32
+ "reasonNotChosen": "Two implementations of the same compute are two chances to disagree. The server already walks the tree; piping the computed object into the HTML keeps the no-recompute invariant and makes the live-SSE path trivial."
33
+ },
34
+ {
35
+ "name": "Ship criterion-level diff in 0.29.0",
36
+ "summary": "Render AC-level before-and-after inside the delta list, with a per-AC collapsible pane.",
37
+ "reasonNotChosen": "Open question 7 of the step 2 spec parks the AC-class before-and-after question for a UX review. Shipping without that review risks a design the review would reject; document-level diff carries the signal 0.29.0 needs."
38
+ }
39
+ ]
40
+ }
@@ -0,0 +1,25 @@
1
+ {
2
+ "adrId": "ADR-4129-questions-harness-driven-loop",
3
+ "prdId": "PRD-001",
4
+ "tadId": "TAD-001",
5
+ "version": "0.1.0",
6
+ "status": "accepted",
7
+ "title": "The intent-complete loop is harness-driven; rcf-lite computes questions with write-backs and never holds conversation state",
8
+ "context": "DEFINE step 3 (spec 2026-10-01, section 1.1) requires a product owner to reach `levels.intentComplete.ok === true` without an engineer. The question is whether rcf-lite should hold a conversation state (a stored loop file, a conversation engine) or stay stateless and let the harness (Claude Code or any MCP-wired agent) drive.",
9
+ "decision": "the loop is harness-driven; rcf-lite computes questions with write-backs and never holds conversation state. computeQuestions is a pure function of (readiness, tree, ledgers, profileText, persona); the harness runs the write-back a question carries, calls readiness again and asks the next question.",
10
+ "consequences": "The loop is monotone (each answer removes its item), the compute is testable in isolation, and the harness can be swapped without changing rcf-lite. The cost is that the harness must run readiness and questions each turn, which is a cheap pure call.",
11
+ "alternativesConsidered": [
12
+ {
13
+ "name": "A conversation engine in rcf-lite",
14
+ "summary": "Hold an LLM-driven loop inside rcf-lite that elicits the PO directly.",
15
+ "reasonNotChosen": "An LLM dependency inside rcf-lite reverses the method's shape: rcf-lite is the referee the harness consults, not an agent of its own. It also forces a model and provider choice that the harness has already made."
16
+ },
17
+ {
18
+ "name": "A stored loop file",
19
+ "summary": "Keep a loop state file under rcf/define/ that tracks which question was asked last.",
20
+ "reasonNotChosen": "The stale state the detection model removed. A loop file would drift from the tree the moment any writer edits a ledger outside the loop, and would need its own validate pass; the four ledgers plus the profile already carry every state the loop needs."
21
+ }
22
+ ],
23
+ "createdAt": "2026-10-02T18:00:00Z",
24
+ "updatedAt": "2026-10-02T18:00:00Z"
25
+ }
@@ -0,0 +1,20 @@
1
+ {
2
+ "adrId": "ADR-4130-intake-harness-split-tool-scanned",
3
+ "prdId": "PRD-001",
4
+ "tadId": "TAD-001",
5
+ "version": "0.1.0",
6
+ "status": "accepted",
7
+ "title": "Intake is harness-split and tool-scanned; findings become open-question statements",
8
+ "context": "DEFINE step 3 (spec 2026-10-01, section 2.1) requires a document intake path where a product owner hands over a folder and reaches `Intent-complete: yes` without an engineer driving. Splitting a source into kinded statements is the agent's job (the harness writes one statement file per source, operator corrects); the mechanical scans and the follow-up questions are rcf-lite's. The question is how finding-level signals (duplicates, contradictions, ambiguities) reach the loop.",
9
+ "decision": "intake is harness-split and tool-scanned; findings become open-question statements. The harness writes `<source>.statements.md` beside each source; `brief add --from` mints the statements and `runIntakeScansOnDelta` runs over the new ids against the existing body; every finding is appended as one `openQuestion` statement whose source names the scan and the ids involved. The loop then reads one check (`brief:openQuestions`) and the owner answers in one place.",
10
+ "consequences": "The owner sees findings as questions, not a separate list. One place carries intent (the brief ledger) and one check reads it. The harness can be swapped: any agent that writes the statement file shape and runs `brief add --from` reaches the same loop. The cost is that a finding's full detail lives inside the openQuestion text and its `scan:` source marker; a reviewer who wants a flat findings list builds it from `kind === 'openQuestion' && source startsWith 'scan:'`.",
11
+ "alternativesConsidered": [
12
+ {
13
+ "name": "A separate findings list on the manifest",
14
+ "summary": "Keep an array of findings on rcf/manifest.json alongside the ledgers, read by the loop as a parallel surface.",
15
+ "reasonNotChosen": "A second place the loop would have to read, and a second place that could drift from the brief ledger. Making findings statements collapses two surfaces into the one the loop already needs."
16
+ }
17
+ ],
18
+ "createdAt": "2026-10-02T18:00:00Z",
19
+ "updatedAt": "2026-10-02T18:00:00Z"
20
+ }
@@ -0,0 +1,30 @@
1
+ {
2
+ "createdAt": "2026-10-03T10:50:00Z",
3
+ "updatedAt": "2026-10-03T10:50:00Z",
4
+ "adrId": "ADR-4131-gates-bite-ack-recorded-override",
5
+ "prdId": "PRD-001",
6
+ "tadId": "TAD-001",
7
+ "version": "0.1.0",
8
+ "status": "accepted",
9
+ "title": "The gates bite with --ack as the recorded override for D3, D5, D6",
10
+ "context": "DEFINE step 3 train (spec 2026-10-01) brings the substantive checks of proposal 3.2 into D3, D5 and D6 across PRs 5, 6 and 7. The 0.29.0 posture left those stages warn-with-ack: --check exits 0 with a stderr [warn] line, --ack as the recorded override. The spec section 4 gates-bite intro and decision 9 both pin the biting posture: --check exits 4 on D3, D5 and D6 as it does on blocking stages; --ack stays as the recorded override for those three because the ruleset's recordedInChain channel needs it (decision 8's pattern applied to gates, not retired with the verb). The compute remains pure; readiness.js collects candidate paths and the CLI resolves them on disk so the gate functions see a resolvedPaths map in the stage context. PR 5 lands the three D3 bite checks (shapes:templateMarkers, shapes:entityJoin, shapes:pathsResolve), the ackable(stage) companion to stagePolicy, and the --check shapes exit 4 policy; PRs 6 and 7 bite D5 and D6 on the same shape.",
11
+ "decision": "The gates bite with --ack as the recorded override for D3, D5 and D6. stagePolicy keeps returning blocking for every stage (ADR-4122 posture) and gains a sibling helper ackable(stage) that returns true for exactly D3, D5 and D6 and false otherwise. The readiness CLI --check <stage> policy follows that split: on a blocking stage without ackable, a failing state exits 4 (today's behaviour); on a stage with ackable, a failing state exits 4 unless the freeze record acknowledges that gate at the current tree hash, in which case it exits 0. --ack on any stage without ackable stays a usage refusal with exit 2 (D1, D2, D4, D7, D8). The three D3 bite checks ship as pure engineer checks on src/query/gates.js: shapes:templateMarkers over delta (per-kind marker presence on interfaces[].description, ids <tacId>:<name>, why names the missing marker, drafts included), shapes:entityJoin over tree (every coreEntities[].name named by exactly one recordShape, ids TAD.entity:<name>), shapes:pathsResolve over delta (any path:-like token resolves on disk against the resolvedPaths map in the stage context or the description carries authoredAt: D3). Validate findings only where a legacy tree can comply; the dogfood tree records any residual failure in KNOWN GAPS rather than weakening the check.",
12
+ "consequences": "A failing D3 bite now blocks CI unless the engineer either fixes the tree or writes a recorded override with --ack --reason at the current hash; the record stays visible in the freeze record (the chain of recordedInChain the ruleset reads). The ackable companion keeps stagePolicy legible: the policy stays 'blocking' for every stage (the readyToBuild fold is unchanged), with ackable the separate signal the CLI reads to decide whether a failing stage honours an acknowledgement. The gate functions stay pure: the CLI is the module that resolves candidate paths on disk and the stage context carries the resolved map. The D3 bite surfaces three new engineer checks on the readiness tab and the text report; nothing on the productOwner side moves. --level intent and --level build exits are unchanged because the levels fold is already a derived view. The dogfood tree keeps CI green by scoping its own readiness call as it already does; the three new checks pass on the dogfood chain because the shipped TACs name their markers truthfully.",
13
+ "alternativesConsidered": [
14
+ {
15
+ "name": "Retire --ack (make D3, D5, D6 plain blocking)",
16
+ "summary": "Drop the --ack verb everywhere and let a failing D3, D5 or D6 simply block CI with no override.",
17
+ "reasonNotChosen": "The ruleset's recordedInChain channel exists so a refuse at a hash can be acknowledged with a reason that becomes part of the chain. The gates bite is decision 8's pattern applied to gates (refuse with a recorded override), and retiring --ack removes the channel the ruleset depends on. The spec decision 9 pins this; this ADR records it in-chain."
18
+ },
19
+ {
20
+ "name": "Keep warn-with-ack: --check exits 0 with a [warn] on D3, D5, D6",
21
+ "summary": "Leave the 0.29.0 posture in place; let the bite only surface in validate and the viewer.",
22
+ "reasonNotChosen": "The whole point of the DEFINE step 3 train is to make D3, D5 and D6 bite: the substantive checks of proposal 3.2 land here, and CI must refuse on them for the engineer to feel the gate. Warn-with-ack kept them a soft signal; the spec moves them to blocking with --ack as the recorded override."
23
+ },
24
+ {
25
+ "name": "Make the gate functions impure and resolve paths inline",
26
+ "summary": "Let shapes:pathsResolve open the filesystem directly so the gate module decides path existence on its own.",
27
+ "reasonNotChosen": "gates.js is the one pure module every surface composes; folding I/O into it would re-couple the viewer and the CLI through disk access. The CLI already owns the project-root resolve for the walker and the ledgers; adding one more resolve step for candidate paths is a one-pass walk, and the stage context grows by one map. The viewer uses the same seam when it renders the Readiness tab server-side."
28
+ }
29
+ ]
30
+ }
@@ -0,0 +1,20 @@
1
+ {
2
+ "adrId": "ADR-4132-prototypes-in-discovery-as-evidence",
3
+ "prdId": "PRD-001",
4
+ "tadId": "TAD-001",
5
+ "version": "0.1.0",
6
+ "status": "accepted",
7
+ "title": "Prototypes live in DISCOVERY as evidence; code is burned; salvage is re-derivation",
8
+ "context": "DEFINE step 3 (spec 2026-10-01, section 5) asks where a learning prototype belongs. A prototype is useful for the questions it provokes; its code is a product of exploration under a different set of rules than the project proper, so promoting it would smuggle unowned decisions past the chain.",
9
+ "decision": "prototypes live in DISCOVERY as evidence; code is burned; salvage is re-derivation. The prototype is recorded in the intake classification as an artefact of kind `other`; its outputs are brief statements with source spans `prototype:<name>:<observation>`; the burn is a single `constraint` statement naming the prototype, its commit sha and burn date. The only middle path is salvage by re-derivation: extract requirements from the prototype as evidence, run them through intake and the PO loop like any document, rebuild from the tree.",
10
+ "consequences": "Provenance stays whole: every shape in the tree has a chain back to a PO-sanctioned statement, not a prototype's incidental choices. The cost is one managed-block rule the harness picks up, one guidance file (`guidance/discovery-prototypes.md`) and the honest message that a prototype's code is reference only; nothing in the build consumes a prototype directly.",
11
+ "alternativesConsidered": [
12
+ {
13
+ "name": "A prototype mode or promotion path (inverts provenance)",
14
+ "summary": "Keep the prototype as a privileged tree that can be promoted into the project tree, or run a prototype mode that bypasses parts of the chain while the prototype is live.",
15
+ "reasonNotChosen": "Promotion inverts provenance: a shape would reach the project tree without the PO loop that owns every settled shape. The method's whole worth is that every requirement, story, AC and shape has a known origin; a promotion path would let an incidental prototype choice bypass that trace, and no amount of auditing after the fact can restore the owner."
16
+ }
17
+ ],
18
+ "createdAt": "2026-10-03T00:00:00Z",
19
+ "updatedAt": "2026-10-03T00:00:00Z"
20
+ }