rcf-lite 0.25.0 → 0.27.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 (1192) hide show
  1. package/CHANGELOG.md +45 -0
  2. package/blueprints/application-account-settings/CHANGELOG.md +35 -2
  3. package/blueprints/application-account-settings/README.md +10 -10
  4. package/blueprints/application-account-settings/blueprint.json +23 -3
  5. package/blueprints/application-account-settings/contributions/adrs/adr-2601-application-account-settings-capability-vocabulary.json +1 -1
  6. package/blueprints/application-account-settings/contributions/adrs/adr-2604-application-account-settings-reauth-window.json +5 -5
  7. package/blueprints/application-account-settings/contributions/requirements/application-account-settings-req-001.json +6 -2
  8. package/blueprints/application-account-settings/contributions/requirements/application-account-settings-req-002.json +4 -0
  9. package/blueprints/application-account-settings/contributions/requirements/application-account-settings-req-003.json +7 -3
  10. package/blueprints/application-account-settings/contributions/requirements/application-account-settings-req-004.json +4 -0
  11. package/blueprints/application-account-settings/contributions/requirements/application-account-settings-req-005.json +4 -0
  12. package/blueprints/application-account-settings/contributions/requirements/application-account-settings-req-006.json +6 -2
  13. package/blueprints/application-account-settings/contributions/requirements/application-account-settings-req-007.json +22 -0
  14. package/blueprints/application-account-settings/contributions/requirements/application-account-settings-req-009.json +21 -0
  15. package/blueprints/application-account-settings/contributions/tacs/tac-2601-application-account-settings-shell.json +8 -4
  16. package/blueprints/application-account-settings/contributions/tacs/tac-2602-application-account-settings-capability-discovery.json +3 -3
  17. package/blueprints/application-account-settings/contributions/tacs/tac-2604-application-account-settings-session-store.json +13 -7
  18. package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25101.json +19 -3
  19. package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25102.json +27 -2
  20. package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25103.json +13 -2
  21. package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25104.json +23 -2
  22. package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25105.json +51 -3
  23. package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25106.json +25 -6
  24. package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25107.json +13 -2
  25. package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25108.json +27 -2
  26. package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25109.json +4 -2
  27. package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25110.json +13 -2
  28. package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25111.json +71 -0
  29. package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25112.json +77 -0
  30. package/blueprints/application-account-settings/docs/topics.md +5 -5
  31. package/blueprints/application-account-settings/guide/application-account-settings.md +1 -1
  32. package/blueprints/application-account-settings/probe-packs/application-account-settings.pack.mjs +2 -2
  33. package/blueprints/application-admin-console/CHANGELOG.md +42 -6
  34. package/blueprints/application-admin-console/README.md +4 -4
  35. package/blueprints/application-admin-console/blueprint.json +31 -1
  36. package/blueprints/application-admin-console/contributions/adrs/adr-2201-application-admin-console-capability-vocabulary.json +2 -2
  37. package/blueprints/application-admin-console/contributions/adrs/adr-2203-application-admin-console-invite-transport.json +5 -5
  38. package/blueprints/application-admin-console/contributions/adrs/adr-2204-application-admin-console-audit-retention.json +7 -7
  39. package/blueprints/application-admin-console/contributions/adrs/adr-2214-application-admin-console-consume-zero-trust-gate.json +3 -3
  40. package/blueprints/application-admin-console/contributions/requirements/application-admin-console-req-001.json +4 -0
  41. package/blueprints/application-admin-console/contributions/requirements/application-admin-console-req-002.json +5 -1
  42. package/blueprints/application-admin-console/contributions/requirements/application-admin-console-req-003.json +4 -0
  43. package/blueprints/application-admin-console/contributions/requirements/application-admin-console-req-004.json +4 -0
  44. package/blueprints/application-admin-console/contributions/requirements/application-admin-console-req-005.json +6 -2
  45. package/blueprints/application-admin-console/contributions/requirements/application-admin-console-req-006.json +4 -0
  46. package/blueprints/application-admin-console/contributions/requirements/application-admin-console-req-007.json +22 -0
  47. package/blueprints/application-admin-console/contributions/requirements/application-admin-console-req-008.json +22 -0
  48. package/blueprints/application-admin-console/contributions/requirements/application-admin-console-req-009.json +21 -0
  49. package/blueprints/application-admin-console/contributions/requirements/application-admin-console-req-014.json +6 -2
  50. package/blueprints/application-admin-console/contributions/tacs/tac-2201-application-admin-console-shell.json +9 -7
  51. package/blueprints/application-admin-console/contributions/tacs/tac-2202-application-admin-console-capability-discovery.json +6 -6
  52. package/blueprints/application-admin-console/contributions/tacs/tac-2204-application-admin-console-audit-view.json +1 -1
  53. package/blueprints/application-admin-console/contributions/tacs/tac-2214-application-admin-console-access-gated-signin-surface.json +5 -5
  54. package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21101.json +4 -2
  55. package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21102.json +4 -2
  56. package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21103.json +10 -4
  57. package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21104.json +13 -2
  58. package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21105.json +15 -3
  59. package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21106.json +35 -2
  60. package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21107.json +22 -3
  61. package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21108.json +4 -2
  62. package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21109.json +4 -2
  63. package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21110.json +68 -0
  64. package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21111.json +76 -0
  65. package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21112.json +77 -0
  66. package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21815.json +21 -2
  67. package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21816.json +21 -2
  68. package/blueprints/application-admin-console/docs/topics.md +1 -1
  69. package/blueprints/application-admin-console/guide/application-admin-console.md +3 -3
  70. package/blueprints/application-admin-console/probe-packs/application-admin-console.pack.mjs +2 -2
  71. package/blueprints/application-api-rest/CHANGELOG.md +26 -0
  72. package/blueprints/application-api-rest/assets/samples/request-response-pairs.md +2 -0
  73. package/blueprints/application-api-rest/blueprint.json +1 -1
  74. package/blueprints/application-api-rest/contributions/adrs/adr-301-application-api-rest-error-envelope.json +1 -1
  75. package/blueprints/application-api-rest/contributions/adrs/adr-302-application-api-rest-auth-model.json +1 -1
  76. package/blueprints/application-api-rest/contributions/adrs/adr-303-application-api-rest-api-versioning.json +1 -1
  77. package/blueprints/application-api-rest/contributions/adrs/adr-304-application-api-rest-logging.json +1 -1
  78. package/blueprints/application-api-rest/contributions/adrs/adr-305-application-api-rest-pagination.json +1 -1
  79. package/blueprints/application-api-rest/contributions/adrs/adr-306-application-api-rest-idempotency.json +3 -3
  80. package/blueprints/application-api-rest/contributions/adrs/adr-307-application-api-rest-openapi-generation.json +1 -1
  81. package/blueprints/application-api-rest/contributions/adrs/adr-308-application-api-rest-rate-limiting.json +1 -1
  82. package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-001.json +6 -2
  83. package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-002.json +7 -3
  84. package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-003.json +6 -2
  85. package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-004.json +6 -2
  86. package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-005.json +6 -2
  87. package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-006.json +6 -2
  88. package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-007.json +6 -2
  89. package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-008.json +6 -2
  90. package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-009.json +6 -2
  91. package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-010.json +8 -4
  92. package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-011.json +6 -2
  93. package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-012.json +6 -2
  94. package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-013.json +7 -3
  95. package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-014.json +6 -2
  96. package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-015.json +6 -2
  97. package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-016.json +6 -2
  98. package/blueprints/application-api-rest/contributions/tacs/tac-301-application-api-rest-request-pipeline.json +1 -1
  99. package/blueprints/application-api-rest/contributions/tacs/tac-302-application-api-rest-auth-middleware.json +1 -1
  100. package/blueprints/application-api-rest/contributions/tacs/tac-303-application-api-rest-contract-surface.json +2 -2
  101. package/blueprints/application-api-rest/contributions/tacs/tac-304-application-api-rest-resource-layer.json +1 -1
  102. package/blueprints/application-api-rest/contributions/tacs/tac-305-application-api-rest-observability.json +1 -1
  103. package/blueprints/application-api-rest/contributions/tacs/tac-306-application-api-rest-operability.json +1 -1
  104. package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2101.json +13 -7
  105. package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2102.json +27 -13
  106. package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2103.json +18 -9
  107. package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2104.json +32 -10
  108. package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2105.json +19 -6
  109. package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2106.json +14 -8
  110. package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2107.json +20 -12
  111. package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2108.json +37 -15
  112. package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2109.json +15 -9
  113. package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2110.json +21 -11
  114. package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2111.json +42 -8
  115. package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2112.json +23 -13
  116. package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2113.json +17 -11
  117. package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2114.json +13 -8
  118. package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2115.json +13 -8
  119. package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2116.json +11 -6
  120. package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2117.json +19 -14
  121. package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2118.json +20 -10
  122. package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2119.json +20 -7
  123. package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2120.json +16 -10
  124. package/blueprints/application-api-rest/docs/topics.md +1 -1
  125. package/blueprints/application-charts/CHANGELOG.md +24 -3
  126. package/blueprints/application-charts/README.md +5 -5
  127. package/blueprints/application-charts/blueprint.json +112 -18
  128. package/blueprints/application-charts/contributions/adrs/adr-1901-application-charts-engine-choice.json +1 -1
  129. package/blueprints/application-charts/contributions/adrs/adr-1902-application-charts-accessible-palette.json +1 -1
  130. package/blueprints/application-charts/contributions/adrs/adr-1903-application-charts-motion.json +1 -1
  131. package/blueprints/application-charts/contributions/requirements/application-charts-req-001.json +11 -4
  132. package/blueprints/application-charts/contributions/requirements/application-charts-req-002.json +11 -4
  133. package/blueprints/application-charts/contributions/requirements/application-charts-req-003.json +10 -3
  134. package/blueprints/application-charts/contributions/requirements/application-charts-req-004.json +10 -3
  135. package/blueprints/application-charts/contributions/tacs/tac-1901-application-charts-render-shell.json +3 -2
  136. package/blueprints/application-charts/contributions/tacs/tac-1902-application-charts-keyboard-traversal.json +1 -1
  137. package/blueprints/application-charts/contributions/user-stories/application-charts-us-18101.json +50 -6
  138. package/blueprints/application-charts/contributions/user-stories/application-charts-us-18102.json +58 -6
  139. package/blueprints/application-charts/contributions/user-stories/application-charts-us-18103.json +54 -6
  140. package/blueprints/application-charts/contributions/user-stories/application-charts-us-18104.json +55 -6
  141. package/blueprints/application-charts/contributions/user-stories/application-charts-us-18105.json +64 -8
  142. package/blueprints/application-charts/contributions/user-stories/application-charts-us-18106.json +45 -7
  143. package/blueprints/application-charts/docs/topics.md +3 -3
  144. package/blueprints/application-charts/guide/application-charts.md +3 -3
  145. package/blueprints/application-charts/probe-packs/application-charts.pack.mjs +2 -2
  146. package/blueprints/application-dashboard/CHANGELOG.md +24 -3
  147. package/blueprints/application-dashboard/README.md +8 -8
  148. package/blueprints/application-dashboard/blueprint.json +147 -21
  149. package/blueprints/application-dashboard/contributions/adrs/adr-2001-application-dashboard-primary-kpi-enum.json +4 -4
  150. package/blueprints/application-dashboard/contributions/adrs/adr-2002-application-dashboard-timeframe-presets.json +1 -1
  151. package/blueprints/application-dashboard/contributions/adrs/adr-2003-application-dashboard-export-formats.json +1 -1
  152. package/blueprints/application-dashboard/contributions/requirements/application-dashboard-req-001.json +10 -3
  153. package/blueprints/application-dashboard/contributions/requirements/application-dashboard-req-002.json +11 -4
  154. package/blueprints/application-dashboard/contributions/requirements/application-dashboard-req-003.json +10 -3
  155. package/blueprints/application-dashboard/contributions/requirements/application-dashboard-req-004.json +11 -4
  156. package/blueprints/application-dashboard/contributions/requirements/application-dashboard-req-005.json +11 -4
  157. package/blueprints/application-dashboard/contributions/tacs/tac-2001-application-dashboard-tile-grid.json +1 -1
  158. package/blueprints/application-dashboard/contributions/tacs/tac-2002-application-dashboard-filter-chrome.json +1 -1
  159. package/blueprints/application-dashboard/contributions/tacs/tac-2003-application-dashboard-export-handle.json +1 -1
  160. package/blueprints/application-dashboard/contributions/user-stories/application-dashboard-us-19101.json +54 -6
  161. package/blueprints/application-dashboard/contributions/user-stories/application-dashboard-us-19102.json +54 -6
  162. package/blueprints/application-dashboard/contributions/user-stories/application-dashboard-us-19103.json +58 -6
  163. package/blueprints/application-dashboard/contributions/user-stories/application-dashboard-us-19104.json +55 -7
  164. package/blueprints/application-dashboard/contributions/user-stories/application-dashboard-us-19105.json +54 -6
  165. package/blueprints/application-dashboard/contributions/user-stories/application-dashboard-us-19106.json +60 -8
  166. package/blueprints/application-dashboard/contributions/user-stories/application-dashboard-us-19107.json +57 -9
  167. package/blueprints/application-dashboard/docs/topics.md +4 -4
  168. package/blueprints/application-dashboard/guide/application-dashboard.md +3 -3
  169. package/blueprints/application-dashboard/probe-packs/application-dashboard.pack.mjs +4 -4
  170. package/blueprints/application-datatable/CHANGELOG.md +23 -2
  171. package/blueprints/application-datatable/README.md +3 -3
  172. package/blueprints/application-datatable/blueprint.json +167 -25
  173. package/blueprints/application-datatable/contributions/adrs/adr-1801-application-datatable-pattern-choice.json +1 -1
  174. package/blueprints/application-datatable/contributions/adrs/adr-1802-application-datatable-url-state.json +1 -1
  175. package/blueprints/application-datatable/contributions/adrs/adr-1803-application-datatable-page-size.json +1 -1
  176. package/blueprints/application-datatable/contributions/adrs/adr-1804-application-datatable-selection-persistence.json +1 -1
  177. package/blueprints/application-datatable/contributions/requirements/application-datatable-req-001.json +11 -4
  178. package/blueprints/application-datatable/contributions/requirements/application-datatable-req-002.json +11 -4
  179. package/blueprints/application-datatable/contributions/requirements/application-datatable-req-003.json +10 -3
  180. package/blueprints/application-datatable/contributions/requirements/application-datatable-req-004.json +11 -4
  181. package/blueprints/application-datatable/contributions/requirements/application-datatable-req-005.json +10 -3
  182. package/blueprints/application-datatable/contributions/requirements/application-datatable-req-006.json +10 -3
  183. package/blueprints/application-datatable/contributions/tacs/tac-1801-application-datatable-shell.json +1 -1
  184. package/blueprints/application-datatable/contributions/tacs/tac-1802-application-datatable-query-adapter.json +1 -1
  185. package/blueprints/application-datatable/contributions/tacs/tac-1803-application-datatable-selection-model.json +2 -2
  186. package/blueprints/application-datatable/contributions/user-stories/application-datatable-us-17101.json +29 -7
  187. package/blueprints/application-datatable/contributions/user-stories/application-datatable-us-17102.json +29 -7
  188. package/blueprints/application-datatable/contributions/user-stories/application-datatable-us-17103.json +28 -6
  189. package/blueprints/application-datatable/contributions/user-stories/application-datatable-us-17104.json +65 -7
  190. package/blueprints/application-datatable/contributions/user-stories/application-datatable-us-17105.json +32 -7
  191. package/blueprints/application-datatable/contributions/user-stories/application-datatable-us-17106.json +60 -7
  192. package/blueprints/application-datatable/contributions/user-stories/application-datatable-us-17107.json +72 -7
  193. package/blueprints/application-datatable/contributions/user-stories/application-datatable-us-17108.json +59 -9
  194. package/blueprints/application-datatable/contributions/user-stories/application-datatable-us-17109.json +58 -9
  195. package/blueprints/application-datatable/docs/topics.md +2 -2
  196. package/blueprints/application-datatable/guide/application-datatable.md +1 -1
  197. package/blueprints/application-empty-error-states/CHANGELOG.md +33 -3
  198. package/blueprints/application-empty-error-states/README.md +3 -3
  199. package/blueprints/application-empty-error-states/blueprint.json +35 -1
  200. package/blueprints/application-empty-error-states/contributions/requirements/application-empty-error-states-req-001.json +4 -0
  201. package/blueprints/application-empty-error-states/contributions/requirements/application-empty-error-states-req-002.json +7 -3
  202. package/blueprints/application-empty-error-states/contributions/requirements/application-empty-error-states-req-003.json +4 -0
  203. package/blueprints/application-empty-error-states/contributions/requirements/application-empty-error-states-req-004.json +6 -2
  204. package/blueprints/application-empty-error-states/contributions/requirements/application-empty-error-states-req-005.json +7 -3
  205. package/blueprints/application-empty-error-states/contributions/requirements/application-empty-error-states-req-006.json +21 -0
  206. package/blueprints/application-empty-error-states/contributions/requirements/application-empty-error-states-req-007.json +21 -0
  207. package/blueprints/application-empty-error-states/contributions/tacs/tac-2301-application-empty-error-states-state-machine.json +7 -4
  208. package/blueprints/application-empty-error-states/contributions/tacs/tac-2303-application-empty-error-states-offline-buffer.json +3 -2
  209. package/blueprints/application-empty-error-states/contributions/user-stories/application-empty-error-states-us-22101.json +17 -2
  210. package/blueprints/application-empty-error-states/contributions/user-stories/application-empty-error-states-us-22102.json +31 -2
  211. package/blueprints/application-empty-error-states/contributions/user-stories/application-empty-error-states-us-22103.json +27 -2
  212. package/blueprints/application-empty-error-states/contributions/user-stories/application-empty-error-states-us-22104.json +13 -2
  213. package/blueprints/application-empty-error-states/contributions/user-stories/application-empty-error-states-us-22105.json +33 -2
  214. package/blueprints/application-empty-error-states/contributions/user-stories/application-empty-error-states-us-22106.json +13 -2
  215. package/blueprints/application-empty-error-states/contributions/user-stories/application-empty-error-states-us-22107.json +23 -2
  216. package/blueprints/application-empty-error-states/contributions/user-stories/application-empty-error-states-us-22108.json +27 -2
  217. package/blueprints/application-empty-error-states/docs/topics.md +1 -1
  218. package/blueprints/application-empty-error-states/probe-packs/application-empty-error-states.pack.mjs +93 -9
  219. package/blueprints/application-error-handling/CHANGELOG.md +17 -0
  220. package/blueprints/application-error-handling/blueprint.json +104 -19
  221. package/blueprints/application-error-handling/contributions/adrs/adr-1701-application-error-handling-record-shape.json +1 -1
  222. package/blueprints/application-error-handling/contributions/adrs/adr-1702-application-error-handling-classification-vocabulary.json +1 -1
  223. package/blueprints/application-error-handling/contributions/adrs/adr-1703-application-error-handling-transport-mapping.json +1 -1
  224. package/blueprints/application-error-handling/contributions/requirements/application-error-handling-req-001.json +10 -3
  225. package/blueprints/application-error-handling/contributions/requirements/application-error-handling-req-002.json +10 -3
  226. package/blueprints/application-error-handling/contributions/requirements/application-error-handling-req-003.json +10 -3
  227. package/blueprints/application-error-handling/contributions/requirements/application-error-handling-req-004.json +10 -3
  228. package/blueprints/application-error-handling/contributions/tacs/tac-1701-application-error-handling-boundary.json +1 -1
  229. package/blueprints/application-error-handling/contributions/tacs/tac-1702-application-error-handling-record-factory.json +1 -1
  230. package/blueprints/application-error-handling/contributions/user-stories/application-error-handling-us-16101.json +63 -4
  231. package/blueprints/application-error-handling/contributions/user-stories/application-error-handling-us-16102.json +49 -4
  232. package/blueprints/application-error-handling/contributions/user-stories/application-error-handling-us-16103.json +51 -5
  233. package/blueprints/application-error-handling/contributions/user-stories/application-error-handling-us-16104.json +49 -4
  234. package/blueprints/application-error-handling/contributions/user-stories/application-error-handling-us-16105.json +49 -4
  235. package/blueprints/application-error-handling/contributions/user-stories/application-error-handling-us-16106.json +49 -4
  236. package/blueprints/application-error-handling/contributions/user-stories/application-error-handling-us-16107.json +53 -4
  237. package/blueprints/application-error-handling/docs/topics.md +1 -1
  238. package/blueprints/application-file-upload/CHANGELOG.md +36 -3
  239. package/blueprints/application-file-upload/README.md +1 -1
  240. package/blueprints/application-file-upload/blueprint.json +56 -1
  241. package/blueprints/application-file-upload/contributions/adrs/adr-2402-application-file-upload-accepted-set.json +3 -3
  242. package/blueprints/application-file-upload/contributions/requirements/application-file-upload-req-001.json +4 -0
  243. package/blueprints/application-file-upload/contributions/requirements/application-file-upload-req-002.json +7 -3
  244. package/blueprints/application-file-upload/contributions/requirements/application-file-upload-req-003.json +6 -2
  245. package/blueprints/application-file-upload/contributions/requirements/application-file-upload-req-004.json +6 -2
  246. package/blueprints/application-file-upload/contributions/requirements/application-file-upload-req-005.json +4 -0
  247. package/blueprints/application-file-upload/contributions/requirements/application-file-upload-req-006.json +21 -0
  248. package/blueprints/application-file-upload/contributions/requirements/application-file-upload-req-007.json +21 -0
  249. package/blueprints/application-file-upload/contributions/tacs/tac-2401-application-file-upload-input.json +4 -2
  250. package/blueprints/application-file-upload/contributions/tacs/tac-2402-application-file-upload-transport.json +7 -2
  251. package/blueprints/application-file-upload/contributions/tacs/tac-2403-application-file-upload-progress-announcer.json +16 -6
  252. package/blueprints/application-file-upload/contributions/user-stories/application-file-upload-us-23101.json +23 -2
  253. package/blueprints/application-file-upload/contributions/user-stories/application-file-upload-us-23102.json +29 -4
  254. package/blueprints/application-file-upload/contributions/user-stories/application-file-upload-us-23103.json +13 -2
  255. package/blueprints/application-file-upload/contributions/user-stories/application-file-upload-us-23104.json +45 -2
  256. package/blueprints/application-file-upload/contributions/user-stories/application-file-upload-us-23105.json +37 -2
  257. package/blueprints/application-file-upload/contributions/user-stories/application-file-upload-us-23106.json +13 -2
  258. package/blueprints/application-file-upload/contributions/user-stories/application-file-upload-us-23107.json +17 -2
  259. package/blueprints/application-file-upload/docs/topics.md +1 -1
  260. package/blueprints/application-file-upload/probe-packs/application-file-upload.pack.mjs +14 -5
  261. package/blueprints/application-forms-wizard/CHANGELOG.md +34 -3
  262. package/blueprints/application-forms-wizard/README.md +2 -2
  263. package/blueprints/application-forms-wizard/blueprint.json +57 -1
  264. package/blueprints/application-forms-wizard/contributions/requirements/application-forms-wizard-req-001.json +4 -0
  265. package/blueprints/application-forms-wizard/contributions/requirements/application-forms-wizard-req-002.json +6 -2
  266. package/blueprints/application-forms-wizard/contributions/requirements/application-forms-wizard-req-003.json +6 -2
  267. package/blueprints/application-forms-wizard/contributions/requirements/application-forms-wizard-req-004.json +6 -2
  268. package/blueprints/application-forms-wizard/contributions/requirements/application-forms-wizard-req-005.json +4 -0
  269. package/blueprints/application-forms-wizard/contributions/requirements/application-forms-wizard-req-006.json +21 -0
  270. package/blueprints/application-forms-wizard/contributions/tacs/tac-2501-application-forms-wizard-task-list.json +6 -4
  271. package/blueprints/application-forms-wizard/contributions/tacs/tac-2502-application-forms-wizard-error-summary.json +4 -3
  272. package/blueprints/application-forms-wizard/contributions/user-stories/application-forms-wizard-us-24101.json +35 -2
  273. package/blueprints/application-forms-wizard/contributions/user-stories/application-forms-wizard-us-24102.json +27 -2
  274. package/blueprints/application-forms-wizard/contributions/user-stories/application-forms-wizard-us-24103.json +21 -2
  275. package/blueprints/application-forms-wizard/contributions/user-stories/application-forms-wizard-us-24104.json +13 -2
  276. package/blueprints/application-forms-wizard/contributions/user-stories/application-forms-wizard-us-24105.json +33 -2
  277. package/blueprints/application-forms-wizard/contributions/user-stories/application-forms-wizard-us-24106.json +18 -3
  278. package/blueprints/application-forms-wizard/contributions/user-stories/application-forms-wizard-us-24107.json +23 -2
  279. package/blueprints/application-forms-wizard/contributions/user-stories/application-forms-wizard-us-24108.json +13 -2
  280. package/blueprints/application-forms-wizard/docs/topics.md +1 -1
  281. package/blueprints/application-forms-wizard/probe-packs/application-forms-wizard.pack.mjs +3 -3
  282. package/blueprints/application-notifications-in-app/CHANGELOG.md +35 -3
  283. package/blueprints/application-notifications-in-app/README.md +5 -5
  284. package/blueprints/application-notifications-in-app/blueprint.json +150 -22
  285. package/blueprints/application-notifications-in-app/contributions/requirements/application-notifications-in-app-req-001.json +11 -4
  286. package/blueprints/application-notifications-in-app/contributions/requirements/application-notifications-in-app-req-002.json +8 -1
  287. package/blueprints/application-notifications-in-app/contributions/requirements/application-notifications-in-app-req-003.json +10 -3
  288. package/blueprints/application-notifications-in-app/contributions/requirements/application-notifications-in-app-req-004.json +11 -4
  289. package/blueprints/application-notifications-in-app/contributions/requirements/application-notifications-in-app-req-005.json +12 -5
  290. package/blueprints/application-notifications-in-app/contributions/requirements/application-notifications-in-app-req-006.json +21 -0
  291. package/blueprints/application-notifications-in-app/contributions/tacs/tac-2102-application-notifications-in-app-centre.json +14 -8
  292. package/blueprints/application-notifications-in-app/contributions/tacs/tac-2103-application-notifications-in-app-preferences.json +2 -2
  293. package/blueprints/application-notifications-in-app/contributions/user-stories/application-notifications-in-app-us-20101.json +29 -5
  294. package/blueprints/application-notifications-in-app/contributions/user-stories/application-notifications-in-app-us-20102.json +43 -5
  295. package/blueprints/application-notifications-in-app/contributions/user-stories/application-notifications-in-app-us-20103.json +39 -5
  296. package/blueprints/application-notifications-in-app/contributions/user-stories/application-notifications-in-app-us-20104.json +31 -5
  297. package/blueprints/application-notifications-in-app/contributions/user-stories/application-notifications-in-app-us-20105.json +50 -8
  298. package/blueprints/application-notifications-in-app/contributions/user-stories/application-notifications-in-app-us-20106.json +19 -4
  299. package/blueprints/application-notifications-in-app/contributions/user-stories/application-notifications-in-app-us-20107.json +19 -4
  300. package/blueprints/application-notifications-in-app/contributions/user-stories/application-notifications-in-app-us-20108.json +19 -4
  301. package/blueprints/application-notifications-in-app/docs/topics.md +1 -1
  302. package/blueprints/application-notifications-in-app/guide/application-notifications-in-app.md +1 -1
  303. package/blueprints/application-notifications-in-app/probe-packs/application-notifications-in-app.pack.mjs +4 -4
  304. package/blueprints/application-onboarding-tour/CHANGELOG.md +33 -2
  305. package/blueprints/application-onboarding-tour/README.md +2 -2
  306. package/blueprints/application-onboarding-tour/blueprint.json +22 -2
  307. package/blueprints/application-onboarding-tour/contributions/adrs/adr-2702-application-onboarding-tour-completion-store-shape.json +4 -4
  308. package/blueprints/application-onboarding-tour/contributions/requirements/application-onboarding-tour-req-001.json +6 -2
  309. package/blueprints/application-onboarding-tour/contributions/requirements/application-onboarding-tour-req-002.json +6 -2
  310. package/blueprints/application-onboarding-tour/contributions/requirements/application-onboarding-tour-req-003.json +4 -0
  311. package/blueprints/application-onboarding-tour/contributions/requirements/application-onboarding-tour-req-004.json +4 -0
  312. package/blueprints/application-onboarding-tour/contributions/requirements/application-onboarding-tour-req-005.json +22 -0
  313. package/blueprints/application-onboarding-tour/contributions/requirements/application-onboarding-tour-req-006.json +22 -0
  314. package/blueprints/application-onboarding-tour/contributions/tacs/tac-2702-application-onboarding-tour-checklist-slot.json +2 -1
  315. package/blueprints/application-onboarding-tour/contributions/tacs/tac-2703-application-onboarding-tour-completion-store.json +7 -7
  316. package/blueprints/application-onboarding-tour/contributions/user-stories/application-onboarding-tour-us-26101.json +67 -2
  317. package/blueprints/application-onboarding-tour/contributions/user-stories/application-onboarding-tour-us-26102.json +35 -2
  318. package/blueprints/application-onboarding-tour/contributions/user-stories/application-onboarding-tour-us-26103.json +13 -2
  319. package/blueprints/application-onboarding-tour/contributions/user-stories/application-onboarding-tour-us-26104.json +33 -2
  320. package/blueprints/application-onboarding-tour/contributions/user-stories/application-onboarding-tour-us-26105.json +13 -2
  321. package/blueprints/application-onboarding-tour/contributions/user-stories/application-onboarding-tour-us-26106.json +13 -2
  322. package/blueprints/application-onboarding-tour/contributions/user-stories/application-onboarding-tour-us-26107.json +17 -2
  323. package/blueprints/application-onboarding-tour/contributions/user-stories/application-onboarding-tour-us-26108.json +62 -0
  324. package/blueprints/application-onboarding-tour/contributions/user-stories/application-onboarding-tour-us-26109.json +72 -0
  325. package/blueprints/application-onboarding-tour/docs/topics.md +3 -3
  326. package/blueprints/application-onboarding-tour/guide/application-onboarding-tour.md +1 -1
  327. package/blueprints/application-onboarding-tour/probe-packs/application-onboarding-tour.pack.mjs +2 -2
  328. package/blueprints/application-spa/CHANGELOG.md +30 -0
  329. package/blueprints/application-spa/README.md +8 -8
  330. package/blueprints/application-spa/blueprint.json +1 -1
  331. package/blueprints/application-spa/contributions/adrs/adr-201-application-spa-routing.json +1 -1
  332. package/blueprints/application-spa/contributions/adrs/adr-202-application-spa-theming.json +1 -1
  333. package/blueprints/application-spa/contributions/adrs/adr-203-application-spa-client-state.json +1 -1
  334. package/blueprints/application-spa/contributions/adrs/adr-204-application-spa-error-envelope.json +1 -1
  335. package/blueprints/application-spa/contributions/adrs/adr-205-application-spa-auth-model.json +1 -1
  336. package/blueprints/application-spa/contributions/adrs/adr-206-application-spa-iconography.json +1 -1
  337. package/blueprints/application-spa/contributions/adrs/adr-207-application-spa-motion.json +1 -1
  338. package/blueprints/application-spa/contributions/adrs/adr-208-application-spa-i18n.json +1 -1
  339. package/blueprints/application-spa/contributions/adrs/adr-209-application-spa-telemetry-naming.json +1 -1
  340. package/blueprints/application-spa/contributions/requirements/application-spa-req-001.json +6 -2
  341. package/blueprints/application-spa/contributions/requirements/application-spa-req-002.json +6 -2
  342. package/blueprints/application-spa/contributions/requirements/application-spa-req-003.json +6 -2
  343. package/blueprints/application-spa/contributions/requirements/application-spa-req-004.json +6 -2
  344. package/blueprints/application-spa/contributions/requirements/application-spa-req-005.json +6 -2
  345. package/blueprints/application-spa/contributions/requirements/application-spa-req-006.json +6 -2
  346. package/blueprints/application-spa/contributions/requirements/application-spa-req-007.json +6 -2
  347. package/blueprints/application-spa/contributions/requirements/application-spa-req-008.json +6 -2
  348. package/blueprints/application-spa/contributions/requirements/application-spa-req-009.json +7 -3
  349. package/blueprints/application-spa/contributions/requirements/application-spa-req-010.json +6 -2
  350. package/blueprints/application-spa/contributions/requirements/application-spa-req-011.json +6 -2
  351. package/blueprints/application-spa/contributions/requirements/application-spa-req-012.json +6 -2
  352. package/blueprints/application-spa/contributions/requirements/application-spa-req-013.json +6 -2
  353. package/blueprints/application-spa/contributions/requirements/application-spa-req-014.json +6 -2
  354. package/blueprints/application-spa/contributions/requirements/application-spa-req-015.json +6 -2
  355. package/blueprints/application-spa/contributions/requirements/application-spa-req-016.json +6 -2
  356. package/blueprints/application-spa/contributions/requirements/application-spa-req-017.json +6 -2
  357. package/blueprints/application-spa/contributions/requirements/application-spa-req-018.json +7 -3
  358. package/blueprints/application-spa/contributions/requirements/application-spa-req-019.json +6 -2
  359. package/blueprints/application-spa/contributions/requirements/application-spa-req-020.json +6 -2
  360. package/blueprints/application-spa/contributions/requirements/application-spa-req-021.json +6 -2
  361. package/blueprints/application-spa/contributions/tacs/tac-201-application-spa-app-shell.json +4 -3
  362. package/blueprints/application-spa/contributions/tacs/tac-202-application-spa-theme-system.json +1 -1
  363. package/blueprints/application-spa/contributions/tacs/tac-203-application-spa-component-library.json +1 -1
  364. package/blueprints/application-spa/contributions/tacs/tac-204-application-spa-client-data-layer.json +1 -1
  365. package/blueprints/application-spa/contributions/tacs/tac-205-application-spa-forms-engine.json +1 -1
  366. package/blueprints/application-spa/contributions/tacs/tac-206-application-spa-telemetry.json +1 -1
  367. package/blueprints/application-spa/contributions/tacs/tac-207-application-spa-token-adherence-probe.json +1 -1
  368. package/blueprints/application-spa/contributions/tacs/tac-208-application-spa-icon-adherence-probe.json +1 -1
  369. package/blueprints/application-spa/contributions/tacs/tac-209-application-spa-csp-styled-adherence-probe.json +3 -3
  370. package/blueprints/application-spa/contributions/tacs/tac-210-application-spa-external-dependency-provisioning-probe.json +2 -2
  371. package/blueprints/application-spa/contributions/tacs/tac-211-application-spa-core-flow-e2e-probe.json +2 -2
  372. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1101.json +22 -8
  373. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1102.json +18 -9
  374. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1103.json +13 -7
  375. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1104.json +15 -10
  376. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1105.json +13 -7
  377. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1106.json +12 -7
  378. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1107.json +25 -6
  379. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1108.json +17 -9
  380. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1109.json +17 -9
  381. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1110.json +19 -10
  382. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1111.json +19 -11
  383. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1112.json +15 -8
  384. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1113.json +15 -8
  385. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1114.json +15 -10
  386. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1115.json +13 -7
  387. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1116.json +15 -9
  388. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1117.json +20 -10
  389. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1118.json +9 -5
  390. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1119.json +11 -6
  391. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1120.json +16 -10
  392. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1121.json +13 -7
  393. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1122.json +13 -7
  394. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1123.json +28 -9
  395. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1124.json +11 -6
  396. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1125.json +14 -8
  397. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1126.json +24 -9
  398. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1127.json +11 -6
  399. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1128.json +11 -7
  400. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1129.json +25 -5
  401. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1130.json +25 -5
  402. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1131.json +19 -9
  403. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1132.json +40 -10
  404. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1133.json +35 -9
  405. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1134.json +23 -3
  406. package/blueprints/application-spa/contributions/user-stories/application-spa-us-1135.json +19 -3
  407. package/blueprints/application-spa/docs/topics.md +1 -1
  408. package/blueprints/application-spa/guide/application-spa.md +2 -2
  409. package/blueprints/delivery-ci-workflows/CHANGELOG.md +18 -0
  410. package/blueprints/delivery-ci-workflows/README.md +1 -1
  411. package/blueprints/delivery-ci-workflows/blueprint.json +62 -1
  412. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-001.json +4 -0
  413. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-002.json +4 -0
  414. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-003.json +4 -0
  415. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-004.json +4 -0
  416. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-005.json +4 -0
  417. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-006.json +4 -0
  418. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-007.json +4 -0
  419. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-008.json +4 -0
  420. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-009.json +4 -0
  421. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-010.json +4 -0
  422. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-011.json +6 -2
  423. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-012.json +4 -0
  424. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-013.json +4 -0
  425. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-014.json +4 -0
  426. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-015.json +4 -0
  427. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-016.json +4 -0
  428. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-017.json +4 -0
  429. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-018.json +4 -0
  430. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-019.json +4 -0
  431. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-020.json +4 -0
  432. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-021.json +4 -0
  433. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-022.json +4 -0
  434. package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-023.json +4 -0
  435. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6101.json +20 -4
  436. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6102.json +19 -3
  437. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6103.json +20 -4
  438. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6104.json +20 -4
  439. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6105.json +20 -4
  440. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6106.json +20 -4
  441. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6107.json +20 -4
  442. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6108.json +20 -4
  443. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6109.json +12 -5
  444. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6110.json +21 -5
  445. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6111.json +21 -5
  446. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6112.json +35 -5
  447. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6113.json +21 -5
  448. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6114.json +8 -5
  449. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6115.json +21 -5
  450. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6116.json +19 -3
  451. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6117.json +19 -3
  452. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6118.json +21 -5
  453. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6119.json +19 -3
  454. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6120.json +19 -3
  455. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6121.json +23 -6
  456. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6122.json +24 -7
  457. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6123.json +21 -5
  458. package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6124.json +19 -3
  459. package/blueprints/delivery-ci-workflows/docs/topics.md +1 -1
  460. package/blueprints/deploy-cloudflare-workers/CHANGELOG.md +17 -2
  461. package/blueprints/deploy-cloudflare-workers/README.md +2 -2
  462. package/blueprints/deploy-cloudflare-workers/blueprint.json +4 -4
  463. package/blueprints/deploy-cloudflare-workers/contributions/adrs/adr-1303-deploy-cloudflare-workers-preview-vs-production.json +1 -1
  464. package/blueprints/deploy-cloudflare-workers/contributions/adrs/adr-1306-deploy-cloudflare-workers-spa-shape.json +2 -2
  465. package/blueprints/deploy-cloudflare-workers/contributions/probes/assets-manifest-scan.mjs +25 -7
  466. package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-001.json +5 -1
  467. package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-002.json +6 -2
  468. package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-003.json +5 -1
  469. package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-004.json +5 -1
  470. package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-005.json +5 -1
  471. package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-006.json +5 -1
  472. package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-007.json +5 -1
  473. package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-008.json +5 -1
  474. package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-009.json +5 -1
  475. package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-010.json +5 -1
  476. package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-011.json +5 -1
  477. package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-012.json +5 -1
  478. package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-013.json +5 -1
  479. package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-014.json +7 -3
  480. package/blueprints/deploy-cloudflare-workers/contributions/tacs/tac-1301-deploy-cloudflare-workers-deploy-adapter.json +3 -2
  481. package/blueprints/deploy-cloudflare-workers/contributions/tacs/tac-1302-deploy-cloudflare-workers-wrangler-manifest.json +5 -2
  482. package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12101.json +21 -9
  483. package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12102.json +23 -4
  484. package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12103.json +7 -4
  485. package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12104.json +7 -4
  486. package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12105.json +11 -4
  487. package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12106.json +7 -4
  488. package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12107.json +7 -4
  489. package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12108.json +15 -4
  490. package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12109.json +11 -4
  491. package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12110.json +7 -4
  492. package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12111.json +11 -4
  493. package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12112.json +11 -4
  494. package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12113.json +41 -3
  495. package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12114.json +17 -2
  496. package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12115.json +18 -3
  497. package/blueprints/deploy-cloudflare-workers/docs/topics.md +1 -1
  498. package/blueprints/deploy-cloudflare-workers/guide/deploy-cloudflare-workers.md +7 -2
  499. package/blueprints/deploy-hetzner-server/CHANGELOG.md +39 -2
  500. package/blueprints/deploy-hetzner-server/README.md +12 -12
  501. package/blueprints/deploy-hetzner-server/blueprint.json +2 -2
  502. package/blueprints/deploy-hetzner-server/contributions/adrs/adr-3801-deploy-hetzner-server-cloud-host-contract.json +2 -2
  503. package/blueprints/deploy-hetzner-server/contributions/adrs/adr-3803-deploy-hetzner-server-provisioning-tool.json +2 -2
  504. package/blueprints/deploy-hetzner-server/contributions/probes/cloud-init-render-lint.mjs +12 -5
  505. package/blueprints/deploy-hetzner-server/contributions/probes/hcloud-dry-run-mock.mjs +68 -20
  506. package/blueprints/deploy-hetzner-server/contributions/probes/manifest-schema-validate.mjs +8 -6
  507. package/blueprints/deploy-hetzner-server/contributions/probes/probe-utils.mjs +7 -1
  508. package/blueprints/deploy-hetzner-server/contributions/probes/real-account-cloud-init-hardened.mjs +2 -1
  509. package/blueprints/deploy-hetzner-server/contributions/requirements/deploy-hetzner-server-req-001.json +6 -2
  510. package/blueprints/deploy-hetzner-server/contributions/requirements/deploy-hetzner-server-req-002.json +6 -2
  511. package/blueprints/deploy-hetzner-server/contributions/requirements/deploy-hetzner-server-req-003.json +5 -1
  512. package/blueprints/deploy-hetzner-server/contributions/requirements/deploy-hetzner-server-req-004.json +5 -1
  513. package/blueprints/deploy-hetzner-server/contributions/requirements/deploy-hetzner-server-req-005.json +6 -2
  514. package/blueprints/deploy-hetzner-server/contributions/requirements/deploy-hetzner-server-req-006.json +5 -1
  515. package/blueprints/deploy-hetzner-server/contributions/schemas/hetzner-server.schema.json +1 -1
  516. package/blueprints/deploy-hetzner-server/contributions/templates/cloud-init.yaml.tmpl +26 -6
  517. package/blueprints/deploy-hetzner-server/contributions/user-stories/deploy-hetzner-server-us-37101.json +63 -2
  518. package/blueprints/deploy-hetzner-server/contributions/user-stories/deploy-hetzner-server-us-37102.json +35 -2
  519. package/blueprints/deploy-hetzner-server/contributions/user-stories/deploy-hetzner-server-us-37103.json +59 -2
  520. package/blueprints/deploy-hetzner-server/contributions/user-stories/deploy-hetzner-server-us-37104.json +31 -2
  521. package/blueprints/deploy-hetzner-server/contributions/user-stories/deploy-hetzner-server-us-37105.json +25 -2
  522. package/blueprints/deploy-hetzner-server/contributions/user-stories/deploy-hetzner-server-us-37106.json +35 -2
  523. package/blueprints/deploy-hetzner-server/contributions/user-stories/deploy-hetzner-server-us-37107.json +31 -2
  524. package/blueprints/deploy-hetzner-server/contributions/user-stories/deploy-hetzner-server-us-37108.json +43 -2
  525. package/blueprints/deploy-hetzner-server/contributions/user-stories/deploy-hetzner-server-us-37109.json +31 -2
  526. package/blueprints/deploy-hetzner-server/docs/topics.md +3 -3
  527. package/blueprints/deploy-hetzner-server/guide/deploy-hetzner-server.md +12 -11
  528. package/blueprints/edge-cloudflare-access/CHANGELOG.md +35 -3
  529. package/blueprints/edge-cloudflare-access/README.md +2 -2
  530. package/blueprints/edge-cloudflare-access/blueprint.json +12 -2
  531. package/blueprints/edge-cloudflare-access/contributions/probes/real-account-gated-url.mjs +10 -2
  532. package/blueprints/edge-cloudflare-access/contributions/probes/wrangler-seam.mjs +1 -1
  533. package/blueprints/edge-cloudflare-access/contributions/requirements/edge-cloudflare-access-req-001.json +5 -1
  534. package/blueprints/edge-cloudflare-access/contributions/requirements/edge-cloudflare-access-req-002.json +5 -1
  535. package/blueprints/edge-cloudflare-access/contributions/requirements/edge-cloudflare-access-req-003.json +5 -1
  536. package/blueprints/edge-cloudflare-access/contributions/requirements/edge-cloudflare-access-req-004.json +6 -2
  537. package/blueprints/edge-cloudflare-access/contributions/requirements/edge-cloudflare-access-req-005.json +5 -1
  538. package/blueprints/edge-cloudflare-access/contributions/requirements/edge-cloudflare-access-req-006.json +7 -3
  539. package/blueprints/edge-cloudflare-access/contributions/requirements/edge-cloudflare-access-req-007.json +22 -0
  540. package/blueprints/edge-cloudflare-access/contributions/user-stories/edge-cloudflare-access-us-34101.json +13 -3
  541. package/blueprints/edge-cloudflare-access/contributions/user-stories/edge-cloudflare-access-us-34102.json +63 -2
  542. package/blueprints/edge-cloudflare-access/contributions/user-stories/edge-cloudflare-access-us-34103.json +18 -3
  543. package/blueprints/edge-cloudflare-access/contributions/user-stories/edge-cloudflare-access-us-34104.json +36 -3
  544. package/blueprints/edge-cloudflare-access/contributions/user-stories/edge-cloudflare-access-us-34105.json +13 -3
  545. package/blueprints/edge-cloudflare-access/contributions/user-stories/edge-cloudflare-access-us-34106.json +9 -3
  546. package/blueprints/edge-cloudflare-access/contributions/user-stories/edge-cloudflare-access-us-34107.json +68 -3
  547. package/blueprints/edge-cloudflare-access/contributions/user-stories/edge-cloudflare-access-us-34108.json +5 -3
  548. package/blueprints/edge-cloudflare-access/contributions/user-stories/edge-cloudflare-access-us-34109.json +10 -4
  549. package/blueprints/edge-cloudflare-access/contributions/user-stories/edge-cloudflare-access-us-34110.json +33 -0
  550. package/blueprints/edge-cloudflare-access/docs/topics.md +2 -2
  551. package/blueprints/edge-cloudflare-rate-limiting/CHANGELOG.md +35 -1
  552. package/blueprints/edge-cloudflare-rate-limiting/README.md +3 -3
  553. package/blueprints/edge-cloudflare-rate-limiting/blueprint.json +1 -1
  554. package/blueprints/edge-cloudflare-rate-limiting/contributions/probes/real-account-burst-and-429.mjs +10 -2
  555. package/blueprints/edge-cloudflare-rate-limiting/contributions/requirements/edge-cloudflare-rate-limiting-req-001.json +6 -2
  556. package/blueprints/edge-cloudflare-rate-limiting/contributions/requirements/edge-cloudflare-rate-limiting-req-002.json +5 -1
  557. package/blueprints/edge-cloudflare-rate-limiting/contributions/requirements/edge-cloudflare-rate-limiting-req-003.json +5 -1
  558. package/blueprints/edge-cloudflare-rate-limiting/contributions/requirements/edge-cloudflare-rate-limiting-req-004.json +6 -2
  559. package/blueprints/edge-cloudflare-rate-limiting/contributions/requirements/edge-cloudflare-rate-limiting-req-005.json +5 -1
  560. package/blueprints/edge-cloudflare-rate-limiting/contributions/tacs/tac-3701-edge-cloudflare-rate-limiting-manifest-schema.json +2 -2
  561. package/blueprints/edge-cloudflare-rate-limiting/contributions/tacs/tac-3703-edge-cloudflare-rate-limiting-drift-audit-runner.json +2 -2
  562. package/blueprints/edge-cloudflare-rate-limiting/contributions/user-stories/edge-cloudflare-rate-limiting-us-36101.json +27 -3
  563. package/blueprints/edge-cloudflare-rate-limiting/contributions/user-stories/edge-cloudflare-rate-limiting-us-36102.json +9 -3
  564. package/blueprints/edge-cloudflare-rate-limiting/contributions/user-stories/edge-cloudflare-rate-limiting-us-36103.json +24 -5
  565. package/blueprints/edge-cloudflare-rate-limiting/contributions/user-stories/edge-cloudflare-rate-limiting-us-36104.json +88 -3
  566. package/blueprints/edge-cloudflare-rate-limiting/contributions/user-stories/edge-cloudflare-rate-limiting-us-36105.json +5 -3
  567. package/blueprints/edge-cloudflare-rate-limiting/contributions/user-stories/edge-cloudflare-rate-limiting-us-36106.json +22 -3
  568. package/blueprints/edge-cloudflare-rate-limiting/contributions/user-stories/edge-cloudflare-rate-limiting-us-36107.json +16 -5
  569. package/blueprints/edge-cloudflare-rate-limiting/contributions/user-stories/edge-cloudflare-rate-limiting-us-36108.json +14 -3
  570. package/blueprints/edge-cloudflare-rate-limiting/docs/topics.md +1 -1
  571. package/blueprints/edge-cloudflare-rate-limiting/guide/edge-cloudflare-rate-limiting.md +2 -2
  572. package/blueprints/edge-cloudflare-tunnel/CHANGELOG.md +49 -4
  573. package/blueprints/edge-cloudflare-tunnel/README.md +20 -21
  574. package/blueprints/edge-cloudflare-tunnel/blueprint.json +29 -4
  575. package/blueprints/edge-cloudflare-tunnel/contributions/adrs/adr-4001-edge-cloudflare-tunnel-ingress-bridge-contract.json +4 -4
  576. package/blueprints/edge-cloudflare-tunnel/contributions/adrs/adr-4002-edge-cloudflare-tunnel-connector-runtime.json +1 -1
  577. package/blueprints/edge-cloudflare-tunnel/contributions/probes/manifest-schema-validate.mjs +7 -4
  578. package/blueprints/edge-cloudflare-tunnel/contributions/probes/probe-utils.mjs +13 -2
  579. package/blueprints/edge-cloudflare-tunnel/contributions/probes/real-account-connector-healthy.mjs +109 -21
  580. package/blueprints/edge-cloudflare-tunnel/contributions/probes/real-account-tunnel-hostname-routes.mjs +123 -30
  581. package/blueprints/edge-cloudflare-tunnel/contributions/requirements/edge-cloudflare-tunnel-req-001.json +6 -2
  582. package/blueprints/edge-cloudflare-tunnel/contributions/requirements/edge-cloudflare-tunnel-req-002.json +5 -1
  583. package/blueprints/edge-cloudflare-tunnel/contributions/requirements/edge-cloudflare-tunnel-req-003.json +7 -3
  584. package/blueprints/edge-cloudflare-tunnel/contributions/requirements/edge-cloudflare-tunnel-req-004.json +5 -1
  585. package/blueprints/edge-cloudflare-tunnel/contributions/requirements/edge-cloudflare-tunnel-req-005.json +5 -1
  586. package/blueprints/edge-cloudflare-tunnel/contributions/requirements/edge-cloudflare-tunnel-req-006.json +22 -0
  587. package/blueprints/edge-cloudflare-tunnel/contributions/requirements/edge-cloudflare-tunnel-req-007.json +22 -0
  588. package/blueprints/edge-cloudflare-tunnel/contributions/tacs/tac-4001-edge-cloudflare-tunnel-connector-shape.json +1 -1
  589. package/blueprints/edge-cloudflare-tunnel/contributions/tacs/tac-4004-edge-cloudflare-tunnel-zone-and-hostname-apply.json +29 -0
  590. package/blueprints/edge-cloudflare-tunnel/contributions/user-stories/edge-cloudflare-tunnel-us-39101.json +39 -3
  591. package/blueprints/edge-cloudflare-tunnel/contributions/user-stories/edge-cloudflare-tunnel-us-39102.json +23 -4
  592. package/blueprints/edge-cloudflare-tunnel/contributions/user-stories/edge-cloudflare-tunnel-us-39103.json +53 -3
  593. package/blueprints/edge-cloudflare-tunnel/contributions/user-stories/edge-cloudflare-tunnel-us-39104.json +33 -3
  594. package/blueprints/edge-cloudflare-tunnel/contributions/user-stories/edge-cloudflare-tunnel-us-39105.json +25 -3
  595. package/blueprints/edge-cloudflare-tunnel/contributions/user-stories/edge-cloudflare-tunnel-us-39106.json +86 -2
  596. package/blueprints/edge-cloudflare-tunnel/contributions/user-stories/edge-cloudflare-tunnel-us-39107.json +25 -3
  597. package/blueprints/edge-cloudflare-tunnel/contributions/user-stories/edge-cloudflare-tunnel-us-39108.json +35 -2
  598. package/blueprints/edge-cloudflare-tunnel/contributions/user-stories/edge-cloudflare-tunnel-us-39109.json +74 -0
  599. package/blueprints/edge-cloudflare-tunnel/contributions/user-stories/edge-cloudflare-tunnel-us-39110.json +60 -0
  600. package/blueprints/edge-cloudflare-tunnel/docs/topics.md +2 -2
  601. package/blueprints/edge-cloudflare-tunnel/guide/edge-cloudflare-tunnel.md +60 -13
  602. package/blueprints/edge-cloudflare-turnstile/CHANGELOG.md +33 -1
  603. package/blueprints/edge-cloudflare-turnstile/README.md +2 -2
  604. package/blueprints/edge-cloudflare-turnstile/blueprint.json +1 -1
  605. package/blueprints/edge-cloudflare-turnstile/contributions/requirements/edge-cloudflare-turnstile-req-001.json +6 -2
  606. package/blueprints/edge-cloudflare-turnstile/contributions/requirements/edge-cloudflare-turnstile-req-002.json +5 -1
  607. package/blueprints/edge-cloudflare-turnstile/contributions/requirements/edge-cloudflare-turnstile-req-003.json +6 -2
  608. package/blueprints/edge-cloudflare-turnstile/contributions/requirements/edge-cloudflare-turnstile-req-004.json +5 -1
  609. package/blueprints/edge-cloudflare-turnstile/contributions/requirements/edge-cloudflare-turnstile-req-005.json +5 -1
  610. package/blueprints/edge-cloudflare-turnstile/contributions/tacs/tac-3601-edge-cloudflare-turnstile-widget-mount.json +2 -2
  611. package/blueprints/edge-cloudflare-turnstile/contributions/tacs/tac-3602-edge-cloudflare-turnstile-server-verifier.json +2 -2
  612. package/blueprints/edge-cloudflare-turnstile/contributions/user-stories/edge-cloudflare-turnstile-us-35101.json +46 -5
  613. package/blueprints/edge-cloudflare-turnstile/contributions/user-stories/edge-cloudflare-turnstile-us-35102.json +53 -2
  614. package/blueprints/edge-cloudflare-turnstile/contributions/user-stories/edge-cloudflare-turnstile-us-35103.json +81 -2
  615. package/blueprints/edge-cloudflare-turnstile/contributions/user-stories/edge-cloudflare-turnstile-us-35104.json +29 -6
  616. package/blueprints/edge-cloudflare-turnstile/contributions/user-stories/edge-cloudflare-turnstile-us-35105.json +14 -4
  617. package/blueprints/edge-cloudflare-turnstile/contributions/user-stories/edge-cloudflare-turnstile-us-35106.json +9 -3
  618. package/blueprints/edge-cloudflare-turnstile/contributions/user-stories/edge-cloudflare-turnstile-us-35107.json +5 -3
  619. package/blueprints/edge-cloudflare-turnstile/contributions/user-stories/edge-cloudflare-turnstile-us-35108.json +5 -3
  620. package/blueprints/edge-cloudflare-turnstile/docs/topics.md +1 -1
  621. package/blueprints/edge-cloudflare-turnstile/probe-packs/edge-cloudflare-turnstile.pack.mjs +27 -5
  622. package/blueprints/email-smtp-resend/CHANGELOG.md +24 -0
  623. package/blueprints/email-smtp-resend/README.md +2 -2
  624. package/blueprints/email-smtp-resend/assets/stub-adapter.md +2 -0
  625. package/blueprints/email-smtp-resend/blueprint.json +119 -17
  626. package/blueprints/email-smtp-resend/contributions/requirements/email-smtp-resend-req-001.json +7 -3
  627. package/blueprints/email-smtp-resend/contributions/requirements/email-smtp-resend-req-002.json +4 -0
  628. package/blueprints/email-smtp-resend/contributions/requirements/email-smtp-resend-req-003.json +4 -0
  629. package/blueprints/email-smtp-resend/contributions/requirements/email-smtp-resend-req-004.json +4 -0
  630. package/blueprints/email-smtp-resend/contributions/requirements/email-smtp-resend-req-005.json +4 -0
  631. package/blueprints/email-smtp-resend/contributions/requirements/email-smtp-resend-req-006.json +4 -0
  632. package/blueprints/email-smtp-resend/contributions/tacs/tac-401-email-smtp-resend-send-adapter.json +3 -3
  633. package/blueprints/email-smtp-resend/contributions/tacs/tac-402-email-smtp-resend-webhook-verifier.json +7 -2
  634. package/blueprints/email-smtp-resend/contributions/user-stories/email-smtp-resend-us-4101.json +15 -8
  635. package/blueprints/email-smtp-resend/contributions/user-stories/email-smtp-resend-us-4102.json +27 -7
  636. package/blueprints/email-smtp-resend/contributions/user-stories/email-smtp-resend-us-4103.json +49 -4
  637. package/blueprints/email-smtp-resend/contributions/user-stories/email-smtp-resend-us-4104.json +6 -3
  638. package/blueprints/email-smtp-resend/contributions/user-stories/email-smtp-resend-us-4105.json +21 -5
  639. package/blueprints/email-smtp-resend/contributions/user-stories/email-smtp-resend-us-4106.json +27 -7
  640. package/blueprints/email-smtp-resend/docs/topics.md +1 -1
  641. package/blueprints/email-smtp-resend/guide/email-smtp-resend.md +2 -2
  642. package/blueprints/jobs-background/CHANGELOG.md +30 -6
  643. package/blueprints/jobs-background/README.md +8 -8
  644. package/blueprints/jobs-background/blueprint.json +55 -2
  645. package/blueprints/jobs-background/contributions/adrs/adr-3102-jobs-background-scheduler-mode.json +1 -1
  646. package/blueprints/jobs-background/contributions/adrs/adr-3103-jobs-background-requires-applied-capabilities.json +6 -6
  647. package/blueprints/jobs-background/contributions/probes/fake-clock-cron.mjs +1 -1
  648. package/blueprints/jobs-background/contributions/probes/probe-utils.mjs +4 -4
  649. package/blueprints/jobs-background/contributions/requirements/jobs-background-req-001.json +7 -3
  650. package/blueprints/jobs-background/contributions/requirements/jobs-background-req-002.json +7 -3
  651. package/blueprints/jobs-background/contributions/requirements/jobs-background-req-003.json +5 -1
  652. package/blueprints/jobs-background/contributions/requirements/jobs-background-req-004.json +5 -1
  653. package/blueprints/jobs-background/contributions/requirements/jobs-background-req-005.json +5 -1
  654. package/blueprints/jobs-background/contributions/requirements/jobs-background-req-006.json +5 -1
  655. package/blueprints/jobs-background/contributions/tacs/tac-3101-jobs-background-job-definition.json +5 -5
  656. package/blueprints/jobs-background/contributions/user-stories/jobs-background-us-30101.json +20 -3
  657. package/blueprints/jobs-background/contributions/user-stories/jobs-background-us-30102.json +44 -9
  658. package/blueprints/jobs-background/contributions/user-stories/jobs-background-us-30103.json +48 -3
  659. package/blueprints/jobs-background/contributions/user-stories/jobs-background-us-30104.json +63 -3
  660. package/blueprints/jobs-background/contributions/user-stories/jobs-background-us-30105.json +20 -3
  661. package/blueprints/jobs-background/contributions/user-stories/jobs-background-us-30106.json +20 -3
  662. package/blueprints/jobs-background/contributions/user-stories/jobs-background-us-30107.json +20 -3
  663. package/blueprints/jobs-background/contributions/user-stories/jobs-background-us-30108.json +21 -3
  664. package/blueprints/jobs-background/contributions/user-stories/jobs-background-us-30109.json +23 -6
  665. package/blueprints/jobs-background/docs/topics.md +3 -3
  666. package/blueprints/jobs-background/guide/jobs-background.md +6 -6
  667. package/blueprints/messaging-queue-cloudflare/CHANGELOG.md +41 -6
  668. package/blueprints/messaging-queue-cloudflare/README.md +6 -6
  669. package/blueprints/messaging-queue-cloudflare/blueprint.json +127 -19
  670. package/blueprints/messaging-queue-cloudflare/contributions/adrs/adr-3001-messaging-queue-cloudflare-adapter.json +3 -3
  671. package/blueprints/messaging-queue-cloudflare/contributions/adrs/adr-3002-messaging-queue-cloudflare-delivery-semantics.json +1 -1
  672. package/blueprints/messaging-queue-cloudflare/contributions/probes/real-account-concurrency-smoke.mjs +192 -37
  673. package/blueprints/messaging-queue-cloudflare/contributions/requirements/messaging-queue-cloudflare-req-001.json +6 -2
  674. package/blueprints/messaging-queue-cloudflare/contributions/requirements/messaging-queue-cloudflare-req-002.json +6 -2
  675. package/blueprints/messaging-queue-cloudflare/contributions/requirements/messaging-queue-cloudflare-req-003.json +5 -1
  676. package/blueprints/messaging-queue-cloudflare/contributions/requirements/messaging-queue-cloudflare-req-004.json +6 -2
  677. package/blueprints/messaging-queue-cloudflare/contributions/requirements/messaging-queue-cloudflare-req-005.json +6 -2
  678. package/blueprints/messaging-queue-cloudflare/contributions/requirements/messaging-queue-cloudflare-req-006.json +6 -2
  679. package/blueprints/messaging-queue-cloudflare/contributions/user-stories/messaging-queue-cloudflare-us-29101.json +22 -4
  680. package/blueprints/messaging-queue-cloudflare/contributions/user-stories/messaging-queue-cloudflare-us-29102.json +23 -4
  681. package/blueprints/messaging-queue-cloudflare/contributions/user-stories/messaging-queue-cloudflare-us-29103.json +20 -3
  682. package/blueprints/messaging-queue-cloudflare/contributions/user-stories/messaging-queue-cloudflare-us-29104.json +29 -7
  683. package/blueprints/messaging-queue-cloudflare/contributions/user-stories/messaging-queue-cloudflare-us-29105.json +20 -3
  684. package/blueprints/messaging-queue-cloudflare/contributions/user-stories/messaging-queue-cloudflare-us-29106.json +25 -4
  685. package/blueprints/messaging-queue-cloudflare/contributions/user-stories/messaging-queue-cloudflare-us-29107.json +25 -3
  686. package/blueprints/messaging-queue-cloudflare/contributions/user-stories/messaging-queue-cloudflare-us-29108.json +28 -6
  687. package/blueprints/messaging-queue-cloudflare/docs/topics.md +3 -3
  688. package/blueprints/messaging-queue-cloudflare/guide/messaging-queue-cloudflare.md +7 -5
  689. package/blueprints/object-storage-s3/CHANGELOG.md +32 -4
  690. package/blueprints/object-storage-s3/README.md +16 -3
  691. package/blueprints/object-storage-s3/blueprint.json +162 -20
  692. package/blueprints/object-storage-s3/contributions/adrs/adr-2905-object-storage-s3-hetzner-object-storage-provider.json +30 -0
  693. package/blueprints/object-storage-s3/contributions/probes/hetzner-object-storage-round-trip.mjs +136 -0
  694. package/blueprints/object-storage-s3/contributions/probes/run-hetzner-object-storage-round-trip.mjs +11 -0
  695. package/blueprints/object-storage-s3/contributions/requirements/object-storage-s3-req-001.json +6 -2
  696. package/blueprints/object-storage-s3/contributions/requirements/object-storage-s3-req-002.json +6 -2
  697. package/blueprints/object-storage-s3/contributions/requirements/object-storage-s3-req-003.json +5 -1
  698. package/blueprints/object-storage-s3/contributions/requirements/object-storage-s3-req-004.json +6 -2
  699. package/blueprints/object-storage-s3/contributions/requirements/object-storage-s3-req-005.json +6 -2
  700. package/blueprints/object-storage-s3/contributions/requirements/object-storage-s3-req-006.json +6 -2
  701. package/blueprints/object-storage-s3/contributions/requirements/object-storage-s3-req-101.json +22 -0
  702. package/blueprints/object-storage-s3/contributions/tacs/tac-2904-object-storage-s3-hetzner-endpoint-helper.json +34 -0
  703. package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28101.json +36 -4
  704. package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28102.json +32 -5
  705. package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28103.json +42 -3
  706. package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28104.json +22 -4
  707. package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28105.json +25 -4
  708. package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28106.json +13 -5
  709. package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28107.json +10 -4
  710. package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28108.json +12 -4
  711. package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28110.json +42 -0
  712. package/blueprints/object-storage-s3/docs/topics.md +1 -1
  713. package/blueprints/object-storage-s3/guide/object-storage-s3.md +37 -1
  714. package/blueprints/observability-essentials/CHANGELOG.md +21 -0
  715. package/blueprints/observability-essentials/README.md +1 -1
  716. package/blueprints/observability-essentials/assets/probe-samples/probe-response-baseline.v2.json +17 -0
  717. package/blueprints/observability-essentials/blueprint.json +32 -1
  718. package/blueprints/observability-essentials/contributions/adrs/adr-801-observability-essentials-health-probes.json +1 -1
  719. package/blueprints/observability-essentials/contributions/requirements/observability-essentials-req-001.json +4 -0
  720. package/blueprints/observability-essentials/contributions/requirements/observability-essentials-req-002.json +4 -0
  721. package/blueprints/observability-essentials/contributions/requirements/observability-essentials-req-003.json +4 -0
  722. package/blueprints/observability-essentials/contributions/requirements/observability-essentials-req-004.json +4 -0
  723. package/blueprints/observability-essentials/contributions/requirements/observability-essentials-req-005.json +4 -0
  724. package/blueprints/observability-essentials/contributions/requirements/observability-essentials-req-006.json +6 -2
  725. package/blueprints/observability-essentials/contributions/requirements/observability-essentials-req-007.json +7 -3
  726. package/blueprints/observability-essentials/contributions/requirements/observability-essentials-req-008.json +4 -0
  727. package/blueprints/observability-essentials/contributions/requirements/observability-essentials-req-009.json +4 -0
  728. package/blueprints/observability-essentials/contributions/requirements/observability-essentials-req-010.json +4 -0
  729. package/blueprints/observability-essentials/contributions/tacs/tac-802-observability-essentials-readiness-probe.json +6 -1
  730. package/blueprints/observability-essentials/contributions/tacs/tac-803-observability-essentials-status-page.json +1 -1
  731. package/blueprints/observability-essentials/contributions/user-stories/observability-essentials-us-7101.json +25 -7
  732. package/blueprints/observability-essentials/contributions/user-stories/observability-essentials-us-7102.json +9 -5
  733. package/blueprints/observability-essentials/contributions/user-stories/observability-essentials-us-7103.json +51 -6
  734. package/blueprints/observability-essentials/contributions/user-stories/observability-essentials-us-7104.json +7 -4
  735. package/blueprints/observability-essentials/contributions/user-stories/observability-essentials-us-7105.json +6 -3
  736. package/blueprints/observability-essentials/contributions/user-stories/observability-essentials-us-7106.json +37 -6
  737. package/blueprints/observability-essentials/contributions/user-stories/observability-essentials-us-7107.json +18 -11
  738. package/blueprints/observability-essentials/contributions/user-stories/observability-essentials-us-7108.json +6 -3
  739. package/blueprints/observability-essentials/contributions/user-stories/observability-essentials-us-7109.json +7 -4
  740. package/blueprints/observability-essentials/contributions/user-stories/observability-essentials-us-7110.json +8 -5
  741. package/blueprints/observability-essentials/docs/topics.md +2 -2
  742. package/blueprints/observability-essentials/guide/observability-essentials.md +1 -1
  743. package/blueprints/observability-logging/CHANGELOG.md +19 -4
  744. package/blueprints/observability-logging/README.md +1 -1
  745. package/blueprints/observability-logging/blueprint.json +76 -28
  746. package/blueprints/observability-logging/contributions/adrs/adr-1605-observability-logging-serialisation-refusal.json +25 -0
  747. package/blueprints/observability-logging/contributions/requirements/observability-logging-req-001.json +10 -3
  748. package/blueprints/observability-logging/contributions/requirements/observability-logging-req-002.json +8 -1
  749. package/blueprints/observability-logging/contributions/requirements/observability-logging-req-003.json +8 -1
  750. package/blueprints/observability-logging/contributions/requirements/observability-logging-req-004.json +8 -1
  751. package/blueprints/observability-logging/contributions/requirements/observability-logging-req-005.json +8 -1
  752. package/blueprints/observability-logging/contributions/requirements/observability-logging-req-006.json +16 -0
  753. package/blueprints/observability-logging/contributions/tacs/tac-1601-observability-logging-logger-factory.json +4 -4
  754. package/blueprints/observability-logging/contributions/user-stories/observability-logging-us-15101.json +62 -8
  755. package/blueprints/observability-logging/contributions/user-stories/observability-logging-us-15102.json +11 -6
  756. package/blueprints/observability-logging/contributions/user-stories/observability-logging-us-15103.json +37 -5
  757. package/blueprints/observability-logging/contributions/user-stories/observability-logging-us-15104.json +35 -4
  758. package/blueprints/observability-logging/contributions/user-stories/observability-logging-us-15105.json +24 -6
  759. package/blueprints/observability-logging/contributions/user-stories/observability-logging-us-15106.json +22 -4
  760. package/blueprints/observability-logging/contributions/user-stories/observability-logging-us-15107.json +34 -3
  761. package/blueprints/observability-logging/contributions/user-stories/observability-logging-us-15108.json +21 -3
  762. package/blueprints/observability-logging/contributions/user-stories/observability-logging-us-15109.json +71 -0
  763. package/blueprints/observability-logging/docs/topics.md +1 -1
  764. package/blueprints/observability-probe-endpoints/CHANGELOG.md +17 -0
  765. package/blueprints/observability-probe-endpoints/README.md +1 -1
  766. package/blueprints/observability-probe-endpoints/blueprint.json +40 -1
  767. package/blueprints/observability-probe-endpoints/contributions/requirements/observability-probe-endpoints-req-001.json +6 -2
  768. package/blueprints/observability-probe-endpoints/contributions/requirements/observability-probe-endpoints-req-002.json +4 -0
  769. package/blueprints/observability-probe-endpoints/contributions/requirements/observability-probe-endpoints-req-003.json +4 -0
  770. package/blueprints/observability-probe-endpoints/contributions/requirements/observability-probe-endpoints-req-004.json +4 -0
  771. package/blueprints/observability-probe-endpoints/contributions/requirements/observability-probe-endpoints-req-005.json +4 -0
  772. package/blueprints/observability-probe-endpoints/contributions/requirements/observability-probe-endpoints-req-006.json +4 -0
  773. package/blueprints/observability-probe-endpoints/contributions/requirements/observability-probe-endpoints-req-007.json +4 -0
  774. package/blueprints/observability-probe-endpoints/contributions/requirements/observability-probe-endpoints-req-008.json +4 -0
  775. package/blueprints/observability-probe-endpoints/contributions/user-stories/observability-probe-endpoints-us-14101.json +30 -9
  776. package/blueprints/observability-probe-endpoints/contributions/user-stories/observability-probe-endpoints-us-14102.json +24 -6
  777. package/blueprints/observability-probe-endpoints/contributions/user-stories/observability-probe-endpoints-us-14103.json +6 -3
  778. package/blueprints/observability-probe-endpoints/contributions/user-stories/observability-probe-endpoints-us-14104.json +9 -6
  779. package/blueprints/observability-probe-endpoints/contributions/user-stories/observability-probe-endpoints-us-14105.json +49 -4
  780. package/blueprints/observability-probe-endpoints/contributions/user-stories/observability-probe-endpoints-us-14106.json +9 -6
  781. package/blueprints/observability-probe-endpoints/contributions/user-stories/observability-probe-endpoints-us-14107.json +12 -8
  782. package/blueprints/observability-probe-endpoints/contributions/user-stories/observability-probe-endpoints-us-14108.json +6 -3
  783. package/blueprints/observability-probe-endpoints/docs/topics.md +2 -2
  784. package/blueprints/observability-probe-endpoints/guide/observability-probe-endpoints.md +3 -6
  785. package/blueprints/persistence-data-d1/CHANGELOG.md +19 -0
  786. package/blueprints/persistence-data-d1/README.md +1 -1
  787. package/blueprints/persistence-data-d1/assets/batch-usage/batch-atomicity-example.md +2 -0
  788. package/blueprints/persistence-data-d1/assets/facade-shape/facade-module-shape.md +2 -0
  789. package/blueprints/persistence-data-d1/blueprint.json +106 -22
  790. package/blueprints/persistence-data-d1/contributions/adrs/adr-1404-persistence-data-d1-store-boundary.json +4 -4
  791. package/blueprints/persistence-data-d1/contributions/requirements/persistence-data-d1-req-001.json +5 -1
  792. package/blueprints/persistence-data-d1/contributions/requirements/persistence-data-d1-req-002.json +5 -1
  793. package/blueprints/persistence-data-d1/contributions/requirements/persistence-data-d1-req-003.json +5 -1
  794. package/blueprints/persistence-data-d1/contributions/requirements/persistence-data-d1-req-004.json +7 -3
  795. package/blueprints/persistence-data-d1/contributions/requirements/persistence-data-d1-req-005.json +5 -1
  796. package/blueprints/persistence-data-d1/contributions/requirements/persistence-data-d1-req-006.json +5 -1
  797. package/blueprints/persistence-data-d1/contributions/requirements/persistence-data-d1-req-007.json +5 -1
  798. package/blueprints/persistence-data-d1/contributions/user-stories/persistence-data-d1-us-13101.json +35 -4
  799. package/blueprints/persistence-data-d1/contributions/user-stories/persistence-data-d1-us-13102.json +25 -4
  800. package/blueprints/persistence-data-d1/contributions/user-stories/persistence-data-d1-us-13103.json +11 -4
  801. package/blueprints/persistence-data-d1/contributions/user-stories/persistence-data-d1-us-13104.json +13 -6
  802. package/blueprints/persistence-data-d1/contributions/user-stories/persistence-data-d1-us-13105.json +11 -4
  803. package/blueprints/persistence-data-d1/contributions/user-stories/persistence-data-d1-us-13106.json +7 -4
  804. package/blueprints/persistence-data-d1/contributions/user-stories/persistence-data-d1-us-13107.json +23 -3
  805. package/blueprints/persistence-data-d1/docs/topics.md +1 -1
  806. package/blueprints/persistence-data-postgres/CHANGELOG.md +18 -2
  807. package/blueprints/persistence-data-postgres/README.md +1 -1
  808. package/blueprints/persistence-data-postgres/blueprint.json +201 -23
  809. package/blueprints/persistence-data-postgres/contributions/adrs/adr-2801-persistence-data-postgres-driver.json +1 -1
  810. package/blueprints/persistence-data-postgres/contributions/adrs/adr-2805-persistence-data-postgres-connection-pool-posture.json +1 -1
  811. package/blueprints/persistence-data-postgres/contributions/requirements/persistence-data-postgres-req-001.json +6 -2
  812. package/blueprints/persistence-data-postgres/contributions/requirements/persistence-data-postgres-req-002.json +6 -2
  813. package/blueprints/persistence-data-postgres/contributions/requirements/persistence-data-postgres-req-003.json +5 -1
  814. package/blueprints/persistence-data-postgres/contributions/requirements/persistence-data-postgres-req-004.json +7 -3
  815. package/blueprints/persistence-data-postgres/contributions/requirements/persistence-data-postgres-req-005.json +6 -2
  816. package/blueprints/persistence-data-postgres/contributions/requirements/persistence-data-postgres-req-006.json +6 -2
  817. package/blueprints/persistence-data-postgres/contributions/requirements/persistence-data-postgres-req-007.json +7 -3
  818. package/blueprints/persistence-data-postgres/contributions/tacs/tac-2802-persistence-data-postgres-migration-runner.json +2 -2
  819. package/blueprints/persistence-data-postgres/contributions/tacs/tac-2803-persistence-data-postgres-transaction-helper.json +5 -5
  820. package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27101.json +22 -4
  821. package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27102.json +118 -3
  822. package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27103.json +20 -3
  823. package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27104.json +26 -5
  824. package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27105.json +62 -3
  825. package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27106.json +20 -3
  826. package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27107.json +20 -3
  827. package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27108.json +20 -3
  828. package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27109.json +20 -3
  829. package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27110.json +48 -3
  830. package/blueprints/persistence-data-postgres/docs/topics.md +1 -1
  831. package/blueprints/persistence-data-sqlite/CHANGELOG.md +14 -0
  832. package/blueprints/persistence-data-sqlite/blueprint.json +146 -30
  833. package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-001.json +5 -1
  834. package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-002.json +5 -1
  835. package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-003.json +5 -1
  836. package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-004.json +5 -1
  837. package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-005.json +5 -1
  838. package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-006.json +5 -1
  839. package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-007.json +5 -1
  840. package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-008.json +5 -1
  841. package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-009.json +5 -1
  842. package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-010.json +5 -1
  843. package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-011.json +5 -1
  844. package/blueprints/persistence-data-sqlite/contributions/user-stories/persistence-data-sqlite-us-5101.json +35 -4
  845. package/blueprints/persistence-data-sqlite/contributions/user-stories/persistence-data-sqlite-us-5102.json +7 -4
  846. package/blueprints/persistence-data-sqlite/contributions/user-stories/persistence-data-sqlite-us-5103.json +19 -3
  847. package/blueprints/persistence-data-sqlite/contributions/user-stories/persistence-data-sqlite-us-5104.json +21 -4
  848. package/blueprints/persistence-data-sqlite/contributions/user-stories/persistence-data-sqlite-us-5105.json +7 -4
  849. package/blueprints/persistence-data-sqlite/contributions/user-stories/persistence-data-sqlite-us-5106.json +11 -4
  850. package/blueprints/persistence-data-sqlite/contributions/user-stories/persistence-data-sqlite-us-5107.json +7 -4
  851. package/blueprints/persistence-data-sqlite/contributions/user-stories/persistence-data-sqlite-us-5108.json +7 -4
  852. package/blueprints/persistence-data-sqlite/contributions/user-stories/persistence-data-sqlite-us-5109.json +11 -8
  853. package/blueprints/persistence-data-sqlite/contributions/user-stories/persistence-data-sqlite-us-5110.json +23 -3
  854. package/blueprints/persistence-data-sqlite/contributions/user-stories/persistence-data-sqlite-us-5111.json +19 -3
  855. package/blueprints/persistence-data-sqlite/docs/topics.md +1 -1
  856. package/blueprints/persistence-data-sqlite/guide/persistence-data-sqlite.md +1 -1
  857. package/blueprints/platform-cloudflare-cron-triggers/CHANGELOG.md +40 -2
  858. package/blueprints/platform-cloudflare-cron-triggers/blueprint.json +78 -17
  859. package/blueprints/platform-cloudflare-cron-triggers/contributions/adrs/adr-3301-platform-cloudflare-cron-triggers-scheduled-trigger-contract.json +2 -2
  860. package/blueprints/platform-cloudflare-cron-triggers/contributions/probes/real-account-scheduled-smoke.mjs +24 -3
  861. package/blueprints/platform-cloudflare-cron-triggers/contributions/probes/skew-tolerance.mjs +1 -1
  862. package/blueprints/platform-cloudflare-cron-triggers/contributions/requirements/platform-cloudflare-cron-triggers-req-001.json +6 -2
  863. package/blueprints/platform-cloudflare-cron-triggers/contributions/requirements/platform-cloudflare-cron-triggers-req-002.json +5 -1
  864. package/blueprints/platform-cloudflare-cron-triggers/contributions/requirements/platform-cloudflare-cron-triggers-req-003.json +5 -1
  865. package/blueprints/platform-cloudflare-cron-triggers/contributions/requirements/platform-cloudflare-cron-triggers-req-004.json +6 -2
  866. package/blueprints/platform-cloudflare-cron-triggers/contributions/tacs/tac-3301-platform-cloudflare-cron-triggers-scheduled-handler.json +1 -1
  867. package/blueprints/platform-cloudflare-cron-triggers/contributions/user-stories/platform-cloudflare-cron-triggers-us-32101.json +86 -5
  868. package/blueprints/platform-cloudflare-cron-triggers/contributions/user-stories/platform-cloudflare-cron-triggers-us-32102.json +69 -5
  869. package/blueprints/platform-cloudflare-cron-triggers/contributions/user-stories/platform-cloudflare-cron-triggers-us-32103.json +51 -4
  870. package/blueprints/platform-cloudflare-cron-triggers/contributions/user-stories/platform-cloudflare-cron-triggers-us-32104.json +65 -4
  871. package/blueprints/platform-cloudflare-cron-triggers/contributions/user-stories/platform-cloudflare-cron-triggers-us-32105.json +68 -5
  872. package/blueprints/platform-cloudflare-cron-triggers/contributions/user-stories/platform-cloudflare-cron-triggers-us-32106.json +62 -3
  873. package/blueprints/platform-cloudflare-cron-triggers/contributions/user-stories/platform-cloudflare-cron-triggers-us-32107.json +56 -3
  874. package/blueprints/platform-cloudflare-cron-triggers/docs/topics.md +4 -4
  875. package/blueprints/platform-cloudflare-durable-objects/CHANGELOG.md +57 -2
  876. package/blueprints/platform-cloudflare-durable-objects/README.md +6 -6
  877. package/blueprints/platform-cloudflare-durable-objects/blueprint.json +3 -2
  878. package/blueprints/platform-cloudflare-durable-objects/contributions/adrs/adr-3401-platform-cloudflare-durable-objects-single-cell-contract.json +1 -1
  879. package/blueprints/platform-cloudflare-durable-objects/contributions/adrs/adr-3402-platform-cloudflare-durable-objects-websocket-hub-contract.json +1 -1
  880. package/blueprints/platform-cloudflare-durable-objects/contributions/probes/namespace-facade-ready.mjs +3 -3
  881. package/blueprints/platform-cloudflare-durable-objects/contributions/probes/probe-utils.mjs +28 -14
  882. package/blueprints/platform-cloudflare-durable-objects/contributions/probes/real-account-storage-smoke.mjs +139 -27
  883. package/blueprints/platform-cloudflare-durable-objects/contributions/probes/sole-reader-scan.mjs +40 -39
  884. package/blueprints/platform-cloudflare-durable-objects/contributions/probes/storage-round-trip.mjs +26 -16
  885. package/blueprints/platform-cloudflare-durable-objects/contributions/probes/websocket-hub-broadcast.mjs +31 -34
  886. package/blueprints/platform-cloudflare-durable-objects/contributions/probes/wrangler-seam.mjs +11 -5
  887. package/blueprints/platform-cloudflare-durable-objects/contributions/requirements/platform-cloudflare-durable-objects-req-001.json +5 -1
  888. package/blueprints/platform-cloudflare-durable-objects/contributions/requirements/platform-cloudflare-durable-objects-req-002.json +6 -2
  889. package/blueprints/platform-cloudflare-durable-objects/contributions/requirements/platform-cloudflare-durable-objects-req-003.json +5 -1
  890. package/blueprints/platform-cloudflare-durable-objects/contributions/requirements/platform-cloudflare-durable-objects-req-004.json +5 -1
  891. package/blueprints/platform-cloudflare-durable-objects/contributions/requirements/platform-cloudflare-durable-objects-req-005.json +6 -2
  892. package/blueprints/platform-cloudflare-durable-objects/contributions/requirements/platform-cloudflare-durable-objects-req-006.json +6 -2
  893. package/blueprints/platform-cloudflare-durable-objects/contributions/requirements/platform-cloudflare-durable-objects-req-007.json +5 -1
  894. package/blueprints/platform-cloudflare-durable-objects/contributions/requirements/platform-cloudflare-durable-objects-req-008.json +5 -1
  895. package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33101.json +73 -2
  896. package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33102.json +59 -2
  897. package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33103.json +77 -2
  898. package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33104.json +75 -6
  899. package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33105.json +73 -2
  900. package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33106.json +49 -2
  901. package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33107.json +45 -2
  902. package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33108.json +84 -3
  903. package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33109.json +45 -2
  904. package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33110.json +59 -2
  905. package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33111.json +45 -2
  906. package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33112.json +53 -2
  907. package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33113.json +68 -5
  908. package/blueprints/platform-cloudflare-durable-objects/docs/topics.md +2 -2
  909. package/blueprints/platform-cloudflare-durable-objects/guide/platform-cloudflare-durable-objects.md +9 -9
  910. package/blueprints/platform-cloudflare-kv/CHANGELOG.md +83 -2
  911. package/blueprints/platform-cloudflare-kv/README.md +40 -14
  912. package/blueprints/platform-cloudflare-kv/blueprint.json +115 -20
  913. package/blueprints/platform-cloudflare-kv/contributions/adrs/adr-3201-platform-cloudflare-kv-key-value-store-contract.json +3 -3
  914. package/blueprints/platform-cloudflare-kv/contributions/probes/cache-aside-hit-then-miss.mjs +26 -26
  915. package/blueprints/platform-cloudflare-kv/contributions/probes/event-secrecy.mjs +49 -31
  916. package/blueprints/platform-cloudflare-kv/contributions/probes/facade-round-trip.mjs +58 -16
  917. package/blueprints/platform-cloudflare-kv/contributions/probes/list-with-prefix.mjs +6 -5
  918. package/blueprints/platform-cloudflare-kv/contributions/probes/real-account-eventual-consistency-smoke.mjs +165 -66
  919. package/blueprints/platform-cloudflare-kv/contributions/requirements/platform-cloudflare-kv-req-001.json +6 -2
  920. package/blueprints/platform-cloudflare-kv/contributions/requirements/platform-cloudflare-kv-req-002.json +5 -1
  921. package/blueprints/platform-cloudflare-kv/contributions/requirements/platform-cloudflare-kv-req-003.json +5 -1
  922. package/blueprints/platform-cloudflare-kv/contributions/requirements/platform-cloudflare-kv-req-004.json +6 -2
  923. package/blueprints/platform-cloudflare-kv/contributions/requirements/platform-cloudflare-kv-req-005.json +7 -3
  924. package/blueprints/platform-cloudflare-kv/contributions/requirements/platform-cloudflare-kv-req-006.json +22 -0
  925. package/blueprints/platform-cloudflare-kv/contributions/requirements/platform-cloudflare-kv-req-007.json +22 -0
  926. package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31101.json +59 -2
  927. package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31102.json +45 -2
  928. package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31103.json +73 -3
  929. package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31104.json +67 -2
  930. package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31105.json +59 -2
  931. package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31106.json +45 -2
  932. package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31107.json +45 -2
  933. package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31108.json +45 -2
  934. package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31109.json +92 -0
  935. package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31110.json +88 -0
  936. package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31111.json +89 -0
  937. package/blueprints/platform-cloudflare-kv/docs/topics.md +2 -2
  938. package/blueprints/platform-cloudflare-kv/guide/platform-cloudflare-kv.md +2 -2
  939. package/blueprints/platform-docker-compose-host/CHANGELOG.md +37 -3
  940. package/blueprints/platform-docker-compose-host/README.md +7 -7
  941. package/blueprints/platform-docker-compose-host/blueprint.json +23 -6
  942. package/blueprints/platform-docker-compose-host/contributions/adrs/adr-3901-platform-docker-compose-host-contract.json +3 -3
  943. package/blueprints/platform-docker-compose-host/contributions/adrs/adr-3902-platform-docker-compose-host-reverse-proxy.json +4 -4
  944. package/blueprints/platform-docker-compose-host/contributions/adrs/adr-3903-platform-docker-compose-host-reject-coolify.json +2 -2
  945. package/blueprints/platform-docker-compose-host/contributions/adrs/adr-3904-platform-docker-compose-host-log-driver.json +2 -2
  946. package/blueprints/platform-docker-compose-host/contributions/probes/probe-utils.mjs +1 -1
  947. package/blueprints/platform-docker-compose-host/contributions/probes/real-account-minimal-stack-up.mjs +2 -3
  948. package/blueprints/platform-docker-compose-host/contributions/probes/real-account-reload-burst.mjs +1 -1
  949. package/blueprints/platform-docker-compose-host/contributions/requirements/platform-docker-compose-host-req-001.json +6 -2
  950. package/blueprints/platform-docker-compose-host/contributions/requirements/platform-docker-compose-host-req-002.json +5 -1
  951. package/blueprints/platform-docker-compose-host/contributions/requirements/platform-docker-compose-host-req-003.json +6 -2
  952. package/blueprints/platform-docker-compose-host/contributions/requirements/platform-docker-compose-host-req-004.json +5 -1
  953. package/blueprints/platform-docker-compose-host/contributions/requirements/platform-docker-compose-host-req-005.json +6 -2
  954. package/blueprints/platform-docker-compose-host/contributions/requirements/platform-docker-compose-host-req-006.json +6 -2
  955. package/blueprints/platform-docker-compose-host/contributions/requirements/platform-docker-compose-host-req-007.json +22 -0
  956. package/blueprints/platform-docker-compose-host/contributions/user-stories/platform-docker-compose-host-us-38101.json +73 -2
  957. package/blueprints/platform-docker-compose-host/contributions/user-stories/platform-docker-compose-host-us-38102.json +67 -2
  958. package/blueprints/platform-docker-compose-host/contributions/user-stories/platform-docker-compose-host-us-38103.json +59 -2
  959. package/blueprints/platform-docker-compose-host/contributions/user-stories/platform-docker-compose-host-us-38104.json +75 -2
  960. package/blueprints/platform-docker-compose-host/contributions/user-stories/platform-docker-compose-host-us-38105.json +49 -2
  961. package/blueprints/platform-docker-compose-host/contributions/user-stories/platform-docker-compose-host-us-38106.json +45 -2
  962. package/blueprints/platform-docker-compose-host/contributions/user-stories/platform-docker-compose-host-us-38107.json +49 -2
  963. package/blueprints/platform-docker-compose-host/contributions/user-stories/platform-docker-compose-host-us-38108.json +49 -2
  964. package/blueprints/platform-docker-compose-host/contributions/user-stories/platform-docker-compose-host-us-38109.json +57 -2
  965. package/blueprints/platform-docker-compose-host/contributions/user-stories/platform-docker-compose-host-us-38110.json +92 -0
  966. package/blueprints/platform-docker-compose-host/docs/topics.md +4 -4
  967. package/blueprints/platform-docker-compose-host/guide/platform-docker-compose-host.md +6 -6
  968. package/blueprints/security-auth-clerk/CHANGELOG.md +24 -4
  969. package/blueprints/security-auth-clerk/README.md +1 -1
  970. package/blueprints/security-auth-clerk/blueprint.json +21 -1
  971. package/blueprints/security-auth-clerk/contributions/requirements/security-auth-clerk-req-001.json +6 -2
  972. package/blueprints/security-auth-clerk/contributions/requirements/security-auth-clerk-req-002.json +5 -1
  973. package/blueprints/security-auth-clerk/contributions/requirements/security-auth-clerk-req-003.json +6 -2
  974. package/blueprints/security-auth-clerk/contributions/requirements/security-auth-clerk-req-004.json +6 -2
  975. package/blueprints/security-auth-clerk/contributions/requirements/security-auth-clerk-req-005.json +5 -2
  976. package/blueprints/security-auth-clerk/contributions/requirements/security-auth-clerk-req-006.json +5 -1
  977. package/blueprints/security-auth-clerk/contributions/requirements/security-auth-clerk-req-007.json +4 -1
  978. package/blueprints/security-auth-clerk/contributions/requirements/security-auth-clerk-req-008.json +4 -1
  979. package/blueprints/security-auth-clerk/contributions/requirements/security-auth-clerk-req-009.json +4 -1
  980. package/blueprints/security-auth-clerk/contributions/requirements/security-auth-clerk-req-010.json +22 -0
  981. package/blueprints/security-auth-clerk/contributions/requirements/security-auth-clerk-req-011.json +22 -0
  982. package/blueprints/security-auth-clerk/contributions/tacs/tac-1001-security-auth-clerk-middleware.json +14 -4
  983. package/blueprints/security-auth-clerk/contributions/tacs/tac-1003-security-auth-clerk-session-verifier.json +7 -1
  984. package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9101.json +6 -3
  985. package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9102.json +19 -3
  986. package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9103.json +6 -3
  987. package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9104.json +6 -3
  988. package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9105.json +4 -2
  989. package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9106.json +4 -2
  990. package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9107.json +4 -2
  991. package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9108.json +13 -3
  992. package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9109.json +8 -2
  993. package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9110.json +4 -2
  994. package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9111.json +4 -2
  995. package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9112.json +102 -0
  996. package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9113.json +103 -0
  997. package/blueprints/security-auth-clerk/docs/topics.md +1 -1
  998. package/blueprints/security-auth-keycloak/CHANGELOG.md +23 -4
  999. package/blueprints/security-auth-keycloak/README.md +1 -1
  1000. package/blueprints/security-auth-keycloak/blueprint.json +101 -1
  1001. package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-001.json +5 -2
  1002. package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-002.json +5 -1
  1003. package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-003.json +5 -1
  1004. package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-004.json +5 -1
  1005. package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-005.json +6 -2
  1006. package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-006.json +6 -2
  1007. package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-007.json +4 -1
  1008. package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-008.json +4 -1
  1009. package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-009.json +4 -1
  1010. package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-010.json +4 -1
  1011. package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-011.json +5 -1
  1012. package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-012.json +4 -1
  1013. package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-013.json +22 -0
  1014. package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-014.json +22 -0
  1015. package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-015.json +22 -0
  1016. package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-016.json +22 -0
  1017. package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-017.json +22 -0
  1018. package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-018.json +22 -0
  1019. package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-019.json +22 -0
  1020. package/blueprints/security-auth-keycloak/contributions/tacs/tac-1201-security-auth-keycloak-discovery-client.json +4 -2
  1021. package/blueprints/security-auth-keycloak/contributions/tacs/tac-1202-security-auth-keycloak-jwt-verifier.json +8 -2
  1022. package/blueprints/security-auth-keycloak/contributions/tacs/tac-1203-security-auth-keycloak-introspection-client.json +8 -2
  1023. package/blueprints/security-auth-keycloak/contributions/tacs/tac-1204-security-auth-keycloak-provider-router.json +3 -1
  1024. package/blueprints/security-auth-keycloak/contributions/tacs/tac-1205-security-auth-keycloak-role-adapter.json +2 -1
  1025. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11101.json +6 -3
  1026. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11102.json +10 -3
  1027. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11103.json +12 -2
  1028. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11104.json +8 -2
  1029. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11105.json +6 -3
  1030. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11106.json +18 -3
  1031. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11107.json +6 -3
  1032. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11108.json +6 -3
  1033. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11109.json +4 -2
  1034. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11110.json +6 -3
  1035. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11111.json +14 -3
  1036. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11112.json +4 -2
  1037. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11113.json +4 -2
  1038. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11114.json +72 -0
  1039. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11115.json +88 -0
  1040. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11116.json +117 -0
  1041. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11117.json +117 -0
  1042. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11118.json +117 -0
  1043. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11119.json +117 -0
  1044. package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11120.json +103 -0
  1045. package/blueprints/security-auth-keycloak/docs/topics.md +1 -1
  1046. package/blueprints/security-auth-keycloak/guide/security-auth-keycloak.md +1 -1
  1047. package/blueprints/security-auth-magic-link/CHANGELOG.md +19 -3
  1048. package/blueprints/security-auth-magic-link/README.md +1 -1
  1049. package/blueprints/security-auth-magic-link/blueprint.json +1 -1
  1050. package/blueprints/security-auth-magic-link/contributions/requirements/security-auth-magic-link-req-001.json +4 -1
  1051. package/blueprints/security-auth-magic-link/contributions/requirements/security-auth-magic-link-req-002.json +5 -1
  1052. package/blueprints/security-auth-magic-link/contributions/requirements/security-auth-magic-link-req-003.json +6 -2
  1053. package/blueprints/security-auth-magic-link/contributions/requirements/security-auth-magic-link-req-004.json +5 -1
  1054. package/blueprints/security-auth-magic-link/contributions/requirements/security-auth-magic-link-req-005.json +5 -1
  1055. package/blueprints/security-auth-magic-link/contributions/requirements/security-auth-magic-link-req-006.json +4 -1
  1056. package/blueprints/security-auth-magic-link/contributions/requirements/security-auth-magic-link-req-007.json +4 -1
  1057. package/blueprints/security-auth-magic-link/contributions/requirements/security-auth-magic-link-req-008.json +5 -1
  1058. package/blueprints/security-auth-magic-link/contributions/requirements/security-auth-magic-link-req-009.json +5 -1
  1059. package/blueprints/security-auth-magic-link/contributions/requirements/security-auth-magic-link-req-010.json +6 -2
  1060. package/blueprints/security-auth-magic-link/contributions/requirements/security-auth-magic-link-req-011.json +6 -2
  1061. package/blueprints/security-auth-magic-link/contributions/user-stories/security-auth-magic-link-us-3101.json +10 -5
  1062. package/blueprints/security-auth-magic-link/contributions/user-stories/security-auth-magic-link-us-3102.json +8 -4
  1063. package/blueprints/security-auth-magic-link/contributions/user-stories/security-auth-magic-link-us-3103.json +6 -3
  1064. package/blueprints/security-auth-magic-link/contributions/user-stories/security-auth-magic-link-us-3104.json +8 -4
  1065. package/blueprints/security-auth-magic-link/contributions/user-stories/security-auth-magic-link-us-3105.json +6 -3
  1066. package/blueprints/security-auth-magic-link/contributions/user-stories/security-auth-magic-link-us-3106.json +6 -3
  1067. package/blueprints/security-auth-magic-link/contributions/user-stories/security-auth-magic-link-us-3107.json +8 -4
  1068. package/blueprints/security-auth-magic-link/contributions/user-stories/security-auth-magic-link-us-3108.json +6 -3
  1069. package/blueprints/security-auth-magic-link/contributions/user-stories/security-auth-magic-link-us-3109.json +6 -3
  1070. package/blueprints/security-auth-magic-link/contributions/user-stories/security-auth-magic-link-us-3110.json +6 -3
  1071. package/blueprints/security-auth-magic-link/contributions/user-stories/security-auth-magic-link-us-3111.json +14 -3
  1072. package/blueprints/security-auth-magic-link/docs/topics.md +1 -1
  1073. package/blueprints/security-auth-magic-link/guide/security-auth-magic-link.md +1 -1
  1074. package/blueprints/security-auth-oauth2/CHANGELOG.md +21 -4
  1075. package/blueprints/security-auth-oauth2/README.md +1 -1
  1076. package/blueprints/security-auth-oauth2/blueprint.json +33 -2
  1077. package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-001.json +5 -2
  1078. package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-002.json +5 -1
  1079. package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-003.json +5 -1
  1080. package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-004.json +4 -1
  1081. package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-005.json +5 -1
  1082. package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-006.json +6 -2
  1083. package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-007.json +4 -1
  1084. package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-008.json +6 -2
  1085. package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-009.json +5 -1
  1086. package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-010.json +4 -1
  1087. package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-011.json +22 -0
  1088. package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-012.json +22 -0
  1089. package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-013.json +22 -0
  1090. package/blueprints/security-auth-oauth2/contributions/tacs/tac-1102-security-auth-oauth2-provider-adapter.json +2 -1
  1091. package/blueprints/security-auth-oauth2/contributions/tacs/tac-1103-security-auth-oauth2-session-bridge.json +9 -2
  1092. package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10101.json +6 -3
  1093. package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10102.json +6 -3
  1094. package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10103.json +4 -2
  1095. package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10104.json +4 -2
  1096. package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10105.json +8 -4
  1097. package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10106.json +6 -3
  1098. package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10107.json +6 -3
  1099. package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10108.json +6 -3
  1100. package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10109.json +4 -2
  1101. package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10110.json +4 -2
  1102. package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10111.json +17 -2
  1103. package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10112.json +82 -0
  1104. package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10113.json +68 -0
  1105. package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10114.json +88 -0
  1106. package/blueprints/security-auth-oauth2/docs/topics.md +1 -1
  1107. package/blueprints/security-secrets-management/CHANGELOG.md +14 -2
  1108. package/blueprints/security-secrets-management/blueprint.json +168 -31
  1109. package/blueprints/security-secrets-management/contributions/requirements/security-secrets-management-req-001.json +5 -1
  1110. package/blueprints/security-secrets-management/contributions/requirements/security-secrets-management-req-002.json +6 -2
  1111. package/blueprints/security-secrets-management/contributions/requirements/security-secrets-management-req-003.json +6 -2
  1112. package/blueprints/security-secrets-management/contributions/requirements/security-secrets-management-req-004.json +5 -1
  1113. package/blueprints/security-secrets-management/contributions/requirements/security-secrets-management-req-005.json +6 -2
  1114. package/blueprints/security-secrets-management/contributions/requirements/security-secrets-management-req-006.json +5 -1
  1115. package/blueprints/security-secrets-management/contributions/requirements/security-secrets-management-req-007.json +5 -1
  1116. package/blueprints/security-secrets-management/contributions/requirements/security-secrets-management-req-008.json +5 -1
  1117. package/blueprints/security-secrets-management/contributions/requirements/security-secrets-management-req-009.json +5 -1
  1118. package/blueprints/security-secrets-management/contributions/requirements/security-secrets-management-req-010.json +6 -3
  1119. package/blueprints/security-secrets-management/contributions/user-stories/security-secrets-management-us-8101.json +6 -3
  1120. package/blueprints/security-secrets-management/contributions/user-stories/security-secrets-management-us-8102.json +6 -3
  1121. package/blueprints/security-secrets-management/contributions/user-stories/security-secrets-management-us-8103.json +4 -2
  1122. package/blueprints/security-secrets-management/contributions/user-stories/security-secrets-management-us-8104.json +6 -3
  1123. package/blueprints/security-secrets-management/contributions/user-stories/security-secrets-management-us-8105.json +8 -4
  1124. package/blueprints/security-secrets-management/contributions/user-stories/security-secrets-management-us-8106.json +6 -3
  1125. package/blueprints/security-secrets-management/contributions/user-stories/security-secrets-management-us-8107.json +6 -3
  1126. package/blueprints/security-secrets-management/contributions/user-stories/security-secrets-management-us-8108.json +6 -3
  1127. package/blueprints/security-secrets-management/contributions/user-stories/security-secrets-management-us-8109.json +6 -3
  1128. package/blueprints/security-secrets-management/contributions/user-stories/security-secrets-management-us-8110.json +6 -3
  1129. package/blueprints/security-secrets-management/docs/topics.md +1 -1
  1130. package/fixtures/canary-manifest.json +9 -9
  1131. package/guidance/harness-template.md +67 -0
  1132. package/guidance/managed/agent-instructions-block.hash +1 -1
  1133. package/guidance/managed/agent-instructions-block.md +67 -0
  1134. package/package.json +2 -2
  1135. package/rcf/code-nodes/cn-500.json +12 -0
  1136. package/rcf/code-nodes/cn-510.json +12 -0
  1137. package/rcf/code-nodes/cn-520.json +14 -0
  1138. package/rcf/code-nodes/cn-521.json +12 -0
  1139. package/rcf/code-nodes/cn-522.json +13 -0
  1140. package/rcf/code-nodes/cn-523.json +12 -0
  1141. package/rcf/code-nodes/cn-524.json +14 -0
  1142. package/rcf/code-nodes/cn-525.json +12 -0
  1143. package/rcf/code-nodes/cn-526.json +14 -0
  1144. package/rcf/fbs/fbs-160.json +15 -0
  1145. package/rcf/fbs/fbs-165.json +15 -0
  1146. package/rcf/fbs/fbs-170.json +16 -0
  1147. package/rcf/fbs/fbs-171.json +16 -0
  1148. package/rcf/fbs/fbs-172.json +15 -0
  1149. package/rcf/fbs/fbs-173.json +17 -0
  1150. package/rcf/fbs/fbs-174.json +17 -0
  1151. package/rcf/requirements/req-140.json +149 -0
  1152. package/rcf/requirements/req-145.json +53 -0
  1153. package/rcf/requirements/req-150.json +20 -0
  1154. package/rcf/requirements/req-151.json +85 -0
  1155. package/rcf/requirements/req-152.json +20 -0
  1156. package/rcf/requirements/req-153.json +59 -0
  1157. package/rcf/requirements/req-154.json +44 -0
  1158. package/rcf/test-suites/ts-050.json +1 -1
  1159. package/rcf/test-suites/ts-052.json +1 -1
  1160. package/rcf/test-suites/ts-053.json +2 -2
  1161. package/rcf/test-suites/ts-054.json +2 -2
  1162. package/rcf/test-suites/ts-055.json +2 -2
  1163. package/rcf/test-suites/ts-056.json +4 -4
  1164. package/rcf/test-suites/ts-057.json +2 -2
  1165. package/rcf/test-suites/ts-071.json +2 -2
  1166. package/rcf/test-suites/ts-086.json +2 -2
  1167. package/rcf/test-suites/ts-170.json +22 -0
  1168. package/rcf/test-suites/ts-175.json +22 -0
  1169. package/rcf/test-suites/ts-180.json +30 -0
  1170. package/rcf/test-suites/ts-181.json +30 -0
  1171. package/rcf/test-suites/ts-182.json +22 -0
  1172. package/rcf/test-suites/ts-183.json +38 -0
  1173. package/rcf/test-suites/ts-184.json +38 -0
  1174. package/rcf/user-stories/us-14001.json +21 -0
  1175. package/rcf/user-stories/us-14501.json +24 -0
  1176. package/rcf/user-stories/us-15001.json +26 -0
  1177. package/rcf/user-stories/us-15101.json +26 -0
  1178. package/rcf/user-stories/us-15201.json +21 -0
  1179. package/rcf/user-stories/us-15301.json +31 -0
  1180. package/rcf/user-stories/us-15401.json +31 -0
  1181. package/rcf/user-stories/us-7701.json +3 -3
  1182. package/releases/releases.yaml +21 -1
  1183. package/src/blueprint/apply.js +64 -0
  1184. package/src/blueprint/consistency-lint.js +432 -0
  1185. package/src/blueprint/disposition-ledger.js +224 -0
  1186. package/src/blueprint/dispositions.js +44 -0
  1187. package/src/blueprint/index.js +19 -0
  1188. package/src/browser-verify/manifest-writer.js +53 -2
  1189. package/src/browser-verify/pack-runner.js +18 -0
  1190. package/src/cli/blueprint.js +103 -0
  1191. package/src/cli/view.js +22 -11
  1192. package/src/setup/identity-seed.js +18 -0
