rcf-lite 0.21.0 → 0.23.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 (458) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/bin/rcf.js +13 -2
  3. package/blueprints/application-account-settings/CHANGELOG.md +12 -0
  4. package/blueprints/application-account-settings/README.md +114 -0
  5. package/blueprints/application-account-settings/blueprint.json +234 -0
  6. package/blueprints/application-account-settings/contributions/adrs/adr-2601-application-account-settings-capability-vocabulary.json +20 -0
  7. package/blueprints/application-account-settings/contributions/adrs/adr-2602-application-account-settings-security-surface-shape.json +20 -0
  8. package/blueprints/application-account-settings/contributions/adrs/adr-2603-application-account-settings-theme-persistence.json +20 -0
  9. package/blueprints/application-account-settings/contributions/adrs/adr-2604-application-account-settings-reauth-window.json +20 -0
  10. package/blueprints/application-account-settings/contributions/requirements/application-account-settings-req-001.json +18 -0
  11. package/blueprints/application-account-settings/contributions/requirements/application-account-settings-req-002.json +18 -0
  12. package/blueprints/application-account-settings/contributions/requirements/application-account-settings-req-003.json +18 -0
  13. package/blueprints/application-account-settings/contributions/requirements/application-account-settings-req-004.json +18 -0
  14. package/blueprints/application-account-settings/contributions/requirements/application-account-settings-req-005.json +18 -0
  15. package/blueprints/application-account-settings/contributions/requirements/application-account-settings-req-006.json +18 -0
  16. package/blueprints/application-account-settings/contributions/tacs/tac-2601-application-account-settings-shell.json +41 -0
  17. package/blueprints/application-account-settings/contributions/tacs/tac-2602-application-account-settings-capability-discovery.json +28 -0
  18. package/blueprints/application-account-settings/contributions/tacs/tac-2603-application-account-settings-hosted-ui-bridge.json +35 -0
  19. package/blueprints/application-account-settings/contributions/tacs/tac-2604-application-account-settings-session-store.json +40 -0
  20. package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25101.json +34 -0
  21. package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25102.json +27 -0
  22. package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25103.json +27 -0
  23. package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25104.json +27 -0
  24. package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25105.json +33 -0
  25. package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25106.json +27 -0
  26. package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25107.json +27 -0
  27. package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25108.json +27 -0
  28. package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25109.json +33 -0
  29. package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25110.json +27 -0
  30. package/blueprints/application-account-settings/docs/topics.md +50 -0
  31. package/blueprints/application-account-settings/guide/application-account-settings.md +30 -0
  32. package/blueprints/application-account-settings/probe-packs/application-account-settings.pack.mjs +246 -0
  33. package/blueprints/application-admin-console/docs/topics.md +9 -0
  34. package/blueprints/application-api-rest/docs/topics.md +10 -1
  35. package/blueprints/application-charts/docs/topics.md +9 -0
  36. package/blueprints/application-dashboard/docs/topics.md +9 -0
  37. package/blueprints/application-datatable/docs/topics.md +9 -0
  38. package/blueprints/application-empty-error-states/CHANGELOG.md +9 -0
  39. package/blueprints/application-empty-error-states/README.md +88 -0
  40. package/blueprints/application-empty-error-states/blueprint.json +119 -0
  41. package/blueprints/application-empty-error-states/contributions/adrs/adr-2301-application-empty-error-states-status-contract.json +25 -0
  42. package/blueprints/application-empty-error-states/contributions/adrs/adr-2302-application-empty-error-states-stack-trace-visibility.json +25 -0
  43. package/blueprints/application-empty-error-states/contributions/adrs/adr-2303-application-empty-error-states-offline-strategy.json +25 -0
  44. package/blueprints/application-empty-error-states/contributions/requirements/application-empty-error-states-req-001.json +18 -0
  45. package/blueprints/application-empty-error-states/contributions/requirements/application-empty-error-states-req-002.json +18 -0
  46. package/blueprints/application-empty-error-states/contributions/requirements/application-empty-error-states-req-003.json +18 -0
  47. package/blueprints/application-empty-error-states/contributions/requirements/application-empty-error-states-req-004.json +18 -0
  48. package/blueprints/application-empty-error-states/contributions/requirements/application-empty-error-states-req-005.json +18 -0
  49. package/blueprints/application-empty-error-states/contributions/tacs/tac-2301-application-empty-error-states-state-machine.json +46 -0
  50. package/blueprints/application-empty-error-states/contributions/tacs/tac-2302-application-empty-error-states-recovery-router.json +36 -0
  51. package/blueprints/application-empty-error-states/contributions/tacs/tac-2303-application-empty-error-states-offline-buffer.json +40 -0
  52. package/blueprints/application-empty-error-states/contributions/user-stories/application-empty-error-states-us-22101.json +29 -0
  53. package/blueprints/application-empty-error-states/contributions/user-stories/application-empty-error-states-us-22102.json +29 -0
  54. package/blueprints/application-empty-error-states/contributions/user-stories/application-empty-error-states-us-22103.json +29 -0
  55. package/blueprints/application-empty-error-states/contributions/user-stories/application-empty-error-states-us-22104.json +29 -0
  56. package/blueprints/application-empty-error-states/contributions/user-stories/application-empty-error-states-us-22105.json +29 -0
  57. package/blueprints/application-empty-error-states/contributions/user-stories/application-empty-error-states-us-22106.json +29 -0
  58. package/blueprints/application-empty-error-states/contributions/user-stories/application-empty-error-states-us-22107.json +29 -0
  59. package/blueprints/application-empty-error-states/contributions/user-stories/application-empty-error-states-us-22108.json +29 -0
  60. package/blueprints/application-empty-error-states/docs/topics.md +55 -0
  61. package/blueprints/application-empty-error-states/guide/application-empty-error-states.md +50 -0
  62. package/blueprints/application-empty-error-states/probe-packs/application-empty-error-states.pack.mjs +284 -0
  63. package/blueprints/application-error-handling/docs/topics.md +9 -0
  64. package/blueprints/application-file-upload/CHANGELOG.md +9 -0
  65. package/blueprints/application-file-upload/README.md +85 -0
  66. package/blueprints/application-file-upload/blueprint.json +114 -0
  67. package/blueprints/application-file-upload/contributions/adrs/adr-2401-application-file-upload-transport.json +25 -0
  68. package/blueprints/application-file-upload/contributions/adrs/adr-2402-application-file-upload-accepted-set.json +25 -0
  69. package/blueprints/application-file-upload/contributions/adrs/adr-2403-application-file-upload-virus-scan.json +25 -0
  70. package/blueprints/application-file-upload/contributions/requirements/application-file-upload-req-001.json +18 -0
  71. package/blueprints/application-file-upload/contributions/requirements/application-file-upload-req-002.json +18 -0
  72. package/blueprints/application-file-upload/contributions/requirements/application-file-upload-req-003.json +18 -0
  73. package/blueprints/application-file-upload/contributions/requirements/application-file-upload-req-004.json +18 -0
  74. package/blueprints/application-file-upload/contributions/requirements/application-file-upload-req-005.json +18 -0
  75. package/blueprints/application-file-upload/contributions/tacs/tac-2401-application-file-upload-input.json +46 -0
  76. package/blueprints/application-file-upload/contributions/tacs/tac-2402-application-file-upload-transport.json +47 -0
  77. package/blueprints/application-file-upload/contributions/tacs/tac-2403-application-file-upload-progress-announcer.json +46 -0
  78. package/blueprints/application-file-upload/contributions/user-stories/application-file-upload-us-23101.json +28 -0
  79. package/blueprints/application-file-upload/contributions/user-stories/application-file-upload-us-23102.json +28 -0
  80. package/blueprints/application-file-upload/contributions/user-stories/application-file-upload-us-23103.json +29 -0
  81. package/blueprints/application-file-upload/contributions/user-stories/application-file-upload-us-23104.json +28 -0
  82. package/blueprints/application-file-upload/contributions/user-stories/application-file-upload-us-23105.json +29 -0
  83. package/blueprints/application-file-upload/contributions/user-stories/application-file-upload-us-23106.json +28 -0
  84. package/blueprints/application-file-upload/contributions/user-stories/application-file-upload-us-23107.json +28 -0
  85. package/blueprints/application-file-upload/docs/topics.md +60 -0
  86. package/blueprints/application-file-upload/guide/application-file-upload.md +48 -0
  87. package/blueprints/application-file-upload/probe-packs/application-file-upload.pack.mjs +238 -0
  88. package/blueprints/application-forms-wizard/CHANGELOG.md +9 -0
  89. package/blueprints/application-forms-wizard/README.md +102 -0
  90. package/blueprints/application-forms-wizard/blueprint.json +120 -0
  91. package/blueprints/application-forms-wizard/contributions/adrs/adr-2501-application-forms-wizard-navigation.json +25 -0
  92. package/blueprints/application-forms-wizard/contributions/adrs/adr-2502-application-forms-wizard-save-and-return.json +25 -0
  93. package/blueprints/application-forms-wizard/contributions/adrs/adr-2503-application-forms-wizard-step-indicator.json +25 -0
  94. package/blueprints/application-forms-wizard/contributions/requirements/application-forms-wizard-req-001.json +18 -0
  95. package/blueprints/application-forms-wizard/contributions/requirements/application-forms-wizard-req-002.json +18 -0
  96. package/blueprints/application-forms-wizard/contributions/requirements/application-forms-wizard-req-003.json +18 -0
  97. package/blueprints/application-forms-wizard/contributions/requirements/application-forms-wizard-req-004.json +18 -0
  98. package/blueprints/application-forms-wizard/contributions/requirements/application-forms-wizard-req-005.json +18 -0
  99. package/blueprints/application-forms-wizard/contributions/tacs/tac-2501-application-forms-wizard-task-list.json +46 -0
  100. package/blueprints/application-forms-wizard/contributions/tacs/tac-2502-application-forms-wizard-error-summary.json +40 -0
  101. package/blueprints/application-forms-wizard/contributions/tacs/tac-2503-application-forms-wizard-draft-store.json +40 -0
  102. package/blueprints/application-forms-wizard/contributions/user-stories/application-forms-wizard-us-24101.json +28 -0
  103. package/blueprints/application-forms-wizard/contributions/user-stories/application-forms-wizard-us-24102.json +29 -0
  104. package/blueprints/application-forms-wizard/contributions/user-stories/application-forms-wizard-us-24103.json +28 -0
  105. package/blueprints/application-forms-wizard/contributions/user-stories/application-forms-wizard-us-24104.json +29 -0
  106. package/blueprints/application-forms-wizard/contributions/user-stories/application-forms-wizard-us-24105.json +28 -0
  107. package/blueprints/application-forms-wizard/contributions/user-stories/application-forms-wizard-us-24106.json +28 -0
  108. package/blueprints/application-forms-wizard/contributions/user-stories/application-forms-wizard-us-24107.json +28 -0
  109. package/blueprints/application-forms-wizard/contributions/user-stories/application-forms-wizard-us-24108.json +29 -0
  110. package/blueprints/application-forms-wizard/docs/topics.md +51 -0
  111. package/blueprints/application-forms-wizard/guide/application-forms-wizard.md +48 -0
  112. package/blueprints/application-forms-wizard/probe-packs/application-forms-wizard.pack.mjs +233 -0
  113. package/blueprints/application-notifications-in-app/docs/topics.md +9 -0
  114. package/blueprints/application-onboarding-tour/CHANGELOG.md +12 -0
  115. package/blueprints/application-onboarding-tour/README.md +77 -0
  116. package/blueprints/application-onboarding-tour/blueprint.json +164 -0
  117. package/blueprints/application-onboarding-tour/contributions/adrs/adr-2701-application-onboarding-tour-dismissal-policy.json +20 -0
  118. package/blueprints/application-onboarding-tour/contributions/adrs/adr-2702-application-onboarding-tour-completion-store-shape.json +20 -0
  119. package/blueprints/application-onboarding-tour/contributions/adrs/adr-2703-application-onboarding-tour-checklist-anchor.json +20 -0
  120. package/blueprints/application-onboarding-tour/contributions/requirements/application-onboarding-tour-req-001.json +18 -0
  121. package/blueprints/application-onboarding-tour/contributions/requirements/application-onboarding-tour-req-002.json +18 -0
  122. package/blueprints/application-onboarding-tour/contributions/requirements/application-onboarding-tour-req-003.json +18 -0
  123. package/blueprints/application-onboarding-tour/contributions/requirements/application-onboarding-tour-req-004.json +18 -0
  124. package/blueprints/application-onboarding-tour/contributions/tacs/tac-2701-application-onboarding-tour-step-runner.json +41 -0
  125. package/blueprints/application-onboarding-tour/contributions/tacs/tac-2702-application-onboarding-tour-checklist-slot.json +35 -0
  126. package/blueprints/application-onboarding-tour/contributions/tacs/tac-2703-application-onboarding-tour-completion-store.json +34 -0
  127. package/blueprints/application-onboarding-tour/contributions/user-stories/application-onboarding-tour-us-26101.json +27 -0
  128. package/blueprints/application-onboarding-tour/contributions/user-stories/application-onboarding-tour-us-26102.json +27 -0
  129. package/blueprints/application-onboarding-tour/contributions/user-stories/application-onboarding-tour-us-26103.json +27 -0
  130. package/blueprints/application-onboarding-tour/contributions/user-stories/application-onboarding-tour-us-26104.json +27 -0
  131. package/blueprints/application-onboarding-tour/contributions/user-stories/application-onboarding-tour-us-26105.json +27 -0
  132. package/blueprints/application-onboarding-tour/contributions/user-stories/application-onboarding-tour-us-26106.json +27 -0
  133. package/blueprints/application-onboarding-tour/contributions/user-stories/application-onboarding-tour-us-26107.json +27 -0
  134. package/blueprints/application-onboarding-tour/docs/topics.md +50 -0
  135. package/blueprints/application-onboarding-tour/guide/application-onboarding-tour.md +59 -0
  136. package/blueprints/application-onboarding-tour/probe-packs/application-onboarding-tour.pack.mjs +231 -0
  137. package/blueprints/application-spa/docs/topics.md +11 -2
  138. package/blueprints/delivery-ci-workflows/docs/topics.md +10 -1
  139. package/blueprints/deploy-cloudflare-workers/CHANGELOG.md +69 -0
  140. package/blueprints/deploy-cloudflare-workers/README.md +12 -0
  141. package/blueprints/deploy-cloudflare-workers/blueprint.json +234 -36
  142. package/blueprints/deploy-cloudflare-workers/contributions/adrs/adr-1306-deploy-cloudflare-workers-spa-shape.json +30 -0
  143. package/blueprints/deploy-cloudflare-workers/contributions/probes/assets-manifest-scan.mjs +207 -0
  144. package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-013.json +18 -0
  145. package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-014.json +18 -0
  146. package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12113.json +36 -0
  147. package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12114.json +27 -0
  148. package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12115.json +27 -0
  149. package/blueprints/deploy-cloudflare-workers/docs/topics.md +11 -2
  150. package/blueprints/deploy-cloudflare-workers/guide/deploy-cloudflare-workers.md +25 -0
  151. package/blueprints/email-smtp-resend/docs/topics.md +10 -1
  152. package/blueprints/jobs-background/CHANGELOG.md +16 -0
  153. package/blueprints/jobs-background/README.md +105 -0
  154. package/blueprints/jobs-background/blueprint.json +149 -0
  155. package/blueprints/jobs-background/contributions/adrs/adr-3101-jobs-background-model.json +27 -0
  156. package/blueprints/jobs-background/contributions/adrs/adr-3102-jobs-background-scheduler-mode.json +25 -0
  157. package/blueprints/jobs-background/contributions/adrs/adr-3103-jobs-background-requires-applied-capabilities.json +25 -0
  158. package/blueprints/jobs-background/contributions/adrs/adr-3104-jobs-background-timeout-floor.json +25 -0
  159. package/blueprints/jobs-background/contributions/probes/apply-time-override.mjs +95 -0
  160. package/blueprints/jobs-background/contributions/probes/apply-time-refusal.mjs +82 -0
  161. package/blueprints/jobs-background/contributions/probes/event-secrecy.mjs +69 -0
  162. package/blueprints/jobs-background/contributions/probes/fake-clock-cron.mjs +65 -0
  163. package/blueprints/jobs-background/contributions/probes/probe-utils.mjs +91 -0
  164. package/blueprints/jobs-background/contributions/probes/retry-and-fail.mjs +65 -0
  165. package/blueprints/jobs-background/contributions/probes/run-apply-time-override.mjs +10 -0
  166. package/blueprints/jobs-background/contributions/probes/run-apply-time-refusal.mjs +11 -0
  167. package/blueprints/jobs-background/contributions/probes/run-event-secrecy.mjs +11 -0
  168. package/blueprints/jobs-background/contributions/probes/run-fake-clock-cron.mjs +11 -0
  169. package/blueprints/jobs-background/contributions/probes/run-retry-and-fail.mjs +11 -0
  170. package/blueprints/jobs-background/contributions/requirements/jobs-background-req-001.json +18 -0
  171. package/blueprints/jobs-background/contributions/requirements/jobs-background-req-002.json +18 -0
  172. package/blueprints/jobs-background/contributions/requirements/jobs-background-req-003.json +18 -0
  173. package/blueprints/jobs-background/contributions/requirements/jobs-background-req-004.json +18 -0
  174. package/blueprints/jobs-background/contributions/requirements/jobs-background-req-005.json +18 -0
  175. package/blueprints/jobs-background/contributions/requirements/jobs-background-req-006.json +18 -0
  176. package/blueprints/jobs-background/contributions/tacs/tac-3101-jobs-background-job-definition.json +50 -0
  177. package/blueprints/jobs-background/contributions/tacs/tac-3102-jobs-background-scheduler.json +50 -0
  178. package/blueprints/jobs-background/contributions/tacs/tac-3103-jobs-background-run-log.json +49 -0
  179. package/blueprints/jobs-background/contributions/user-stories/jobs-background-us-30101.json +25 -0
  180. package/blueprints/jobs-background/contributions/user-stories/jobs-background-us-30102.json +25 -0
  181. package/blueprints/jobs-background/contributions/user-stories/jobs-background-us-30103.json +25 -0
  182. package/blueprints/jobs-background/contributions/user-stories/jobs-background-us-30104.json +25 -0
  183. package/blueprints/jobs-background/contributions/user-stories/jobs-background-us-30105.json +25 -0
  184. package/blueprints/jobs-background/contributions/user-stories/jobs-background-us-30106.json +25 -0
  185. package/blueprints/jobs-background/contributions/user-stories/jobs-background-us-30107.json +25 -0
  186. package/blueprints/jobs-background/contributions/user-stories/jobs-background-us-30108.json +25 -0
  187. package/blueprints/jobs-background/contributions/user-stories/jobs-background-us-30109.json +25 -0
  188. package/blueprints/jobs-background/docs/topics.md +62 -0
  189. package/blueprints/jobs-background/guide/jobs-background.md +147 -0
  190. package/blueprints/messaging-queue-cloudflare/CHANGELOG.md +15 -0
  191. package/blueprints/messaging-queue-cloudflare/README.md +125 -0
  192. package/blueprints/messaging-queue-cloudflare/blueprint.json +67 -0
  193. package/blueprints/messaging-queue-cloudflare/contributions/adrs/adr-3001-messaging-queue-cloudflare-adapter.json +30 -0
  194. package/blueprints/messaging-queue-cloudflare/contributions/adrs/adr-3002-messaging-queue-cloudflare-delivery-semantics.json +25 -0
  195. package/blueprints/messaging-queue-cloudflare/contributions/adrs/adr-3003-messaging-queue-cloudflare-max-attempts-floor.json +25 -0
  196. package/blueprints/messaging-queue-cloudflare/contributions/adrs/adr-3004-messaging-queue-cloudflare-batch-defaults.json +25 -0
  197. package/blueprints/messaging-queue-cloudflare/contributions/probes/event-secrecy.mjs +137 -0
  198. package/blueprints/messaging-queue-cloudflare/contributions/probes/probe-utils.mjs +82 -0
  199. package/blueprints/messaging-queue-cloudflare/contributions/probes/producer-facade-ready.mjs +35 -0
  200. package/blueprints/messaging-queue-cloudflare/contributions/probes/publish-to-delivery.mjs +94 -0
  201. package/blueprints/messaging-queue-cloudflare/contributions/probes/real-account-concurrency-smoke.mjs +54 -0
  202. package/blueprints/messaging-queue-cloudflare/contributions/probes/retry-and-dlq.mjs +87 -0
  203. package/blueprints/messaging-queue-cloudflare/contributions/probes/run-event-secrecy.mjs +5 -0
  204. package/blueprints/messaging-queue-cloudflare/contributions/probes/run-producer-facade-ready.mjs +11 -0
  205. package/blueprints/messaging-queue-cloudflare/contributions/probes/run-publish-to-delivery.mjs +5 -0
  206. package/blueprints/messaging-queue-cloudflare/contributions/probes/run-real-account-concurrency-smoke.mjs +5 -0
  207. package/blueprints/messaging-queue-cloudflare/contributions/probes/run-retry-and-dlq.mjs +5 -0
  208. package/blueprints/messaging-queue-cloudflare/contributions/requirements/messaging-queue-cloudflare-req-001.json +18 -0
  209. package/blueprints/messaging-queue-cloudflare/contributions/requirements/messaging-queue-cloudflare-req-002.json +18 -0
  210. package/blueprints/messaging-queue-cloudflare/contributions/requirements/messaging-queue-cloudflare-req-003.json +18 -0
  211. package/blueprints/messaging-queue-cloudflare/contributions/requirements/messaging-queue-cloudflare-req-004.json +18 -0
  212. package/blueprints/messaging-queue-cloudflare/contributions/requirements/messaging-queue-cloudflare-req-005.json +18 -0
  213. package/blueprints/messaging-queue-cloudflare/contributions/requirements/messaging-queue-cloudflare-req-006.json +18 -0
  214. package/blueprints/messaging-queue-cloudflare/contributions/tacs/tac-3001-messaging-queue-cloudflare-producer-facade.json +56 -0
  215. package/blueprints/messaging-queue-cloudflare/contributions/tacs/tac-3002-messaging-queue-cloudflare-consumer-registration.json +40 -0
  216. package/blueprints/messaging-queue-cloudflare/contributions/tacs/tac-3003-messaging-queue-cloudflare-event-sink.json +39 -0
  217. package/blueprints/messaging-queue-cloudflare/contributions/user-stories/messaging-queue-cloudflare-us-29101.json +34 -0
  218. package/blueprints/messaging-queue-cloudflare/contributions/user-stories/messaging-queue-cloudflare-us-29102.json +34 -0
  219. package/blueprints/messaging-queue-cloudflare/contributions/user-stories/messaging-queue-cloudflare-us-29103.json +25 -0
  220. package/blueprints/messaging-queue-cloudflare/contributions/user-stories/messaging-queue-cloudflare-us-29104.json +25 -0
  221. package/blueprints/messaging-queue-cloudflare/contributions/user-stories/messaging-queue-cloudflare-us-29105.json +25 -0
  222. package/blueprints/messaging-queue-cloudflare/contributions/user-stories/messaging-queue-cloudflare-us-29106.json +25 -0
  223. package/blueprints/messaging-queue-cloudflare/contributions/user-stories/messaging-queue-cloudflare-us-29107.json +25 -0
  224. package/blueprints/messaging-queue-cloudflare/contributions/user-stories/messaging-queue-cloudflare-us-29108.json +25 -0
  225. package/blueprints/messaging-queue-cloudflare/docs/topics.md +62 -0
  226. package/blueprints/messaging-queue-cloudflare/guide/messaging-queue-cloudflare.md +110 -0
  227. package/blueprints/object-storage-s3/CHANGELOG.md +13 -0
  228. package/blueprints/object-storage-s3/README.md +108 -0
  229. package/blueprints/object-storage-s3/blueprint.json +72 -0
  230. package/blueprints/object-storage-s3/contributions/adrs/adr-2901-object-storage-s3-adapter.json +30 -0
  231. package/blueprints/object-storage-s3/contributions/adrs/adr-2902-object-storage-s3-presigned-ttl-floor.json +25 -0
  232. package/blueprints/object-storage-s3/contributions/adrs/adr-2903-object-storage-s3-multipart-threshold.json +25 -0
  233. package/blueprints/object-storage-s3/contributions/adrs/adr-2904-object-storage-s3-contract.json +25 -0
  234. package/blueprints/object-storage-s3/contributions/probes/event-secrecy.mjs +103 -0
  235. package/blueprints/object-storage-s3/contributions/probes/facade-round-trip.mjs +43 -0
  236. package/blueprints/object-storage-s3/contributions/probes/multipart-upload.mjs +84 -0
  237. package/blueprints/object-storage-s3/contributions/probes/presigned-url.mjs +101 -0
  238. package/blueprints/object-storage-s3/contributions/probes/probe-utils.mjs +85 -0
  239. package/blueprints/object-storage-s3/contributions/probes/put-get-round-trip.mjs +84 -0
  240. package/blueprints/object-storage-s3/contributions/probes/r2-real-account-smoke.mjs +64 -0
  241. package/blueprints/object-storage-s3/contributions/probes/run-event-secrecy.mjs +4 -0
  242. package/blueprints/object-storage-s3/contributions/probes/run-facade-round-trip.mjs +10 -0
  243. package/blueprints/object-storage-s3/contributions/probes/run-multipart-upload.mjs +4 -0
  244. package/blueprints/object-storage-s3/contributions/probes/run-presigned-url.mjs +4 -0
  245. package/blueprints/object-storage-s3/contributions/probes/run-put-get-round-trip.mjs +7 -0
  246. package/blueprints/object-storage-s3/contributions/probes/run-r2-real-account-smoke.mjs +4 -0
  247. package/blueprints/object-storage-s3/contributions/requirements/object-storage-s3-req-001.json +18 -0
  248. package/blueprints/object-storage-s3/contributions/requirements/object-storage-s3-req-002.json +18 -0
  249. package/blueprints/object-storage-s3/contributions/requirements/object-storage-s3-req-003.json +18 -0
  250. package/blueprints/object-storage-s3/contributions/requirements/object-storage-s3-req-004.json +18 -0
  251. package/blueprints/object-storage-s3/contributions/requirements/object-storage-s3-req-005.json +18 -0
  252. package/blueprints/object-storage-s3/contributions/requirements/object-storage-s3-req-006.json +18 -0
  253. package/blueprints/object-storage-s3/contributions/tacs/tac-2901-object-storage-s3-facade.json +57 -0
  254. package/blueprints/object-storage-s3/contributions/tacs/tac-2902-object-storage-s3-multipart-uploader.json +36 -0
  255. package/blueprints/object-storage-s3/contributions/tacs/tac-2903-object-storage-s3-event-sink.json +36 -0
  256. package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28101.json +34 -0
  257. package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28102.json +43 -0
  258. package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28103.json +25 -0
  259. package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28104.json +34 -0
  260. package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28105.json +25 -0
  261. package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28106.json +34 -0
  262. package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28107.json +34 -0
  263. package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28108.json +34 -0
  264. package/blueprints/object-storage-s3/docs/topics.md +64 -0
  265. package/blueprints/object-storage-s3/guide/object-storage-s3.md +207 -0
  266. package/blueprints/observability-essentials/docs/topics.md +10 -1
  267. package/blueprints/observability-logging/CHANGELOG.md +4 -0
  268. package/blueprints/observability-logging/README.md +3 -0
  269. package/blueprints/observability-logging/blueprint.json +3 -2
  270. package/blueprints/observability-logging/docs/topics.md +9 -0
  271. package/blueprints/observability-probe-endpoints/docs/topics.md +10 -1
  272. package/blueprints/persistence-data-d1/docs/topics.md +10 -1
  273. package/blueprints/persistence-data-postgres/CHANGELOG.md +12 -0
  274. package/blueprints/persistence-data-postgres/README.md +101 -0
  275. package/blueprints/persistence-data-postgres/blueprint.json +80 -0
  276. package/blueprints/persistence-data-postgres/contributions/adrs/adr-2801-persistence-data-postgres-driver.json +30 -0
  277. package/blueprints/persistence-data-postgres/contributions/adrs/adr-2802-persistence-data-postgres-migration-shape.json +25 -0
  278. package/blueprints/persistence-data-postgres/contributions/adrs/adr-2803-persistence-data-postgres-runner-mode.json +25 -0
  279. package/blueprints/persistence-data-postgres/contributions/adrs/adr-2804-persistence-data-postgres-recovery.json +25 -0
  280. package/blueprints/persistence-data-postgres/contributions/adrs/adr-2805-persistence-data-postgres-connection-pool-posture.json +25 -0
  281. package/blueprints/persistence-data-postgres/contributions/probes/facade-round-trip.mjs +56 -0
  282. package/blueprints/persistence-data-postgres/contributions/probes/migration-apply.mjs +75 -0
  283. package/blueprints/persistence-data-postgres/contributions/probes/pool-posture-smoke.mjs +56 -0
  284. package/blueprints/persistence-data-postgres/contributions/probes/prepared-statement-scan.mjs +186 -0
  285. package/blueprints/persistence-data-postgres/contributions/probes/probe-utils.mjs +76 -0
  286. package/blueprints/persistence-data-postgres/contributions/probes/recovery-restore-round-trip.mjs +173 -0
  287. package/blueprints/persistence-data-postgres/contributions/probes/run-facade-round-trip.mjs +10 -0
  288. package/blueprints/persistence-data-postgres/contributions/probes/run-migration-apply.mjs +10 -0
  289. package/blueprints/persistence-data-postgres/contributions/probes/run-pool-posture-smoke.mjs +9 -0
  290. package/blueprints/persistence-data-postgres/contributions/probes/run-prepared-statement-scan.mjs +10 -0
  291. package/blueprints/persistence-data-postgres/contributions/probes/run-recovery-restore-round-trip.mjs +9 -0
  292. package/blueprints/persistence-data-postgres/contributions/probes/run-transaction-atomicity.mjs +10 -0
  293. package/blueprints/persistence-data-postgres/contributions/probes/transaction-atomicity.mjs +79 -0
  294. package/blueprints/persistence-data-postgres/contributions/requirements/persistence-data-postgres-req-001.json +18 -0
  295. package/blueprints/persistence-data-postgres/contributions/requirements/persistence-data-postgres-req-002.json +18 -0
  296. package/blueprints/persistence-data-postgres/contributions/requirements/persistence-data-postgres-req-003.json +18 -0
  297. package/blueprints/persistence-data-postgres/contributions/requirements/persistence-data-postgres-req-004.json +18 -0
  298. package/blueprints/persistence-data-postgres/contributions/requirements/persistence-data-postgres-req-005.json +18 -0
  299. package/blueprints/persistence-data-postgres/contributions/requirements/persistence-data-postgres-req-006.json +18 -0
  300. package/blueprints/persistence-data-postgres/contributions/requirements/persistence-data-postgres-req-007.json +18 -0
  301. package/blueprints/persistence-data-postgres/contributions/tacs/tac-2801-persistence-data-postgres-facade.json +58 -0
  302. package/blueprints/persistence-data-postgres/contributions/tacs/tac-2802-persistence-data-postgres-migration-runner.json +40 -0
  303. package/blueprints/persistence-data-postgres/contributions/tacs/tac-2803-persistence-data-postgres-transaction-helper.json +35 -0
  304. package/blueprints/persistence-data-postgres/contributions/tacs/tac-2804-persistence-data-postgres-recovery-runner.json +40 -0
  305. package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27101.json +34 -0
  306. package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27102.json +25 -0
  307. package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27103.json +25 -0
  308. package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27104.json +25 -0
  309. package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27105.json +25 -0
  310. package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27106.json +25 -0
  311. package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27107.json +25 -0
  312. package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27108.json +25 -0
  313. package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27109.json +25 -0
  314. package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27110.json +25 -0
  315. package/blueprints/persistence-data-postgres/docs/topics.md +66 -0
  316. package/blueprints/persistence-data-postgres/guide/persistence-data-postgres.md +172 -0
  317. package/blueprints/persistence-data-sqlite/docs/topics.md +10 -1
  318. package/blueprints/security-auth-clerk/CHANGELOG.md +4 -0
  319. package/blueprints/security-auth-clerk/README.md +3 -0
  320. package/blueprints/security-auth-clerk/blueprint.json +147 -30
  321. package/blueprints/security-auth-clerk/docs/topics.md +10 -1
  322. package/blueprints/security-auth-keycloak/CHANGELOG.md +4 -0
  323. package/blueprints/security-auth-keycloak/README.md +3 -0
  324. package/blueprints/security-auth-keycloak/blueprint.json +182 -37
  325. package/blueprints/security-auth-keycloak/docs/topics.md +10 -1
  326. package/blueprints/security-auth-magic-link/CHANGELOG.md +4 -0
  327. package/blueprints/security-auth-magic-link/README.md +3 -0
  328. package/blueprints/security-auth-magic-link/blueprint.json +159 -33
  329. package/blueprints/security-auth-magic-link/docs/topics.md +10 -1
  330. package/blueprints/security-auth-oauth2/CHANGELOG.md +4 -0
  331. package/blueprints/security-auth-oauth2/README.md +3 -0
  332. package/blueprints/security-auth-oauth2/blueprint.json +158 -32
  333. package/blueprints/security-auth-oauth2/docs/topics.md +10 -1
  334. package/blueprints/security-secrets-management/CHANGELOG.md +11 -0
  335. package/blueprints/security-secrets-management/blueprint.json +2 -1
  336. package/blueprints/security-secrets-management/docs/topics.md +10 -1
  337. package/fixtures/canary-manifest.json +9 -9
  338. package/package.json +1 -1
  339. package/rcf/code-nodes/cn-134.json +13 -0
  340. package/rcf/code-nodes/cn-135.json +12 -0
  341. package/rcf/code-nodes/cn-136.json +13 -0
  342. package/rcf/code-nodes/cn-137.json +13 -0
  343. package/rcf/code-nodes/cn-138.json +12 -0
  344. package/rcf/code-nodes/cn-139.json +12 -0
  345. package/rcf/code-nodes/cn-140.json +13 -0
  346. package/rcf/code-nodes/cn-141.json +13 -0
  347. package/rcf/code-nodes/cn-142.json +12 -0
  348. package/rcf/code-nodes/cn-143.json +13 -0
  349. package/rcf/code-nodes/cn-144.json +13 -0
  350. package/rcf/code-nodes/cn-145.json +12 -0
  351. package/rcf/code-nodes/cn-146.json +12 -0
  352. package/rcf/code-nodes/cn-147.json +13 -0
  353. package/rcf/code-nodes/cn-148.json +13 -0
  354. package/rcf/code-nodes/cn-149.json +12 -0
  355. package/rcf/code-nodes/cn-150.json +13 -0
  356. package/rcf/code-nodes/cn-151.json +13 -0
  357. package/rcf/code-nodes/cn-152.json +12 -0
  358. package/rcf/code-nodes/cn-153.json +12 -0
  359. package/rcf/code-nodes/cn-154.json +13 -0
  360. package/rcf/code-nodes/cn-155.json +14 -0
  361. package/rcf/code-nodes/cn-156.json +13 -0
  362. package/rcf/code-nodes/cn-157.json +13 -0
  363. package/rcf/code-nodes/cn-158.json +12 -0
  364. package/rcf/code-nodes/cn-159.json +13 -0
  365. package/rcf/code-nodes/cn-160.json +12 -0
  366. package/rcf/code-nodes/cn-161.json +12 -0
  367. package/rcf/code-nodes/cn-162.json +13 -0
  368. package/rcf/code-nodes/cn-163.json +12 -0
  369. package/rcf/code-nodes/cn-164.json +13 -0
  370. package/rcf/code-nodes/cn-165.json +12 -0
  371. package/rcf/code-nodes/cn-166.json +12 -0
  372. package/rcf/code-nodes/cn-167.json +12 -0
  373. package/rcf/code-nodes/cn-168.json +12 -0
  374. package/rcf/code-nodes/cn-169.json +12 -0
  375. package/rcf/code-nodes/cn-170.json +12 -0
  376. package/rcf/code-nodes/cn-171.json +12 -0
  377. package/rcf/code-nodes/cn-172.json +12 -0
  378. package/rcf/code-nodes/cn-173.json +12 -0
  379. package/rcf/code-nodes/cn-174.json +12 -0
  380. package/rcf/code-nodes/cn-175.json +13 -0
  381. package/rcf/code-nodes/cn-176.json +12 -0
  382. package/rcf/code-nodes/cn-177.json +12 -0
  383. package/rcf/code-nodes/cn-178.json +12 -0
  384. package/rcf/code-nodes/cn-179.json +12 -0
  385. package/rcf/code-nodes/cn-180.json +13 -0
  386. package/rcf/code-nodes/cn-181.json +12 -0
  387. package/rcf/code-nodes/cn-182.json +13 -0
  388. package/rcf/code-nodes/cn-183.json +12 -0
  389. package/rcf/code-nodes/cn-184.json +13 -0
  390. package/rcf/code-nodes/cn-185.json +12 -0
  391. package/rcf/code-nodes/cn-186.json +12 -0
  392. package/rcf/code-nodes/cn-200.json +14 -0
  393. package/rcf/code-nodes/cn-201.json +13 -0
  394. package/rcf/code-nodes/cn-202.json +14 -0
  395. package/rcf/code-nodes/cn-203.json +14 -0
  396. package/rcf/code-nodes/cn-204.json +13 -0
  397. package/rcf/code-nodes/cn-205.json +14 -0
  398. package/rcf/code-nodes/cn-206.json +14 -0
  399. package/rcf/code-nodes/cn-207.json +13 -0
  400. package/rcf/code-nodes/cn-208.json +14 -0
  401. package/rcf/code-nodes/cn-209.json +14 -0
  402. package/rcf/code-nodes/cn-210.json +13 -0
  403. package/rcf/code-nodes/cn-211.json +12 -0
  404. package/rcf/code-nodes/cn-212.json +12 -0
  405. package/rcf/code-nodes/cn-213.json +12 -0
  406. package/rcf/code-nodes/cn-214.json +15 -0
  407. package/rcf/code-nodes/cn-215.json +13 -0
  408. package/rcf/code-nodes/cn-216.json +14 -0
  409. package/rcf/code-nodes/cn-217.json +13 -0
  410. package/rcf/fbs/fbs-043.json +23 -0
  411. package/rcf/fbs/fbs-044.json +23 -0
  412. package/rcf/fbs/fbs-045.json +23 -0
  413. package/rcf/fbs/fbs-046.json +24 -0
  414. package/rcf/fbs/fbs-047.json +24 -0
  415. package/rcf/fbs/fbs-060.json +22 -0
  416. package/rcf/fbs/fbs-061.json +20 -0
  417. package/rcf/fbs/fbs-062.json +20 -0
  418. package/rcf/fbs/fbs-063.json +22 -0
  419. package/rcf/fbs/fbs-064.json +23 -0
  420. package/rcf/requirements/req-024.json +69 -0
  421. package/rcf/requirements/req-025.json +59 -0
  422. package/rcf/requirements/req-026.json +154 -0
  423. package/rcf/requirements/req-027.json +33 -0
  424. package/rcf/requirements/req-028.json +13 -0
  425. package/rcf/requirements/req-029.json +57 -0
  426. package/rcf/requirements/req-030.json +67 -0
  427. package/rcf/requirements/req-040.json +13 -0
  428. package/rcf/requirements/req-041.json +125 -0
  429. package/rcf/requirements/req-042.json +59 -0
  430. package/rcf/requirements/req-043.json +39 -0
  431. package/rcf/test-suites/ts-053.json +70 -0
  432. package/rcf/test-suites/ts-054.json +70 -0
  433. package/rcf/test-suites/ts-055.json +77 -0
  434. package/rcf/test-suites/ts-056.json +78 -0
  435. package/rcf/test-suites/ts-057.json +78 -0
  436. package/rcf/test-suites/ts-070.json +62 -0
  437. package/rcf/test-suites/ts-071.json +62 -0
  438. package/rcf/test-suites/ts-072.json +62 -0
  439. package/rcf/test-suites/ts-073.json +38 -0
  440. package/rcf/test-suites/ts-074.json +30 -0
  441. package/rcf/test-suites/ts-075.json +38 -0
  442. package/rcf/test-suites/ts-076.json +70 -0
  443. package/rcf/user-stories/us-2401.json +62 -0
  444. package/rcf/user-stories/us-2501.json +58 -0
  445. package/rcf/user-stories/us-2601.json +51 -0
  446. package/rcf/user-stories/us-2701.json +55 -0
  447. package/rcf/user-stories/us-2801.json +55 -0
  448. package/rcf/user-stories/us-2901.json +45 -0
  449. package/rcf/user-stories/us-2902.json +36 -0
  450. package/rcf/user-stories/us-3001.json +45 -0
  451. package/rcf/user-stories/us-4001.json +69 -0
  452. package/rcf/user-stories/us-4101.json +69 -0
  453. package/rcf/user-stories/us-4201.json +69 -0
  454. package/rcf/user-stories/us-4301.json +78 -0
  455. package/releases/releases.yaml +21 -1
  456. package/src/blueprint/apply.js +13 -1
  457. package/src/blueprint/capabilities.js +66 -2
  458. package/src/cli/blueprint.js +15 -1
