rcf-lite 0.20.0 → 0.22.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 (532) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/blueprints/application-account-settings/CHANGELOG.md +12 -0
  3. package/blueprints/application-account-settings/README.md +114 -0
  4. package/blueprints/application-account-settings/blueprint.json +234 -0
  5. package/blueprints/application-account-settings/contributions/adrs/adr-2601-application-account-settings-capability-vocabulary.json +20 -0
  6. package/blueprints/application-account-settings/contributions/adrs/adr-2602-application-account-settings-security-surface-shape.json +20 -0
  7. package/blueprints/application-account-settings/contributions/adrs/adr-2603-application-account-settings-theme-persistence.json +20 -0
  8. package/blueprints/application-account-settings/contributions/adrs/adr-2604-application-account-settings-reauth-window.json +20 -0
  9. package/blueprints/application-account-settings/contributions/requirements/application-account-settings-req-001.json +18 -0
  10. package/blueprints/application-account-settings/contributions/requirements/application-account-settings-req-002.json +18 -0
  11. package/blueprints/application-account-settings/contributions/requirements/application-account-settings-req-003.json +18 -0
  12. package/blueprints/application-account-settings/contributions/requirements/application-account-settings-req-004.json +18 -0
  13. package/blueprints/application-account-settings/contributions/requirements/application-account-settings-req-005.json +18 -0
  14. package/blueprints/application-account-settings/contributions/requirements/application-account-settings-req-006.json +18 -0
  15. package/blueprints/application-account-settings/contributions/tacs/tac-2601-application-account-settings-shell.json +41 -0
  16. package/blueprints/application-account-settings/contributions/tacs/tac-2602-application-account-settings-capability-discovery.json +28 -0
  17. package/blueprints/application-account-settings/contributions/tacs/tac-2603-application-account-settings-hosted-ui-bridge.json +35 -0
  18. package/blueprints/application-account-settings/contributions/tacs/tac-2604-application-account-settings-session-store.json +40 -0
  19. package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25101.json +34 -0
  20. package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25102.json +27 -0
  21. package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25103.json +27 -0
  22. package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25104.json +27 -0
  23. package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25105.json +33 -0
  24. package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25106.json +27 -0
  25. package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25107.json +27 -0
  26. package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25108.json +27 -0
  27. package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25109.json +33 -0
  28. package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25110.json +27 -0
  29. package/blueprints/application-account-settings/docs/topics.md +48 -0
  30. package/blueprints/application-account-settings/guide/application-account-settings.md +30 -0
  31. package/blueprints/application-account-settings/probe-packs/application-account-settings.pack.mjs +246 -0
  32. package/blueprints/application-admin-console/CHANGELOG.md +11 -0
  33. package/blueprints/application-admin-console/README.md +98 -0
  34. package/blueprints/application-admin-console/blueprint.json +226 -0
  35. package/blueprints/application-admin-console/contributions/adrs/adr-2201-application-admin-console-capability-vocabulary.json +25 -0
  36. package/blueprints/application-admin-console/contributions/adrs/adr-2202-application-admin-console-baseline-roles.json +25 -0
  37. package/blueprints/application-admin-console/contributions/adrs/adr-2203-application-admin-console-invite-transport.json +20 -0
  38. package/blueprints/application-admin-console/contributions/adrs/adr-2204-application-admin-console-audit-retention.json +20 -0
  39. package/blueprints/application-admin-console/contributions/requirements/application-admin-console-req-001.json +18 -0
  40. package/blueprints/application-admin-console/contributions/requirements/application-admin-console-req-002.json +18 -0
  41. package/blueprints/application-admin-console/contributions/requirements/application-admin-console-req-003.json +18 -0
  42. package/blueprints/application-admin-console/contributions/requirements/application-admin-console-req-004.json +18 -0
  43. package/blueprints/application-admin-console/contributions/requirements/application-admin-console-req-005.json +18 -0
  44. package/blueprints/application-admin-console/contributions/requirements/application-admin-console-req-006.json +18 -0
  45. package/blueprints/application-admin-console/contributions/tacs/tac-2201-application-admin-console-shell.json +40 -0
  46. package/blueprints/application-admin-console/contributions/tacs/tac-2202-application-admin-console-capability-discovery.json +44 -0
  47. package/blueprints/application-admin-console/contributions/tacs/tac-2203-application-admin-console-permission-matrix.json +34 -0
  48. package/blueprints/application-admin-console/contributions/tacs/tac-2204-application-admin-console-audit-view.json +40 -0
  49. package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21101.json +34 -0
  50. package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21102.json +34 -0
  51. package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21103.json +34 -0
  52. package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21104.json +28 -0
  53. package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21105.json +34 -0
  54. package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21106.json +27 -0
  55. package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21107.json +27 -0
  56. package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21108.json +27 -0
  57. package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21109.json +33 -0
  58. package/blueprints/application-admin-console/docs/topics.md +42 -0
  59. package/blueprints/application-admin-console/guide/application-admin-console.md +29 -0
  60. package/blueprints/application-admin-console/probe-packs/application-admin-console.pack.mjs +182 -0
  61. package/blueprints/application-api-rest/docs/topics.md +13 -1
  62. package/blueprints/application-charts/CHANGELOG.md +12 -0
  63. package/blueprints/application-charts/README.md +73 -0
  64. package/blueprints/application-charts/blueprint.json +26 -0
  65. package/blueprints/application-charts/contributions/adrs/adr-1901-application-charts-engine-choice.json +25 -0
  66. package/blueprints/application-charts/contributions/adrs/adr-1902-application-charts-accessible-palette.json +25 -0
  67. package/blueprints/application-charts/contributions/adrs/adr-1903-application-charts-motion.json +25 -0
  68. package/blueprints/application-charts/contributions/requirements/application-charts-req-001.json +15 -0
  69. package/blueprints/application-charts/contributions/requirements/application-charts-req-002.json +15 -0
  70. package/blueprints/application-charts/contributions/requirements/application-charts-req-003.json +15 -0
  71. package/blueprints/application-charts/contributions/requirements/application-charts-req-004.json +15 -0
  72. package/blueprints/application-charts/contributions/tacs/tac-1901-application-charts-render-shell.json +42 -0
  73. package/blueprints/application-charts/contributions/tacs/tac-1902-application-charts-keyboard-traversal.json +40 -0
  74. package/blueprints/application-charts/contributions/user-stories/application-charts-us-18101.json +35 -0
  75. package/blueprints/application-charts/contributions/user-stories/application-charts-us-18102.json +35 -0
  76. package/blueprints/application-charts/contributions/user-stories/application-charts-us-18103.json +35 -0
  77. package/blueprints/application-charts/contributions/user-stories/application-charts-us-18104.json +35 -0
  78. package/blueprints/application-charts/contributions/user-stories/application-charts-us-18105.json +35 -0
  79. package/blueprints/application-charts/contributions/user-stories/application-charts-us-18106.json +35 -0
  80. package/blueprints/application-charts/docs/topics.md +44 -0
  81. package/blueprints/application-charts/guide/application-charts.md +44 -0
  82. package/blueprints/application-charts/probe-packs/application-charts.pack.mjs +191 -0
  83. package/blueprints/application-dashboard/CHANGELOG.md +10 -0
  84. package/blueprints/application-dashboard/README.md +102 -0
  85. package/blueprints/application-dashboard/assets/guidance/dashboard-design.md +124 -0
  86. package/blueprints/application-dashboard/blueprint.json +29 -0
  87. package/blueprints/application-dashboard/contributions/adrs/adr-2001-application-dashboard-primary-kpi-enum.json +25 -0
  88. package/blueprints/application-dashboard/contributions/adrs/adr-2002-application-dashboard-timeframe-presets.json +25 -0
  89. package/blueprints/application-dashboard/contributions/adrs/adr-2003-application-dashboard-export-formats.json +25 -0
  90. package/blueprints/application-dashboard/contributions/requirements/application-dashboard-req-001.json +15 -0
  91. package/blueprints/application-dashboard/contributions/requirements/application-dashboard-req-002.json +15 -0
  92. package/blueprints/application-dashboard/contributions/requirements/application-dashboard-req-003.json +15 -0
  93. package/blueprints/application-dashboard/contributions/requirements/application-dashboard-req-004.json +15 -0
  94. package/blueprints/application-dashboard/contributions/requirements/application-dashboard-req-005.json +15 -0
  95. package/blueprints/application-dashboard/contributions/tacs/tac-2001-application-dashboard-tile-grid.json +47 -0
  96. package/blueprints/application-dashboard/contributions/tacs/tac-2002-application-dashboard-filter-chrome.json +41 -0
  97. package/blueprints/application-dashboard/contributions/tacs/tac-2003-application-dashboard-export-handle.json +35 -0
  98. package/blueprints/application-dashboard/contributions/user-stories/application-dashboard-us-19101.json +35 -0
  99. package/blueprints/application-dashboard/contributions/user-stories/application-dashboard-us-19102.json +35 -0
  100. package/blueprints/application-dashboard/contributions/user-stories/application-dashboard-us-19103.json +35 -0
  101. package/blueprints/application-dashboard/contributions/user-stories/application-dashboard-us-19104.json +35 -0
  102. package/blueprints/application-dashboard/contributions/user-stories/application-dashboard-us-19105.json +35 -0
  103. package/blueprints/application-dashboard/contributions/user-stories/application-dashboard-us-19106.json +35 -0
  104. package/blueprints/application-dashboard/contributions/user-stories/application-dashboard-us-19107.json +35 -0
  105. package/blueprints/application-dashboard/docs/topics.md +50 -0
  106. package/blueprints/application-dashboard/guide/application-dashboard.md +48 -0
  107. package/blueprints/application-dashboard/probe-packs/application-dashboard.pack.mjs +231 -0
  108. package/blueprints/application-datatable/CHANGELOG.md +8 -0
  109. package/blueprints/application-datatable/README.md +43 -0
  110. package/blueprints/application-datatable/blueprint.json +33 -0
  111. package/blueprints/application-datatable/contributions/adrs/adr-1801-application-datatable-pattern-choice.json +25 -0
  112. package/blueprints/application-datatable/contributions/adrs/adr-1802-application-datatable-url-state.json +20 -0
  113. package/blueprints/application-datatable/contributions/adrs/adr-1803-application-datatable-page-size.json +20 -0
  114. package/blueprints/application-datatable/contributions/adrs/adr-1804-application-datatable-selection-persistence.json +20 -0
  115. package/blueprints/application-datatable/contributions/requirements/application-datatable-req-001.json +15 -0
  116. package/blueprints/application-datatable/contributions/requirements/application-datatable-req-002.json +15 -0
  117. package/blueprints/application-datatable/contributions/requirements/application-datatable-req-003.json +15 -0
  118. package/blueprints/application-datatable/contributions/requirements/application-datatable-req-004.json +15 -0
  119. package/blueprints/application-datatable/contributions/requirements/application-datatable-req-005.json +15 -0
  120. package/blueprints/application-datatable/contributions/requirements/application-datatable-req-006.json +15 -0
  121. package/blueprints/application-datatable/contributions/tacs/tac-1801-application-datatable-shell.json +50 -0
  122. package/blueprints/application-datatable/contributions/tacs/tac-1802-application-datatable-query-adapter.json +39 -0
  123. package/blueprints/application-datatable/contributions/tacs/tac-1803-application-datatable-selection-model.json +28 -0
  124. package/blueprints/application-datatable/contributions/user-stories/application-datatable-us-17101.json +44 -0
  125. package/blueprints/application-datatable/contributions/user-stories/application-datatable-us-17102.json +44 -0
  126. package/blueprints/application-datatable/contributions/user-stories/application-datatable-us-17103.json +44 -0
  127. package/blueprints/application-datatable/contributions/user-stories/application-datatable-us-17104.json +44 -0
  128. package/blueprints/application-datatable/contributions/user-stories/application-datatable-us-17105.json +44 -0
  129. package/blueprints/application-datatable/contributions/user-stories/application-datatable-us-17106.json +44 -0
  130. package/blueprints/application-datatable/contributions/user-stories/application-datatable-us-17107.json +44 -0
  131. package/blueprints/application-datatable/contributions/user-stories/application-datatable-us-17108.json +44 -0
  132. package/blueprints/application-datatable/contributions/user-stories/application-datatable-us-17109.json +44 -0
  133. package/blueprints/application-datatable/docs/topics.md +42 -0
  134. package/blueprints/application-datatable/guide/application-datatable.md +38 -0
  135. package/blueprints/application-datatable/probe-packs/application-datatable.pack.mjs +240 -0
  136. package/blueprints/application-empty-error-states/CHANGELOG.md +9 -0
  137. package/blueprints/application-empty-error-states/README.md +88 -0
  138. package/blueprints/application-empty-error-states/blueprint.json +119 -0
  139. package/blueprints/application-empty-error-states/contributions/adrs/adr-2301-application-empty-error-states-status-contract.json +25 -0
  140. package/blueprints/application-empty-error-states/contributions/adrs/adr-2302-application-empty-error-states-stack-trace-visibility.json +25 -0
  141. package/blueprints/application-empty-error-states/contributions/adrs/adr-2303-application-empty-error-states-offline-strategy.json +25 -0
  142. package/blueprints/application-empty-error-states/contributions/requirements/application-empty-error-states-req-001.json +18 -0
  143. package/blueprints/application-empty-error-states/contributions/requirements/application-empty-error-states-req-002.json +18 -0
  144. package/blueprints/application-empty-error-states/contributions/requirements/application-empty-error-states-req-003.json +18 -0
  145. package/blueprints/application-empty-error-states/contributions/requirements/application-empty-error-states-req-004.json +18 -0
  146. package/blueprints/application-empty-error-states/contributions/requirements/application-empty-error-states-req-005.json +18 -0
  147. package/blueprints/application-empty-error-states/contributions/tacs/tac-2301-application-empty-error-states-state-machine.json +46 -0
  148. package/blueprints/application-empty-error-states/contributions/tacs/tac-2302-application-empty-error-states-recovery-router.json +36 -0
  149. package/blueprints/application-empty-error-states/contributions/tacs/tac-2303-application-empty-error-states-offline-buffer.json +40 -0
  150. package/blueprints/application-empty-error-states/contributions/user-stories/application-empty-error-states-us-22101.json +29 -0
  151. package/blueprints/application-empty-error-states/contributions/user-stories/application-empty-error-states-us-22102.json +29 -0
  152. package/blueprints/application-empty-error-states/contributions/user-stories/application-empty-error-states-us-22103.json +29 -0
  153. package/blueprints/application-empty-error-states/contributions/user-stories/application-empty-error-states-us-22104.json +29 -0
  154. package/blueprints/application-empty-error-states/contributions/user-stories/application-empty-error-states-us-22105.json +29 -0
  155. package/blueprints/application-empty-error-states/contributions/user-stories/application-empty-error-states-us-22106.json +29 -0
  156. package/blueprints/application-empty-error-states/contributions/user-stories/application-empty-error-states-us-22107.json +29 -0
  157. package/blueprints/application-empty-error-states/contributions/user-stories/application-empty-error-states-us-22108.json +29 -0
  158. package/blueprints/application-empty-error-states/docs/topics.md +53 -0
  159. package/blueprints/application-empty-error-states/guide/application-empty-error-states.md +50 -0
  160. package/blueprints/application-empty-error-states/probe-packs/application-empty-error-states.pack.mjs +284 -0
  161. package/blueprints/application-error-handling/docs/topics.md +12 -0
  162. package/blueprints/application-file-upload/CHANGELOG.md +9 -0
  163. package/blueprints/application-file-upload/README.md +85 -0
  164. package/blueprints/application-file-upload/blueprint.json +114 -0
  165. package/blueprints/application-file-upload/contributions/adrs/adr-2401-application-file-upload-transport.json +25 -0
  166. package/blueprints/application-file-upload/contributions/adrs/adr-2402-application-file-upload-accepted-set.json +25 -0
  167. package/blueprints/application-file-upload/contributions/adrs/adr-2403-application-file-upload-virus-scan.json +25 -0
  168. package/blueprints/application-file-upload/contributions/requirements/application-file-upload-req-001.json +18 -0
  169. package/blueprints/application-file-upload/contributions/requirements/application-file-upload-req-002.json +18 -0
  170. package/blueprints/application-file-upload/contributions/requirements/application-file-upload-req-003.json +18 -0
  171. package/blueprints/application-file-upload/contributions/requirements/application-file-upload-req-004.json +18 -0
  172. package/blueprints/application-file-upload/contributions/requirements/application-file-upload-req-005.json +18 -0
  173. package/blueprints/application-file-upload/contributions/tacs/tac-2401-application-file-upload-input.json +46 -0
  174. package/blueprints/application-file-upload/contributions/tacs/tac-2402-application-file-upload-transport.json +47 -0
  175. package/blueprints/application-file-upload/contributions/tacs/tac-2403-application-file-upload-progress-announcer.json +46 -0
  176. package/blueprints/application-file-upload/contributions/user-stories/application-file-upload-us-23101.json +28 -0
  177. package/blueprints/application-file-upload/contributions/user-stories/application-file-upload-us-23102.json +28 -0
  178. package/blueprints/application-file-upload/contributions/user-stories/application-file-upload-us-23103.json +29 -0
  179. package/blueprints/application-file-upload/contributions/user-stories/application-file-upload-us-23104.json +28 -0
  180. package/blueprints/application-file-upload/contributions/user-stories/application-file-upload-us-23105.json +29 -0
  181. package/blueprints/application-file-upload/contributions/user-stories/application-file-upload-us-23106.json +28 -0
  182. package/blueprints/application-file-upload/contributions/user-stories/application-file-upload-us-23107.json +28 -0
  183. package/blueprints/application-file-upload/docs/topics.md +58 -0
  184. package/blueprints/application-file-upload/guide/application-file-upload.md +48 -0
  185. package/blueprints/application-file-upload/probe-packs/application-file-upload.pack.mjs +238 -0
  186. package/blueprints/application-forms-wizard/CHANGELOG.md +9 -0
  187. package/blueprints/application-forms-wizard/README.md +102 -0
  188. package/blueprints/application-forms-wizard/blueprint.json +120 -0
  189. package/blueprints/application-forms-wizard/contributions/adrs/adr-2501-application-forms-wizard-navigation.json +25 -0
  190. package/blueprints/application-forms-wizard/contributions/adrs/adr-2502-application-forms-wizard-save-and-return.json +25 -0
  191. package/blueprints/application-forms-wizard/contributions/adrs/adr-2503-application-forms-wizard-step-indicator.json +25 -0
  192. package/blueprints/application-forms-wizard/contributions/requirements/application-forms-wizard-req-001.json +18 -0
  193. package/blueprints/application-forms-wizard/contributions/requirements/application-forms-wizard-req-002.json +18 -0
  194. package/blueprints/application-forms-wizard/contributions/requirements/application-forms-wizard-req-003.json +18 -0
  195. package/blueprints/application-forms-wizard/contributions/requirements/application-forms-wizard-req-004.json +18 -0
  196. package/blueprints/application-forms-wizard/contributions/requirements/application-forms-wizard-req-005.json +18 -0
  197. package/blueprints/application-forms-wizard/contributions/tacs/tac-2501-application-forms-wizard-task-list.json +46 -0
  198. package/blueprints/application-forms-wizard/contributions/tacs/tac-2502-application-forms-wizard-error-summary.json +40 -0
  199. package/blueprints/application-forms-wizard/contributions/tacs/tac-2503-application-forms-wizard-draft-store.json +40 -0
  200. package/blueprints/application-forms-wizard/contributions/user-stories/application-forms-wizard-us-24101.json +28 -0
  201. package/blueprints/application-forms-wizard/contributions/user-stories/application-forms-wizard-us-24102.json +29 -0
  202. package/blueprints/application-forms-wizard/contributions/user-stories/application-forms-wizard-us-24103.json +28 -0
  203. package/blueprints/application-forms-wizard/contributions/user-stories/application-forms-wizard-us-24104.json +29 -0
  204. package/blueprints/application-forms-wizard/contributions/user-stories/application-forms-wizard-us-24105.json +28 -0
  205. package/blueprints/application-forms-wizard/contributions/user-stories/application-forms-wizard-us-24106.json +28 -0
  206. package/blueprints/application-forms-wizard/contributions/user-stories/application-forms-wizard-us-24107.json +28 -0
  207. package/blueprints/application-forms-wizard/contributions/user-stories/application-forms-wizard-us-24108.json +29 -0
  208. package/blueprints/application-forms-wizard/docs/topics.md +49 -0
  209. package/blueprints/application-forms-wizard/guide/application-forms-wizard.md +48 -0
  210. package/blueprints/application-forms-wizard/probe-packs/application-forms-wizard.pack.mjs +233 -0
  211. package/blueprints/application-notifications-in-app/CHANGELOG.md +9 -0
  212. package/blueprints/application-notifications-in-app/README.md +80 -0
  213. package/blueprints/application-notifications-in-app/blueprint.json +30 -0
  214. package/blueprints/application-notifications-in-app/contributions/adrs/adr-2101-application-notifications-in-app-live-region-role-mapping.json +25 -0
  215. package/blueprints/application-notifications-in-app/contributions/adrs/adr-2102-application-notifications-in-app-toast-timeout-floor.json +25 -0
  216. package/blueprints/application-notifications-in-app/contributions/adrs/adr-2103-application-notifications-in-app-retention-window.json +25 -0
  217. package/blueprints/application-notifications-in-app/contributions/requirements/application-notifications-in-app-req-001.json +15 -0
  218. package/blueprints/application-notifications-in-app/contributions/requirements/application-notifications-in-app-req-002.json +15 -0
  219. package/blueprints/application-notifications-in-app/contributions/requirements/application-notifications-in-app-req-003.json +15 -0
  220. package/blueprints/application-notifications-in-app/contributions/requirements/application-notifications-in-app-req-004.json +15 -0
  221. package/blueprints/application-notifications-in-app/contributions/requirements/application-notifications-in-app-req-005.json +15 -0
  222. package/blueprints/application-notifications-in-app/contributions/tacs/tac-2101-application-notifications-in-app-live-region.json +46 -0
  223. package/blueprints/application-notifications-in-app/contributions/tacs/tac-2102-application-notifications-in-app-centre.json +52 -0
  224. package/blueprints/application-notifications-in-app/contributions/tacs/tac-2103-application-notifications-in-app-preferences.json +40 -0
  225. package/blueprints/application-notifications-in-app/contributions/user-stories/application-notifications-in-app-us-20101.json +35 -0
  226. package/blueprints/application-notifications-in-app/contributions/user-stories/application-notifications-in-app-us-20102.json +35 -0
  227. package/blueprints/application-notifications-in-app/contributions/user-stories/application-notifications-in-app-us-20103.json +35 -0
  228. package/blueprints/application-notifications-in-app/contributions/user-stories/application-notifications-in-app-us-20104.json +35 -0
  229. package/blueprints/application-notifications-in-app/contributions/user-stories/application-notifications-in-app-us-20105.json +35 -0
  230. package/blueprints/application-notifications-in-app/contributions/user-stories/application-notifications-in-app-us-20106.json +26 -0
  231. package/blueprints/application-notifications-in-app/contributions/user-stories/application-notifications-in-app-us-20107.json +26 -0
  232. package/blueprints/application-notifications-in-app/contributions/user-stories/application-notifications-in-app-us-20108.json +26 -0
  233. package/blueprints/application-notifications-in-app/docs/topics.md +46 -0
  234. package/blueprints/application-notifications-in-app/guide/application-notifications-in-app.md +47 -0
  235. package/blueprints/application-notifications-in-app/probe-packs/application-notifications-in-app.pack.mjs +328 -0
  236. package/blueprints/application-onboarding-tour/CHANGELOG.md +12 -0
  237. package/blueprints/application-onboarding-tour/README.md +77 -0
  238. package/blueprints/application-onboarding-tour/blueprint.json +164 -0
  239. package/blueprints/application-onboarding-tour/contributions/adrs/adr-2701-application-onboarding-tour-dismissal-policy.json +20 -0
  240. package/blueprints/application-onboarding-tour/contributions/adrs/adr-2702-application-onboarding-tour-completion-store-shape.json +20 -0
  241. package/blueprints/application-onboarding-tour/contributions/adrs/adr-2703-application-onboarding-tour-checklist-anchor.json +20 -0
  242. package/blueprints/application-onboarding-tour/contributions/requirements/application-onboarding-tour-req-001.json +18 -0
  243. package/blueprints/application-onboarding-tour/contributions/requirements/application-onboarding-tour-req-002.json +18 -0
  244. package/blueprints/application-onboarding-tour/contributions/requirements/application-onboarding-tour-req-003.json +18 -0
  245. package/blueprints/application-onboarding-tour/contributions/requirements/application-onboarding-tour-req-004.json +18 -0
  246. package/blueprints/application-onboarding-tour/contributions/tacs/tac-2701-application-onboarding-tour-step-runner.json +41 -0
  247. package/blueprints/application-onboarding-tour/contributions/tacs/tac-2702-application-onboarding-tour-checklist-slot.json +35 -0
  248. package/blueprints/application-onboarding-tour/contributions/tacs/tac-2703-application-onboarding-tour-completion-store.json +34 -0
  249. package/blueprints/application-onboarding-tour/contributions/user-stories/application-onboarding-tour-us-26101.json +27 -0
  250. package/blueprints/application-onboarding-tour/contributions/user-stories/application-onboarding-tour-us-26102.json +27 -0
  251. package/blueprints/application-onboarding-tour/contributions/user-stories/application-onboarding-tour-us-26103.json +27 -0
  252. package/blueprints/application-onboarding-tour/contributions/user-stories/application-onboarding-tour-us-26104.json +27 -0
  253. package/blueprints/application-onboarding-tour/contributions/user-stories/application-onboarding-tour-us-26105.json +27 -0
  254. package/blueprints/application-onboarding-tour/contributions/user-stories/application-onboarding-tour-us-26106.json +27 -0
  255. package/blueprints/application-onboarding-tour/contributions/user-stories/application-onboarding-tour-us-26107.json +27 -0
  256. package/blueprints/application-onboarding-tour/docs/topics.md +48 -0
  257. package/blueprints/application-onboarding-tour/guide/application-onboarding-tour.md +59 -0
  258. package/blueprints/application-onboarding-tour/probe-packs/application-onboarding-tour.pack.mjs +231 -0
  259. package/blueprints/application-spa/docs/topics.md +13 -1
  260. package/blueprints/delivery-ci-workflows/docs/topics.md +13 -1
  261. package/blueprints/deploy-cloudflare-workers/docs/topics.md +13 -1
  262. package/blueprints/email-smtp-resend/docs/topics.md +13 -1
  263. package/blueprints/object-storage-s3/CHANGELOG.md +13 -0
  264. package/blueprints/object-storage-s3/README.md +108 -0
  265. package/blueprints/object-storage-s3/blueprint.json +72 -0
  266. package/blueprints/object-storage-s3/contributions/adrs/adr-2901-object-storage-s3-adapter.json +30 -0
  267. package/blueprints/object-storage-s3/contributions/adrs/adr-2902-object-storage-s3-presigned-ttl-floor.json +25 -0
  268. package/blueprints/object-storage-s3/contributions/adrs/adr-2903-object-storage-s3-multipart-threshold.json +25 -0
  269. package/blueprints/object-storage-s3/contributions/adrs/adr-2904-object-storage-s3-contract.json +25 -0
  270. package/blueprints/object-storage-s3/contributions/probes/event-secrecy.mjs +103 -0
  271. package/blueprints/object-storage-s3/contributions/probes/facade-round-trip.mjs +43 -0
  272. package/blueprints/object-storage-s3/contributions/probes/multipart-upload.mjs +84 -0
  273. package/blueprints/object-storage-s3/contributions/probes/presigned-url.mjs +101 -0
  274. package/blueprints/object-storage-s3/contributions/probes/probe-utils.mjs +85 -0
  275. package/blueprints/object-storage-s3/contributions/probes/put-get-round-trip.mjs +84 -0
  276. package/blueprints/object-storage-s3/contributions/probes/r2-real-account-smoke.mjs +64 -0
  277. package/blueprints/object-storage-s3/contributions/probes/run-event-secrecy.mjs +4 -0
  278. package/blueprints/object-storage-s3/contributions/probes/run-facade-round-trip.mjs +10 -0
  279. package/blueprints/object-storage-s3/contributions/probes/run-multipart-upload.mjs +4 -0
  280. package/blueprints/object-storage-s3/contributions/probes/run-presigned-url.mjs +4 -0
  281. package/blueprints/object-storage-s3/contributions/probes/run-put-get-round-trip.mjs +7 -0
  282. package/blueprints/object-storage-s3/contributions/probes/run-r2-real-account-smoke.mjs +4 -0
  283. package/blueprints/object-storage-s3/contributions/requirements/object-storage-s3-req-001.json +18 -0
  284. package/blueprints/object-storage-s3/contributions/requirements/object-storage-s3-req-002.json +18 -0
  285. package/blueprints/object-storage-s3/contributions/requirements/object-storage-s3-req-003.json +18 -0
  286. package/blueprints/object-storage-s3/contributions/requirements/object-storage-s3-req-004.json +18 -0
  287. package/blueprints/object-storage-s3/contributions/requirements/object-storage-s3-req-005.json +18 -0
  288. package/blueprints/object-storage-s3/contributions/requirements/object-storage-s3-req-006.json +18 -0
  289. package/blueprints/object-storage-s3/contributions/tacs/tac-2901-object-storage-s3-facade.json +57 -0
  290. package/blueprints/object-storage-s3/contributions/tacs/tac-2902-object-storage-s3-multipart-uploader.json +36 -0
  291. package/blueprints/object-storage-s3/contributions/tacs/tac-2903-object-storage-s3-event-sink.json +36 -0
  292. package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28101.json +34 -0
  293. package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28102.json +43 -0
  294. package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28103.json +25 -0
  295. package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28104.json +34 -0
  296. package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28105.json +25 -0
  297. package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28106.json +34 -0
  298. package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28107.json +34 -0
  299. package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28108.json +34 -0
  300. package/blueprints/object-storage-s3/docs/topics.md +62 -0
  301. package/blueprints/object-storage-s3/guide/object-storage-s3.md +207 -0
  302. package/blueprints/observability-essentials/docs/topics.md +13 -1
  303. package/blueprints/observability-logging/CHANGELOG.md +9 -0
  304. package/blueprints/observability-logging/README.md +4 -1
  305. package/blueprints/observability-logging/blueprint.json +114 -21
  306. package/blueprints/observability-logging/docs/topics.md +12 -0
  307. package/blueprints/observability-probe-endpoints/docs/topics.md +13 -1
  308. package/blueprints/persistence-data-d1/docs/topics.md +13 -1
  309. package/blueprints/persistence-data-postgres/CHANGELOG.md +12 -0
  310. package/blueprints/persistence-data-postgres/README.md +101 -0
  311. package/blueprints/persistence-data-postgres/blueprint.json +80 -0
  312. package/blueprints/persistence-data-postgres/contributions/adrs/adr-2801-persistence-data-postgres-driver.json +30 -0
  313. package/blueprints/persistence-data-postgres/contributions/adrs/adr-2802-persistence-data-postgres-migration-shape.json +25 -0
  314. package/blueprints/persistence-data-postgres/contributions/adrs/adr-2803-persistence-data-postgres-runner-mode.json +25 -0
  315. package/blueprints/persistence-data-postgres/contributions/adrs/adr-2804-persistence-data-postgres-recovery.json +25 -0
  316. package/blueprints/persistence-data-postgres/contributions/adrs/adr-2805-persistence-data-postgres-connection-pool-posture.json +25 -0
  317. package/blueprints/persistence-data-postgres/contributions/probes/facade-round-trip.mjs +56 -0
  318. package/blueprints/persistence-data-postgres/contributions/probes/migration-apply.mjs +75 -0
  319. package/blueprints/persistence-data-postgres/contributions/probes/pool-posture-smoke.mjs +56 -0
  320. package/blueprints/persistence-data-postgres/contributions/probes/prepared-statement-scan.mjs +186 -0
  321. package/blueprints/persistence-data-postgres/contributions/probes/probe-utils.mjs +76 -0
  322. package/blueprints/persistence-data-postgres/contributions/probes/recovery-restore-round-trip.mjs +173 -0
  323. package/blueprints/persistence-data-postgres/contributions/probes/run-facade-round-trip.mjs +10 -0
  324. package/blueprints/persistence-data-postgres/contributions/probes/run-migration-apply.mjs +10 -0
  325. package/blueprints/persistence-data-postgres/contributions/probes/run-pool-posture-smoke.mjs +9 -0
  326. package/blueprints/persistence-data-postgres/contributions/probes/run-prepared-statement-scan.mjs +10 -0
  327. package/blueprints/persistence-data-postgres/contributions/probes/run-recovery-restore-round-trip.mjs +9 -0
  328. package/blueprints/persistence-data-postgres/contributions/probes/run-transaction-atomicity.mjs +10 -0
  329. package/blueprints/persistence-data-postgres/contributions/probes/transaction-atomicity.mjs +79 -0
  330. package/blueprints/persistence-data-postgres/contributions/requirements/persistence-data-postgres-req-001.json +18 -0
  331. package/blueprints/persistence-data-postgres/contributions/requirements/persistence-data-postgres-req-002.json +18 -0
  332. package/blueprints/persistence-data-postgres/contributions/requirements/persistence-data-postgres-req-003.json +18 -0
  333. package/blueprints/persistence-data-postgres/contributions/requirements/persistence-data-postgres-req-004.json +18 -0
  334. package/blueprints/persistence-data-postgres/contributions/requirements/persistence-data-postgres-req-005.json +18 -0
  335. package/blueprints/persistence-data-postgres/contributions/requirements/persistence-data-postgres-req-006.json +18 -0
  336. package/blueprints/persistence-data-postgres/contributions/requirements/persistence-data-postgres-req-007.json +18 -0
  337. package/blueprints/persistence-data-postgres/contributions/tacs/tac-2801-persistence-data-postgres-facade.json +58 -0
  338. package/blueprints/persistence-data-postgres/contributions/tacs/tac-2802-persistence-data-postgres-migration-runner.json +40 -0
  339. package/blueprints/persistence-data-postgres/contributions/tacs/tac-2803-persistence-data-postgres-transaction-helper.json +35 -0
  340. package/blueprints/persistence-data-postgres/contributions/tacs/tac-2804-persistence-data-postgres-recovery-runner.json +40 -0
  341. package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27101.json +34 -0
  342. package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27102.json +25 -0
  343. package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27103.json +25 -0
  344. package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27104.json +25 -0
  345. package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27105.json +25 -0
  346. package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27106.json +25 -0
  347. package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27107.json +25 -0
  348. package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27108.json +25 -0
  349. package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27109.json +25 -0
  350. package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27110.json +25 -0
  351. package/blueprints/persistence-data-postgres/docs/topics.md +64 -0
  352. package/blueprints/persistence-data-postgres/guide/persistence-data-postgres.md +172 -0
  353. package/blueprints/persistence-data-sqlite/docs/topics.md +13 -1
  354. package/blueprints/security-auth-clerk/CHANGELOG.md +9 -0
  355. package/blueprints/security-auth-clerk/README.md +3 -0
  356. package/blueprints/security-auth-clerk/blueprint.json +147 -29
  357. package/blueprints/security-auth-clerk/docs/topics.md +13 -1
  358. package/blueprints/security-auth-keycloak/CHANGELOG.md +9 -0
  359. package/blueprints/security-auth-keycloak/README.md +3 -0
  360. package/blueprints/security-auth-keycloak/blueprint.json +182 -36
  361. package/blueprints/security-auth-keycloak/docs/topics.md +13 -1
  362. package/blueprints/security-auth-magic-link/CHANGELOG.md +9 -0
  363. package/blueprints/security-auth-magic-link/README.md +3 -0
  364. package/blueprints/security-auth-magic-link/blueprint.json +159 -32
  365. package/blueprints/security-auth-magic-link/docs/topics.md +13 -1
  366. package/blueprints/security-auth-oauth2/CHANGELOG.md +9 -0
  367. package/blueprints/security-auth-oauth2/README.md +3 -0
  368. package/blueprints/security-auth-oauth2/blueprint.json +158 -31
  369. package/blueprints/security-auth-oauth2/docs/topics.md +13 -1
  370. package/blueprints/security-secrets-management/CHANGELOG.md +11 -0
  371. package/blueprints/security-secrets-management/blueprint.json +2 -1
  372. package/blueprints/security-secrets-management/docs/topics.md +13 -1
  373. package/fixtures/canary-manifest.json +9 -9
  374. package/package.json +2 -2
  375. package/rcf/code-nodes/cn-106.json +13 -0
  376. package/rcf/code-nodes/cn-107.json +14 -0
  377. package/rcf/code-nodes/cn-108.json +13 -0
  378. package/rcf/code-nodes/cn-109.json +12 -0
  379. package/rcf/code-nodes/cn-110.json +12 -0
  380. package/rcf/code-nodes/cn-111.json +14 -0
  381. package/rcf/code-nodes/cn-112.json +14 -0
  382. package/rcf/code-nodes/cn-113.json +12 -0
  383. package/rcf/code-nodes/cn-114.json +13 -0
  384. package/rcf/code-nodes/cn-115.json +13 -0
  385. package/rcf/code-nodes/cn-116.json +12 -0
  386. package/rcf/code-nodes/cn-117.json +13 -0
  387. package/rcf/code-nodes/cn-118.json +13 -0
  388. package/rcf/code-nodes/cn-119.json +13 -0
  389. package/rcf/code-nodes/cn-120.json +13 -0
  390. package/rcf/code-nodes/cn-121.json +12 -0
  391. package/rcf/code-nodes/cn-122.json +12 -0
  392. package/rcf/code-nodes/cn-123.json +13 -0
  393. package/rcf/code-nodes/cn-124.json +13 -0
  394. package/rcf/code-nodes/cn-125.json +13 -0
  395. package/rcf/code-nodes/cn-126.json +13 -0
  396. package/rcf/code-nodes/cn-127.json +12 -0
  397. package/rcf/code-nodes/cn-128.json +14 -0
  398. package/rcf/code-nodes/cn-129.json +14 -0
  399. package/rcf/code-nodes/cn-130.json +14 -0
  400. package/rcf/code-nodes/cn-131.json +15 -0
  401. package/rcf/code-nodes/cn-132.json +12 -0
  402. package/rcf/code-nodes/cn-133.json +13 -0
  403. package/rcf/code-nodes/cn-134.json +13 -0
  404. package/rcf/code-nodes/cn-135.json +12 -0
  405. package/rcf/code-nodes/cn-136.json +13 -0
  406. package/rcf/code-nodes/cn-137.json +13 -0
  407. package/rcf/code-nodes/cn-138.json +12 -0
  408. package/rcf/code-nodes/cn-139.json +12 -0
  409. package/rcf/code-nodes/cn-140.json +13 -0
  410. package/rcf/code-nodes/cn-141.json +13 -0
  411. package/rcf/code-nodes/cn-142.json +12 -0
  412. package/rcf/code-nodes/cn-143.json +13 -0
  413. package/rcf/code-nodes/cn-144.json +13 -0
  414. package/rcf/code-nodes/cn-145.json +12 -0
  415. package/rcf/code-nodes/cn-146.json +12 -0
  416. package/rcf/code-nodes/cn-147.json +13 -0
  417. package/rcf/code-nodes/cn-148.json +13 -0
  418. package/rcf/code-nodes/cn-149.json +12 -0
  419. package/rcf/code-nodes/cn-150.json +13 -0
  420. package/rcf/code-nodes/cn-151.json +13 -0
  421. package/rcf/code-nodes/cn-152.json +12 -0
  422. package/rcf/code-nodes/cn-153.json +12 -0
  423. package/rcf/code-nodes/cn-154.json +13 -0
  424. package/rcf/code-nodes/cn-155.json +14 -0
  425. package/rcf/code-nodes/cn-156.json +13 -0
  426. package/rcf/code-nodes/cn-157.json +13 -0
  427. package/rcf/code-nodes/cn-158.json +12 -0
  428. package/rcf/code-nodes/cn-159.json +13 -0
  429. package/rcf/code-nodes/cn-160.json +12 -0
  430. package/rcf/code-nodes/cn-161.json +12 -0
  431. package/rcf/code-nodes/cn-162.json +13 -0
  432. package/rcf/code-nodes/cn-163.json +12 -0
  433. package/rcf/code-nodes/cn-164.json +13 -0
  434. package/rcf/code-nodes/cn-165.json +12 -0
  435. package/rcf/code-nodes/cn-166.json +12 -0
  436. package/rcf/code-nodes/cn-167.json +12 -0
  437. package/rcf/code-nodes/cn-168.json +12 -0
  438. package/rcf/code-nodes/cn-169.json +12 -0
  439. package/rcf/code-nodes/cn-170.json +12 -0
  440. package/rcf/code-nodes/cn-171.json +12 -0
  441. package/rcf/code-nodes/cn-172.json +12 -0
  442. package/rcf/code-nodes/cn-173.json +12 -0
  443. package/rcf/code-nodes/cn-174.json +12 -0
  444. package/rcf/code-nodes/cn-175.json +13 -0
  445. package/rcf/code-nodes/cn-176.json +12 -0
  446. package/rcf/code-nodes/cn-177.json +12 -0
  447. package/rcf/code-nodes/cn-178.json +12 -0
  448. package/rcf/code-nodes/cn-179.json +12 -0
  449. package/rcf/code-nodes/cn-180.json +13 -0
  450. package/rcf/code-nodes/cn-181.json +12 -0
  451. package/rcf/code-nodes/cn-182.json +13 -0
  452. package/rcf/code-nodes/cn-183.json +12 -0
  453. package/rcf/code-nodes/cn-184.json +13 -0
  454. package/rcf/code-nodes/cn-185.json +12 -0
  455. package/rcf/code-nodes/cn-186.json +12 -0
  456. package/rcf/code-nodes/cn-200.json +14 -0
  457. package/rcf/code-nodes/cn-201.json +13 -0
  458. package/rcf/code-nodes/cn-202.json +14 -0
  459. package/rcf/code-nodes/cn-203.json +14 -0
  460. package/rcf/code-nodes/cn-204.json +13 -0
  461. package/rcf/code-nodes/cn-205.json +14 -0
  462. package/rcf/fbs/fbs-036.json +22 -0
  463. package/rcf/fbs/fbs-037.json +19 -0
  464. package/rcf/fbs/fbs-038.json +19 -0
  465. package/rcf/fbs/fbs-039.json +21 -0
  466. package/rcf/fbs/fbs-040.json +20 -0
  467. package/rcf/fbs/fbs-041.json +13 -0
  468. package/rcf/fbs/fbs-042.json +13 -0
  469. package/rcf/fbs/fbs-043.json +23 -0
  470. package/rcf/fbs/fbs-044.json +23 -0
  471. package/rcf/fbs/fbs-045.json +23 -0
  472. package/rcf/fbs/fbs-046.json +24 -0
  473. package/rcf/fbs/fbs-047.json +24 -0
  474. package/rcf/fbs/fbs-060.json +22 -0
  475. package/rcf/fbs/fbs-061.json +20 -0
  476. package/rcf/requirements/req-017.json +18 -0
  477. package/rcf/requirements/req-018.json +18 -0
  478. package/rcf/requirements/req-019.json +38 -0
  479. package/rcf/requirements/req-020.json +13 -0
  480. package/rcf/requirements/req-021.json +13 -0
  481. package/rcf/requirements/req-022.json +13 -0
  482. package/rcf/requirements/req-023.json +14 -0
  483. package/rcf/requirements/req-024.json +69 -0
  484. package/rcf/requirements/req-025.json +59 -0
  485. package/rcf/requirements/req-026.json +154 -0
  486. package/rcf/requirements/req-027.json +33 -0
  487. package/rcf/requirements/req-028.json +13 -0
  488. package/rcf/requirements/req-040.json +13 -0
  489. package/rcf/requirements/req-041.json +125 -0
  490. package/rcf/test-suites/ts-046.json +78 -0
  491. package/rcf/test-suites/ts-047.json +54 -0
  492. package/rcf/test-suites/ts-048.json +54 -0
  493. package/rcf/test-suites/ts-049.json +70 -0
  494. package/rcf/test-suites/ts-050.json +69 -0
  495. package/rcf/test-suites/ts-051.json +22 -0
  496. package/rcf/test-suites/ts-052.json +20 -0
  497. package/rcf/test-suites/ts-053.json +70 -0
  498. package/rcf/test-suites/ts-054.json +70 -0
  499. package/rcf/test-suites/ts-055.json +77 -0
  500. package/rcf/test-suites/ts-056.json +78 -0
  501. package/rcf/test-suites/ts-057.json +78 -0
  502. package/rcf/test-suites/ts-070.json +62 -0
  503. package/rcf/test-suites/ts-071.json +62 -0
  504. package/rcf/user-stories/us-1701.json +56 -0
  505. package/rcf/user-stories/us-1801.json +40 -0
  506. package/rcf/user-stories/us-1901.json +40 -0
  507. package/rcf/user-stories/us-2001.json +50 -0
  508. package/rcf/user-stories/us-2101.json +45 -0
  509. package/rcf/user-stories/us-2201.json +60 -0
  510. package/rcf/user-stories/us-2301.json +51 -0
  511. package/rcf/user-stories/us-2401.json +62 -0
  512. package/rcf/user-stories/us-2501.json +58 -0
  513. package/rcf/user-stories/us-2601.json +51 -0
  514. package/rcf/user-stories/us-2701.json +55 -0
  515. package/rcf/user-stories/us-2801.json +55 -0
  516. package/rcf/user-stories/us-4001.json +69 -0
  517. package/rcf/user-stories/us-4101.json +69 -0
  518. package/releases/releases.yaml +21 -1
  519. package/src/blueprint/apply.js +107 -1
  520. package/src/blueprint/capabilities.js +357 -0
  521. package/src/blueprint/loader.js +247 -0
  522. package/src/browser-verify/boot.js +180 -0
  523. package/src/browser-verify/index.js +13 -0
  524. package/src/browser-verify/manifest-writer.js +31 -6
  525. package/src/browser-verify/pack-browser.js +294 -0
  526. package/src/browser-verify/pack-loader.js +176 -0
  527. package/src/browser-verify/pack-runner.js +193 -0
  528. package/src/browser-verify/pack-schema.js +155 -0
  529. package/src/browser-verify/runner.js +24 -1
  530. package/src/cli/blueprint.js +99 -0
  531. package/src/cli/browser-verify.js +147 -7
  532. package/src/core/errors/index.js +7 -0