@@ -0,0 +1,432 @@
1
+ // Blueprint chain-consistency lint (spec section 5 of the integration
2
+ // and contradiction protocol, 2026-09-09).
3
+ //
4
+ // Two passes over ONE blueprint's own JSON and markdown. Pure functions;
5
+ // the CLI seam loads the blueprint from disk and hands the model in.
6
+ //
7
+ // PASS 1: single-definition ownership, MECHANICAL ONLY.
8
+ // The check is intentionally conservative. Pass 1 fires when the
9
+ // same identifier-shaped literal appears on more than one artefact
10
+ // and one of the appearances is case-INCONSISTENT with the owning
11
+ // TAC on a case-sensitive axis (HTTP header, env-var, camelCase
12
+ // JSON field name in a strict-parse context). A byte-identical
13
+ // restatement is only flagged when the owning TAC declares the
14
+ // token on its `interfaces[]` (the strict interface surface) and
15
+ // the restating AC carries no `ownerRef` back to that TAC. Every
16
+ // other kind of appearance is treated as a reference, not a
17
+ // restatement (the mechanical detector cannot reliably tell a
18
+ // duplicate literal from a legitimate mention without domain
19
+ // knowledge, and the spec explicitly names four human-read shapes
20
+ // the lint does not catch, per section 5.7).
21
+ //
22
+ // PASS 2: REQ delivery, MECHANICAL.
23
+ // A REQ whose description carries a promise phrase (must / requires
24
+ // / guarantees / ceiling / never / invariant / on boot / at boot /
25
+ // event / boundary) must carry a `deliveredBy` link into a TAC or
26
+ // ADR. When the link points at a TAC in the same blueprint, the
27
+ // TAC's responsibilities and interfaces must reference the field
28
+ // (or the REQ's subject, when no `field` sub-path is given).
29
+ //
30
+ // Every finding carries a stable `id` the operator can quote in the
31
+ // blueprint README under "Known chain-consistency-lint suppressions"
32
+ // (pass 1 only; pass 2 findings are not suppressible per spec 5.8).
33
+
34
+ import { readFile, readdir } from 'node:fs/promises';
35
+ import { join } from 'node:path';
36
+
37
+ /**
38
+ * @typedef {object} ConsistencyFinding
39
+ * @property {string} id
40
+ * @property {'pass1'|'pass2'} pass
41
+ * @property {'contractDrift'|'undeclaredRestatement'|'reqNoDelivery'|'reqDeliveryNotCarried'} kind
42
+ * @property {string} subject
43
+ * @property {string[]} refs
44
+ * @property {string} message
45
+ * @property {boolean} [suppressed]
46
+ * @property {string} [suppressionReason]
47
+ */
48
+
49
+ const HTTP_HEADER_RE = /^[A-Z][A-Za-z0-9]*(-[A-Z][A-Za-z0-9]*)+$/;
50
+ const HTTP_HEADER_LOWER_RE = /^[a-z][a-z0-9]*(-[a-z][a-z0-9]*)+$/;
51
+ const ENV_VAR_RE = /^[A-Z][A-Z0-9]*(_[A-Z0-9]+)+$/;
52
+ const CAMEL_JSON_FIELD_RE = /^[a-z][a-zA-Z0-9]*$/;
53
+
54
+ /**
55
+ * Extract identifier-shaped tokens from a body of text: dashed
56
+ * identifiers (Cf-Turnstile-Response, run_worker_first),
57
+ * ALL_CAPS_ENV_VARS, and camelCase / PascalCase runs. Duplicates are
58
+ * preserved so callers can index by occurrence.
59
+ *
60
+ * @param {string} text
61
+ */
62
+ function extractTokens(text) {
63
+ if (typeof text !== 'string' || text.length === 0) return [];
64
+ const out = [];
65
+ const re = /[A-Za-z][A-Za-z0-9]*(?:[-_][A-Za-z0-9]+)+|[A-Z][a-z]+(?:[A-Z][a-z]*)+|[a-z]+(?:[A-Z][a-z]*){1,}/g;
66
+ for (const m of text.matchAll(re)) out.push(m[0]);
67
+ return out;
68
+ }
69
+
70
+ /**
71
+ * Classify a token for case-sensitivity purposes.
72
+ *
73
+ * @param {string} token
74
+ * @returns {'header'|'headerLower'|'envVar'|'jsonField'|'identifier'}
75
+ */
76
+ function tokenClass(token) {
77
+ if (ENV_VAR_RE.test(token)) return 'envVar';
78
+ if (HTTP_HEADER_RE.test(token)) return 'header';
79
+ if (HTTP_HEADER_LOWER_RE.test(token)) return 'headerLower';
80
+ if (CAMEL_JSON_FIELD_RE.test(token)) return 'jsonField';
81
+ return 'identifier';
82
+ }
83
+
84
+ // TAC / ADR / REQ / US / PRD / TAD / BS / FBS id prefixes: these read
85
+ // as identifier-shaped but they are meta references, not contract
86
+ // literals. Skip them in both directions of the drift check.
87
+ const ID_TOKEN_RE = /^(?:TAC|ADR|REQ|US|PRD|TAD|BS|FBS|TS|CN|AC)[-_A-Z0-9-]*$/;
88
+
89
+ // Small stop-list of ordinary English hyphenated / camel-cased words
90
+ // that appear as identifier-shape but are prose, not contracts.
91
+ const PROSE_TOKENS = new Set([
92
+ 'stable-coded', 'per-environment', 'wall-clock', 'operator-authored',
93
+ 'project-authored', 'vendor-resolved', 'required-absent',
94
+ 'deployable-to-slice', 'rotation-days', 'admin-UI',
95
+ 'read-through', 'write-through', 'follow-up',
96
+ ]);
97
+
98
+ function isNoise(token) {
99
+ if (token.length < 4) return true;
100
+ if (ID_TOKEN_RE.test(token)) return true;
101
+ if (PROSE_TOKENS.has(token)) return true;
102
+ return false;
103
+ }
104
+
105
+ /**
106
+ * Owned-token dictionary. Keyed by lower-case token; the value is the
107
+ * canonical spelling on the owning TAC's interface surface, plus the
108
+ * TAC id and field where it lives.
109
+ *
110
+ * Only `interfaces[].name` and `interfaces[].summary` (backtick-quoted
111
+ * spans only) plus `internalStructure` (backtick-quoted spans only)
112
+ * count as owning surfaces. `responsibilities[]` and `purpose` are
113
+ * prose narrative where a mention is a reference, not a declaration.
114
+ */
115
+ function collectOwnedTokens(tacs) {
116
+ /** @type {Map<string, { canonical: string, tacId: string, field: string, klass: string }>} */
117
+ const owned = new Map();
118
+ // record() takes an `onlySensitive` flag. For strict interface
119
+ // surfaces (`interfaces[].name`, `internalStructure` backtick spans,
120
+ // `responsibilities[]` backtick spans) we record every non-prose
121
+ // token including camelCase field names. For less-strict prose
122
+ // surfaces (interface summaries, purpose, responsibilities prose)
123
+ // we only record tokens classified as `header` / `headerLower` /
124
+ // `envVar`, because a prose mention of a camelCase word is usually
125
+ // a reference and only case-sensitive axes reliably indicate a
126
+ // literal declaration.
127
+ const record = (token, tacId, field, onlySensitive) => {
128
+ if (isNoise(token)) return;
129
+ const klass = tokenClass(token);
130
+ if (klass === 'identifier') return;
131
+ if (onlySensitive && klass === 'jsonField') return;
132
+ const key = token.toLowerCase();
133
+ if (!owned.has(key)) owned.set(key, { canonical: token, tacId, field, klass });
134
+ };
135
+ for (const tac of tacs) {
136
+ const tacId = tac.tacId || tac.id || '(unknown-tac)';
137
+ // Strict interface surfaces first so their spellings win the
138
+ // Map's first-write-wins semantics over any weaker prose mention.
139
+ if (Array.isArray(tac.interfaces)) {
140
+ for (let i = 0; i < tac.interfaces.length; i += 1) {
141
+ const iface = tac.interfaces[i];
142
+ if (iface && typeof iface.name === 'string') {
143
+ for (const t of extractTokens(iface.name)) record(t, tacId, `interfaces[${i}].name`, false);
144
+ }
145
+ if (iface && typeof iface.summary === 'string') {
146
+ for (const m of iface.summary.matchAll(/`+([^`]+)`+/g)) {
147
+ for (const t of extractTokens(m[1])) record(t, tacId, `interfaces[${i}].summary`, false);
148
+ }
149
+ // Plain-text summary: case-sensitive axes only. This is what
150
+ // catches `Cf-Turnstile-Response` on TAC-3602's guard summary.
151
+ for (const t of extractTokens(iface.summary)) record(t, tacId, `interfaces[${i}].summary`, true);
152
+ }
153
+ }
154
+ }
155
+ if (typeof tac.internalStructure === 'string') {
156
+ for (const m of tac.internalStructure.matchAll(/`+([^`]+)`+/g)) {
157
+ for (const t of extractTokens(m[1])) record(t, tacId, 'internalStructure', false);
158
+ }
159
+ for (const t of extractTokens(tac.internalStructure)) record(t, tacId, 'internalStructure', true);
160
+ }
161
+ if (Array.isArray(tac.responsibilities)) {
162
+ for (let i = 0; i < tac.responsibilities.length; i += 1) {
163
+ const s = tac.responsibilities[i];
164
+ if (typeof s !== 'string') continue;
165
+ for (const m of s.matchAll(/`+([^`]+)`+/g)) {
166
+ for (const t of extractTokens(m[1])) record(t, tacId, `responsibilities[${i}]`, false);
167
+ }
168
+ for (const t of extractTokens(s)) record(t, tacId, `responsibilities[${i}]`, true);
169
+ }
170
+ }
171
+ if (typeof tac.purpose === 'string') {
172
+ // Purpose prose: header / envVar only (never fires on ordinary
173
+ // English or camelCase identifiers).
174
+ for (const t of extractTokens(tac.purpose)) record(t, tacId, 'purpose', true);
175
+ }
176
+ }
177
+ return owned;
178
+ }
179
+
180
+ /**
181
+ * Collect artefact surfaces (holderId, holderKind, field, text,
182
+ * optional ownerRef on ACs). Used by pass 1's cross-surface walk.
183
+ */
184
+ function collectArtefactSurfaces(input) {
185
+ const surfaces = [];
186
+ for (const req of input.reqs) {
187
+ const rid = req.reqId || req.id || '(unknown-req)';
188
+ if (typeof req.description === 'string') surfaces.push({ holderId: rid, holderKind: 'req', field: 'description', text: req.description });
189
+ }
190
+ for (const us of input.userStories) {
191
+ const usid = us.usId || us.id || '(unknown-us)';
192
+ if (typeof us.iWant === 'string') surfaces.push({ holderId: usid, holderKind: 'us', field: 'iWant', text: us.iWant });
193
+ if (Array.isArray(us.acceptanceCriteria)) {
194
+ for (const ac of us.acceptanceCriteria) {
195
+ const acid = ac.id || `${usid}-AC?`;
196
+ const ownerRef = ac.ownerRef && typeof ac.ownerRef === 'object' ? ac.ownerRef : null;
197
+ for (const f of ['description', 'given', 'when', 'then']) {
198
+ if (typeof ac[f] === 'string') surfaces.push({ holderId: acid, holderKind: 'ac', field: f, text: ac[f], parentUsId: usid, ownerRef });
199
+ }
200
+ }
201
+ }
202
+ }
203
+ for (const adr of input.adrs) {
204
+ const aid = adr.adrId || adr.id || '(unknown-adr)';
205
+ for (const f of ['context', 'decision', 'consequences']) {
206
+ if (typeof adr[f] === 'string') surfaces.push({ holderId: aid, holderKind: 'adr', field: f, text: adr[f] });
207
+ }
208
+ }
209
+ if (typeof input.guideMarkdown === 'string' && input.guideMarkdown.length > 0) {
210
+ surfaces.push({ holderId: 'guide', holderKind: 'guide', field: 'body', text: input.guideMarkdown });
211
+ }
212
+ return surfaces;
213
+ }
214
+
215
+ /**
216
+ * @param {{ slug: string, sourcePath: string, tacs: object[], reqs: object[], userStories: object[], adrs: object[], guideMarkdown?: string }} input
217
+ * @returns {ConsistencyFinding[]}
218
+ */
219
+ export function runPass1(input) {
220
+ const owned = collectOwnedTokens(input.tacs);
221
+ if (owned.size === 0) return [];
222
+ const surfaces = collectArtefactSurfaces(input);
223
+ /** @type {ConsistencyFinding[]} */
224
+ const findings = [];
225
+ const seen = new Set();
226
+
227
+ for (const surface of surfaces) {
228
+ for (const raw of extractTokens(surface.text)) {
229
+ if (isNoise(raw)) continue;
230
+ const key = raw.toLowerCase();
231
+ const owner = owned.get(key);
232
+ if (!owner) continue;
233
+ const isSensitive = owner.klass === 'header' || owner.klass === 'envVar' || owner.klass === 'headerLower';
234
+ // Contract drift: the same lower-cased token, spelled
235
+ // differently, on a case-sensitive axis (HTTP header or
236
+ // env-var). This is the primary mechanical catch and includes
237
+ // the `Cf-Turnstile-Response` / `cf-turnstile-response`
238
+ // specimen shape.
239
+ if (isSensitive && owner.canonical !== raw) {
240
+ // Sentence-start capitalisation is not contract drift.
241
+ // Skip when the two tokens differ ONLY in the case of the
242
+ // very first character (rest of the token is byte-identical).
243
+ if (owner.canonical.length === raw.length
244
+ && owner.canonical.slice(1) === raw.slice(1)
245
+ && owner.canonical[0].toLowerCase() === raw[0].toLowerCase()) continue;
246
+ const id = `pass1-drift-${owner.tacId}-${owner.canonical}`;
247
+ const dedupe = `${id}::${surface.holderId}::${raw}`;
248
+ if (!seen.has(dedupe)) {
249
+ seen.add(dedupe);
250
+ findings.push({
251
+ id, pass: 'pass1', kind: 'contractDrift',
252
+ subject: owner.canonical,
253
+ refs: [owner.tacId, surface.holderId],
254
+ message: `${surface.holderId}.${surface.field} spells '${owner.canonical}' as '${raw}'; owner ${owner.tacId}.${owner.field} declares '${owner.canonical}'.`,
255
+ });
256
+ }
257
+ continue;
258
+ }
259
+ // Undeclared restatement: only fires for AC surfaces (the
260
+ // schema field `ownerRef` lives on AC records), only when the
261
+ // owning surface is an `interfaces[].name` (the strict
262
+ // interface surface), and only when the AC does not name an
263
+ // `ownerRef.tacId` matching the owning TAC. Every other cross
264
+ // surface mention is read as a reference, not a restatement.
265
+ if (surface.holderKind !== 'ac') continue;
266
+ if (!owner.field.startsWith('interfaces[') || !owner.field.endsWith('].name')) continue;
267
+ const ownerRef = surface.ownerRef;
268
+ const declared = ownerRef && typeof ownerRef.tacId === 'string' && ownerRef.tacId === owner.tacId;
269
+ if (declared) continue;
270
+ const id = `pass1-restated-${owner.tacId}-${owner.canonical}`;
271
+ const dedupe = `${id}::${surface.holderId}`;
272
+ if (seen.has(dedupe)) continue;
273
+ seen.add(dedupe);
274
+ findings.push({
275
+ id, pass: 'pass1', kind: 'undeclaredRestatement',
276
+ subject: owner.canonical,
277
+ refs: [owner.tacId, surface.holderId],
278
+ message: `${surface.holderId}.${surface.field} restates '${owner.canonical}' owned by ${owner.tacId}.${owner.field}; declare ownerRef or turn the mention into a reference.`,
279
+ });
280
+ }
281
+ }
282
+ return findings;
283
+ }
284
+
285
+ // REQ description phrases that read as an externally observable
286
+ // promise the lint asks a TAC or ADR to deliver.
287
+ const PROMISE_TERMS = [
288
+ 'must', 'requires', 'required', 'guarantee', 'guarantees', 'guaranteed',
289
+ 'ceiling', 'never', 'invariant', 'on boot', 'at boot', 'boot event',
290
+ 'always', 'ensures', 'refuse', 'refuses', 'forbid', 'forbidden',
291
+ ];
292
+
293
+ export function runPass2(input) {
294
+ const findings = [];
295
+ const tacsById = new Map();
296
+ for (const t of input.tacs) tacsById.set(t.tacId || t.id, t);
297
+ for (const req of input.reqs) {
298
+ const rid = req.reqId || req.id || '(unknown-req)';
299
+ const desc = typeof req.description === 'string' ? req.description : '';
300
+ const promises = PROMISE_TERMS.some((term) => new RegExp(`(^|[^A-Za-z])${term}([^A-Za-z]|$)`, 'i').test(desc));
301
+ if (!promises) continue;
302
+ const delivery = req.deliveredBy && typeof req.deliveredBy === 'object' ? req.deliveredBy : null;
303
+ if (!delivery || (!delivery.tacId && !delivery.adrId)) {
304
+ findings.push({
305
+ id: `pass2-no-delivery-${rid}`, pass: 'pass2', kind: 'reqNoDelivery',
306
+ subject: rid, refs: [rid],
307
+ message: `${rid}.description promises an externally observable property but declares no deliveredBy link into a TAC or ADR.`,
308
+ });
309
+ continue;
310
+ }
311
+ if (delivery.tacId) {
312
+ const target = tacsById.get(delivery.tacId);
313
+ if (!target) {
314
+ findings.push({
315
+ id: `pass2-delivery-missing-tac-${rid}-${delivery.tacId}`, pass: 'pass2', kind: 'reqDeliveryNotCarried',
316
+ subject: rid, refs: [rid, delivery.tacId],
317
+ message: `${rid}.deliveredBy names TAC ${delivery.tacId} which is not present in the blueprint.`,
318
+ });
319
+ continue;
320
+ }
321
+ const carried = collectTacSurfaceText(target).toLowerCase();
322
+ const field = typeof delivery.field === 'string' ? delivery.field.toLowerCase() : '';
323
+ const fieldTail = field ? field.split('.').pop() : '';
324
+ if (fieldTail && !carried.includes(fieldTail)) {
325
+ findings.push({
326
+ id: `pass2-delivery-field-missing-${rid}-${delivery.tacId}`, pass: 'pass2', kind: 'reqDeliveryNotCarried',
327
+ subject: rid, refs: [rid, delivery.tacId, fieldTail],
328
+ message: `${rid}.deliveredBy points at ${delivery.tacId}.${delivery.field} but that field is not present on the TAC's responsibilities or interfaces.`,
329
+ });
330
+ }
331
+ }
332
+ }
333
+ return findings;
334
+ }
335
+
336
+ function collectTacSurfaceText(tac) {
337
+ const parts = [];
338
+ if (typeof tac.purpose === 'string') parts.push(tac.purpose);
339
+ if (typeof tac.internalStructure === 'string') parts.push(tac.internalStructure);
340
+ if (Array.isArray(tac.responsibilities)) parts.push(tac.responsibilities.filter((s) => typeof s === 'string').join(' '));
341
+ if (Array.isArray(tac.interfaces)) {
342
+ for (const iface of tac.interfaces) {
343
+ if (iface && typeof iface.name === 'string') parts.push(iface.name);
344
+ if (iface && typeof iface.summary === 'string') parts.push(iface.summary);
345
+ }
346
+ }
347
+ return parts.join(' ');
348
+ }
349
+
350
+ /**
351
+ * Load a blueprint from disk into the shape the passes consume.
352
+ *
353
+ * @param {string} sourcePath
354
+ * @returns {Promise<{ slug: string, sourcePath: string, tacs: object[], reqs: object[], userStories: object[], adrs: object[], guideMarkdown: string } | { error: string }>}
355
+ */
356
+ export async function loadForLint(sourcePath) {
357
+ let meta;
358
+ try {
359
+ const raw = await readFile(join(sourcePath, 'blueprint.json'), 'utf8');
360
+ meta = JSON.parse(raw);
361
+ } catch (err) {
362
+ return { error: `cannot read blueprint.json under ${sourcePath}: ${err.message}` };
363
+ }
364
+ const slug = meta.slug || '(unknown-slug)';
365
+ const contributions = Array.isArray(meta.contributions) ? meta.contributions : [];
366
+ const tacs = []; const reqs = []; const userStories = []; const adrs = [];
367
+ for (const c of contributions) {
368
+ if (!c || typeof c.path !== 'string') continue;
369
+ const abs = join(sourcePath, 'contributions', c.path);
370
+ let doc;
371
+ try { doc = JSON.parse(await readFile(abs, 'utf8')); } catch { continue; }
372
+ switch (c.kind) {
373
+ case 'tac': tacs.push(doc); break;
374
+ case 'req': reqs.push(doc); break;
375
+ case 'us': userStories.push(doc); break;
376
+ case 'adr': adrs.push(doc); break;
377
+ default: break;
378
+ }
379
+ }
380
+ let guideMarkdown = '';
381
+ try {
382
+ const entries = await readdir(join(sourcePath, 'guide'));
383
+ for (const name of entries) {
384
+ if (!name.endsWith('.md')) continue;
385
+ guideMarkdown += `${await readFile(join(sourcePath, 'guide', name), 'utf8')}\n`;
386
+ }
387
+ } catch { /* no guide directory is fine */ }
388
+ return { slug, sourcePath, tacs, reqs, userStories, adrs, guideMarkdown };
389
+ }
390
+
391
+ /**
392
+ * Extract "Known chain-consistency-lint suppressions" entries from a
393
+ * blueprint's README.md. Returns a Map from finding id to reason.
394
+ */
395
+ export async function loadSuppressions(sourcePath) {
396
+ const out = new Map();
397
+ let readme;
398
+ try { readme = await readFile(join(sourcePath, 'README.md'), 'utf8'); } catch { return out; }
399
+ const m = readme.match(/##\s+Known chain-consistency-lint suppressions([\s\S]*?)(\n##\s+|$)/);
400
+ if (!m) return out;
401
+ for (const line of m[1].split('\n')) {
402
+ const rm = line.match(/^\s*[-*]\s+([A-Za-z0-9][A-Za-z0-9._:-]*)\s*:\s*(.+?)\s*$/);
403
+ if (rm) out.set(rm[1], rm[2]);
404
+ }
405
+ return out;
406
+ }
407
+
408
+ /**
409
+ * Run both passes and shape the result envelope. Pass 1 findings that
410
+ * appear in `suppressions` are marked `suppressed: true`; pass 2
411
+ * findings are never suppressible.
412
+ */
413
+ export function runLint(input, suppressions = new Map()) {
414
+ const pass1 = runPass1(input);
415
+ const pass2 = runPass2(input);
416
+ let suppressedCount = 0;
417
+ for (const f of pass1) {
418
+ if (suppressions.has(f.id)) {
419
+ f.suppressed = true;
420
+ f.suppressionReason = suppressions.get(f.id);
421
+ suppressedCount += 1;
422
+ }
423
+ }
424
+ const findings = [...pass1, ...pass2];
425
+ const unsuppressed = findings.filter((f) => !f.suppressed);
426
+ return {
427
+ blueprint: input.slug,
428
+ findings,
429
+ verdict: unsuppressed.length === 0 ? 'pass' : 'fail',
430
+ passCounts: { pass1: pass1.length, pass2: pass2.length, suppressed: suppressedCount },
431
+ };
432
+ }
@@ -0,0 +1,224 @@
1
+ // Per-slug disposition ledger for applied blueprints. Sits alongside
2
+ // the existing `<slug>.applied.json` sidecar (see capabilities.js) and
3
+ // records one entry per AC contributed by the blueprint, plus the
4
+ // disposition the applying agent (or the operator) recorded.
5
+ //
6
+ // Schema follow-up: a `$defs/blueprintDispositionLedger` shape lands
7
+ // on `@stravica-ai/rcf-schemas` alongside the four fields the 0.6.2
8
+ // bump already ships (deliveredBy, ownerRef, disposition,
9
+ // vendorCitation). Until it does, the ledger validates itself via the
10
+ // local `validateRecord` guard so a malformed write refuses before
11
+ // touching the file.
12
+ //
13
+ // Ledger location: `rcf/blueprints/<slug>.disposition.json`.
14
+
15
+ import { readFile, mkdir, writeFile, stat } from 'node:fs/promises';
16
+ import { join, dirname } from 'node:path';
17
+
18
+ const ACTIONS = new Set([
19
+ 'pending-disposition',
20
+ 'pending-operator',
21
+ 'accepted',
22
+ 'adjusted',
23
+ 'dropped',
24
+ 'escalated-as-defect',
25
+ ]);
26
+
27
+ /**
28
+ * @typedef {object} DispositionRecord
29
+ * @property {string} acId
30
+ * @property {string} storyId
31
+ * @property {'fixed'|'template'} [sourceDisposition]
32
+ * @property {'pending-disposition'|'pending-operator'|'accepted'|'adjusted'|'dropped'|'escalated-as-defect'} action
33
+ * @property {string} [reason]
34
+ * @property {string} [resolvedAt]
35
+ * @property {string} [resolvedBy]
36
+ * @property {string} [escalatedAt]
37
+ * @property {boolean} [escalatedToOperator]
38
+ * @property {string} [defectUrl]
39
+ */
40
+
41
+ /**
42
+ * Ledger file path (relative to project root).
43
+ *
44
+ * @param {string} slug
45
+ */
46
+ export function ledgerRelPath(slug) {
47
+ return join('rcf', 'blueprints', `${slug}.disposition.json`);
48
+ }
49
+
50
+ /**
51
+ * Absolute path helper.
52
+ */
53
+ export function ledgerAbsPath(projectRoot, slug) {
54
+ return join(projectRoot, ledgerRelPath(slug));
55
+ }
56
+
57
+ /**
58
+ * Best-effort shape check for a single ledger record. Returns null on
59
+ * ok, an error string on any refusal.
60
+ *
61
+ * @param {any} rec
62
+ * @returns {string | null}
63
+ */
64
+ function validateRecord(rec) {
65
+ if (!rec || typeof rec !== 'object') return 'record is not an object';
66
+ if (typeof rec.acId !== 'string' || rec.acId.length === 0) return 'acId is missing';
67
+ if (typeof rec.storyId !== 'string' || rec.storyId.length === 0) return 'storyId is missing';
68
+ if (typeof rec.action !== 'string' || !ACTIONS.has(rec.action)) return `action must be one of ${[...ACTIONS].join(', ')}; got '${rec.action}'`;
69
+ if (rec.sourceDisposition !== undefined && rec.sourceDisposition !== 'fixed' && rec.sourceDisposition !== 'template') {
70
+ return `sourceDisposition must be 'fixed' or 'template' when set; got '${rec.sourceDisposition}'`;
71
+ }
72
+ return null;
73
+ }
74
+
75
+ /**
76
+ * Read a slug's ledger from disk. Missing file returns null.
77
+ *
78
+ * @param {string} projectRoot
79
+ * @param {string} slug
80
+ * @returns {Promise<{ slug: string, schemaVersion: number, records: DispositionRecord[] } | null>}
81
+ */
82
+ export async function readLedger(projectRoot, slug) {
83
+ const abs = ledgerAbsPath(projectRoot, slug);
84
+ try {
85
+ const raw = await readFile(abs, 'utf8');
86
+ return JSON.parse(raw);
87
+ } catch (err) {
88
+ if (err && err.code === 'ENOENT') return null;
89
+ throw err;
90
+ }
91
+ }
92
+
93
+ /**
94
+ * Presence check for the ledger file. Does not parse.
95
+ *
96
+ * @param {string} projectRoot
97
+ * @param {string} slug
98
+ * @returns {Promise<boolean>}
99
+ */
100
+ export async function ledgerExists(projectRoot, slug) {
101
+ try { await stat(ledgerAbsPath(projectRoot, slug)); return true; } catch { return false; }
102
+ }
103
+
104
+ /**
105
+ * Write a whole ledger document (overwrites). Validates every record
106
+ * before touching disk; a bad record returns { error: string } and
107
+ * writes nothing.
108
+ *
109
+ * @param {object} args
110
+ * @param {string} args.projectRoot
111
+ * @param {string} args.slug
112
+ * @param {DispositionRecord[]} args.records
113
+ * @returns {Promise<{ path: string } | { error: string }>}
114
+ */
115
+ export async function writeLedger({ projectRoot, slug, records }) {
116
+ if (!Array.isArray(records)) return { error: 'records must be an array' };
117
+ for (const r of records) {
118
+ const err = validateRecord(r);
119
+ if (err) return { error: `invalid ledger record for AC '${r?.acId ?? '?'}': ${err}` };
120
+ }
121
+ const abs = ledgerAbsPath(projectRoot, slug);
122
+ await mkdir(dirname(abs), { recursive: true });
123
+ const payload = { slug, schemaVersion: 1, records };
124
+ await writeFile(abs, `${JSON.stringify(payload, null, 2)}\n`, 'utf8');
125
+ return { path: ledgerRelPath(slug) };
126
+ }
127
+
128
+ /**
129
+ * Initialise a ledger for a freshly-applied blueprint. One record
130
+ * per AC contributed by the blueprint. Existing ledger (re-apply)
131
+ * is left byte-identical so operator disposition edits are never
132
+ * clobbered; the return value carries `alreadyExisted: true`.
133
+ *
134
+ * A `fixed` AC (per rcf-schemas 0.6.2 `$defs.acDisposition`) lands as
135
+ * `accepted` with the sentinel reason `fixed-mechanism-inherited`,
136
+ * per spec section 3.6.
137
+ *
138
+ * @param {object} args
139
+ * @param {string} args.projectRoot
140
+ * @param {string} args.slug
141
+ * @param {Array<{ id: string, storyId: string, sourceDisposition?: 'fixed'|'template' }>} args.acDescriptors
142
+ * @param {Date} [args.now]
143
+ * @returns {Promise<{ path: string, alreadyExisted: boolean, recordCount: number }>}
144
+ */
145
+ export async function initialiseLedger({ projectRoot, slug, acDescriptors, now = new Date() }) {
146
+ if (await ledgerExists(projectRoot, slug)) {
147
+ const existing = await readLedger(projectRoot, slug);
148
+ return { path: ledgerRelPath(slug), alreadyExisted: true, recordCount: existing?.records?.length ?? 0 };
149
+ }
150
+ const iso = now.toISOString().slice(0, 10);
151
+ const records = acDescriptors.map((d) => {
152
+ const base = { acId: d.id, storyId: d.storyId };
153
+ if (d.sourceDisposition === 'fixed') {
154
+ return { ...base, sourceDisposition: 'fixed', action: 'accepted', reason: 'fixed-mechanism-inherited', resolvedAt: iso, resolvedBy: 'blueprint-author' };
155
+ }
156
+ if (d.sourceDisposition === 'template') {
157
+ return { ...base, sourceDisposition: 'template', action: 'pending-disposition' };
158
+ }
159
+ return { ...base, action: 'pending-disposition' };
160
+ });
161
+ const res = await writeLedger({ projectRoot, slug, records });
162
+ if ('error' in res) throw new Error(`ledger init failed: ${res.error}`);
163
+ return { path: res.path, alreadyExisted: false, recordCount: records.length };
164
+ }
165
+
166
+ /**
167
+ * Update or append a single AC record. If the acId is present, its
168
+ * fields are merged (later fields win); otherwise the record is
169
+ * appended. Returns { updated: boolean, path } on success.
170
+ */
171
+ export async function upsertLedgerRecord({ projectRoot, slug, record }) {
172
+ const err = validateRecord(record);
173
+ if (err) return { error: err };
174
+ const doc = (await readLedger(projectRoot, slug)) ?? { slug, schemaVersion: 1, records: [] };
175
+ let updated = false;
176
+ const next = doc.records.map((r) => {
177
+ if (r.acId === record.acId) { updated = true; return { ...r, ...record }; }
178
+ return r;
179
+ });
180
+ if (!updated) next.push(record);
181
+ const res = await writeLedger({ projectRoot, slug, records: next });
182
+ if ('error' in res) return res;
183
+ return { updated, path: res.path };
184
+ }
185
+
186
+ // The prompt the operator sees at apply time. Kept a canonical string
187
+ // so tests can assert against it and the dispatch spec can echo it
188
+ // verbatim. Contains no em-dashes and no internal identifiers so it
189
+ // reads cleanly in third-party output.
190
+ export const APPLY_DISPOSITION_PROMPT = (slug, version, count) => (
191
+ `Blueprint '${slug}' v${version} contributed ${count} acceptance criteria. `
192
+ + `For each, you or the applying agent must record a disposition (accept as authored, adjust with a stated reason, `
193
+ + `drop with a stated reason, or escalate to the operator). `
194
+ + `Run 'rcf define blueprint dispositions ${slug}' at any time to see the current state; `
195
+ + `the applying agent will drive the walk unless you want to do it yourself.`
196
+ );
197
+
198
+ /**
199
+ * Ledger schema documentation the follow-up rcf-schemas PR will land.
200
+ * Kept close to the writer so the local guard and the eventual schema
201
+ * definition stay in step.
202
+ */
203
+ export const LEDGER_SCHEMA_NOTE = `
204
+ The per-slug disposition ledger is a JSON object with:
205
+ { slug: string,
206
+ schemaVersion: 1,
207
+ records: [
208
+ { acId: string,
209
+ storyId: string,
210
+ sourceDisposition?: 'fixed' | 'template',
211
+ action: 'pending-disposition' | 'pending-operator' | 'accepted' | 'adjusted' | 'dropped' | 'escalated-as-defect',
212
+ reason?: string,
213
+ resolvedAt?: string (ISO date),
214
+ resolvedBy?: string,
215
+ escalatedAt?: string (ISO date),
216
+ escalatedToOperator?: boolean,
217
+ defectUrl?: string
218
+ }, ...
219
+ ]
220
+ }
221
+ Follow-up: a $defs/blueprintDispositionLedger schema on @stravica-ai/rcf-schemas
222
+ will make the shape validator-checkable; today the ledger writer guards it
223
+ inline (see validateRecord).
224
+ `.trim();