@@ -0,0 +1,69 @@
1
+ {
2
+ "createdAt": "2026-09-06T15:38:14.226Z",
3
+ "updatedAt": "2026-09-06T15:38:14.250Z",
4
+ "category": "functional",
5
+ "domain": "application",
6
+ "priority": "must",
7
+ "version": "0.1.0",
8
+ "status": "draft",
9
+ "rationale": "Per visual round 4 spec section 5.1 (2026-09-06).",
10
+ "description": "The rcf-lite shelf ships the application-empty-error-states v1.0.0 blueprint (blueprints/application-empty-error-states/) with 19 to 24 contributions (5 REQs on the state catalogue with eight named states, the recovery-action contract per state, the announcement contract with role=region and aria-live=polite, the server-error surface with no stack-trace and no resource-id leak in production, and the offline state with a write-buffer and navigator.onLine reconnection semantics; 8 USs 22101 to 22108 binding runtime-observable ACs one per named state; 3 TACs 2301 state-machine from FBS render to state render to recovery, 2302 recovery-action router across parent-surface search request-access retry, 2303 offline write-buffer with reconciliation semantics; 3 ADRs 2301 HTTP status to rendered state mapping with standardsTraceClause RFC 9110 and recommendedDefault true, 2302 production hides stack traces with recommendedDefault true and elicited true, 2303 offline strategy across write-buffer read-only-banner refuse-writes with elicited true). Declares suggestedCompanions logging and errorHandling with reasons from spec section 5.1; providesRoles absent; capabilities empty; requiresAppliedCapabilities absent (no auth required). Ships a Playwright probe pack under blueprints/application-empty-error-states/probe-packs/application-empty-error-states.pack.mjs whose eight checks (AC-22101-1 not-found, AC-22102-1 forbidden, AC-22103-1 server-error, AC-22104-1 permission-denied, AC-22105-1 offline, AC-22106-1 empty-list, AC-22107-1 no-search-results, AC-22108-1 error-boundary) each anchor one named state via TAC-2301 or an operator-configured error-shell path glob; pack URLs composed by the withUrl(runtimeUrl, path) helper per round 3 T-3 fix train. Ships a dependency-free sample-app fixture at packages/rcf-lite/test/fixtures/probe-pack-application-empty-error-states/ realising all eight states honestly with a query switch ?state=<name> and break switches ?break=stack-trace, ?break=leak-id, ?break=no-recovery and ?break=no-live-region so each check refuses on its own defect. Sixth shipped consumer of T-0s probe-pack runner extension; T-3 forms-wizard and T-4 account-settings both compose this blueprint.",
11
+ "reqId": "REQ-024",
12
+ "prdId": "PRD-001",
13
+ "title": "Application-empty-error-states v1.0.0 blueprint on the shelf with the eight-state contract, Playwright probe pack and sample-app fixture",
14
+ "shapeClassification": {
15
+ "shapes": [
16
+ "webUi",
17
+ "auth"
18
+ ],
19
+ "reason": "keyword-scan",
20
+ "classifiedAt": "2026-09-06T15:38:14.249Z",
21
+ "signals": [
22
+ {
23
+ "source": "description",
24
+ "shape": "auth",
25
+ "match": "role"
26
+ },
27
+ {
28
+ "source": "description",
29
+ "shape": "webUi",
30
+ "match": "aria-"
31
+ },
32
+ {
33
+ "source": "description",
34
+ "shape": "webUi",
35
+ "match": "nav"
36
+ },
37
+ {
38
+ "source": "description",
39
+ "shape": "webUi",
40
+ "match": "render"
41
+ },
42
+ {
43
+ "source": "description",
44
+ "shape": "webUi",
45
+ "match": "render"
46
+ },
47
+ {
48
+ "source": "description",
49
+ "shape": "webUi",
50
+ "match": "route"
51
+ },
52
+ {
53
+ "source": "description",
54
+ "shape": "webUi",
55
+ "match": "rendered"
56
+ },
57
+ {
58
+ "source": "description",
59
+ "shape": "auth",
60
+ "match": "permission"
61
+ },
62
+ {
63
+ "source": "description",
64
+ "shape": "webUi",
65
+ "match": "form"
66
+ }
67
+ ]
68
+ }
69
+ }
@@ -0,0 +1,59 @@
1
+ {
2
+ "createdAt": "2026-09-06T16:55:02.404Z",
3
+ "updatedAt": "2026-09-06T16:56:22.580Z",
4
+ "description": "The rcf-lite shelf ships the application-file-upload v1.0.0 blueprint (blueprints/application-file-upload/) with 18 to 22 contributions (5 REQs on the input contract with a labelled file input plus drop-zone plus keyboard alternative per WCAG 2.5.7, the progress contract with per-file percent plus aggregate percent plus polite live-region tick, the refusal contract with MIME-type refusal and size-limit refusal and virus-scan hit and aria-describedby error binding and focus-to-retry, the transport contract with chunked-and-resumable and multipart POST default and tus.io elicited alternative, and the completion contract with an assertive-slot announcement on success per WCAG 4.1.3 and per-file remove and retry; 7 USs 23101 to 23107 one per REQ plus two cross-cutting cases network-interruption resumption and background-tab progress; 3 TACs 2401 input surface, 2402 transport contract, 2403 progress announcer; 3 ADRs 2401 transport across multipart POST and tus.io and per-vendor SDK with recommendedDefault true on multipart and elicited true, 2402 accepted MIME set and per-file size cap with elicited true, 2403 virus-scan integration via operator-supplied verifier through a capability plus elicit with elicited true). Declares suggestedCompanions logging and errorHandling with reasons from spec section 5.2; providesRoles absent; capabilities absent; requiresAppliedCapabilities absent. Ships a Playwright probe pack under blueprints/application-file-upload/probe-packs/application-file-upload.pack.mjs with four surface-observable checks anchored to TAC-2401 or an operator-configured upload-route glob. Ships a dependency-free sample-app fixture at packages/rcf-lite/test/fixtures/probe-pack-application-file-upload/ realising both transport branches multipart POST and tus.io honestly plus break switches so each check refuses on its own defect. Seventh shipped consumer of T-0's probe-pack runner extension.",
5
+ "reqId": "REQ-025",
6
+ "prdId": "PRD-001",
7
+ "title": "Application-file-upload v1.0.0 blueprint on the shelf with the file-input plus drop-zone contract, chunked-resumable transport, refusal semantics and Playwright probe pack",
8
+ "category": "functional",
9
+ "domain": "application",
10
+ "priority": "must",
11
+ "version": "0.1.0",
12
+ "status": "draft",
13
+ "shapeClassification": {
14
+ "shapes": [
15
+ "webUi",
16
+ "httpApi"
17
+ ],
18
+ "reason": "keyword-scan",
19
+ "classifiedAt": "2026-09-06T16:55:02.427Z",
20
+ "signals": [
21
+ {
22
+ "source": "description",
23
+ "shape": "webUi",
24
+ "match": "WCAG"
25
+ },
26
+ {
27
+ "source": "description",
28
+ "shape": "webUi",
29
+ "match": "aria-"
30
+ },
31
+ {
32
+ "source": "description",
33
+ "shape": "httpApi",
34
+ "match": "POST"
35
+ },
36
+ {
37
+ "source": "description",
38
+ "shape": "webUi",
39
+ "match": "WCAG"
40
+ },
41
+ {
42
+ "source": "description",
43
+ "shape": "httpApi",
44
+ "match": "POST"
45
+ },
46
+ {
47
+ "source": "description",
48
+ "shape": "webUi",
49
+ "match": "route"
50
+ },
51
+ {
52
+ "source": "description",
53
+ "shape": "httpApi",
54
+ "match": "POST"
55
+ }
56
+ ]
57
+ },
58
+ "rationale": "Per visual round 4 spec section 5.2 (2026-09-06)."
59
+ }
@@ -0,0 +1,154 @@
1
+ {
2
+ "createdAt": "2026-09-06T19:03:15.348Z",
3
+ "updatedAt": "2026-09-06T19:07:15.107Z",
4
+ "description": "The rcf-lite shelf ships the application-forms-wizard v1.0.0 blueprint (blueprints/application-forms-wizard/) with 19 contributions (5 REQs on the task-list contract with the closed GOV.UK vocabulary Cannot start yet plus Not started plus In progress plus Completed with an ARIA progressbar wrapper, the per-step validation timing rule on-blur before first submit then on-change after first failure and a full pass on submit reusing SPA forms-engine TAC-205 per WCAG 2.2 SC 3.3.1 and 3.3.3, the error-summary contract with a top-of-page summary and skip links per failed field with aria-invalid true on the field and aria-describedby to the per-field error message and focus moved to the summary heading on submit failure, the summary-review contract with a summary-list rendering per step with Change links returning to each step and every other answer retained on save per WCAG 2.2 SC 3.3.4, the save-and-return contract with a server-side draft table or a client-side local buffer with a per-write ISO-8601 sync tick with the pack refusing to ship if neither is wired per WCAG 2.2 SC 3.3.7; 8 USs 24101 to 24108 one per REQ plus three cross-cutting cases linear-vs-free navigation, in-progress list and no-in-progress empty state delegated to application-empty-error-states; 3 TACs 2501 task-list shell and 2502 error-summary contract and 2503 draft store; 3 ADRs 2501 navigation posture linear default with elicited free branch, 2502 save-and-return transport across server-draft-table and client-local-buffer elicited with NO recommendedDefault because the abandoned-draft loss class does not ship silently, 2503 step indicator across task-list ARIA progressbar and breadcrumb with recommendedDefault true on task-list). Declares suggestedCompanions logging and errorHandling with reasons from spec section 5.3; providesRoles absent; capabilities absent; requiresAppliedCapabilities absent. Ships a Playwright probe pack under blueprints/application-forms-wizard/probe-packs/application-forms-wizard.pack.mjs with four surface-observable checks anchored to TAC-2501 or an operator-configured wizard-route glob. Ships a dependency-free sample-app fixture at packages/rcf-lite/test/fixtures/probe-pack-application-forms-wizard/ realising the four wizard surfaces honestly plus both save-and-return transports server default and local elicited plus four break switches so each check refuses on its own defect. Eighth shipped consumer of T-0 probe-pack runner extension. Consumes application-empty-error-states for the no-in-progress empty state on the /in-progress list surface.",
5
+ "reqId": "REQ-026",
6
+ "prdId": "PRD-001",
7
+ "title": "Application-forms-wizard v1.0.0 blueprint on the shelf with the task-list contract, error-summary contract, summary-review pattern, save-and-return draft store and Playwright probe pack",
8
+ "category": "functional",
9
+ "domain": "application",
10
+ "priority": "must",
11
+ "version": "0.1.0",
12
+ "status": "draft",
13
+ "shapeClassification": {
14
+ "shapes": [
15
+ "webUi",
16
+ "httpApi",
17
+ "persistence"
18
+ ],
19
+ "reason": "keyword-scan",
20
+ "classifiedAt": "2026-09-06T19:03:15.372Z",
21
+ "signals": [
22
+ {
23
+ "source": "title",
24
+ "shape": "webUi",
25
+ "match": "form"
26
+ },
27
+ {
28
+ "source": "title",
29
+ "shape": "persistence",
30
+ "match": "store"
31
+ },
32
+ {
33
+ "source": "description",
34
+ "shape": "webUi",
35
+ "match": "form"
36
+ },
37
+ {
38
+ "source": "description",
39
+ "shape": "webUi",
40
+ "match": "form"
41
+ },
42
+ {
43
+ "source": "description",
44
+ "shape": "webUi",
45
+ "match": "form"
46
+ },
47
+ {
48
+ "source": "description",
49
+ "shape": "webUi",
50
+ "match": "WCAG"
51
+ },
52
+ {
53
+ "source": "description",
54
+ "shape": "webUi",
55
+ "match": "page"
56
+ },
57
+ {
58
+ "source": "description",
59
+ "shape": "webUi",
60
+ "match": "aria-"
61
+ },
62
+ {
63
+ "source": "description",
64
+ "shape": "webUi",
65
+ "match": "aria-"
66
+ },
67
+ {
68
+ "source": "description",
69
+ "shape": "webUi",
70
+ "match": "rendering"
71
+ },
72
+ {
73
+ "source": "description",
74
+ "shape": "webUi",
75
+ "match": "WCAG"
76
+ },
77
+ {
78
+ "source": "description",
79
+ "shape": "webUi",
80
+ "match": "table"
81
+ },
82
+ {
83
+ "source": "description",
84
+ "shape": "persistence",
85
+ "match": "table"
86
+ },
87
+ {
88
+ "source": "description",
89
+ "shape": "webUi",
90
+ "match": "WCAG"
91
+ },
92
+ {
93
+ "source": "description",
94
+ "shape": "webUi",
95
+ "match": "nav"
96
+ },
97
+ {
98
+ "source": "description",
99
+ "shape": "webUi",
100
+ "match": "navigation"
101
+ },
102
+ {
103
+ "source": "description",
104
+ "shape": "persistence",
105
+ "match": "store"
106
+ },
107
+ {
108
+ "source": "description",
109
+ "shape": "webUi",
110
+ "match": "nav"
111
+ },
112
+ {
113
+ "source": "description",
114
+ "shape": "webUi",
115
+ "match": "navigation"
116
+ },
117
+ {
118
+ "source": "description",
119
+ "shape": "httpApi",
120
+ "match": "post"
121
+ },
122
+ {
123
+ "source": "description",
124
+ "shape": "webUi",
125
+ "match": "table"
126
+ },
127
+ {
128
+ "source": "description",
129
+ "shape": "persistence",
130
+ "match": "table"
131
+ },
132
+ {
133
+ "source": "description",
134
+ "shape": "webUi",
135
+ "match": "form"
136
+ },
137
+ {
138
+ "source": "description",
139
+ "shape": "webUi",
140
+ "match": "form"
141
+ },
142
+ {
143
+ "source": "description",
144
+ "shape": "webUi",
145
+ "match": "route"
146
+ },
147
+ {
148
+ "source": "description",
149
+ "shape": "webUi",
150
+ "match": "form"
151
+ }
152
+ ]
153
+ }
154
+ }
@@ -0,0 +1,33 @@
1
+ {
2
+ "createdAt": "2026-09-06T21:11:33.252Z",
3
+ "updatedAt": "2026-09-06T21:11:33.281Z",
4
+ "description": "T-4 shelf-blueprint track: application-account-settings v1.0.0 with 24 contributions 6 REQs 10 USs 25101 to 25110 4 TACs 2601 to 2604 4 ADRs 2601 to 2604; requiresAppliedCapabilities principalDirectory with allow-no-auth-yet override; 8 elicits; probe pack with 5 capability-gated checks anchored to AC-25101-1 AC-25102-1 AC-25105-1 AC-25106-1 AC-25108-1; sample-app fixture with 5 conditional surfaces and 4 break switches; rides with clerk 1.3.0 keycloak 1.2.0 oauth2 1.2.0 magic-link 1.2.0 doc-only observability-logging 1.2.0; mechanism minor for Q3 refusal and refusal template. Ninth shipped consumer of T-0 probe-pack runner.",
5
+ "reqId": "REQ-027",
6
+ "prdId": "PRD-001",
7
+ "title": "application-account-settings v1.0.0 blueprint on the shelf with 5-check pack, 4 auth-blueprint minor bumps and observability-logging minor",
8
+ "category": "functional",
9
+ "domain": "application",
10
+ "priority": "must",
11
+ "version": "0.1.0",
12
+ "status": "draft",
13
+ "shapeClassification": {
14
+ "shapes": [
15
+ "webUi",
16
+ "auth"
17
+ ],
18
+ "reason": "keyword-scan",
19
+ "classifiedAt": "2026-09-06T21:11:33.280Z",
20
+ "signals": [
21
+ {
22
+ "source": "description",
23
+ "shape": "auth",
24
+ "match": "magic-link"
25
+ },
26
+ {
27
+ "source": "description",
28
+ "shape": "webUi",
29
+ "match": "template"
30
+ }
31
+ ]
32
+ }
33
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "createdAt": "2026-09-06T23:02:59.779Z",
3
+ "updatedAt": "2026-09-06T23:21:56.789Z",
4
+ "description": "T-5 shelf-blueprint track of the ratified visual round 4 spec (2026-09-06 section 5.5): the application-onboarding-tour v1.0.0 blueprint on the shelf with 17 contributions (4 REQs step-manifest + tooltip-as-dialog + checklist-slot + completion-state; 7 USs 26101 to 26107; 3 TACs 2701 step-runner / 2702 checklist-slot / 2703 completion-store; 3 ADRs 2701 dismissal-policy / 2702 completion-store-shape / 2703 checklist-anchor). No requiresAppliedCapabilities (composes on SPA, dashboard, notifications-in-app, account-settings, any auth without hard dependency; documented fallback per Q4 spa-local-storage). Ships a Playwright probe pack with four surface-observable checks anchored to AC-26101-1 AC-26102-1 AC-26103-1 AC-26104-1, and a dependency-free sample-app fixture with the three-to-five step tour honestly realised plus four break switches (no-role, focus-escape, no-collapse, no-persist). Composes on application-dashboard for the dashboard-top anchor slot (with settings-page fallback), application-notifications-in-app for the checklist-completion announcement, application-account-settings for the restart-tour control home, application-spa for routing and iconography. suggestedCompanions logging and errorHandling; providesRoles absent; capabilities absent. Tenth shipped consumer of the T-0 probe-pack runner extension.",
5
+ "reqId": "REQ-028",
6
+ "prdId": "PRD-001",
7
+ "title": "application-onboarding-tour v1.0.0 blueprint on the shelf with 4-check pack and dependency-free sample-app fixture",
8
+ "category": "functional",
9
+ "domain": "application",
10
+ "priority": "must",
11
+ "version": "0.1.0",
12
+ "status": "draft"
13
+ }
@@ -0,0 +1,57 @@
1
+ {
2
+ "createdAt": "2026-09-07T09:09:31.207Z",
3
+ "updatedAt": "2026-09-07T09:09:31.236Z",
4
+ "description": "T-0 track of the ratified Cloudflare round 6 spec (2026-09-06 section 5.0). The rcf-lite shelf bumps the deploy-cloudflare-workers blueprint from v1.1.0 to v1.2.0 with an additive-minor delta that blesses the Workers-with-static-assets shape as the SPA-on-Workers deploy shape. The blueprint gains two new REQ contributions (deploy-cloudflare-workers-REQ-013 for the Workers-with-static-assets shape and deploy-cloudflare-workers-REQ-014 for the SPA fallback discipline via run_worker_first), three new US contributions in the existing 12xx band (deploy-cloudflare-workers-US-12113 SPA-on-Workers deploy; deploy-cloudflare-workers-US-12114 assets-directory elicitation; deploy-cloudflare-workers-US-12115 migrate-from-Pages guidance), one new ADR contribution (ADR-1306-deploy-cloudflare-workers-spa-shape carrying the verbatim Cloudflare Pages landing-page recommendation, standardsTraceClause Cloudflare Pages landing-page recommendation 2026-09-06, recommendedDefault true), one new source-tree scan probe module (assets-manifest-scan.mjs, accountBound false, anchorAcId matching the assetsBlockEmitted AC) that parses the applied fixture wrangler.toml and asserts the [assets] block presence, the run_worker_first presence and absence of any Pages-only pages_build_output_dir field, and two new elicited parameters on blueprint.json elicits[] (assets-directory kind string default empty for the bare-Worker shape; run-worker-first kind boolean default false). The shipped v1.1.0 contribution set (REQs 001 through 012, USs 12101 through 12112, TACs 1301 through 1306, ADRs 1301 through 1305, deploymentTarget global topic, suggestedCompanions logging and errorHandling) carries through unchanged. No capability minted, no new global topic, no runtime dependency added. Ships packages/rcf-lite/test/fixtures/cf-platform/ as the shared sample-app fixture that T-1 through T-3 and T-5 extend. HQ sequential chain-id block: REQ-029 / US-2901 / US-2902 / TS-073 / TS-074 / FBS-063 / CN-209 minted via --id after HQ round-4 T-5 landed at REQ-028 and Dex round-5 T-3 landed at REQ-042 per HQ mid-flight ruling on repo-chain id blocks per train.",
5
+ "category": "functional",
6
+ "domain": "deploy",
7
+ "priority": "must",
8
+ "reqId": "REQ-029",
9
+ "prdId": "PRD-001",
10
+ "title": "The rcf-lite shelf bumps the deploy-cloudflare-workers blueprint from v1.1.0 to v1.2.0 with an additive-minor delta that blesses the Workers-with-static-assets shape and ships the cf-platform shared sample-app fixture",
11
+ "version": "0.1.0",
12
+ "status": "draft",
13
+ "shapeClassification": {
14
+ "shapes": [
15
+ "webUi"
16
+ ],
17
+ "reason": "keyword-scan",
18
+ "classifiedAt": "2026-09-07T09:09:31.235Z",
19
+ "signals": [
20
+ {
21
+ "source": "description",
22
+ "shape": "webUi",
23
+ "match": "Page"
24
+ },
25
+ {
26
+ "source": "description",
27
+ "shape": "webUi",
28
+ "match": "Page"
29
+ },
30
+ {
31
+ "source": "description",
32
+ "shape": "webUi",
33
+ "match": "page"
34
+ },
35
+ {
36
+ "source": "description",
37
+ "shape": "webUi",
38
+ "match": "Page"
39
+ },
40
+ {
41
+ "source": "description",
42
+ "shape": "webUi",
43
+ "match": "page"
44
+ },
45
+ {
46
+ "source": "description",
47
+ "shape": "webUi",
48
+ "match": "Page"
49
+ },
50
+ {
51
+ "source": "description",
52
+ "shape": "webUi",
53
+ "match": "page"
54
+ }
55
+ ]
56
+ }
57
+ }
@@ -0,0 +1,67 @@
1
+ {
2
+ "createdAt": "2026-09-07T09:09:31.409Z",
3
+ "updatedAt": "2026-09-07T09:09:31.438Z",
4
+ "description": "T-0 SPA fallback discipline half of the Cloudflare round 6 T-0 delta (2026-09-06 section 5.0). The blueprint gains one new REQ contribution (deploy-cloudflare-workers-REQ-014 SPA fallback discipline via elicited run_worker_first: when true, the Worker script runs before asset lookup for arbitrary routing; when false or unanswered, static asset lookup runs first and the Worker handles only unmatched paths), one new US contribution (deploy-cloudflare-workers-US-12115 migrate-from-Pages guidance in the guide section) that links the Cloudflare migrate-from-Pages guide from the ADR-1306 verbatim landing-page quote, one new elicit (run-worker-first kind boolean default false; the spec's intended when-predicate {elicitedNonEmpty: [assets-directory]} is NOT shipped this round because the loader's supported when block only accepts requiresCapability arrays per src/blueprint/loader.js validateElicits, and the elicit fires unconditionally with the guide teaching that a non-empty assets-directory is what makes run_worker_first meaningful; the loader extension is captured under CONCERNS on the PR, not blocking T-0). The T-0 probe module assets-manifest-scan.mjs anchors AC-2902-1 (the spaFallbackShape canonical AC) via a Node-only source-tree scan of the applied fixture wrangler.toml. The one new ADR ADR-1306-deploy-cloudflare-workers-spa-shape carries the verbatim Cloudflare Pages landing-page quote (Workers supports most Pages use cases and offers a broader feature set. It is Cloudflare's primary platform for building applications. Start new projects with Workers.), standardsTraceClause Cloudflare Pages landing-page recommendation 2026-09-06, recommendedDefault true. HQ sequential chain-id block: REQ-030 / US-3001 / TS-075 minted via --id.",
5
+ "category": "functional",
6
+ "domain": "deploy",
7
+ "priority": "must",
8
+ "reqId": "REQ-030",
9
+ "prdId": "PRD-001",
10
+ "title": "T-0 SPA fallback discipline via run_worker_first elicit and migrate-from-Pages guidance on deploy-cloudflare-workers v1.2.0",
11
+ "version": "0.1.0",
12
+ "status": "draft",
13
+ "shapeClassification": {
14
+ "shapes": [
15
+ "webUi"
16
+ ],
17
+ "reason": "keyword-scan",
18
+ "classifiedAt": "2026-09-07T09:09:31.437Z",
19
+ "signals": [
20
+ {
21
+ "source": "title",
22
+ "shape": "webUi",
23
+ "match": "Page"
24
+ },
25
+ {
26
+ "source": "description",
27
+ "shape": "webUi",
28
+ "match": "Page"
29
+ },
30
+ {
31
+ "source": "description",
32
+ "shape": "webUi",
33
+ "match": "Page"
34
+ },
35
+ {
36
+ "source": "description",
37
+ "shape": "webUi",
38
+ "match": "page"
39
+ },
40
+ {
41
+ "source": "description",
42
+ "shape": "webUi",
43
+ "match": "Page"
44
+ },
45
+ {
46
+ "source": "description",
47
+ "shape": "webUi",
48
+ "match": "page"
49
+ },
50
+ {
51
+ "source": "description",
52
+ "shape": "webUi",
53
+ "match": "Page"
54
+ },
55
+ {
56
+ "source": "description",
57
+ "shape": "webUi",
58
+ "match": "Page"
59
+ },
60
+ {
61
+ "source": "description",
62
+ "shape": "webUi",
63
+ "match": "page"
64
+ }
65
+ ]
66
+ }
67
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "createdAt": "2026-09-06T16:59:00.000Z",
3
+ "updatedAt": "2026-09-06T16:59:00.000Z",
4
+ "reqId": "REQ-040",
5
+ "prdId": "PRD-001",
6
+ "title": "Persistence-data-postgres v1.0.0 blueprint on the shelf with six Node-only probes proven against a postgres:17-alpine container",
7
+ "description": "The rcf-lite shelf ships the persistence-data-postgres v1.0.0 blueprint (blueprints/persistence-data-postgres/) with 26 contributions per the ratified infra round 5 spec section 5.1: 7 REQs (facade sole-reader over the pg client; numbered forward-only .sql migrations with one file one transaction; prepared-statement discipline via static string literals with $N parameters; transactional atomicity via a helper wrapping BEGIN and COMMIT; two-path recovery via scheduled pg_dump plus vendor point-in-time recovery; connection-pool posture per deploy target; optional advisory-lock helper elicited default off per Baz Q1 default), 10 USs 27101-27110 binding runtime-observable ACs, 4 TACs 2801-2804 (facade, migration runner, transaction helper, recovery runner), 5 ADRs 2801-2805 (driver choice pg with elicited alternatives, numbered forward-only migrations, runner mode atBoot or ciStep, recovery pg_dump plus PITR both required, pool posture per deploy target). The blueprint declares suggestedCompanions logging and errorHandling with spec section 5.1 reasons, providesRoles absent, capabilities [relationalStore], requiresAppliedCapabilities absent. Contributes ADR-2801 and ADR-2802 as scope:global on the persistenceStore and migrationDiscipline topics reused from persistence-data-sqlite and persistence-data-d1 so applying persistence-data-postgres alongside either of them surfaces a DELIBERATE conflict per the round-2 pattern. Ships six Node-only probes under blueprints/persistence-data-postgres/contributions/probes/ (facade-round-trip, migration-apply, prepared-statement-scan, transaction-atomicity, recovery-restore-round-trip, pool-posture-smoke) each exporting the spec section 3.2 verdict envelope with an anchorAcId matching a contributed AC id, and matching run-<probe-name>.mjs shims that drive the probe against the applied fixture and write the per-blueprint probe report at .rcf/reports/blueprints/persistence-data-postgres/<probe-name>.json per spec section 3.4. None of the six probes carry accountBound:true; Postgres is local-first per Baz decision 8. Ships a dependency-free sample-app fixture at packages/rcf-lite/test/fixtures/infra-postgres/. Extends packages/rcf-lite/docs/blueprint-authoring.md section 6a capability-declaration table with one row for relationalStore per spec section 5.6. Appends one row for persistence-data-postgres at US band 27101-27899 / ADR-TAC suffix block 28xx to the shelf-wide id-band registry table under docs/topics.md on every shipped blueprint. Reserves the round-6 Hyperdrive v1.1.0 adapter slot at ADR-2801 by keeping the driver reference opaque at the facade boundary per spec section 5.7. Re-minted with HQ's reserved round-5 chain-id block (REQ-040 / US-4001 / TS-070 / FBS-060 / CN-200..202) after HQ's round-4 T-1 landed first at origin/main 784d12f and the coordinator ruling changed to reserved-block minting via --id (no more max+1 racing).",
8
+ "category": "functional",
9
+ "domain": "application",
10
+ "priority": "must",
11
+ "version": "0.1.0",
12
+ "status": "draft"
13
+ }
@@ -0,0 +1,125 @@
1
+ {
2
+ "createdAt": "2026-09-06T17:49:13.077Z",
3
+ "updatedAt": "2026-09-06T17:49:13.110Z",
4
+ "description": "The rcf-lite shelf ships the object-storage-s3 v1.0.0 blueprint (blueprints/object-storage-s3/) with 21 contributions per the ratified infra round 5 spec section 5.2: 6 REQs (facade sole-reader over the S3 client; put / get / delete / list on typed keys; presigned GET URL with bounded TTL; multipart-upload above elicited threshold; four lifecycle events with metadata-only fields; credential-pair discipline via security-secrets-management), 8 USs 28101-28108 binding runtime-observable ACs, 3 TACs (2901 facade, 2902 multipart uploader, 2903 event sink), 4 ADRs (2901 adapter elicited between @aws-sdk/client-s3 and aws4fetch, 2902 presigned TTL default 15 minutes floor 1 minute, 2903 multipart threshold default 8 MiB, 2904 objectStorageContract scope global). The blueprint declares suggestedCompanions logging and errorHandling with spec section 5.2 reasons, providesRoles absent, capabilities [objectStorage], requiresAppliedCapabilities absent. Contributes ADR-2904 as scope:global on new topic objectStorageContract so future non-S3-shape siblings (object-storage-native-gcs, object-storage-native-azure) conflict here by design. Ships six Node-only probes under blueprints/object-storage-s3/contributions/probes/ (facade-round-trip, put-get-round-trip, presigned-url, multipart-upload, event-secrecy, r2-real-account-smoke) each exporting the spec section 3.2 verdict envelope with an anchorAcId matching a contributed AC id, and matching run-<probe-name>.mjs shims writing per-blueprint reports at .rcf/reports/blueprints/object-storage-s3/<probe-name>.json per spec section 3.4. Five probes are local-first (accountBound false); r2-real-account-smoke carries accountBound:true and records the accountBoundSkipped shape per spec section 3.5 without CI_HAS_CLOUDFLARE_ACCOUNT. Ships the T-2 side of the shared sample-app fixture at packages/rcf-lite/test/fixtures/infra-s3-and-queue/ (T-3 shares the fixture and adds its own wrangler-dev src branch) with MinIO under docker compose, @aws-sdk/client-s3 as the fixture's own runtime dep, an S3 facade over MinIO, a security-secrets-management shim realising the secretRef opaque-string contract from a project-local .rcf/secrets/dev.env file, and a README naming docker and podman incantations plus four wired induced-failure switches. Extends packages/rcf-lite/docs/blueprint-authoring.md section 6a capability-declaration table with one row for objectStorage per spec section 5.6. Appends one row for object-storage-s3 at US band 28101-28899 / ADR-TAC suffix block 29xx to the shelf-wide id-band registry table under docs/topics.md on every shipped blueprint. Refuses composition when security-secrets-management is not applied with exit 3 and stable message id object-storage-s3-no-secrets on stderr; --allow-no-secrets-yet override records a note on source.notes for later reconciliation. Minted with HQ's reserved round-5 chain-id block via --id (REQ-041 / US-4101 / TS-071 / FBS-061 / CN-203..205) after T-1 minted at 040 / 4001 / 070 / 060 / 200..202; the block reservation avoids next-id racing with HQ's train while T-1 sits open.",
5
+ "category": "functional",
6
+ "domain": "application",
7
+ "priority": "must",
8
+ "version": "0.1.0",
9
+ "status": "draft",
10
+ "reqId": "REQ-041",
11
+ "prdId": "PRD-001",
12
+ "title": "Object-storage-s3 v1.0.0 blueprint on the shelf",
13
+ "shapeClassification": {
14
+ "shapes": [
15
+ "webUi",
16
+ "httpApi",
17
+ "auth",
18
+ "persistence"
19
+ ],
20
+ "reason": "keyword-scan",
21
+ "classifiedAt": "2026-09-06T17:49:13.108Z",
22
+ "signals": [
23
+ {
24
+ "source": "title",
25
+ "shape": "persistence",
26
+ "match": "storage"
27
+ },
28
+ {
29
+ "source": "description",
30
+ "shape": "persistence",
31
+ "match": "storage"
32
+ },
33
+ {
34
+ "source": "description",
35
+ "shape": "persistence",
36
+ "match": "storage"
37
+ },
38
+ {
39
+ "source": "description",
40
+ "shape": "httpApi",
41
+ "match": "put"
42
+ },
43
+ {
44
+ "source": "description",
45
+ "shape": "httpApi",
46
+ "match": "get"
47
+ },
48
+ {
49
+ "source": "description",
50
+ "shape": "httpApi",
51
+ "match": "delete"
52
+ },
53
+ {
54
+ "source": "description",
55
+ "shape": "httpApi",
56
+ "match": "GET"
57
+ },
58
+ {
59
+ "source": "description",
60
+ "shape": "auth",
61
+ "match": "credential"
62
+ },
63
+ {
64
+ "source": "description",
65
+ "shape": "persistence",
66
+ "match": "storage"
67
+ },
68
+ {
69
+ "source": "description",
70
+ "shape": "persistence",
71
+ "match": "storage"
72
+ },
73
+ {
74
+ "source": "description",
75
+ "shape": "persistence",
76
+ "match": "storage"
77
+ },
78
+ {
79
+ "source": "description",
80
+ "shape": "httpApi",
81
+ "match": "put"
82
+ },
83
+ {
84
+ "source": "description",
85
+ "shape": "httpApi",
86
+ "match": "get"
87
+ },
88
+ {
89
+ "source": "description",
90
+ "shape": "persistence",
91
+ "match": "storage"
92
+ },
93
+ {
94
+ "source": "description",
95
+ "shape": "webUi",
96
+ "match": "table"
97
+ },
98
+ {
99
+ "source": "description",
100
+ "shape": "persistence",
101
+ "match": "table"
102
+ },
103
+ {
104
+ "source": "description",
105
+ "shape": "persistence",
106
+ "match": "storage"
107
+ },
108
+ {
109
+ "source": "description",
110
+ "shape": "webUi",
111
+ "match": "table"
112
+ },
113
+ {
114
+ "source": "description",
115
+ "shape": "persistence",
116
+ "match": "table"
117
+ },
118
+ {
119
+ "source": "description",
120
+ "shape": "persistence",
121
+ "match": "storage"
122
+ }
123
+ ]
124
+ }
125
+ }