@@ -0,0 +1,20 @@
1
+ {
2
+ "adrId": "ADR-2701-application-onboarding-tour-dismissal-policy",
3
+ "prdId": "PRD-001",
4
+ "tadId": "TAD-001",
5
+ "version": "1.0.0",
6
+ "status": "accepted",
7
+ "title": "Dismissal policy: dismiss-permanently default, dismiss-until-next-major or dismiss-until-next-minor",
8
+ "context": "A dismissed tour has three legal re-open behaviours. Dismiss-permanently is the least intrusive: a principal who dismissed the tour once never sees it again unless the restart-tour control fires. Dismiss-until-next-major re-opens the tour when the applied blueprint set makes a major-version bump (a new tour surface a returning principal has not seen). Dismiss-until-next-minor re-opens on a minor bump for the same reason at higher frequency. The spec section 5.5 names all three; the recommended default is dismiss-permanently because a returning principal who dismissed the tour deliberately signalled that they do not want re-onboarding, and the restart-tour control on the settings surface remains available.",
9
+ "decision": "dismissal-policy is elicited (enum: dismiss-permanently | dismiss-until-next-major | dismiss-until-next-minor). Recommended default: dismiss-permanently. The step runner honours the answer by comparing the CompletionRecord.blueprintSetVersion against the current applied blueprint set version at principal load: dismiss-permanently never re-opens; dismiss-until-next-major re-opens when the major differs; dismiss-until-next-minor re-opens when the major or the minor differs. A blueprintSetVersion mismatch always renders the checklist on the resolved anchor even when the tour does not auto-open.",
10
+ "consequences": "A returning principal in the dismiss-permanently branch is not re-onboarded on any bump; a project that adds a major surface (a new admin console, a new billing area) can prompt returning principals through a restart-tour affordance on the release note surface rather than an intrusive re-open. A project that opts into dismiss-until-next-major or dismiss-until-next-minor accepts the interruption for the benefit of re-onboarding on shipped changes; the CompletionRecord.stepIds field lets the step runner skip already-seen steps when a re-open fires.",
11
+ "alternativesConsidered": [
12
+ {
13
+ "name": "Alternative approach considered",
14
+ "summary": "A time-based re-open (re-open after 30 days) was considered but time-based re-opens do not correlate with actual product changes; a returning principal on a stable product would be re-onboarded on nothing. Version-based re-opens correlate with real surface changes and let the operator choose the frequency.",
15
+ "reasonNotChosen": "See the decision text; the chosen shape composes cleanly with the applied blueprint set the spec section 5.5 names."
16
+ }
17
+ ],
18
+ "createdAt": "2026-09-06T23:15:00Z",
19
+ "updatedAt": "2026-09-06T23:15:00Z"
20
+ }
@@ -0,0 +1,20 @@
1
+ {
2
+ "adrId": "ADR-2702-application-onboarding-tour-completion-store-shape",
3
+ "prdId": "PRD-001",
4
+ "tadId": "TAD-001",
5
+ "version": "1.0.0",
6
+ "status": "accepted",
7
+ "title": "Completion-state store shape: spa-local-storage default (Q4 fallback), spa-session-storage or server-side-per-principal",
8
+ "context": "The completion state needs a store. Three shapes are legal. spa-local-storage keeps the completion state per browser and per principal identifier; a returning principal on the same browser is not re-onboarded, and a different browser (or a private window) is re-onboarded. spa-session-storage keeps the completion state per session and re-plays the tour on every new session; useful only for a project that deliberately wants a per-session refresher. server-side-per-principal keeps the completion state on the principals record so it follows the user across devices; requires an applied persistence blueprint and the projects own writer adapter. The spec section 5.5 and section 10 Q4 ratify spa-local-storage as the fallback when no persistence blueprint is applied because a per-session tour that re-plays on every new session is worse than a one-time tour that persists across sessions on that browser.",
9
+ "decision": "completion-state-store is elicited (enum: spa-local-storage | spa-session-storage | server-side-per-principal). Recommended default: spa-local-storage. At apply time the elicit surface offers all three; a project that answers server-side-per-principal without an applied persistence blueprint hits a documented refusal (the elicit's when predicate refuses per the mechanism minor T-5 does not extend; the refusal is enforced at the surface load by TAC-2703 which refuses to construct a server-side backend without a resolved persistence adapter and falls back to spa-local-storage with a documented note on the sidecar).",
10
+ "consequences": "A project with no persistence blueprint applied gets the spa-local-storage backend automatically per the Q4 fallback; a project with a persistence blueprint and the server-side-per-principal answer gets a cross-device tour completion; a project answering spa-session-storage accepts a per-session re-onboarding. The dismiss-until-next-major and dismiss-until-next-minor policies (ADR-2701) still work under any of the three shapes because the CompletionRecord.blueprintSetVersion travels with the record.",
11
+ "alternativesConsidered": [
12
+ {
13
+ "name": "Alternative approach considered",
14
+ "summary": "spa-session-storage as the default was considered but re-onboarding on every new session is intrusive on a stable product; the Q4 ratification names spa-local-storage as the fallback for that reason.",
15
+ "reasonNotChosen": "See the decision text; the chosen default composes cleanly with the applied blueprint set the spec section 5.5 names."
16
+ }
17
+ ],
18
+ "createdAt": "2026-09-06T23:15:00Z",
19
+ "updatedAt": "2026-09-06T23:15:00Z"
20
+ }
@@ -0,0 +1,20 @@
1
+ {
2
+ "adrId": "ADR-2703-application-onboarding-tour-checklist-anchor",
3
+ "prdId": "PRD-001",
4
+ "tadId": "TAD-001",
5
+ "version": "1.0.0",
6
+ "status": "accepted",
7
+ "title": "Checklist anchor slot: dashboard-top when application-dashboard is applied, settings-page when not, custom-anchor as escape hatch",
8
+ "context": "The checklist has three legal homes. dashboard-top when application-dashboard is applied because the dashboard shell is the highest-value surface a returning principal reaches. settings-page when application-dashboard is not applied because the settings surface is the next-highest-value reference surface. custom-anchor when the project prefers a bespoke slot (a marketing surface, a landing shell, a home route). The spec section 5.5 ratifies all three and marks the anchor as elicited with a default derived at apply time from what is applied.",
9
+ "decision": "checklist-anchor is elicited (enum: dashboard-top | settings-page | custom-anchor). Recommended default: derived at apply time (dashboard-top when application-dashboard is in the applied set; settings-page when it is not; custom-anchor requires the projects own CSS selector). The collapse contract is a <details open> element on dashboard-top and a <details> (closed) element on settings-page; custom-anchor takes the setting-page default (closed) unless the project supplies an override.",
10
+ "consequences": "A project applying application-dashboard renders the checklist open on the dashboard shell so a new principal sees the outstanding items at a glance; a project not applying application-dashboard renders it closed on the settings surface so it does not intrude; a project with a custom-anchor takes responsibility for the placement. AC-26103-1 probes the collapse contract on the two shipped anchors; custom-anchor is verified by the fixture READMEs manual boot line.",
11
+ "alternativesConsidered": [
12
+ {
13
+ "name": "Alternative approach considered",
14
+ "summary": "Auto-selecting always to the dashboard-top slot regardless of the applied set was considered but a project without application-dashboard applied has no dashboard shell to mount into; the checklist would be lost. Deriving the default from the applied set at apply time keeps the anchor honest.",
15
+ "reasonNotChosen": "See the decision text; the chosen shape composes cleanly with the applied blueprint set the spec section 5.5 names."
16
+ }
17
+ ],
18
+ "createdAt": "2026-09-06T23:15:00Z",
19
+ "updatedAt": "2026-09-06T23:15:00Z"
20
+ }
@@ -0,0 +1,18 @@
1
+ {
2
+ "reqId": "application-onboarding-tour-REQ-001",
3
+ "prdId": "PRD-001",
4
+ "title": "Step-manifest contract: 3 to 5 steps per tour with per-step anchor selector and per-step content voice slot",
5
+ "description": "The blueprint contributes a step-manifest contract for a 3 to 5 step onboarding tour. Each step declares a step id, an anchor selector (CSS resolved at step-open time to place the tooltip against a live element in the DOM), a heading and a body slot the project fills with its own voice. The step runner walks the manifest in order and refuses to open a step whose anchor does not resolve to a visible element rather than rendering a floating tooltip. The blueprint contributes the WHAT (the manifest shape and the resolver contract), not the words.",
6
+ "category": "functional",
7
+ "domain": "application",
8
+ "priority": "must",
9
+ "rationale": "Per visual round 4 spec (2026-09-06) section 5.5, REQ 1 of the onboarding-tour blueprint.",
10
+ "tags": [
11
+ "blueprint:application-onboarding-tour",
12
+ "category:01-step-runner"
13
+ ],
14
+ "version": "1.0.0",
15
+ "status": "approved",
16
+ "createdAt": "2026-09-06T23:15:00Z",
17
+ "updatedAt": "2026-09-06T23:15:00Z"
18
+ }
@@ -0,0 +1,18 @@
1
+ {
2
+ "reqId": "application-onboarding-tour-REQ-002",
3
+ "prdId": "PRD-001",
4
+ "title": "Tooltip-as-dialog contract per the ARIA APG dialog-modal pattern",
5
+ "description": "Each step's tooltip carries role=\"dialog\", aria-labelledby to the step heading, aria-describedby to the step body. Focus moves to the tooltip on open, focus returns to the anchor on close. The dialog traps focus between the tour controls (previous, next, dismiss) and refuses to let Tab escape to the underlying surface (WCAG 2.1.2 No Keyboard Trap satisfied because Escape always exits). Escape dismisses the tour. Focus is not obscured on any breakpoint (WCAG 2.4.11 Focus Not Obscured Minimum). Follows the ARIA APG dialog-modal pattern for the tooltip surface.",
6
+ "category": "functional",
7
+ "domain": "application",
8
+ "priority": "must",
9
+ "rationale": "Per visual round 4 spec (2026-09-06) section 5.5, REQ 2 of the onboarding-tour blueprint.",
10
+ "tags": [
11
+ "blueprint:application-onboarding-tour",
12
+ "category:02-dialog-modal"
13
+ ],
14
+ "version": "1.0.0",
15
+ "status": "approved",
16
+ "createdAt": "2026-09-06T23:15:00Z",
17
+ "updatedAt": "2026-09-06T23:15:00Z"
18
+ }
@@ -0,0 +1,18 @@
1
+ {
2
+ "reqId": "application-onboarding-tour-REQ-003",
3
+ "prdId": "PRD-001",
4
+ "title": "Checklist surface: on the dashboard when application-dashboard is applied, on the settings page when not",
5
+ "description": "A first-run checklist renders on the dashboard-top anchor when application-dashboard is applied (open by default, so a new principal sees the outstanding items at a glance) and collapses to a settings-page anchor when application-dashboard is not applied (closed by default, so an existing principal reaching the settings surface can expand it). The collapse contract is a <details> element whose open state mirrors the anchor choice: dashboard-top -> open, settings-page -> closed. The checklist enumerates the applied tour surfaces with a link back to the restart-tour affordance on the settings surface. The blueprint contributes the anchor slot contract (ADR-2703) and the surface conditionality, not the checklist items.",
6
+ "category": "functional",
7
+ "domain": "application",
8
+ "priority": "must",
9
+ "rationale": "Per visual round 4 spec (2026-09-06) section 5.5, REQ 3 of the onboarding-tour blueprint.",
10
+ "tags": [
11
+ "blueprint:application-onboarding-tour",
12
+ "category:03-checklist-slot"
13
+ ],
14
+ "version": "1.0.0",
15
+ "status": "approved",
16
+ "createdAt": "2026-09-06T23:15:00Z",
17
+ "updatedAt": "2026-09-06T23:15:00Z"
18
+ }
@@ -0,0 +1,18 @@
1
+ {
2
+ "reqId": "application-onboarding-tour-REQ-004",
3
+ "prdId": "PRD-001",
4
+ "title": "Completion-state persistence per principal in the applied persistence blueprint with an spa-local-storage fallback per Q4",
5
+ "description": "The completion state persists per principal in the applied persistence blueprint (server-side-per-principal when a persistence blueprint is applied and the operator picks that store) or per browser in spa-local-storage as the Q4 fallback when no persistence blueprint is applied. spa-session-storage is a third option the operator can pick when a per-session tour is deliberately wanted. A restart-tour control renders on the settings surface (composing on application-account-settings when applied; on any settings-shaped surface as a fallback) and clears the completion state so the tour re-opens on the next principal load.",
6
+ "category": "functional",
7
+ "domain": "application",
8
+ "priority": "must",
9
+ "rationale": "Per visual round 4 spec (2026-09-06) section 5.5, REQ 4 of the onboarding-tour blueprint. Q4 default (spa-local-storage fallback) ratified per spec section 10.",
10
+ "tags": [
11
+ "blueprint:application-onboarding-tour",
12
+ "category:04-completion-store"
13
+ ],
14
+ "version": "1.0.0",
15
+ "status": "approved",
16
+ "createdAt": "2026-09-06T23:15:00Z",
17
+ "updatedAt": "2026-09-06T23:15:00Z"
18
+ }
@@ -0,0 +1,41 @@
1
+ {
2
+ "tacId": "TAC-2701-application-onboarding-tour-step-runner",
3
+ "prdId": "PRD-001",
4
+ "tadId": "TAD-001",
5
+ "version": "1.0.0",
6
+ "status": "approved",
7
+ "name": "Onboarding-tour step runner",
8
+ "purpose": "Owns the rendered tour surface: the step manifest walk, the anchor resolver, the tooltip-as-dialog mount, and the focus lifecycle across open, walk and close. The step runner is the base surface every step-shaped AC anchors on.",
9
+ "responsibilities": [
10
+ "Walk the elicited step manifest in order and resolve each step's anchor selector against the live DOM (AC-26101-1).",
11
+ "Mount each step's tooltip as an ARIA APG dialog-modal (role=\"dialog\", aria-labelledby, aria-describedby) and move focus into it on open (AC-26102-1, AC-26107-1).",
12
+ "Return focus to the anchor on close (Escape, dismiss control, or last-step confirm) (AC-26102-1).",
13
+ "Trap focus between the tour controls (previous, next, dismiss) and refuse Tab escape to the underlying surface while Escape still exits (AC-26101-1).",
14
+ "Keep the tooltip visible at every breakpoint the applied SPA blueprint declares; refuse a step render whose anchor would clip the tooltip below the viewport minimum (AC-26102-1)."
15
+ ],
16
+ "internalStructure": "One step runner module that reads the applied elicits, mounts the tooltip mount-point at document.body-level, drives the manifest walk, and calls the completion-state store on the last step. The framework is not prescribed; the runner interfaces are what the project realises against React, Vue, Svelte or vanilla DOM.",
17
+ "interfaces": [
18
+ {
19
+ "name": "renderTourRunner",
20
+ "kind": "factory",
21
+ "description": "renderTourRunner({ stepManifest, anchorResolver, dialogMount, focusLifecycle, completionStore }) -> { openAtStep(stepId), dismiss(), destroy() }. The project supplies the stepManifest (from the elicit), the anchorResolver (from a CSS selector to a live element), the dialogMount (an element or a factory), the focusLifecycle (open, walk, close hooks) and the completionStore (the resolved TAC-2703 backend)."
22
+ },
23
+ {
24
+ "name": "stepManifest",
25
+ "kind": "shape",
26
+ "description": "[{ id, anchorSelector, heading, body, order }]. Ordered list of 3 to 5 steps. Each step is opened by openAtStep(stepId) or advanced by the previous / next controls."
27
+ }
28
+ ],
29
+ "dependencies": [
30
+ {
31
+ "name": "Completion store",
32
+ "kind": "tac",
33
+ "tacId": "TAC-2703-application-onboarding-tour-completion-store",
34
+ "description": "The step runner calls the completion store on the last step to persist the completion record."
35
+ }
36
+ ],
37
+ "tradeoffs": "The step runner mounts the tooltip at document.body-level rather than inline at the anchor so a positioned parent (transform, contain) does not clip the tooltip. This costs one extra pointer resolution on every step open (anchor selector -> live element -> viewport rect); the alternative would silently clip tooltips inside common flex/grid layouts.",
38
+ "notes": "Composes on the applied SPA blueprint for the routing and iconography, and on the applied dashboard blueprint for the highest-value first surface. Known mechanism-reach gaps: the runner cannot prove the described-text screen-reader read order without a real screen reader (documented under AC-26107-1); the runner cannot prove focus does not escape the tooltip in every framework rendering (documented under AC-26101-1). See README Known mechanism-reach gaps.",
39
+ "createdAt": "2026-09-06T23:15:00Z",
40
+ "updatedAt": "2026-09-06T23:15:00Z"
41
+ }
@@ -0,0 +1,35 @@
1
+ {
2
+ "tacId": "TAC-2702-application-onboarding-tour-checklist-slot",
3
+ "prdId": "PRD-001",
4
+ "tadId": "TAD-001",
5
+ "version": "1.0.0",
6
+ "status": "approved",
7
+ "name": "Onboarding-tour checklist slot",
8
+ "purpose": "Owns the checklist surface: the anchor-slot resolution (dashboard-top vs settings-page vs custom-anchor), the collapse contract (<details open> on dashboard-top; <details> closed on settings-page), and the enumeration of the applied tour surfaces with a link back to the restart-tour affordance on the settings surface.",
9
+ "responsibilities": [
10
+ "Read the elicited checklist-anchor (ADR-2703) at load and mount the checklist at the resolved slot (AC-26103-1).",
11
+ "Render the checklist as a <details> element carrying data-role=\"onboarding-tour-checklist\" whose open state mirrors the anchor: open on dashboard-top, closed on settings-page (AC-26103-1).",
12
+ "Enumerate the applied tour surfaces as list items with a link to the restart-tour control on the settings surface.",
13
+ "Suppress the checklist entirely when neither the dashboard nor the settings surface is applied and no custom-anchor is supplied."
14
+ ],
15
+ "internalStructure": "One checklist module that reads the applied capability set from the sidecar-adjacent applied-blueprint list, picks the anchor per the elicited value or the default derived at apply time, and mounts the <details> element into the resolved slot. The framework is not prescribed.",
16
+ "interfaces": [
17
+ {
18
+ "name": "renderChecklist",
19
+ "kind": "factory",
20
+ "description": "renderChecklist({ anchor, appliedSet, items }) -> { mount(rootElement), unmount() }. The project supplies the anchor (one of dashboard-top, settings-page, custom-anchor with a selector), the appliedSet (from the applied-blueprint list) and the items (from the manifest walk)."
21
+ }
22
+ ],
23
+ "dependencies": [
24
+ {
25
+ "name": "Step runner",
26
+ "kind": "tac",
27
+ "tacId": "TAC-2701-application-onboarding-tour-step-runner",
28
+ "description": "The checklist links back to the step runner via the restart-tour control on the settings surface."
29
+ }
30
+ ],
31
+ "tradeoffs": "The <details>/<summary> collapse contract is chosen over an ARIA APG disclosure widget because <details> ships browser-native keyboard behaviour (Space, Enter to toggle) and screen-reader-native semantics; a bespoke disclosure widget would need every keyboard case re-implemented. The trade-off is styling constraints; the fixture ships an unstyled <details> to make the shape testable.",
32
+ "notes": "Composes on application-dashboard for the dashboard-top slot and application-account-settings for the settings-page slot; a project applying neither falls back to a custom-anchor. Known mechanism-reach gap: the checklist cannot inspect which items a principal has already completed without a persistence-blueprint reader; documented under AC-26103-1 as a fixture-side signal only.",
33
+ "createdAt": "2026-09-06T23:15:00Z",
34
+ "updatedAt": "2026-09-06T23:15:00Z"
35
+ }
@@ -0,0 +1,34 @@
1
+ {
2
+ "tacId": "TAC-2703-application-onboarding-tour-completion-store",
3
+ "prdId": "PRD-001",
4
+ "tadId": "TAD-001",
5
+ "version": "1.0.0",
6
+ "status": "approved",
7
+ "name": "Onboarding-tour completion-state store",
8
+ "purpose": "Owns the completion-state store contract: the writer the step runner calls on the last step, the reader first-run detection calls on principal load, and the clearer the restart-tour control calls. Delegates to the applied persistence blueprint when server-side-per-principal is elicited (and refuses at apply if no persistence blueprint is applied); falls back to spa-local-storage per Q4 or spa-session-storage per the elicit.",
9
+ "responsibilities": [
10
+ "Write the completion record on the last step (AC-26104-1).",
11
+ "Read the completion record on principal load so first-run detection can gate the tour auto-open (AC-26105-1).",
12
+ "Clear the completion record when the restart-tour control fires (AC-26104-1, AC-26106-1).",
13
+ "Refuse at apply when server-side-per-principal is elicited without an applied persistence blueprint."
14
+ ],
15
+ "internalStructure": "One completion-store module with three backends (spa-local-storage, spa-session-storage, server-side-per-principal) selected at apply time from the elicited completion-state-store answer or the Q4 fallback (spa-local-storage). The server-side backend calls the applied persistence blueprint's writer through the projects own adapter interface; the two SPA backends read and write window.localStorage / window.sessionStorage under a namespaced key derived from the applied blueprint set version.",
16
+ "interfaces": [
17
+ {
18
+ "name": "completionStore",
19
+ "kind": "shape",
20
+ "description": "{ read(principalId): CompletionRecord | null, write(principalId, record), clear(principalId) }. CompletionRecord = { completedAt: ISO string, blueprintSetVersion: string, stepIds: string[] }. The blueprintSetVersion is the versioned identifier of the applied blueprint set so a dismiss-until-next-major or dismiss-until-next-minor policy can re-open the tour on the right bump."
21
+ }
22
+ ],
23
+ "dependencies": [
24
+ {
25
+ "name": "Persistence blueprint",
26
+ "kind": "external",
27
+ "description": "Optional composition: only the server-side-per-principal backend delegates to an applied persistence blueprint writer. spa-local-storage and spa-session-storage need no persistence blueprint. The rcf-schemas 0.6.1 TAC dependency kind enum is limited to tac and external, so the composition-optional relation is recorded as external and made explicit in the description and notes."
28
+ }
29
+ ],
30
+ "tradeoffs": "spa-local-storage is chosen as the Q4 default because a per-session tour that re-plays on every new session is worse than a one-time tour that persists across sessions on that browser; spa-session-storage remains an option for a project that deliberately wants a per-session tour. server-side-per-principal is chosen when the tour completion is a real profile fact (a cross-device onboarding) rather than a per-browser convenience.",
31
+ "notes": "The blueprintSetVersion in the CompletionRecord is what lets ADR-2701's dismiss-until-next-major and dismiss-until-next-minor policies re-open the tour on the right bump. Known mechanism-reach gap: the server-side-per-principal backend cannot prove a round-trip in a unit test without an applied persistence blueprint; the pack skips the persistence round-trip check for spa-* stores (inspects the storage directly) and drives it for server-side-per-principal on the fixture branch that stands up an in-fixture writer. The Persistence blueprint dependency is recorded with kind external per the rcf-schemas 0.6.1 enum and is optional-composition semantically: server-side-per-principal delegates to the applied persistence blueprint writer, and the spa-local-storage and spa-session-storage backends need no persistence blueprint applied. Refusal at apply for the server-side-per-principal branch is enforced in the store module.",
32
+ "createdAt": "2026-09-06T23:15:00Z",
33
+ "updatedAt": "2026-09-07T00:45:00Z"
34
+ }
@@ -0,0 +1,27 @@
1
+ {
2
+ "usId": "application-onboarding-tour-US-26101",
3
+ "prdId": "PRD-001",
4
+ "reqId": "application-onboarding-tour-REQ-001",
5
+ "version": "1.0.0",
6
+ "status": "approved",
7
+ "title": "First-run principal sees the tour open on the highest-value surface and can walk it or dismiss it with the keyboard",
8
+ "asA": "first-run principal reaching the application",
9
+ "iWant": "the tour to open on the highest-value surface with the first step, and to be able to walk through it or dismiss it using only the keyboard",
10
+ "soThat": "I can learn the surface my project ships without a mouse, and I can leave the tour at any point without a trap",
11
+ "acceptanceCriteria": [
12
+ {
13
+ "id": "AC-26101-1",
14
+ "testable": true,
15
+ "scope": "runtime",
16
+ "description": "Given a first-run principal on the SPA, the tour opens on the highest-value surface with the first step; Escape dismisses the tour and hides the tooltip; keyboard-only users reach every tour control (previous, next, dismiss) via Tab in DOM order and activate the next control with Enter (WCAG 2.1.1 Keyboard, WCAG 2.1.2 No Keyboard Trap, WCAG 2.4.3 Focus Order). Anchors to TAC-2701-application-onboarding-tour-step-runner; probed by application-onboarding-tour.pack.mjs check AC-26101-1."
17
+ }
18
+ ],
19
+ "tacIds": [
20
+ "TAC-2701-application-onboarding-tour-step-runner"
21
+ ],
22
+ "tags": [
23
+ "blueprint:application-onboarding-tour"
24
+ ],
25
+ "createdAt": "2026-09-06T23:15:00Z",
26
+ "updatedAt": "2026-09-06T23:15:00Z"
27
+ }
@@ -0,0 +1,27 @@
1
+ {
2
+ "usId": "application-onboarding-tour-US-26102",
3
+ "prdId": "PRD-001",
4
+ "reqId": "application-onboarding-tour-REQ-002",
5
+ "version": "1.0.0",
6
+ "status": "approved",
7
+ "title": "Each step's tooltip renders as an ARIA APG dialog-modal with focus lifecycle and focus not obscured",
8
+ "asA": "principal walking through the tour",
9
+ "iWant": "each step's tooltip to behave like a proper dialog, with focus arriving on open and returning to the anchor on close and remaining visible at every breakpoint",
10
+ "soThat": "an assistive-technology user hears the step content on open and returns to context on close, and no tooltip is clipped at the viewport edge",
11
+ "acceptanceCriteria": [
12
+ {
13
+ "id": "AC-26102-1",
14
+ "testable": true,
15
+ "scope": "runtime",
16
+ "description": "Given a step showing a tooltip anchored to a UI element, focus moves to the tooltip on open; the tooltip carries role=\"dialog\" with aria-labelledby pointing at the step heading; focus returns to the anchor on close (Escape or the dismiss control) per the ARIA APG dialog-modal pattern; focus is not obscured on the 1440 wide breakpoint or the 360 narrow breakpoint (WCAG 2.4.11 Focus Not Obscured Minimum). Anchors to TAC-2701-application-onboarding-tour-step-runner; probed by application-onboarding-tour.pack.mjs check AC-26102-1."
17
+ }
18
+ ],
19
+ "tacIds": [
20
+ "TAC-2701-application-onboarding-tour-step-runner"
21
+ ],
22
+ "tags": [
23
+ "blueprint:application-onboarding-tour"
24
+ ],
25
+ "createdAt": "2026-09-06T23:15:00Z",
26
+ "updatedAt": "2026-09-06T23:15:00Z"
27
+ }
@@ -0,0 +1,27 @@
1
+ {
2
+ "usId": "application-onboarding-tour-US-26103",
3
+ "prdId": "PRD-001",
4
+ "reqId": "application-onboarding-tour-REQ-003",
5
+ "version": "1.0.0",
6
+ "status": "approved",
7
+ "title": "Checklist surface renders on the dashboard when application-dashboard is applied and on the settings page when not",
8
+ "asA": "returning principal who dismissed the tour and later wants to check the outstanding items",
9
+ "iWant": "the checklist to render on the dashboard shell when application-dashboard is applied and on the settings page when it is not, with a collapse contract that opens the checklist on the dashboard and closes it on the settings page by default",
10
+ "soThat": "the checklist meets me where I am, and it does not intrude on the settings surface where it is a reference rather than a primary task",
11
+ "acceptanceCriteria": [
12
+ {
13
+ "id": "AC-26103-1",
14
+ "testable": true,
15
+ "scope": "runtime",
16
+ "description": "Given the applied capability set includes application-dashboard, the checklist renders inside a <details open> element on the dashboard-top anchor slot; given the applied capability set does NOT include application-dashboard, the checklist renders inside a <details> (closed) element on the settings-page anchor slot; the <details> element carries data-role=\"onboarding-tour-checklist\" in both branches. Anchors to TAC-2702-application-onboarding-tour-checklist-slot; probed by application-onboarding-tour.pack.mjs check AC-26103-1 on both application-dashboard and settings-page branches."
17
+ }
18
+ ],
19
+ "tacIds": [
20
+ "TAC-2702-application-onboarding-tour-checklist-slot"
21
+ ],
22
+ "tags": [
23
+ "blueprint:application-onboarding-tour"
24
+ ],
25
+ "createdAt": "2026-09-06T23:15:00Z",
26
+ "updatedAt": "2026-09-06T23:15:00Z"
27
+ }
@@ -0,0 +1,27 @@
1
+ {
2
+ "usId": "application-onboarding-tour-US-26104",
3
+ "prdId": "PRD-001",
4
+ "reqId": "application-onboarding-tour-REQ-004",
5
+ "version": "1.0.0",
6
+ "status": "approved",
7
+ "title": "Completion-state persists per principal and the restart-tour control clears it",
8
+ "asA": "returning principal who completed the tour",
9
+ "iWant": "the completion state to persist per principal in the applied persistence store (or per browser in spa-local-storage as the Q4 fallback), and a restart-tour control I can reach from the settings surface",
10
+ "soThat": "the tour does not re-open at every session, and I can bring it back deliberately when I need to",
11
+ "acceptanceCriteria": [
12
+ {
13
+ "id": "AC-26104-1",
14
+ "testable": true,
15
+ "scope": "runtime",
16
+ "description": "Given a completed tour, the completion state persists per principal in the applied persistence blueprint (or in spa-local-storage as the Q4 fallback per ADR-2702 when no persistence blueprint is applied); a restart-tour control is reachable from the settings surface (composing on application-account-settings when applied; on any settings surface as a fallback); activating the control clears the completion state and re-opens the tour on the next principal load. Anchors to TAC-2703-application-onboarding-tour-completion-store; probed by application-onboarding-tour.pack.mjs check AC-26104-1."
17
+ }
18
+ ],
19
+ "tacIds": [
20
+ "TAC-2703-application-onboarding-tour-completion-store"
21
+ ],
22
+ "tags": [
23
+ "blueprint:application-onboarding-tour"
24
+ ],
25
+ "createdAt": "2026-09-06T23:15:00Z",
26
+ "updatedAt": "2026-09-06T23:15:00Z"
27
+ }
@@ -0,0 +1,27 @@
1
+ {
2
+ "usId": "application-onboarding-tour-US-26105",
3
+ "prdId": "PRD-001",
4
+ "reqId": "application-onboarding-tour-REQ-004",
5
+ "version": "1.0.0",
6
+ "status": "approved",
7
+ "title": "First-run detection: a principal with no completion state sees the tour; a principal with completion state does not",
8
+ "asA": "returning principal",
9
+ "iWant": "the tour to open only on my first run, not on every visit",
10
+ "soThat": "I am not re-onboarded on every session and the surface stays clean",
11
+ "acceptanceCriteria": [
12
+ {
13
+ "id": "AC-26105-1",
14
+ "testable": true,
15
+ "scope": "runtime",
16
+ "description": "Given a principal whose completion-state store contains no completion record for the applied blueprint set version, the tour auto-opens on the highest-value surface; given a principal whose completion-state store contains a completion record for the applied blueprint set version, the tour does NOT auto-open and only the checklist and the restart-tour control render. The check is documented as a mechanism-reach gap in the README (not directly probed at runtime; enforced by the fixture branch under manual boot for the gate reviewer)."
17
+ }
18
+ ],
19
+ "tacIds": [
20
+ "TAC-2703-application-onboarding-tour-completion-store"
21
+ ],
22
+ "tags": [
23
+ "blueprint:application-onboarding-tour"
24
+ ],
25
+ "createdAt": "2026-09-06T23:15:00Z",
26
+ "updatedAt": "2026-09-06T23:15:00Z"
27
+ }
@@ -0,0 +1,27 @@
1
+ {
2
+ "usId": "application-onboarding-tour-US-26106",
3
+ "prdId": "PRD-001",
4
+ "reqId": "application-onboarding-tour-REQ-004",
5
+ "version": "1.0.0",
6
+ "status": "approved",
7
+ "title": "Restart-tour control clears completion state and re-opens the tour",
8
+ "asA": "returning principal who completed the tour but wants to see it again",
9
+ "iWant": "a restart-tour control on the settings surface that clears my completion state and re-opens the tour",
10
+ "soThat": "I can revisit the guidance without clearing local storage by hand or hunting through the surface for a hidden trigger",
11
+ "acceptanceCriteria": [
12
+ {
13
+ "id": "AC-26106-1",
14
+ "testable": true,
15
+ "scope": "runtime",
16
+ "description": "The restart-tour control renders on the settings surface as a <button data-action=\"restart-tour\"> reachable via Tab and activatable with Enter; activating it clears the completion state in the applied store (per ADR-2702) and re-opens the tour on the highest-value surface on the next principal load. Covered as part of AC-26104-1's pack check (the check exercises the restart flow end-to-end)."
17
+ }
18
+ ],
19
+ "tacIds": [
20
+ "TAC-2703-application-onboarding-tour-completion-store"
21
+ ],
22
+ "tags": [
23
+ "blueprint:application-onboarding-tour"
24
+ ],
25
+ "createdAt": "2026-09-06T23:15:00Z",
26
+ "updatedAt": "2026-09-06T23:15:00Z"
27
+ }
@@ -0,0 +1,27 @@
1
+ {
2
+ "usId": "application-onboarding-tour-US-26107",
3
+ "prdId": "PRD-001",
4
+ "reqId": "application-onboarding-tour-REQ-002",
5
+ "version": "1.0.0",
6
+ "status": "approved",
7
+ "title": "Screen-reader traversal announces the step heading and body on open",
8
+ "asA": "assistive-technology user",
9
+ "iWant": "the tooltip to announce the step heading and body on open through the ARIA APG dialog-modal contract",
10
+ "soThat": "I hear the step content the moment focus arrives, not after a manual navigation",
11
+ "acceptanceCriteria": [
12
+ {
13
+ "id": "AC-26107-1",
14
+ "testable": true,
15
+ "scope": "runtime",
16
+ "description": "The tooltip carries aria-labelledby pointing at the step heading and aria-describedby pointing at the step body; focus moves into the tooltip on open so the screen reader reads the labelled and described text. Documented as a mechanism-reach gap for the described-text read order because rcf-lite does not drive a real screen reader in CI; the pack asserts the DOM contract and the fixture README names the manual screen-reader smoke."
17
+ }
18
+ ],
19
+ "tacIds": [
20
+ "TAC-2701-application-onboarding-tour-step-runner"
21
+ ],
22
+ "tags": [
23
+ "blueprint:application-onboarding-tour"
24
+ ],
25
+ "createdAt": "2026-09-06T23:15:00Z",
26
+ "updatedAt": "2026-09-06T23:15:00Z"
27
+ }
@@ -0,0 +1,48 @@
1
+ # application-onboarding-tour: coordination vocabulary
2
+
3
+ ## Global topics
4
+
5
+ The blueprint claims no new global topics at v1.0.0. Onboarding-tour is a consumer of the applied SPA, dashboard, notifications-in-app and account-settings surfaces; every ADR (dismissal-policy, completion-state-store shape, checklist-anchor slot) is non-global.
6
+
7
+ ## Deliberately unclaimed topics
8
+
9
+ - `completionStateStore` (the shape of a completion-state record beyond this blueprint's needs). Reserved for the applied persistence blueprint's own ADR set when server-side-per-principal is elicited. The onboarding-tour blueprint hands off the store to the applied provider through the completion-store interface.
10
+ - `stepManifestFormat` (the shape of a shared onboarding manifest across blueprints). Reserved until a second blueprint contributes a step-shaped manifest surface (a settings walk-through, a role-tour); the dashboardShell rejection precedent stands: mint a topic only when a second consumer arrives.
11
+
12
+ ## Shelf id band and suffix block
13
+
14
+ | Blueprint | US band | ADR/TAC suffix block | Status | Global topics |
15
+ |---|---|---|---|---|
16
+ | application-datatable | 17101-17899 | 18xx | shipped v1.0.0 | none |
17
+ | application-charts | 18101-18899 | 19xx | shipped v1.0.0 | none |
18
+ | application-dashboard | 19101-19899 | 20xx | shipped v1.0.0 | none |
19
+ | application-notifications-in-app | 20101-20899 | 21xx | shipped v1.0.0 | none |
20
+ | application-admin-console | 21101-21899 | 22xx | shipped v1.0.0 | none |
21
+ | application-empty-error-states | 22101-22899 | 23xx | shipped v1.0.0 | none |
22
+ | application-file-upload | 23101-23899 | 24xx | shipped v1.0.0 | none |
23
+ | application-forms-wizard | 24101-24899 | 25xx | shipped v1.0.0 | none |
24
+ | application-account-settings | 25101-25899 | 26xx | shipped v1.0.0 | none |
25
+ | application-onboarding-tour | 26101-26899 | 27xx | shipped v1.0.0 | none |
26
+ | persistence-data-postgres | 27101-27899 | 28xx | shipped v1.0.0 | `persistenceStore`, `migrationDiscipline` |
27
+ | object-storage-s3 | 28101-28899 | 29xx | shipped v1.0.0 | `objectStorageContract` |
28
+
29
+ The shelf-wide band registry lives in `packages/rcf-lite/docs/blueprint-authoring.md` section 5.
30
+
31
+ ## Cross-references
32
+
33
+ - `application-spa` (round 1, shipped v1.5.0+): supplies the routing shell (`/tour`, `/dashboard`, `/settings`), the iconography and theming the tour uses. The tour still renders without the SPA blueprint; the project supplies its own routing.
34
+ - `application-dashboard` (round 3, shipped v1.0.0): supplies the dashboard-top anchor slot where the checklist mounts as `<details open>` for returning principals. When absent, the checklist collapses to a `<details>` (closed) on the settings-page anchor (ADR-2703).
35
+ - `application-notifications-in-app` (round 3, shipped v1.0.0): supplies the polite `aria-live` live region the tour-completion announcement uses. When absent, the tour is silent at the announce layer (the step runner still logs one line if a logging companion is present).
36
+ - `application-account-settings` (round 4 T-4, shipped v1.0.0): supplies the settings surface where the restart-tour control lives. When absent, the restart-tour control renders on any settings-shaped surface (`/settings`, `/account`, `/account/settings`).
37
+ - `application-empty-error-states` (round 4 T-1, shipped v1.0.0): the tour composes on the forbidden state when a principal reaches `/tour` without an authenticated session and an auth blueprint is applied. When no auth blueprint is applied, the tour behaves as a single-principal experience per the composition table.
38
+
39
+ ## Probe pack
40
+
41
+ `probe-packs/application-onboarding-tour.pack.mjs` ships four surface-observable checks anchored to blueprint AC ids:
42
+
43
+ - `AC-26101-1` step-container focus lifecycle and Escape (always fires).
44
+ - `AC-26102-1` tooltip-as-dialog contract at 1440 wide and 360 narrow breakpoints via `browser.resize` (always fires).
45
+ - `AC-26103-1` checklist slot on both dashboard-top (open) and settings-page (closed) branches (always fires; branch selection reads the applied-blueprint set from the sidecar).
46
+ - `AC-26104-1` completion-state persistence and restart-tour re-open (always fires; store selection reads the elicited `completion-state-store` answer, defaulting to `spa-local-storage` per Q4).
47
+
48
+ The pack applies to any FBS binding `TAC-2701-application-onboarding-tour-step-runner` or whose `navModel` routes match the operator-configured tour-anchor path glob (`/tour`, `/welcome`, `/getting-started`, `/onboarding`). See `packages/rcf-lite/docs/blueprint-authoring.md` section 8c for the pack authoring rules.
@@ -0,0 +1,59 @@
1
+ # application-onboarding-tour guide
2
+
3
+ Operator-facing guide to the onboarding-tour blueprint. Reach for it when your project wants a keyboard-accessible product tour with a first-run checklist that composes on the surfaces you already have, and where the completion state honestly persists.
4
+
5
+ ## When to reach for this blueprint
6
+
7
+ - You have a first-run onboarding narrative that fits 3 to 5 steps and every step anchors on a live element in your DOM.
8
+ - You want the tour to honour WCAG 2.2 AA keyboard rules (2.1.1 Keyboard, 2.1.2 No Keyboard Trap, 2.4.3 Focus Order, 2.4.11 Focus Not Obscured Minimum) and the ARIA APG dialog-modal pattern out of the box, without a hand-rolled tooltip library.
9
+ - You want a checklist surface that meets returning principals where they are (on the dashboard when the dashboard blueprint is applied, on the settings surface when it is not) and does not intrude when the tour is done.
10
+ - You want a documented restart-tour affordance without inventing the persistence flow.
11
+
12
+ ## When NOT to reach for this blueprint
13
+
14
+ - You need a multi-hour interactive product simulation. This blueprint contributes an onboarding contract, not a training platform.
15
+ - Your tour has more than five steps per surface. Refactor into multiple applied tours (one per surface family) rather than one long tour.
16
+ - You need per-org customisation of the tour content at runtime. The blueprint contributes the WHAT; the elicited `per-step-content-voice` is a project-owned string, not a per-tenant surface.
17
+
18
+ ## Standards trace
19
+
20
+ - ARIA APG dialog-modal pattern (`https://www.w3.org/WAI/ARIA/apg/patterns/dialog-modal/`): the tooltip is a modal dialog with `role="dialog"`, `aria-labelledby` to the step heading, `aria-describedby` to the step body, focus into the tooltip on open and back to the anchor on close.
21
+ - WCAG 2.2 AA 2.1.1 Keyboard (`https://www.w3.org/WAI/WCAG22/Understanding/keyboard.html`): every tour control activatable with the keyboard.
22
+ - WCAG 2.2 AA 2.1.2 No Keyboard Trap (`https://www.w3.org/WAI/WCAG22/Understanding/no-keyboard-trap.html`): Escape always exits; focus never permanently trapped.
23
+ - WCAG 2.2 AA 2.4.3 Focus Order (`https://www.w3.org/WAI/WCAG22/Understanding/focus-order.html`): Tab reaches every tour control in DOM order inside the tooltip.
24
+ - WCAG 2.2 AA 2.4.11 Focus Not Obscured Minimum (`https://www.w3.org/WAI/WCAG22/Understanding/focus-not-obscured-minimum.html`): the tooltip is visible at the 1440 wide and 360 narrow breakpoints (probed via `browser.resize`).
25
+
26
+ ## Q4 fallback
27
+
28
+ When no persistence blueprint is applied AND the operator does not answer `completion-state-store` explicitly, the store defaults to `spa-local-storage` per Q4 of the ratified spec. A per-session tour that re-plays on every new session is worse than a one-time tour that persists across sessions on that browser; the elicit surface offers all three shapes for a deliberate override.
29
+
30
+ ## Mechanism-reach gaps
31
+
32
+ - `AC-26105-1` first-run detection: manual verification via the fixture README boot line (open `/tour` twice, confirm the tour auto-opens on run 1 and does not on run 2).
33
+ - `AC-26107-1` screen-reader traversal: the pack asserts the DOM contract; the manual VoiceOver smoke is in the fixture README.
34
+
35
+ Both gaps ride runner cleanup `w-2026-09-04-dave-020`.
36
+
37
+ ## Compose targets
38
+
39
+ The tour reaches these applied blueprints with the effect named in the README's composition table. None is a hard dependency; every unapplied target has a documented fallback.
40
+
41
+ - `application-spa` (routing, iconography, theming).
42
+ - `application-dashboard` (dashboard-top checklist anchor; fallback `settings-page`).
43
+ - `application-notifications-in-app` (polite `aria-live` announce on completion; fallback silent at announce layer).
44
+ - `application-account-settings` (restart-tour control home; fallback any settings-shaped surface).
45
+ - Any `security-auth-*` (per-principal completion state; fallback per-browser bare namespace).
46
+
47
+ ## Apply
48
+
49
+ ```
50
+ rcf define blueprint add <path-to>/blueprints/application-onboarding-tour
51
+ ```
52
+
53
+ ## Verify
54
+
55
+ ```
56
+ rcf verify browser <fbs-id> --url <runtime-url> --probe-pack application-onboarding-tour --json
57
+ ```
58
+
59
+ Runs the four checks against the shipped fixture at `packages/rcf-lite/test/fixtures/probe-pack-application-onboarding-tour/`. See the fixture README for the four break-switch runs the gate reviewer walks manually.