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.
- package/CHANGELOG.md +39 -0
- package/blueprints/application-account-settings/CHANGELOG.md +12 -0
- package/blueprints/application-account-settings/README.md +114 -0
- package/blueprints/application-account-settings/blueprint.json +234 -0
- package/blueprints/application-account-settings/contributions/adrs/adr-2601-application-account-settings-capability-vocabulary.json +20 -0
- package/blueprints/application-account-settings/contributions/adrs/adr-2602-application-account-settings-security-surface-shape.json +20 -0
- package/blueprints/application-account-settings/contributions/adrs/adr-2603-application-account-settings-theme-persistence.json +20 -0
- package/blueprints/application-account-settings/contributions/adrs/adr-2604-application-account-settings-reauth-window.json +20 -0
- package/blueprints/application-account-settings/contributions/requirements/application-account-settings-req-001.json +18 -0
- package/blueprints/application-account-settings/contributions/requirements/application-account-settings-req-002.json +18 -0
- package/blueprints/application-account-settings/contributions/requirements/application-account-settings-req-003.json +18 -0
- package/blueprints/application-account-settings/contributions/requirements/application-account-settings-req-004.json +18 -0
- package/blueprints/application-account-settings/contributions/requirements/application-account-settings-req-005.json +18 -0
- package/blueprints/application-account-settings/contributions/requirements/application-account-settings-req-006.json +18 -0
- package/blueprints/application-account-settings/contributions/tacs/tac-2601-application-account-settings-shell.json +41 -0
- package/blueprints/application-account-settings/contributions/tacs/tac-2602-application-account-settings-capability-discovery.json +28 -0
- package/blueprints/application-account-settings/contributions/tacs/tac-2603-application-account-settings-hosted-ui-bridge.json +35 -0
- package/blueprints/application-account-settings/contributions/tacs/tac-2604-application-account-settings-session-store.json +40 -0
- package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25101.json +34 -0
- package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25102.json +27 -0
- package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25103.json +27 -0
- package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25104.json +27 -0
- package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25105.json +33 -0
- package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25106.json +27 -0
- package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25107.json +27 -0
- package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25108.json +27 -0
- package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25109.json +33 -0
- package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25110.json +27 -0
- package/blueprints/application-account-settings/docs/topics.md +48 -0
- package/blueprints/application-account-settings/guide/application-account-settings.md +30 -0
- package/blueprints/application-account-settings/probe-packs/application-account-settings.pack.mjs +246 -0
- package/blueprints/application-admin-console/CHANGELOG.md +11 -0
- package/blueprints/application-admin-console/README.md +98 -0
- package/blueprints/application-admin-console/blueprint.json +226 -0
- package/blueprints/application-admin-console/contributions/adrs/adr-2201-application-admin-console-capability-vocabulary.json +25 -0
- package/blueprints/application-admin-console/contributions/adrs/adr-2202-application-admin-console-baseline-roles.json +25 -0
- package/blueprints/application-admin-console/contributions/adrs/adr-2203-application-admin-console-invite-transport.json +20 -0
- package/blueprints/application-admin-console/contributions/adrs/adr-2204-application-admin-console-audit-retention.json +20 -0
- package/blueprints/application-admin-console/contributions/requirements/application-admin-console-req-001.json +18 -0
- package/blueprints/application-admin-console/contributions/requirements/application-admin-console-req-002.json +18 -0
- package/blueprints/application-admin-console/contributions/requirements/application-admin-console-req-003.json +18 -0
- package/blueprints/application-admin-console/contributions/requirements/application-admin-console-req-004.json +18 -0
- package/blueprints/application-admin-console/contributions/requirements/application-admin-console-req-005.json +18 -0
- package/blueprints/application-admin-console/contributions/requirements/application-admin-console-req-006.json +18 -0
- package/blueprints/application-admin-console/contributions/tacs/tac-2201-application-admin-console-shell.json +40 -0
- package/blueprints/application-admin-console/contributions/tacs/tac-2202-application-admin-console-capability-discovery.json +44 -0
- package/blueprints/application-admin-console/contributions/tacs/tac-2203-application-admin-console-permission-matrix.json +34 -0
- package/blueprints/application-admin-console/contributions/tacs/tac-2204-application-admin-console-audit-view.json +40 -0
- package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21101.json +34 -0
- package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21102.json +34 -0
- package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21103.json +34 -0
- package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21104.json +28 -0
- package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21105.json +34 -0
- package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21106.json +27 -0
- package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21107.json +27 -0
- package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21108.json +27 -0
- package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21109.json +33 -0
- package/blueprints/application-admin-console/docs/topics.md +42 -0
- package/blueprints/application-admin-console/guide/application-admin-console.md +29 -0
- package/blueprints/application-admin-console/probe-packs/application-admin-console.pack.mjs +182 -0
- package/blueprints/application-api-rest/docs/topics.md +13 -1
- package/blueprints/application-charts/CHANGELOG.md +12 -0
- package/blueprints/application-charts/README.md +73 -0
- package/blueprints/application-charts/blueprint.json +26 -0
- package/blueprints/application-charts/contributions/adrs/adr-1901-application-charts-engine-choice.json +25 -0
- package/blueprints/application-charts/contributions/adrs/adr-1902-application-charts-accessible-palette.json +25 -0
- package/blueprints/application-charts/contributions/adrs/adr-1903-application-charts-motion.json +25 -0
- package/blueprints/application-charts/contributions/requirements/application-charts-req-001.json +15 -0
- package/blueprints/application-charts/contributions/requirements/application-charts-req-002.json +15 -0
- package/blueprints/application-charts/contributions/requirements/application-charts-req-003.json +15 -0
- package/blueprints/application-charts/contributions/requirements/application-charts-req-004.json +15 -0
- package/blueprints/application-charts/contributions/tacs/tac-1901-application-charts-render-shell.json +42 -0
- package/blueprints/application-charts/contributions/tacs/tac-1902-application-charts-keyboard-traversal.json +40 -0
- package/blueprints/application-charts/contributions/user-stories/application-charts-us-18101.json +35 -0
- package/blueprints/application-charts/contributions/user-stories/application-charts-us-18102.json +35 -0
- package/blueprints/application-charts/contributions/user-stories/application-charts-us-18103.json +35 -0
- package/blueprints/application-charts/contributions/user-stories/application-charts-us-18104.json +35 -0
- package/blueprints/application-charts/contributions/user-stories/application-charts-us-18105.json +35 -0
- package/blueprints/application-charts/contributions/user-stories/application-charts-us-18106.json +35 -0
- package/blueprints/application-charts/docs/topics.md +44 -0
- package/blueprints/application-charts/guide/application-charts.md +44 -0
- package/blueprints/application-charts/probe-packs/application-charts.pack.mjs +191 -0
- package/blueprints/application-dashboard/CHANGELOG.md +10 -0
- package/blueprints/application-dashboard/README.md +102 -0
- package/blueprints/application-dashboard/assets/guidance/dashboard-design.md +124 -0
- package/blueprints/application-dashboard/blueprint.json +29 -0
- package/blueprints/application-dashboard/contributions/adrs/adr-2001-application-dashboard-primary-kpi-enum.json +25 -0
- package/blueprints/application-dashboard/contributions/adrs/adr-2002-application-dashboard-timeframe-presets.json +25 -0
- package/blueprints/application-dashboard/contributions/adrs/adr-2003-application-dashboard-export-formats.json +25 -0
- package/blueprints/application-dashboard/contributions/requirements/application-dashboard-req-001.json +15 -0
- package/blueprints/application-dashboard/contributions/requirements/application-dashboard-req-002.json +15 -0
- package/blueprints/application-dashboard/contributions/requirements/application-dashboard-req-003.json +15 -0
- package/blueprints/application-dashboard/contributions/requirements/application-dashboard-req-004.json +15 -0
- package/blueprints/application-dashboard/contributions/requirements/application-dashboard-req-005.json +15 -0
- package/blueprints/application-dashboard/contributions/tacs/tac-2001-application-dashboard-tile-grid.json +47 -0
- package/blueprints/application-dashboard/contributions/tacs/tac-2002-application-dashboard-filter-chrome.json +41 -0
- package/blueprints/application-dashboard/contributions/tacs/tac-2003-application-dashboard-export-handle.json +35 -0
- package/blueprints/application-dashboard/contributions/user-stories/application-dashboard-us-19101.json +35 -0
- package/blueprints/application-dashboard/contributions/user-stories/application-dashboard-us-19102.json +35 -0
- package/blueprints/application-dashboard/contributions/user-stories/application-dashboard-us-19103.json +35 -0
- package/blueprints/application-dashboard/contributions/user-stories/application-dashboard-us-19104.json +35 -0
- package/blueprints/application-dashboard/contributions/user-stories/application-dashboard-us-19105.json +35 -0
- package/blueprints/application-dashboard/contributions/user-stories/application-dashboard-us-19106.json +35 -0
- package/blueprints/application-dashboard/contributions/user-stories/application-dashboard-us-19107.json +35 -0
- package/blueprints/application-dashboard/docs/topics.md +50 -0
- package/blueprints/application-dashboard/guide/application-dashboard.md +48 -0
- package/blueprints/application-dashboard/probe-packs/application-dashboard.pack.mjs +231 -0
- package/blueprints/application-datatable/CHANGELOG.md +8 -0
- package/blueprints/application-datatable/README.md +43 -0
- package/blueprints/application-datatable/blueprint.json +33 -0
- package/blueprints/application-datatable/contributions/adrs/adr-1801-application-datatable-pattern-choice.json +25 -0
- package/blueprints/application-datatable/contributions/adrs/adr-1802-application-datatable-url-state.json +20 -0
- package/blueprints/application-datatable/contributions/adrs/adr-1803-application-datatable-page-size.json +20 -0
- package/blueprints/application-datatable/contributions/adrs/adr-1804-application-datatable-selection-persistence.json +20 -0
- package/blueprints/application-datatable/contributions/requirements/application-datatable-req-001.json +15 -0
- package/blueprints/application-datatable/contributions/requirements/application-datatable-req-002.json +15 -0
- package/blueprints/application-datatable/contributions/requirements/application-datatable-req-003.json +15 -0
- package/blueprints/application-datatable/contributions/requirements/application-datatable-req-004.json +15 -0
- package/blueprints/application-datatable/contributions/requirements/application-datatable-req-005.json +15 -0
- package/blueprints/application-datatable/contributions/requirements/application-datatable-req-006.json +15 -0
- package/blueprints/application-datatable/contributions/tacs/tac-1801-application-datatable-shell.json +50 -0
- package/blueprints/application-datatable/contributions/tacs/tac-1802-application-datatable-query-adapter.json +39 -0
- package/blueprints/application-datatable/contributions/tacs/tac-1803-application-datatable-selection-model.json +28 -0
- package/blueprints/application-datatable/contributions/user-stories/application-datatable-us-17101.json +44 -0
- package/blueprints/application-datatable/contributions/user-stories/application-datatable-us-17102.json +44 -0
- package/blueprints/application-datatable/contributions/user-stories/application-datatable-us-17103.json +44 -0
- package/blueprints/application-datatable/contributions/user-stories/application-datatable-us-17104.json +44 -0
- package/blueprints/application-datatable/contributions/user-stories/application-datatable-us-17105.json +44 -0
- package/blueprints/application-datatable/contributions/user-stories/application-datatable-us-17106.json +44 -0
- package/blueprints/application-datatable/contributions/user-stories/application-datatable-us-17107.json +44 -0
- package/blueprints/application-datatable/contributions/user-stories/application-datatable-us-17108.json +44 -0
- package/blueprints/application-datatable/contributions/user-stories/application-datatable-us-17109.json +44 -0
- package/blueprints/application-datatable/docs/topics.md +42 -0
- package/blueprints/application-datatable/guide/application-datatable.md +38 -0
- package/blueprints/application-datatable/probe-packs/application-datatable.pack.mjs +240 -0
- package/blueprints/application-empty-error-states/CHANGELOG.md +9 -0
- package/blueprints/application-empty-error-states/README.md +88 -0
- package/blueprints/application-empty-error-states/blueprint.json +119 -0
- package/blueprints/application-empty-error-states/contributions/adrs/adr-2301-application-empty-error-states-status-contract.json +25 -0
- package/blueprints/application-empty-error-states/contributions/adrs/adr-2302-application-empty-error-states-stack-trace-visibility.json +25 -0
- package/blueprints/application-empty-error-states/contributions/adrs/adr-2303-application-empty-error-states-offline-strategy.json +25 -0
- package/blueprints/application-empty-error-states/contributions/requirements/application-empty-error-states-req-001.json +18 -0
- package/blueprints/application-empty-error-states/contributions/requirements/application-empty-error-states-req-002.json +18 -0
- package/blueprints/application-empty-error-states/contributions/requirements/application-empty-error-states-req-003.json +18 -0
- package/blueprints/application-empty-error-states/contributions/requirements/application-empty-error-states-req-004.json +18 -0
- package/blueprints/application-empty-error-states/contributions/requirements/application-empty-error-states-req-005.json +18 -0
- package/blueprints/application-empty-error-states/contributions/tacs/tac-2301-application-empty-error-states-state-machine.json +46 -0
- package/blueprints/application-empty-error-states/contributions/tacs/tac-2302-application-empty-error-states-recovery-router.json +36 -0
- package/blueprints/application-empty-error-states/contributions/tacs/tac-2303-application-empty-error-states-offline-buffer.json +40 -0
- package/blueprints/application-empty-error-states/contributions/user-stories/application-empty-error-states-us-22101.json +29 -0
- package/blueprints/application-empty-error-states/contributions/user-stories/application-empty-error-states-us-22102.json +29 -0
- package/blueprints/application-empty-error-states/contributions/user-stories/application-empty-error-states-us-22103.json +29 -0
- package/blueprints/application-empty-error-states/contributions/user-stories/application-empty-error-states-us-22104.json +29 -0
- package/blueprints/application-empty-error-states/contributions/user-stories/application-empty-error-states-us-22105.json +29 -0
- package/blueprints/application-empty-error-states/contributions/user-stories/application-empty-error-states-us-22106.json +29 -0
- package/blueprints/application-empty-error-states/contributions/user-stories/application-empty-error-states-us-22107.json +29 -0
- package/blueprints/application-empty-error-states/contributions/user-stories/application-empty-error-states-us-22108.json +29 -0
- package/blueprints/application-empty-error-states/docs/topics.md +53 -0
- package/blueprints/application-empty-error-states/guide/application-empty-error-states.md +50 -0
- package/blueprints/application-empty-error-states/probe-packs/application-empty-error-states.pack.mjs +284 -0
- package/blueprints/application-error-handling/docs/topics.md +12 -0
- package/blueprints/application-file-upload/CHANGELOG.md +9 -0
- package/blueprints/application-file-upload/README.md +85 -0
- package/blueprints/application-file-upload/blueprint.json +114 -0
- package/blueprints/application-file-upload/contributions/adrs/adr-2401-application-file-upload-transport.json +25 -0
- package/blueprints/application-file-upload/contributions/adrs/adr-2402-application-file-upload-accepted-set.json +25 -0
- package/blueprints/application-file-upload/contributions/adrs/adr-2403-application-file-upload-virus-scan.json +25 -0
- package/blueprints/application-file-upload/contributions/requirements/application-file-upload-req-001.json +18 -0
- package/blueprints/application-file-upload/contributions/requirements/application-file-upload-req-002.json +18 -0
- package/blueprints/application-file-upload/contributions/requirements/application-file-upload-req-003.json +18 -0
- package/blueprints/application-file-upload/contributions/requirements/application-file-upload-req-004.json +18 -0
- package/blueprints/application-file-upload/contributions/requirements/application-file-upload-req-005.json +18 -0
- package/blueprints/application-file-upload/contributions/tacs/tac-2401-application-file-upload-input.json +46 -0
- package/blueprints/application-file-upload/contributions/tacs/tac-2402-application-file-upload-transport.json +47 -0
- package/blueprints/application-file-upload/contributions/tacs/tac-2403-application-file-upload-progress-announcer.json +46 -0
- package/blueprints/application-file-upload/contributions/user-stories/application-file-upload-us-23101.json +28 -0
- package/blueprints/application-file-upload/contributions/user-stories/application-file-upload-us-23102.json +28 -0
- package/blueprints/application-file-upload/contributions/user-stories/application-file-upload-us-23103.json +29 -0
- package/blueprints/application-file-upload/contributions/user-stories/application-file-upload-us-23104.json +28 -0
- package/blueprints/application-file-upload/contributions/user-stories/application-file-upload-us-23105.json +29 -0
- package/blueprints/application-file-upload/contributions/user-stories/application-file-upload-us-23106.json +28 -0
- package/blueprints/application-file-upload/contributions/user-stories/application-file-upload-us-23107.json +28 -0
- package/blueprints/application-file-upload/docs/topics.md +58 -0
- package/blueprints/application-file-upload/guide/application-file-upload.md +48 -0
- package/blueprints/application-file-upload/probe-packs/application-file-upload.pack.mjs +238 -0
- package/blueprints/application-forms-wizard/CHANGELOG.md +9 -0
- package/blueprints/application-forms-wizard/README.md +102 -0
- package/blueprints/application-forms-wizard/blueprint.json +120 -0
- package/blueprints/application-forms-wizard/contributions/adrs/adr-2501-application-forms-wizard-navigation.json +25 -0
- package/blueprints/application-forms-wizard/contributions/adrs/adr-2502-application-forms-wizard-save-and-return.json +25 -0
- package/blueprints/application-forms-wizard/contributions/adrs/adr-2503-application-forms-wizard-step-indicator.json +25 -0
- package/blueprints/application-forms-wizard/contributions/requirements/application-forms-wizard-req-001.json +18 -0
- package/blueprints/application-forms-wizard/contributions/requirements/application-forms-wizard-req-002.json +18 -0
- package/blueprints/application-forms-wizard/contributions/requirements/application-forms-wizard-req-003.json +18 -0
- package/blueprints/application-forms-wizard/contributions/requirements/application-forms-wizard-req-004.json +18 -0
- package/blueprints/application-forms-wizard/contributions/requirements/application-forms-wizard-req-005.json +18 -0
- package/blueprints/application-forms-wizard/contributions/tacs/tac-2501-application-forms-wizard-task-list.json +46 -0
- package/blueprints/application-forms-wizard/contributions/tacs/tac-2502-application-forms-wizard-error-summary.json +40 -0
- package/blueprints/application-forms-wizard/contributions/tacs/tac-2503-application-forms-wizard-draft-store.json +40 -0
- package/blueprints/application-forms-wizard/contributions/user-stories/application-forms-wizard-us-24101.json +28 -0
- package/blueprints/application-forms-wizard/contributions/user-stories/application-forms-wizard-us-24102.json +29 -0
- package/blueprints/application-forms-wizard/contributions/user-stories/application-forms-wizard-us-24103.json +28 -0
- package/blueprints/application-forms-wizard/contributions/user-stories/application-forms-wizard-us-24104.json +29 -0
- package/blueprints/application-forms-wizard/contributions/user-stories/application-forms-wizard-us-24105.json +28 -0
- package/blueprints/application-forms-wizard/contributions/user-stories/application-forms-wizard-us-24106.json +28 -0
- package/blueprints/application-forms-wizard/contributions/user-stories/application-forms-wizard-us-24107.json +28 -0
- package/blueprints/application-forms-wizard/contributions/user-stories/application-forms-wizard-us-24108.json +29 -0
- package/blueprints/application-forms-wizard/docs/topics.md +49 -0
- package/blueprints/application-forms-wizard/guide/application-forms-wizard.md +48 -0
- package/blueprints/application-forms-wizard/probe-packs/application-forms-wizard.pack.mjs +233 -0
- package/blueprints/application-notifications-in-app/CHANGELOG.md +9 -0
- package/blueprints/application-notifications-in-app/README.md +80 -0
- package/blueprints/application-notifications-in-app/blueprint.json +30 -0
- package/blueprints/application-notifications-in-app/contributions/adrs/adr-2101-application-notifications-in-app-live-region-role-mapping.json +25 -0
- package/blueprints/application-notifications-in-app/contributions/adrs/adr-2102-application-notifications-in-app-toast-timeout-floor.json +25 -0
- package/blueprints/application-notifications-in-app/contributions/adrs/adr-2103-application-notifications-in-app-retention-window.json +25 -0
- package/blueprints/application-notifications-in-app/contributions/requirements/application-notifications-in-app-req-001.json +15 -0
- package/blueprints/application-notifications-in-app/contributions/requirements/application-notifications-in-app-req-002.json +15 -0
- package/blueprints/application-notifications-in-app/contributions/requirements/application-notifications-in-app-req-003.json +15 -0
- package/blueprints/application-notifications-in-app/contributions/requirements/application-notifications-in-app-req-004.json +15 -0
- package/blueprints/application-notifications-in-app/contributions/requirements/application-notifications-in-app-req-005.json +15 -0
- package/blueprints/application-notifications-in-app/contributions/tacs/tac-2101-application-notifications-in-app-live-region.json +46 -0
- package/blueprints/application-notifications-in-app/contributions/tacs/tac-2102-application-notifications-in-app-centre.json +52 -0
- package/blueprints/application-notifications-in-app/contributions/tacs/tac-2103-application-notifications-in-app-preferences.json +40 -0
- package/blueprints/application-notifications-in-app/contributions/user-stories/application-notifications-in-app-us-20101.json +35 -0
- package/blueprints/application-notifications-in-app/contributions/user-stories/application-notifications-in-app-us-20102.json +35 -0
- package/blueprints/application-notifications-in-app/contributions/user-stories/application-notifications-in-app-us-20103.json +35 -0
- package/blueprints/application-notifications-in-app/contributions/user-stories/application-notifications-in-app-us-20104.json +35 -0
- package/blueprints/application-notifications-in-app/contributions/user-stories/application-notifications-in-app-us-20105.json +35 -0
- package/blueprints/application-notifications-in-app/contributions/user-stories/application-notifications-in-app-us-20106.json +26 -0
- package/blueprints/application-notifications-in-app/contributions/user-stories/application-notifications-in-app-us-20107.json +26 -0
- package/blueprints/application-notifications-in-app/contributions/user-stories/application-notifications-in-app-us-20108.json +26 -0
- package/blueprints/application-notifications-in-app/docs/topics.md +46 -0
- package/blueprints/application-notifications-in-app/guide/application-notifications-in-app.md +47 -0
- package/blueprints/application-notifications-in-app/probe-packs/application-notifications-in-app.pack.mjs +328 -0
- package/blueprints/application-onboarding-tour/CHANGELOG.md +12 -0
- package/blueprints/application-onboarding-tour/README.md +77 -0
- package/blueprints/application-onboarding-tour/blueprint.json +164 -0
- package/blueprints/application-onboarding-tour/contributions/adrs/adr-2701-application-onboarding-tour-dismissal-policy.json +20 -0
- package/blueprints/application-onboarding-tour/contributions/adrs/adr-2702-application-onboarding-tour-completion-store-shape.json +20 -0
- package/blueprints/application-onboarding-tour/contributions/adrs/adr-2703-application-onboarding-tour-checklist-anchor.json +20 -0
- package/blueprints/application-onboarding-tour/contributions/requirements/application-onboarding-tour-req-001.json +18 -0
- package/blueprints/application-onboarding-tour/contributions/requirements/application-onboarding-tour-req-002.json +18 -0
- package/blueprints/application-onboarding-tour/contributions/requirements/application-onboarding-tour-req-003.json +18 -0
- package/blueprints/application-onboarding-tour/contributions/requirements/application-onboarding-tour-req-004.json +18 -0
- package/blueprints/application-onboarding-tour/contributions/tacs/tac-2701-application-onboarding-tour-step-runner.json +41 -0
- package/blueprints/application-onboarding-tour/contributions/tacs/tac-2702-application-onboarding-tour-checklist-slot.json +35 -0
- package/blueprints/application-onboarding-tour/contributions/tacs/tac-2703-application-onboarding-tour-completion-store.json +34 -0
- package/blueprints/application-onboarding-tour/contributions/user-stories/application-onboarding-tour-us-26101.json +27 -0
- package/blueprints/application-onboarding-tour/contributions/user-stories/application-onboarding-tour-us-26102.json +27 -0
- package/blueprints/application-onboarding-tour/contributions/user-stories/application-onboarding-tour-us-26103.json +27 -0
- package/blueprints/application-onboarding-tour/contributions/user-stories/application-onboarding-tour-us-26104.json +27 -0
- package/blueprints/application-onboarding-tour/contributions/user-stories/application-onboarding-tour-us-26105.json +27 -0
- package/blueprints/application-onboarding-tour/contributions/user-stories/application-onboarding-tour-us-26106.json +27 -0
- package/blueprints/application-onboarding-tour/contributions/user-stories/application-onboarding-tour-us-26107.json +27 -0
- package/blueprints/application-onboarding-tour/docs/topics.md +48 -0
- package/blueprints/application-onboarding-tour/guide/application-onboarding-tour.md +59 -0
- package/blueprints/application-onboarding-tour/probe-packs/application-onboarding-tour.pack.mjs +231 -0
- package/blueprints/application-spa/docs/topics.md +13 -1
- package/blueprints/delivery-ci-workflows/docs/topics.md +13 -1
- package/blueprints/deploy-cloudflare-workers/docs/topics.md +13 -1
- package/blueprints/email-smtp-resend/docs/topics.md +13 -1
- package/blueprints/object-storage-s3/CHANGELOG.md +13 -0
- package/blueprints/object-storage-s3/README.md +108 -0
- package/blueprints/object-storage-s3/blueprint.json +72 -0
- package/blueprints/object-storage-s3/contributions/adrs/adr-2901-object-storage-s3-adapter.json +30 -0
- package/blueprints/object-storage-s3/contributions/adrs/adr-2902-object-storage-s3-presigned-ttl-floor.json +25 -0
- package/blueprints/object-storage-s3/contributions/adrs/adr-2903-object-storage-s3-multipart-threshold.json +25 -0
- package/blueprints/object-storage-s3/contributions/adrs/adr-2904-object-storage-s3-contract.json +25 -0
- package/blueprints/object-storage-s3/contributions/probes/event-secrecy.mjs +103 -0
- package/blueprints/object-storage-s3/contributions/probes/facade-round-trip.mjs +43 -0
- package/blueprints/object-storage-s3/contributions/probes/multipart-upload.mjs +84 -0
- package/blueprints/object-storage-s3/contributions/probes/presigned-url.mjs +101 -0
- package/blueprints/object-storage-s3/contributions/probes/probe-utils.mjs +85 -0
- package/blueprints/object-storage-s3/contributions/probes/put-get-round-trip.mjs +84 -0
- package/blueprints/object-storage-s3/contributions/probes/r2-real-account-smoke.mjs +64 -0
- package/blueprints/object-storage-s3/contributions/probes/run-event-secrecy.mjs +4 -0
- package/blueprints/object-storage-s3/contributions/probes/run-facade-round-trip.mjs +10 -0
- package/blueprints/object-storage-s3/contributions/probes/run-multipart-upload.mjs +4 -0
- package/blueprints/object-storage-s3/contributions/probes/run-presigned-url.mjs +4 -0
- package/blueprints/object-storage-s3/contributions/probes/run-put-get-round-trip.mjs +7 -0
- package/blueprints/object-storage-s3/contributions/probes/run-r2-real-account-smoke.mjs +4 -0
- package/blueprints/object-storage-s3/contributions/requirements/object-storage-s3-req-001.json +18 -0
- package/blueprints/object-storage-s3/contributions/requirements/object-storage-s3-req-002.json +18 -0
- package/blueprints/object-storage-s3/contributions/requirements/object-storage-s3-req-003.json +18 -0
- package/blueprints/object-storage-s3/contributions/requirements/object-storage-s3-req-004.json +18 -0
- package/blueprints/object-storage-s3/contributions/requirements/object-storage-s3-req-005.json +18 -0
- package/blueprints/object-storage-s3/contributions/requirements/object-storage-s3-req-006.json +18 -0
- package/blueprints/object-storage-s3/contributions/tacs/tac-2901-object-storage-s3-facade.json +57 -0
- package/blueprints/object-storage-s3/contributions/tacs/tac-2902-object-storage-s3-multipart-uploader.json +36 -0
- package/blueprints/object-storage-s3/contributions/tacs/tac-2903-object-storage-s3-event-sink.json +36 -0
- package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28101.json +34 -0
- package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28102.json +43 -0
- package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28103.json +25 -0
- package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28104.json +34 -0
- package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28105.json +25 -0
- package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28106.json +34 -0
- package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28107.json +34 -0
- package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28108.json +34 -0
- package/blueprints/object-storage-s3/docs/topics.md +62 -0
- package/blueprints/object-storage-s3/guide/object-storage-s3.md +207 -0
- package/blueprints/observability-essentials/docs/topics.md +13 -1
- package/blueprints/observability-logging/CHANGELOG.md +9 -0
- package/blueprints/observability-logging/README.md +4 -1
- package/blueprints/observability-logging/blueprint.json +114 -21
- package/blueprints/observability-logging/docs/topics.md +12 -0
- package/blueprints/observability-probe-endpoints/docs/topics.md +13 -1
- package/blueprints/persistence-data-d1/docs/topics.md +13 -1
- package/blueprints/persistence-data-postgres/CHANGELOG.md +12 -0
- package/blueprints/persistence-data-postgres/README.md +101 -0
- package/blueprints/persistence-data-postgres/blueprint.json +80 -0
- package/blueprints/persistence-data-postgres/contributions/adrs/adr-2801-persistence-data-postgres-driver.json +30 -0
- package/blueprints/persistence-data-postgres/contributions/adrs/adr-2802-persistence-data-postgres-migration-shape.json +25 -0
- package/blueprints/persistence-data-postgres/contributions/adrs/adr-2803-persistence-data-postgres-runner-mode.json +25 -0
- package/blueprints/persistence-data-postgres/contributions/adrs/adr-2804-persistence-data-postgres-recovery.json +25 -0
- package/blueprints/persistence-data-postgres/contributions/adrs/adr-2805-persistence-data-postgres-connection-pool-posture.json +25 -0
- package/blueprints/persistence-data-postgres/contributions/probes/facade-round-trip.mjs +56 -0
- package/blueprints/persistence-data-postgres/contributions/probes/migration-apply.mjs +75 -0
- package/blueprints/persistence-data-postgres/contributions/probes/pool-posture-smoke.mjs +56 -0
- package/blueprints/persistence-data-postgres/contributions/probes/prepared-statement-scan.mjs +186 -0
- package/blueprints/persistence-data-postgres/contributions/probes/probe-utils.mjs +76 -0
- package/blueprints/persistence-data-postgres/contributions/probes/recovery-restore-round-trip.mjs +173 -0
- package/blueprints/persistence-data-postgres/contributions/probes/run-facade-round-trip.mjs +10 -0
- package/blueprints/persistence-data-postgres/contributions/probes/run-migration-apply.mjs +10 -0
- package/blueprints/persistence-data-postgres/contributions/probes/run-pool-posture-smoke.mjs +9 -0
- package/blueprints/persistence-data-postgres/contributions/probes/run-prepared-statement-scan.mjs +10 -0
- package/blueprints/persistence-data-postgres/contributions/probes/run-recovery-restore-round-trip.mjs +9 -0
- package/blueprints/persistence-data-postgres/contributions/probes/run-transaction-atomicity.mjs +10 -0
- package/blueprints/persistence-data-postgres/contributions/probes/transaction-atomicity.mjs +79 -0
- package/blueprints/persistence-data-postgres/contributions/requirements/persistence-data-postgres-req-001.json +18 -0
- package/blueprints/persistence-data-postgres/contributions/requirements/persistence-data-postgres-req-002.json +18 -0
- package/blueprints/persistence-data-postgres/contributions/requirements/persistence-data-postgres-req-003.json +18 -0
- package/blueprints/persistence-data-postgres/contributions/requirements/persistence-data-postgres-req-004.json +18 -0
- package/blueprints/persistence-data-postgres/contributions/requirements/persistence-data-postgres-req-005.json +18 -0
- package/blueprints/persistence-data-postgres/contributions/requirements/persistence-data-postgres-req-006.json +18 -0
- package/blueprints/persistence-data-postgres/contributions/requirements/persistence-data-postgres-req-007.json +18 -0
- package/blueprints/persistence-data-postgres/contributions/tacs/tac-2801-persistence-data-postgres-facade.json +58 -0
- package/blueprints/persistence-data-postgres/contributions/tacs/tac-2802-persistence-data-postgres-migration-runner.json +40 -0
- package/blueprints/persistence-data-postgres/contributions/tacs/tac-2803-persistence-data-postgres-transaction-helper.json +35 -0
- package/blueprints/persistence-data-postgres/contributions/tacs/tac-2804-persistence-data-postgres-recovery-runner.json +40 -0
- package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27101.json +34 -0
- package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27102.json +25 -0
- package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27103.json +25 -0
- package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27104.json +25 -0
- package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27105.json +25 -0
- package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27106.json +25 -0
- package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27107.json +25 -0
- package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27108.json +25 -0
- package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27109.json +25 -0
- package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27110.json +25 -0
- package/blueprints/persistence-data-postgres/docs/topics.md +64 -0
- package/blueprints/persistence-data-postgres/guide/persistence-data-postgres.md +172 -0
- package/blueprints/persistence-data-sqlite/docs/topics.md +13 -1
- package/blueprints/security-auth-clerk/CHANGELOG.md +9 -0
- package/blueprints/security-auth-clerk/README.md +3 -0
- package/blueprints/security-auth-clerk/blueprint.json +147 -29
- package/blueprints/security-auth-clerk/docs/topics.md +13 -1
- package/blueprints/security-auth-keycloak/CHANGELOG.md +9 -0
- package/blueprints/security-auth-keycloak/README.md +3 -0
- package/blueprints/security-auth-keycloak/blueprint.json +182 -36
- package/blueprints/security-auth-keycloak/docs/topics.md +13 -1
- package/blueprints/security-auth-magic-link/CHANGELOG.md +9 -0
- package/blueprints/security-auth-magic-link/README.md +3 -0
- package/blueprints/security-auth-magic-link/blueprint.json +159 -32
- package/blueprints/security-auth-magic-link/docs/topics.md +13 -1
- package/blueprints/security-auth-oauth2/CHANGELOG.md +9 -0
- package/blueprints/security-auth-oauth2/README.md +3 -0
- package/blueprints/security-auth-oauth2/blueprint.json +158 -31
- package/blueprints/security-auth-oauth2/docs/topics.md +13 -1
- package/blueprints/security-secrets-management/CHANGELOG.md +11 -0
- package/blueprints/security-secrets-management/blueprint.json +2 -1
- package/blueprints/security-secrets-management/docs/topics.md +13 -1
- package/fixtures/canary-manifest.json +9 -9
- package/package.json +2 -2
- package/rcf/code-nodes/cn-106.json +13 -0
- package/rcf/code-nodes/cn-107.json +14 -0
- package/rcf/code-nodes/cn-108.json +13 -0
- package/rcf/code-nodes/cn-109.json +12 -0
- package/rcf/code-nodes/cn-110.json +12 -0
- package/rcf/code-nodes/cn-111.json +14 -0
- package/rcf/code-nodes/cn-112.json +14 -0
- package/rcf/code-nodes/cn-113.json +12 -0
- package/rcf/code-nodes/cn-114.json +13 -0
- package/rcf/code-nodes/cn-115.json +13 -0
- package/rcf/code-nodes/cn-116.json +12 -0
- package/rcf/code-nodes/cn-117.json +13 -0
- package/rcf/code-nodes/cn-118.json +13 -0
- package/rcf/code-nodes/cn-119.json +13 -0
- package/rcf/code-nodes/cn-120.json +13 -0
- package/rcf/code-nodes/cn-121.json +12 -0
- package/rcf/code-nodes/cn-122.json +12 -0
- package/rcf/code-nodes/cn-123.json +13 -0
- package/rcf/code-nodes/cn-124.json +13 -0
- package/rcf/code-nodes/cn-125.json +13 -0
- package/rcf/code-nodes/cn-126.json +13 -0
- package/rcf/code-nodes/cn-127.json +12 -0
- package/rcf/code-nodes/cn-128.json +14 -0
- package/rcf/code-nodes/cn-129.json +14 -0
- package/rcf/code-nodes/cn-130.json +14 -0
- package/rcf/code-nodes/cn-131.json +15 -0
- package/rcf/code-nodes/cn-132.json +12 -0
- package/rcf/code-nodes/cn-133.json +13 -0
- package/rcf/code-nodes/cn-134.json +13 -0
- package/rcf/code-nodes/cn-135.json +12 -0
- package/rcf/code-nodes/cn-136.json +13 -0
- package/rcf/code-nodes/cn-137.json +13 -0
- package/rcf/code-nodes/cn-138.json +12 -0
- package/rcf/code-nodes/cn-139.json +12 -0
- package/rcf/code-nodes/cn-140.json +13 -0
- package/rcf/code-nodes/cn-141.json +13 -0
- package/rcf/code-nodes/cn-142.json +12 -0
- package/rcf/code-nodes/cn-143.json +13 -0
- package/rcf/code-nodes/cn-144.json +13 -0
- package/rcf/code-nodes/cn-145.json +12 -0
- package/rcf/code-nodes/cn-146.json +12 -0
- package/rcf/code-nodes/cn-147.json +13 -0
- package/rcf/code-nodes/cn-148.json +13 -0
- package/rcf/code-nodes/cn-149.json +12 -0
- package/rcf/code-nodes/cn-150.json +13 -0
- package/rcf/code-nodes/cn-151.json +13 -0
- package/rcf/code-nodes/cn-152.json +12 -0
- package/rcf/code-nodes/cn-153.json +12 -0
- package/rcf/code-nodes/cn-154.json +13 -0
- package/rcf/code-nodes/cn-155.json +14 -0
- package/rcf/code-nodes/cn-156.json +13 -0
- package/rcf/code-nodes/cn-157.json +13 -0
- package/rcf/code-nodes/cn-158.json +12 -0
- package/rcf/code-nodes/cn-159.json +13 -0
- package/rcf/code-nodes/cn-160.json +12 -0
- package/rcf/code-nodes/cn-161.json +12 -0
- package/rcf/code-nodes/cn-162.json +13 -0
- package/rcf/code-nodes/cn-163.json +12 -0
- package/rcf/code-nodes/cn-164.json +13 -0
- package/rcf/code-nodes/cn-165.json +12 -0
- package/rcf/code-nodes/cn-166.json +12 -0
- package/rcf/code-nodes/cn-167.json +12 -0
- package/rcf/code-nodes/cn-168.json +12 -0
- package/rcf/code-nodes/cn-169.json +12 -0
- package/rcf/code-nodes/cn-170.json +12 -0
- package/rcf/code-nodes/cn-171.json +12 -0
- package/rcf/code-nodes/cn-172.json +12 -0
- package/rcf/code-nodes/cn-173.json +12 -0
- package/rcf/code-nodes/cn-174.json +12 -0
- package/rcf/code-nodes/cn-175.json +13 -0
- package/rcf/code-nodes/cn-176.json +12 -0
- package/rcf/code-nodes/cn-177.json +12 -0
- package/rcf/code-nodes/cn-178.json +12 -0
- package/rcf/code-nodes/cn-179.json +12 -0
- package/rcf/code-nodes/cn-180.json +13 -0
- package/rcf/code-nodes/cn-181.json +12 -0
- package/rcf/code-nodes/cn-182.json +13 -0
- package/rcf/code-nodes/cn-183.json +12 -0
- package/rcf/code-nodes/cn-184.json +13 -0
- package/rcf/code-nodes/cn-185.json +12 -0
- package/rcf/code-nodes/cn-186.json +12 -0
- package/rcf/code-nodes/cn-200.json +14 -0
- package/rcf/code-nodes/cn-201.json +13 -0
- package/rcf/code-nodes/cn-202.json +14 -0
- package/rcf/code-nodes/cn-203.json +14 -0
- package/rcf/code-nodes/cn-204.json +13 -0
- package/rcf/code-nodes/cn-205.json +14 -0
- package/rcf/fbs/fbs-036.json +22 -0
- package/rcf/fbs/fbs-037.json +19 -0
- package/rcf/fbs/fbs-038.json +19 -0
- package/rcf/fbs/fbs-039.json +21 -0
- package/rcf/fbs/fbs-040.json +20 -0
- package/rcf/fbs/fbs-041.json +13 -0
- package/rcf/fbs/fbs-042.json +13 -0
- package/rcf/fbs/fbs-043.json +23 -0
- package/rcf/fbs/fbs-044.json +23 -0
- package/rcf/fbs/fbs-045.json +23 -0
- package/rcf/fbs/fbs-046.json +24 -0
- package/rcf/fbs/fbs-047.json +24 -0
- package/rcf/fbs/fbs-060.json +22 -0
- package/rcf/fbs/fbs-061.json +20 -0
- package/rcf/requirements/req-017.json +18 -0
- package/rcf/requirements/req-018.json +18 -0
- package/rcf/requirements/req-019.json +38 -0
- package/rcf/requirements/req-020.json +13 -0
- package/rcf/requirements/req-021.json +13 -0
- package/rcf/requirements/req-022.json +13 -0
- package/rcf/requirements/req-023.json +14 -0
- package/rcf/requirements/req-024.json +69 -0
- package/rcf/requirements/req-025.json +59 -0
- package/rcf/requirements/req-026.json +154 -0
- package/rcf/requirements/req-027.json +33 -0
- package/rcf/requirements/req-028.json +13 -0
- package/rcf/requirements/req-040.json +13 -0
- package/rcf/requirements/req-041.json +125 -0
- package/rcf/test-suites/ts-046.json +78 -0
- package/rcf/test-suites/ts-047.json +54 -0
- package/rcf/test-suites/ts-048.json +54 -0
- package/rcf/test-suites/ts-049.json +70 -0
- package/rcf/test-suites/ts-050.json +69 -0
- package/rcf/test-suites/ts-051.json +22 -0
- package/rcf/test-suites/ts-052.json +20 -0
- package/rcf/test-suites/ts-053.json +70 -0
- package/rcf/test-suites/ts-054.json +70 -0
- package/rcf/test-suites/ts-055.json +77 -0
- package/rcf/test-suites/ts-056.json +78 -0
- package/rcf/test-suites/ts-057.json +78 -0
- package/rcf/test-suites/ts-070.json +62 -0
- package/rcf/test-suites/ts-071.json +62 -0
- package/rcf/user-stories/us-1701.json +56 -0
- package/rcf/user-stories/us-1801.json +40 -0
- package/rcf/user-stories/us-1901.json +40 -0
- package/rcf/user-stories/us-2001.json +50 -0
- package/rcf/user-stories/us-2101.json +45 -0
- package/rcf/user-stories/us-2201.json +60 -0
- package/rcf/user-stories/us-2301.json +51 -0
- package/rcf/user-stories/us-2401.json +62 -0
- package/rcf/user-stories/us-2501.json +58 -0
- package/rcf/user-stories/us-2601.json +51 -0
- package/rcf/user-stories/us-2701.json +55 -0
- package/rcf/user-stories/us-2801.json +55 -0
- package/rcf/user-stories/us-4001.json +69 -0
- package/rcf/user-stories/us-4101.json +69 -0
- package/releases/releases.yaml +21 -1
- package/src/blueprint/apply.js +107 -1
- package/src/blueprint/capabilities.js +357 -0
- package/src/blueprint/loader.js +247 -0
- package/src/browser-verify/boot.js +180 -0
- package/src/browser-verify/index.js +13 -0
- package/src/browser-verify/manifest-writer.js +31 -6
- package/src/browser-verify/pack-browser.js +294 -0
- package/src/browser-verify/pack-loader.js +176 -0
- package/src/browser-verify/pack-runner.js +193 -0
- package/src/browser-verify/pack-schema.js +155 -0
- package/src/browser-verify/runner.js +24 -1
- package/src/cli/blueprint.js +99 -0
- package/src/cli/browser-verify.js +147 -7
- package/src/core/errors/index.js +7 -0
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slug": "application-forms-wizard",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"category": "application",
|
|
5
|
+
"suggestedCompanions": [
|
|
6
|
+
{
|
|
7
|
+
"role": "logging",
|
|
8
|
+
"reason": "Every step transition, validation failure and save-and-return event writes one request-scoped log line with the correlation identifier and the step slug through the applied logger factory."
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
"role": "errorHandling",
|
|
12
|
+
"reason": "The error-summary contract constructs an internal error record per failed field through the applied error-handling factory so the aria-describedby binding renders a consistent message shape across steps."
|
|
13
|
+
}
|
|
14
|
+
],
|
|
15
|
+
"contributions": [
|
|
16
|
+
{
|
|
17
|
+
"id": "application-forms-wizard-REQ-001",
|
|
18
|
+
"kind": "req",
|
|
19
|
+
"path": "requirements/application-forms-wizard-req-001.json"
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"id": "application-forms-wizard-REQ-002",
|
|
23
|
+
"kind": "req",
|
|
24
|
+
"path": "requirements/application-forms-wizard-req-002.json"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"id": "application-forms-wizard-REQ-003",
|
|
28
|
+
"kind": "req",
|
|
29
|
+
"path": "requirements/application-forms-wizard-req-003.json"
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"id": "application-forms-wizard-REQ-004",
|
|
33
|
+
"kind": "req",
|
|
34
|
+
"path": "requirements/application-forms-wizard-req-004.json"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"id": "application-forms-wizard-REQ-005",
|
|
38
|
+
"kind": "req",
|
|
39
|
+
"path": "requirements/application-forms-wizard-req-005.json"
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"id": "application-forms-wizard-US-24101",
|
|
43
|
+
"kind": "us",
|
|
44
|
+
"path": "user-stories/application-forms-wizard-us-24101.json"
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"id": "application-forms-wizard-US-24102",
|
|
48
|
+
"kind": "us",
|
|
49
|
+
"path": "user-stories/application-forms-wizard-us-24102.json"
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"id": "application-forms-wizard-US-24103",
|
|
53
|
+
"kind": "us",
|
|
54
|
+
"path": "user-stories/application-forms-wizard-us-24103.json"
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"id": "application-forms-wizard-US-24104",
|
|
58
|
+
"kind": "us",
|
|
59
|
+
"path": "user-stories/application-forms-wizard-us-24104.json"
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"id": "application-forms-wizard-US-24105",
|
|
63
|
+
"kind": "us",
|
|
64
|
+
"path": "user-stories/application-forms-wizard-us-24105.json"
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"id": "application-forms-wizard-US-24106",
|
|
68
|
+
"kind": "us",
|
|
69
|
+
"path": "user-stories/application-forms-wizard-us-24106.json"
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"id": "application-forms-wizard-US-24107",
|
|
73
|
+
"kind": "us",
|
|
74
|
+
"path": "user-stories/application-forms-wizard-us-24107.json"
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"id": "application-forms-wizard-US-24108",
|
|
78
|
+
"kind": "us",
|
|
79
|
+
"path": "user-stories/application-forms-wizard-us-24108.json"
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"id": "TAC-2501-application-forms-wizard-task-list",
|
|
83
|
+
"kind": "tac",
|
|
84
|
+
"path": "tacs/tac-2501-application-forms-wizard-task-list.json"
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
"id": "TAC-2502-application-forms-wizard-error-summary",
|
|
88
|
+
"kind": "tac",
|
|
89
|
+
"path": "tacs/tac-2502-application-forms-wizard-error-summary.json"
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
"id": "TAC-2503-application-forms-wizard-draft-store",
|
|
93
|
+
"kind": "tac",
|
|
94
|
+
"path": "tacs/tac-2503-application-forms-wizard-draft-store.json"
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
"id": "ADR-2501-application-forms-wizard-navigation",
|
|
98
|
+
"kind": "adr",
|
|
99
|
+
"path": "adrs/adr-2501-application-forms-wizard-navigation.json",
|
|
100
|
+
"recommendedDefault": true,
|
|
101
|
+
"elicited": true,
|
|
102
|
+
"standardsTraceClause": "GOV.UK Design System step-by-step navigation pattern"
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
"id": "ADR-2502-application-forms-wizard-save-and-return",
|
|
106
|
+
"kind": "adr",
|
|
107
|
+
"path": "adrs/adr-2502-application-forms-wizard-save-and-return.json",
|
|
108
|
+
"elicited": true,
|
|
109
|
+
"standardsTraceClause": "GOV.UK Design System save and return pattern; generic enterprise practice"
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
"id": "ADR-2503-application-forms-wizard-step-indicator",
|
|
113
|
+
"kind": "adr",
|
|
114
|
+
"path": "adrs/adr-2503-application-forms-wizard-step-indicator.json",
|
|
115
|
+
"recommendedDefault": true,
|
|
116
|
+
"elicited": true,
|
|
117
|
+
"standardsTraceClause": "GOV.UK Design System task list pattern; WCAG 2.2 SC 2.4.6 Headings and Labels"
|
|
118
|
+
}
|
|
119
|
+
]
|
|
120
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
{
|
|
2
|
+
"adrId": "ADR-2501-application-forms-wizard-navigation",
|
|
3
|
+
"prdId": "PRD-001",
|
|
4
|
+
"tadId": "TAD-001",
|
|
5
|
+
"version": "1.0.0",
|
|
6
|
+
"status": "accepted",
|
|
7
|
+
"title": "Step navigation posture is linear by default with free-step as the elicited alternative",
|
|
8
|
+
"context": "Wizards divide on how much freedom the operator has to jump between steps. A linear posture forbids advancing until the current step is Completed and disables backward jumps to steps whose prerequisites the domain says must be Completed first (an application with a payment step gated on shipping details, say). A free posture lets the operator pick any step at any time and computes the completion states independently. Neither is wrong; the choice is a per-project posture driven by the domain the wizard serves. GOV.UK Design System publishes the step-by-step navigation pattern as the widely-adopted linear model.",
|
|
9
|
+
"decision": "Adopt linear as the recommended default. The shipped task-list disables rows whose [data-step-state] is Cannot start yet by rendering them as spans without an href. Projects that want free navigation elicit ADR-2501 to the free branch and every row renders as an anchor. recommendedDefault is true because linear is the safer starting posture for a domain the shelf blueprint does not know; elicited is true because the switch is a real per-project answer.",
|
|
10
|
+
"consequences": "Projects on the default get a linear wizard out of the box with no configuration; the task-list refuses out-of-order entry and the operator walks the manifest in order. Projects electing free get an unconstrained task-list at the price of surfacing every prerequisite the domain implies through the manifest and the copy. All three step-indicator shapes (ADR-2503) render on both branches; the difference is only the click-through on rows whose prerequisites are unfinished.",
|
|
11
|
+
"alternativesConsidered": [
|
|
12
|
+
{
|
|
13
|
+
"name": "Free-step as the shipped default",
|
|
14
|
+
"summary": "Ship free navigation everywhere and rely on per-step validation to catch out-of-order entries.",
|
|
15
|
+
"reasonNotChosen": "Loses the affordance the domain often needs (a payment step should not be reachable before shipping details); reads as more forgiving but pushes the domain rule into copy rather than into the surface."
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"name": "Two-step wizard with no task-list",
|
|
19
|
+
"summary": "Ship no task-list at all and rely on Back and Next.",
|
|
20
|
+
"reasonNotChosen": "Loses the completion overview and the ARIA progressbar; a wizard with three or more steps benefits materially from the task-list surface."
|
|
21
|
+
}
|
|
22
|
+
],
|
|
23
|
+
"createdAt": "2026-09-06T18:00:00Z",
|
|
24
|
+
"updatedAt": "2026-09-06T18:00:00Z"
|
|
25
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
{
|
|
2
|
+
"adrId": "ADR-2502-application-forms-wizard-save-and-return",
|
|
3
|
+
"prdId": "PRD-001",
|
|
4
|
+
"tadId": "TAD-001",
|
|
5
|
+
"version": "1.0.0",
|
|
6
|
+
"status": "accepted",
|
|
7
|
+
"title": "Save-and-return transport ships as server-side draft table or client-side local buffer with no recommendedDefault",
|
|
8
|
+
"context": "The abandoned-draft loss class is genuinely per-project. An application whose operators sign in on shared kiosks with rotating identities cannot rely on a local buffer keyed to the browser; the draft must live on a server-side draft table keyed to the operator identifier so the operator can walk to a different device and continue. An application whose operators run on a single personal device with intermittent connectivity is better served by a local buffer that survives a network drop and syncs on the next flush. A shipped default in either direction quietly ships the wrong loss class for at least one common posture, so this blueprint declines to pick one.",
|
|
9
|
+
"decision": "Ship two transports: server-draft-table (POST /drafts and GET /drafts against operator-configured endpoints) and client-local-buffer (localStorage keyed by wizard slug and step slug with a per-write ISO-8601 sync tick). ADR-2502 records the elicit as required, elicited is true, and no recommendedDefault is committed: a project applying application-forms-wizard MUST answer the elicit and the build gate refuses when neither transport is wired. The GOV.UK Design System save and return pattern informs the server branch; the local branch is generic enterprise practice.",
|
|
10
|
+
"consequences": "Projects with a server-side draft table get audit-trail-clean per-operator persistence at the price of a server endpoint and a persistence adapter. Projects with a client-side local buffer get zero-server-work persistence at the price of losing drafts when the operator switches device. A project that has not decided cannot silently ship on the shelf default because there is none; the elicit is a real gate. The pack drives both transports on the sample fixture and refuses on the ?draft-store=none branch to prove the missing-transport case fails at severity block.",
|
|
11
|
+
"alternativesConsidered": [
|
|
12
|
+
{
|
|
13
|
+
"name": "Server-only as the shipped default",
|
|
14
|
+
"summary": "Ship server-draft-table as the sole transport and refuse projects without a server endpoint.",
|
|
15
|
+
"reasonNotChosen": "Refuses to apply on a hobby SPA with no server; the shelf blueprint has to be reachable by every applied posture."
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"name": "Local-only as the shipped default",
|
|
19
|
+
"summary": "Ship client-local-buffer as the sole transport and refuse projects with cross-device operators.",
|
|
20
|
+
"reasonNotChosen": "Ships the wrong loss class for kiosk-shape and multi-device operators; audit-trail-first projects cannot use it."
|
|
21
|
+
}
|
|
22
|
+
],
|
|
23
|
+
"createdAt": "2026-09-06T18:00:00Z",
|
|
24
|
+
"updatedAt": "2026-09-06T18:00:00Z"
|
|
25
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
{
|
|
2
|
+
"adrId": "ADR-2503-application-forms-wizard-step-indicator",
|
|
3
|
+
"prdId": "PRD-001",
|
|
4
|
+
"tadId": "TAD-001",
|
|
5
|
+
"version": "1.0.0",
|
|
6
|
+
"status": "accepted",
|
|
7
|
+
"title": "Step indicator shape defaults to task-list, with ARIA progressbar and breadcrumb as elicited alternatives",
|
|
8
|
+
"context": "Wizards indicate the operator's position through one of three widely-adopted shapes. A task-list (the GOV.UK Design System task list pattern) surfaces every step as a row with a completion state; the operator sees the whole shape at a glance and can jump to a specific step. An ARIA progressbar surfaces a single wrapper carrying aria-valuenow and aria-valuemax; the operator gets a compact completion count without a per-step enumeration. A breadcrumb surfaces the linear path with the current step highlighted; the operator sees the trail and can walk back but does not see the future steps' state. All three satisfy WCAG 2.2 SC 2.4.6 Headings and Labels; the choice is a per-project posture driven by the wizard's shape and the design system.",
|
|
9
|
+
"decision": "Adopt task-list as the recommended default; the shipped surface renders it with the ARIA progressbar wrapper on top per REQ-001 so every project gets the completion count for free. Projects that prefer a compact indicator elicit the aria-progressbar-only branch and the task-list rows collapse into the progressbar's aria-valuetext. Projects that prefer a trail elicit the breadcrumb branch and the task-list rows render as breadcrumb entries. recommendedDefault is true on task-list; elicited is true because the alternative is a real per-project answer.",
|
|
10
|
+
"consequences": "Projects on the default get the task-list plus the progressbar with no configuration; the pack anchors on the task-list surface and the progressbar wrapper. Projects electing aria-progressbar-only lose the per-step enumeration and the row jump; the pack skips AC-24106-1 (linear-vs-free row rendering has no rows). Projects electing breadcrumb keep the trail affordance and lose the future-state enumeration; the pack asserts the breadcrumb entries in place of the task-list rows.",
|
|
11
|
+
"alternativesConsidered": [
|
|
12
|
+
{
|
|
13
|
+
"name": "ARIA progressbar as the shipped default",
|
|
14
|
+
"summary": "Ship the compact progressbar and no task-list.",
|
|
15
|
+
"reasonNotChosen": "Loses the completion overview and the row-jump affordance; a wizard with three or more steps benefits materially from the task-list."
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"name": "Breadcrumb as the shipped default",
|
|
19
|
+
"summary": "Ship the trail and no task-list.",
|
|
20
|
+
"reasonNotChosen": "Loses the future-step state enumeration; the operator cannot see at a glance what remains."
|
|
21
|
+
}
|
|
22
|
+
],
|
|
23
|
+
"createdAt": "2026-09-06T18:00:00Z",
|
|
24
|
+
"updatedAt": "2026-09-06T18:00:00Z"
|
|
25
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"reqId": "application-forms-wizard-REQ-001",
|
|
3
|
+
"prdId": "PRD-001",
|
|
4
|
+
"title": "Task-list contract: per-step completion state announced through the GOV.UK vocabulary Cannot start yet, Not started, In progress, Completed",
|
|
5
|
+
"description": "The wizard renders a task-list surface listing every step in a stable order. Each step exposes one of four completion states from the closed GOV.UK vocabulary: Cannot start yet (a prerequisite step is unfinished), Not started (the step is reachable but has no answers), In progress (the step has partial answers), Completed (the step is fully valid). The task-list carries an ARIA progressbar shape naming the total step count and the number completed. The four state strings are a closed enum at v1.0.0; a fifth state is a v1.1.0 minor bump. The surface anchors on TAC-2501 (task-list shell) and is vendor-neutral: the blueprint contributes WHAT strings under WHAT condition, not the visual token set.",
|
|
6
|
+
"category": "functional",
|
|
7
|
+
"domain": "application",
|
|
8
|
+
"priority": "must",
|
|
9
|
+
"rationale": "Per visual round 4 spec section 5.3, REQ 1.",
|
|
10
|
+
"tags": [
|
|
11
|
+
"blueprint:application-forms-wizard",
|
|
12
|
+
"category:01-task-list-contract"
|
|
13
|
+
],
|
|
14
|
+
"version": "1.0.0",
|
|
15
|
+
"status": "approved",
|
|
16
|
+
"createdAt": "2026-09-06T18:00:00Z",
|
|
17
|
+
"updatedAt": "2026-09-06T18:00:00Z"
|
|
18
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"reqId": "application-forms-wizard-REQ-002",
|
|
3
|
+
"prdId": "PRD-001",
|
|
4
|
+
"title": "Per-step validation timing: on-blur before first submit, then on-change after the first failure, and a full pass on submit reusing the SPA forms-engine",
|
|
5
|
+
"description": "Every step validates its own answers before advancing. Validation timing is on-blur before the first submit attempt on a step (a field validates when the operator leaves it), then on-change after the first submit failure on that field (so the operator sees the message clear as they correct it), and a full pass on submit that rebuilds the error set from scratch. Validation delegates to the SPA blueprint's forms-engine TAC-205 so a project already applying application-spa does not compose two overlapping engines. On refusal the engine surfaces the failed fields to the error-summary contract (REQ-003). The timing rule is a closed set at v1.0.0; different projects can elicit stricter (validate on every change from the start) via a project-level ADR but the shipped default is the three-mode rule above.",
|
|
6
|
+
"category": "functional",
|
|
7
|
+
"domain": "application",
|
|
8
|
+
"priority": "must",
|
|
9
|
+
"rationale": "Per visual round 4 spec section 5.3, REQ 2.",
|
|
10
|
+
"tags": [
|
|
11
|
+
"blueprint:application-forms-wizard",
|
|
12
|
+
"category:02-validation-timing"
|
|
13
|
+
],
|
|
14
|
+
"version": "1.0.0",
|
|
15
|
+
"status": "approved",
|
|
16
|
+
"createdAt": "2026-09-06T18:00:00Z",
|
|
17
|
+
"updatedAt": "2026-09-06T18:00:00Z"
|
|
18
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"reqId": "application-forms-wizard-REQ-003",
|
|
3
|
+
"prdId": "PRD-001",
|
|
4
|
+
"title": "Error-summary contract: top-of-page summary with skip links per failed field, aria-invalid on the field, and focus moved to the summary heading on submit failure",
|
|
5
|
+
"description": "On submit refusal the step renders a top-of-page error summary region carrying a heading and one skip link per failed field. Each skip link's target is a focusable field element; the field carries aria-invalid=\"true\" while unresolved and aria-describedby pointing at the field-level error message. On submit failure the client moves focus to the summary heading so a screen-reader user hears the error class and can walk the skip links; visual users see the heading anchor scroll into view. The summary and per-field bindings anchor on TAC-2502 (error-summary contract). Per WCAG 2.2 SC 3.3.1 Error Identification and SC 3.3.3 Error Suggestion.",
|
|
6
|
+
"category": "functional",
|
|
7
|
+
"domain": "application",
|
|
8
|
+
"priority": "must",
|
|
9
|
+
"rationale": "Per visual round 4 spec section 5.3, REQ 3.",
|
|
10
|
+
"tags": [
|
|
11
|
+
"blueprint:application-forms-wizard",
|
|
12
|
+
"category:03-error-summary"
|
|
13
|
+
],
|
|
14
|
+
"version": "1.0.0",
|
|
15
|
+
"status": "approved",
|
|
16
|
+
"createdAt": "2026-09-06T18:00:00Z",
|
|
17
|
+
"updatedAt": "2026-09-06T18:00:00Z"
|
|
18
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"reqId": "application-forms-wizard-REQ-004",
|
|
3
|
+
"prdId": "PRD-001",
|
|
4
|
+
"title": "Summary-review contract: a summary-list rendering per step with Change links returning to each step and retaining every other answer on save",
|
|
5
|
+
"description": "After every step is Completed (per REQ-001) the wizard renders a summary-review surface: one summary-list section per step, each row a definition-list entry naming the field label and the operator's answer, and a Change link per row that navigates to the step with the field focused. Editing on the target step and saving returns to the summary-review surface with every other answer retained; only the edited answer is updated. The summary-list shape follows the GOV.UK Design System summary-list pattern. Per WCAG 2.2 SC 3.3.4 Error Prevention (Legal, Financial, Data): the summary-review is the last checkpoint before submission and every answer is reversible up to submit.",
|
|
6
|
+
"category": "functional",
|
|
7
|
+
"domain": "application",
|
|
8
|
+
"priority": "must",
|
|
9
|
+
"rationale": "Per visual round 4 spec section 5.3, REQ 4.",
|
|
10
|
+
"tags": [
|
|
11
|
+
"blueprint:application-forms-wizard",
|
|
12
|
+
"category:04-summary-review"
|
|
13
|
+
],
|
|
14
|
+
"version": "1.0.0",
|
|
15
|
+
"status": "approved",
|
|
16
|
+
"createdAt": "2026-09-06T18:00:00Z",
|
|
17
|
+
"updatedAt": "2026-09-06T18:00:00Z"
|
|
18
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"reqId": "application-forms-wizard-REQ-005",
|
|
3
|
+
"prdId": "PRD-001",
|
|
4
|
+
"title": "Save-and-return contract: a server-side draft table or a client-side local buffer with a sync tick; refuses to ship if neither is wired",
|
|
5
|
+
"description": "The wizard commits partial answers between steps to a draft store so an operator can leave the surface and return without losing progress. Two transports ship: a server-side draft table (POST /drafts persists per-operator per-wizard rows, GET /drafts hydrates on return) and a client-side local buffer (localStorage keyed by operator identifier and wizard slug with a per-write sync tick). ADR-2502 commits to no recommendedDefault because the abandoned-draft loss class is genuinely per-project. A wizard that ships without either transport is refused at build gate: the draft-store TAC is a required companion. Per WCAG 2.2 SC 3.3.7 Redundant Entry: information the operator has already entered is preserved across sessions and not re-solicited.",
|
|
6
|
+
"category": "functional",
|
|
7
|
+
"domain": "application",
|
|
8
|
+
"priority": "must",
|
|
9
|
+
"rationale": "Per visual round 4 spec section 5.3, REQ 5.",
|
|
10
|
+
"tags": [
|
|
11
|
+
"blueprint:application-forms-wizard",
|
|
12
|
+
"category:05-save-and-return"
|
|
13
|
+
],
|
|
14
|
+
"version": "1.0.0",
|
|
15
|
+
"status": "approved",
|
|
16
|
+
"createdAt": "2026-09-06T18:00:00Z",
|
|
17
|
+
"updatedAt": "2026-09-06T18:00:00Z"
|
|
18
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
{
|
|
2
|
+
"tacId": "TAC-2501-application-forms-wizard-task-list",
|
|
3
|
+
"prdId": "PRD-001",
|
|
4
|
+
"tadId": "TAD-001",
|
|
5
|
+
"version": "1.0.0",
|
|
6
|
+
"status": "approved",
|
|
7
|
+
"name": "Wizard task-list shell",
|
|
8
|
+
"purpose": "Owns the task-list surface of the wizard: the ordered enumeration of steps, the per-step completion-state slot from the closed GOV.UK vocabulary, the ARIA progressbar wrapper, and the linear-or-free navigation gate. Every AC on REQ-001 anchors on this TAC, and every AC that reads step order anchors here.",
|
|
9
|
+
"responsibilities": [
|
|
10
|
+
"Enumerate every step in a stable order derived from the elicited step manifest and render one [data-step-slug] row per step (AC-24101-1).",
|
|
11
|
+
"Render [data-step-state] on every row from the closed enum {Cannot start yet, Not started, In progress, Completed} (AC-24101-1).",
|
|
12
|
+
"Render an ARIA progressbar wrapper on the surface with aria-valuenow (completed count), aria-valuemax (total step count) and aria-valuetext naming the completion in words (AC-24101-1).",
|
|
13
|
+
"Honour the ADR-2501 linear-vs-free branch by rendering rows whose prerequisites are unfinished as non-anchor spans on linear and as anchors on free (AC-24106-1).",
|
|
14
|
+
"Delegate to TAC-2503 to hydrate step states from the draft store on entry and to persist step completion transitions on advance."
|
|
15
|
+
],
|
|
16
|
+
"internalStructure": "One task-list module the shell mounts on the /task-list route. On mount it reads the step manifest, reads the draft store for the operator's per-step answers, computes the per-step completion state from the answers, renders the enumeration, and wires the row-click handler to the linear-vs-free branch. On step advance the module recomputes the state for the just-completed step and updates the progressbar aria-valuenow. Framework is not prescribed; the module's interfaces are what the project realises against React, Vue, Svelte or vanilla DOM.",
|
|
17
|
+
"interfaces": [
|
|
18
|
+
{
|
|
19
|
+
"name": "renderTaskList",
|
|
20
|
+
"kind": "factory",
|
|
21
|
+
"description": "renderTaskList({ manifest, answers, nav }) -> void. Renders the shell and wires the row handlers."
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"name": "computeStepState",
|
|
25
|
+
"kind": "factory",
|
|
26
|
+
"description": "computeStepState({ step, answers }) -> stateString. Returns one of {Cannot start yet, Not started, In progress, Completed}."
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"name": "statesEnum",
|
|
30
|
+
"kind": "shape",
|
|
31
|
+
"description": "The four state strings are the closed enum {\"Cannot start yet\", \"Not started\", \"In progress\", \"Completed\"}. A fifth state is a v1.1.0 minor bump."
|
|
32
|
+
}
|
|
33
|
+
],
|
|
34
|
+
"dependencies": [
|
|
35
|
+
{
|
|
36
|
+
"name": "Draft store",
|
|
37
|
+
"kind": "tac",
|
|
38
|
+
"tacId": "TAC-2503-application-forms-wizard-draft-store",
|
|
39
|
+
"description": "The task-list reads the draft store on entry and writes on advance."
|
|
40
|
+
}
|
|
41
|
+
],
|
|
42
|
+
"tradeoffs": "One task-list module keeps the enumeration deterministic and lint-checkable but ties every step to a manifest entry the project supplies. A project rendering the wizard without a task-list (a single-flow submit surface with no completion overview) does not apply this TAC; the wizard-shell TACs still hold. Known mechanism-reach gap: the pack asserts row order and state strings but does not additionally probe that focus moves to the task-list on route entry; a v1.1.0 minor bump can drive the accessibility tree.",
|
|
43
|
+
"notes": "See README Known mechanism-reach gaps.",
|
|
44
|
+
"createdAt": "2026-09-06T18:00:00Z",
|
|
45
|
+
"updatedAt": "2026-09-06T18:00:00Z"
|
|
46
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
{
|
|
2
|
+
"tacId": "TAC-2502-application-forms-wizard-error-summary",
|
|
3
|
+
"prdId": "PRD-001",
|
|
4
|
+
"tadId": "TAD-001",
|
|
5
|
+
"version": "1.0.0",
|
|
6
|
+
"status": "approved",
|
|
7
|
+
"name": "Wizard error-summary contract",
|
|
8
|
+
"purpose": "Owns the top-of-page error-summary contract on submit refusal: the summary region, the skip-link binding per failed field, the aria-invalid and aria-describedby marking on the fields themselves, the focus move to the summary heading, and the validation-timing gate the SPA forms-engine drives per REQ-002. Every AC on REQ-002 and REQ-003 anchors on this TAC.",
|
|
9
|
+
"responsibilities": [
|
|
10
|
+
"Render [data-surface=\"error-summary\"] at the top of the step on submit refusal with a heading and one skip-link anchor per failed field (AC-24103-1).",
|
|
11
|
+
"Mark every failed field with aria-invalid=\"true\" and aria-describedby pointing at its per-field error message id (AC-24103-1).",
|
|
12
|
+
"Move focus to the summary heading on submit failure (AC-24103-1).",
|
|
13
|
+
"Delegate validation to the SPA forms-engine TAC-205 on the on-blur, on-change and on-submit triggers per REQ-002 (AC-24102-1); this TAC does not re-implement validation, it consumes the engine.",
|
|
14
|
+
"Clear aria-invalid on a field when its message clears and remove the anchor from the summary on the next successful submit."
|
|
15
|
+
],
|
|
16
|
+
"internalStructure": "One error-summary module the shell mounts inside the step surface. On submit refusal the module reads the engine's error set, renders the anchor list, moves focus, and wires the anchor click to focus the corresponding field. On subsequent input events after the first failure the module re-runs the engine per-field and updates the message; on the next submit the module rebuilds the error set from scratch. Framework is not prescribed; the interfaces are what the project realises.",
|
|
17
|
+
"interfaces": [
|
|
18
|
+
{
|
|
19
|
+
"name": "renderSummary",
|
|
20
|
+
"kind": "factory",
|
|
21
|
+
"description": "renderSummary({ errors, headingId }) -> void. Renders the summary region and wires focus."
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"name": "bindField",
|
|
25
|
+
"kind": "factory",
|
|
26
|
+
"description": "bindField({ field, message }) -> void. Sets aria-invalid and aria-describedby."
|
|
27
|
+
}
|
|
28
|
+
],
|
|
29
|
+
"dependencies": [
|
|
30
|
+
{
|
|
31
|
+
"name": "Applied SPA forms-engine",
|
|
32
|
+
"kind": "external",
|
|
33
|
+
"description": "The error-summary consumes the applied application-spa forms-engine (TAC-205 in that blueprint) to run per-field validation; this TAC does not ship its own engine. A project without application-spa applied wires an engine of its own choice against this TAC's interfaces (renderSummary and bindField)."
|
|
34
|
+
}
|
|
35
|
+
],
|
|
36
|
+
"tradeoffs": "Consuming the SPA forms-engine keeps a project on the shelf free from a second overlapping engine but ties this TAC to the SPA blueprint's validation shape. Known mechanism-reach gap: the pack asserts the summary and the aria bindings but does not additionally probe the focus-order sweep across every field in the DOM after focus moves to the heading; a v1.1.0 minor bump can walk the tab order and diff.",
|
|
37
|
+
"notes": "See README Known mechanism-reach gaps.",
|
|
38
|
+
"createdAt": "2026-09-06T18:00:00Z",
|
|
39
|
+
"updatedAt": "2026-09-06T18:00:00Z"
|
|
40
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
{
|
|
2
|
+
"tacId": "TAC-2503-application-forms-wizard-draft-store",
|
|
3
|
+
"prdId": "PRD-001",
|
|
4
|
+
"tadId": "TAD-001",
|
|
5
|
+
"version": "1.0.0",
|
|
6
|
+
"status": "approved",
|
|
7
|
+
"name": "Wizard draft store",
|
|
8
|
+
"purpose": "Owns the save-and-return contract: the transport branch (server-side draft table or client-side local buffer), the sync tick on write, the hydrate-on-return path, and the in-progress list enumeration. Every AC on REQ-005 anchors on this TAC. Delegates the no-in-progress empty case to the application-empty-error-states empty-list state.",
|
|
9
|
+
"responsibilities": [
|
|
10
|
+
"On step advance persist the operator's partial answers per REQ-005 via the elicited transport (POST /drafts on server; localStorage write on local) (AC-24105-1).",
|
|
11
|
+
"On wizard entry hydrate the operator's answers from the draft store (GET /drafts on server; localStorage read on local) so the task-list computes the correct completion state (AC-24101-1, AC-24105-1).",
|
|
12
|
+
"Render a [data-sync-tick] element on the client-local branch carrying an ISO-8601 timestamp updated on every write (AC-24105-1).",
|
|
13
|
+
"Enumerate the operator's drafts on the /in-progress list surface (AC-24107-1) and delegate the zero-drafts case to the application-empty-error-states empty-list state (AC-24108-1).",
|
|
14
|
+
"Refuse to render the wizard when neither transport is wired (a project applying application-forms-wizard without a draft-store elicit answer fails at build gate per ADR-2502)."
|
|
15
|
+
],
|
|
16
|
+
"internalStructure": "One draft-store module the shell mounts on wizard entry. On mount the module reads the ADR-2502 elicit answer, resolves the transport factory (server-draft-table or client-local-buffer), and exposes the four operations {read, write, list, remove} to the task-list and summary-review modules. The server branch POSTs and GETs against operator-configured /drafts endpoints; the local branch reads and writes window.localStorage under the namespaced key draft:<wizard-slug>:<step-slug>. Neither transport ships a sync engine; the flush semantics are those of the underlying transport (server persistence on POST, browser persistence on the local write).",
|
|
17
|
+
"interfaces": [
|
|
18
|
+
{
|
|
19
|
+
"name": "resolveTransport",
|
|
20
|
+
"kind": "factory",
|
|
21
|
+
"description": "resolveTransport({ elicit }) -> { read, write, list, remove }. Returns the transport bound to the elicited branch."
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"name": "transportsEnum",
|
|
25
|
+
"kind": "shape",
|
|
26
|
+
"description": "The transport branches are the closed enum {server-draft-table, client-local-buffer}. A third branch is a v1.1.0 minor bump."
|
|
27
|
+
}
|
|
28
|
+
],
|
|
29
|
+
"dependencies": [
|
|
30
|
+
{
|
|
31
|
+
"name": "Applied application-empty-error-states blueprint",
|
|
32
|
+
"kind": "external",
|
|
33
|
+
"description": "The zero-drafts case on /in-progress delegates to the empty-list state contributed by application-empty-error-states (TAC-2301 state machine, [data-surface=\"empty-list\"] wrapper with a [data-recovery=\"create\"] control). A project applying application-forms-wizard without application-empty-error-states also applied sees the /in-progress empty branch render a fallback empty message, which fails the sibling's runtime enforcement pack."
|
|
34
|
+
}
|
|
35
|
+
],
|
|
36
|
+
"tradeoffs": "Two transports keep the shelf blueprint reachable by every project shape (a hobby SPA with no server can ship the local branch; an enterprise SPA with an audit trail ships the server branch) at the price of a per-project elicit at apply time. Known mechanism-reach gap: the pack asserts POST /drafts and GET /drafts round-trip on the server branch and the localStorage write on the local branch, but does not additionally probe cross-tab hydration on the local branch or server-side dedupe on the server branch; both are v1.1.0 minor-bump candidates.",
|
|
37
|
+
"notes": "See README Known mechanism-reach gaps.",
|
|
38
|
+
"createdAt": "2026-09-06T18:00:00Z",
|
|
39
|
+
"updatedAt": "2026-09-06T18:00:00Z"
|
|
40
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
{
|
|
2
|
+
"usId": "application-forms-wizard-US-24101",
|
|
3
|
+
"prdId": "PRD-001",
|
|
4
|
+
"reqId": "application-forms-wizard-REQ-001",
|
|
5
|
+
"version": "1.0.0",
|
|
6
|
+
"status": "approved",
|
|
7
|
+
"title": "The task-list surface renders every step with one of the four GOV.UK completion states and an ARIA progressbar naming the completion count",
|
|
8
|
+
"asA": "operator working through a multi-step form",
|
|
9
|
+
"iWant": "a task-list surface that shows me every step in order, tells me for each step whether I Cannot start yet, have Not started, am In progress or have Completed it, and announces the total number completed",
|
|
10
|
+
"soThat": "I can see at a glance where I am, decide which step to pick up next, and know when I have nothing left to do before the summary review",
|
|
11
|
+
"acceptanceCriteria": [
|
|
12
|
+
{
|
|
13
|
+
"id": "AC-24101-1",
|
|
14
|
+
"testable": true,
|
|
15
|
+
"scope": "runtime",
|
|
16
|
+
"description": "Given the wizard task-list route, the rendered surface exposes [data-surface=\"task-list\"] carrying a [role=\"progressbar\"] with aria-valuenow, aria-valuemax and aria-valuetext, and one child element per step carrying [data-step-slug] and [data-step-state] whose value is one of the closed set {Cannot start yet, Not started, In progress, Completed}. The pack drives the real browser to /task-list and reads the state string per step, the progressbar values, and the enumerated step order."
|
|
17
|
+
}
|
|
18
|
+
],
|
|
19
|
+
"tacIds": [
|
|
20
|
+
"TAC-2501-application-forms-wizard-task-list"
|
|
21
|
+
],
|
|
22
|
+
"tags": [
|
|
23
|
+
"blueprint:application-forms-wizard",
|
|
24
|
+
"contract:task-list"
|
|
25
|
+
],
|
|
26
|
+
"createdAt": "2026-09-06T18:00:00Z",
|
|
27
|
+
"updatedAt": "2026-09-06T18:00:00Z"
|
|
28
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{
|
|
2
|
+
"usId": "application-forms-wizard-US-24102",
|
|
3
|
+
"prdId": "PRD-001",
|
|
4
|
+
"reqId": "application-forms-wizard-REQ-002",
|
|
5
|
+
"version": "1.0.0",
|
|
6
|
+
"status": "approved",
|
|
7
|
+
"title": "Each step validates its own answers on blur before the first submit, then on change after the first failure, and rebuilds the error set from scratch on submit",
|
|
8
|
+
"asA": "operator filling in a step whose answers I have partially entered",
|
|
9
|
+
"iWant": "field-level messages to appear when I leave a field (not while I am mid-typing), then to update as I correct them after I have already tried to submit, and every message rebuilt from scratch on the next submit",
|
|
10
|
+
"soThat": "I am not scolded while typing, I see my corrections take effect immediately after a submit failure, and I trust that what shows on the page is what the engine last checked",
|
|
11
|
+
"acceptanceCriteria": [
|
|
12
|
+
{
|
|
13
|
+
"id": "AC-24102-1",
|
|
14
|
+
"testable": true,
|
|
15
|
+
"scope": "runtime",
|
|
16
|
+
"description": "On the wizard step route, focusing a field then blurring it without a valid entry renders a field-level error message referenced by aria-describedby without setting aria-invalid=\"true\" before the first submit (the pack asserts the message element is present and referenced). After a submit attempt fails on the field, subsequent input events on the same field update the message text on every change (the pack drives a first-submit-fail then a valid input and reads the message element's textContent transitioning to empty). On the next submit the engine rebuilds the error set from scratch (the pack asserts a previously failing field that has been corrected no longer appears in the summary)."
|
|
17
|
+
}
|
|
18
|
+
],
|
|
19
|
+
"tacIds": [
|
|
20
|
+
"TAC-2501-application-forms-wizard-task-list",
|
|
21
|
+
"TAC-2502-application-forms-wizard-error-summary"
|
|
22
|
+
],
|
|
23
|
+
"tags": [
|
|
24
|
+
"blueprint:application-forms-wizard",
|
|
25
|
+
"contract:validation-timing"
|
|
26
|
+
],
|
|
27
|
+
"createdAt": "2026-09-06T18:00:00Z",
|
|
28
|
+
"updatedAt": "2026-09-06T18:00:00Z"
|
|
29
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
{
|
|
2
|
+
"usId": "application-forms-wizard-US-24103",
|
|
3
|
+
"prdId": "PRD-001",
|
|
4
|
+
"reqId": "application-forms-wizard-REQ-003",
|
|
5
|
+
"version": "1.0.0",
|
|
6
|
+
"status": "approved",
|
|
7
|
+
"title": "On submit refusal the step renders a top-of-page error summary with one skip link per failed field, aria-invalid on the field, and focus moved to the summary heading",
|
|
8
|
+
"asA": "operator who has submitted a step with an invalid entry",
|
|
9
|
+
"iWant": "a top-of-page summary of every failed field with a skip link that lands me on the field itself, the failed fields marked so a screen reader announces the error class, and focus placed on the summary heading so I hear the summary before anything else",
|
|
10
|
+
"soThat": "I can walk the failures in order, land directly on the field that needs fixing, and hear what went wrong before the rest of the page reads out",
|
|
11
|
+
"acceptanceCriteria": [
|
|
12
|
+
{
|
|
13
|
+
"id": "AC-24103-1",
|
|
14
|
+
"testable": true,
|
|
15
|
+
"scope": "runtime",
|
|
16
|
+
"description": "Given a submit refusal on the wizard step, the rendered surface exposes [data-surface=\"error-summary\"] with a heading (h2 or role=heading), one anchor element per failed field with href pointing at the field's id, and every failed field carries aria-invalid=\"true\" plus aria-describedby referencing its per-field error message. Focus after submit lands on the summary heading (document.activeElement matches the summary heading selector). The pack drives /step/2 with empty required inputs, submits and reads the summary heading, the anchor href list, the field aria-invalid attribute and the active-element selector."
|
|
17
|
+
}
|
|
18
|
+
],
|
|
19
|
+
"tacIds": [
|
|
20
|
+
"TAC-2502-application-forms-wizard-error-summary"
|
|
21
|
+
],
|
|
22
|
+
"tags": [
|
|
23
|
+
"blueprint:application-forms-wizard",
|
|
24
|
+
"contract:error-summary"
|
|
25
|
+
],
|
|
26
|
+
"createdAt": "2026-09-06T18:00:00Z",
|
|
27
|
+
"updatedAt": "2026-09-06T18:00:00Z"
|
|
28
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{
|
|
2
|
+
"usId": "application-forms-wizard-US-24104",
|
|
3
|
+
"prdId": "PRD-001",
|
|
4
|
+
"reqId": "application-forms-wizard-REQ-004",
|
|
5
|
+
"version": "1.0.0",
|
|
6
|
+
"status": "approved",
|
|
7
|
+
"title": "After every step is Completed the wizard renders a summary-review surface with one summary-list section per step and a Change link per row that retains every other answer on save",
|
|
8
|
+
"asA": "operator who has finished every step in the wizard",
|
|
9
|
+
"iWant": "a summary-review surface that lists every step's answers as a definition list, with a Change link per row that takes me back to the step with the field focused, and my other answers still present when I save",
|
|
10
|
+
"soThat": "I can review everything I entered before I submit, revise a single answer without losing the rest, and satisfy myself the submission is what I intended",
|
|
11
|
+
"acceptanceCriteria": [
|
|
12
|
+
{
|
|
13
|
+
"id": "AC-24104-1",
|
|
14
|
+
"testable": true,
|
|
15
|
+
"scope": "runtime",
|
|
16
|
+
"description": "Given every step is Completed, /summary renders [data-surface=\"summary-review\"] with one [data-summary-list-section] per step; each section holds a <dl> summary list carrying [data-summary-row] entries with a <dt> label and a <dd> value; every row carries a [data-recovery=\"change\"] link whose href routes back to the step. After clicking a Change link, editing that field and saving, the operator returns to /summary and every other row's value is preserved verbatim. The pack drives /summary, reads the row count and dl structure, follows one Change link, updates one field, saves, and diffs the summary rows before and after to prove only the edited row changed."
|
|
17
|
+
}
|
|
18
|
+
],
|
|
19
|
+
"tacIds": [
|
|
20
|
+
"TAC-2501-application-forms-wizard-task-list",
|
|
21
|
+
"TAC-2503-application-forms-wizard-draft-store"
|
|
22
|
+
],
|
|
23
|
+
"tags": [
|
|
24
|
+
"blueprint:application-forms-wizard",
|
|
25
|
+
"contract:summary-review"
|
|
26
|
+
],
|
|
27
|
+
"createdAt": "2026-09-06T18:00:00Z",
|
|
28
|
+
"updatedAt": "2026-09-06T18:00:00Z"
|
|
29
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
{
|
|
2
|
+
"usId": "application-forms-wizard-US-24105",
|
|
3
|
+
"prdId": "PRD-001",
|
|
4
|
+
"reqId": "application-forms-wizard-REQ-005",
|
|
5
|
+
"version": "1.0.0",
|
|
6
|
+
"status": "approved",
|
|
7
|
+
"title": "Save-and-return is wired via a server-side draft table or a client-side local buffer with a sync tick; the pack refuses to ship if neither is present",
|
|
8
|
+
"asA": "operator who has partially completed a wizard and will return later",
|
|
9
|
+
"iWant": "my partial answers persisted between steps and across sessions, either to a server-side draft table or to a local buffer that surfaces a sync tick when it writes",
|
|
10
|
+
"soThat": "closing the tab or losing the network mid-way does not force me to start again from the first step",
|
|
11
|
+
"acceptanceCriteria": [
|
|
12
|
+
{
|
|
13
|
+
"id": "AC-24105-1",
|
|
14
|
+
"testable": true,
|
|
15
|
+
"scope": "runtime",
|
|
16
|
+
"description": "On ?draft-store=server, entering an answer on step 1 and advancing issues a POST /drafts request whose body carries the operator identifier, the wizard slug, the step slug and the answer field; a subsequent GET /drafts on the same operator returns the persisted answer (the pack drives step 1, types into a field, advances, then re-issues a fresh GET /drafts and reads the JSON body). On ?draft-store=local, the same input path writes into window.localStorage under a namespaced key (draft:<wizard-slug>:<step-slug>) and renders a [data-sync-tick] element carrying an ISO-8601 timestamp updated on every write. When both transports are absent (?draft-store=none) the pack fails at severity block naming the missing transport."
|
|
17
|
+
}
|
|
18
|
+
],
|
|
19
|
+
"tacIds": [
|
|
20
|
+
"TAC-2503-application-forms-wizard-draft-store"
|
|
21
|
+
],
|
|
22
|
+
"tags": [
|
|
23
|
+
"blueprint:application-forms-wizard",
|
|
24
|
+
"contract:save-and-return"
|
|
25
|
+
],
|
|
26
|
+
"createdAt": "2026-09-06T18:00:00Z",
|
|
27
|
+
"updatedAt": "2026-09-06T18:00:00Z"
|
|
28
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
{
|
|
2
|
+
"usId": "application-forms-wizard-US-24106",
|
|
3
|
+
"prdId": "PRD-001",
|
|
4
|
+
"reqId": "application-forms-wizard-REQ-001",
|
|
5
|
+
"version": "1.0.0",
|
|
6
|
+
"status": "approved",
|
|
7
|
+
"title": "Linear-vs-free step navigation is a per-project elicit; the task-list respects it by disabling out-of-order entry on linear and permitting it on free",
|
|
8
|
+
"asA": "operator whose project has committed to a step order posture",
|
|
9
|
+
"iWant": "the task-list to disable step links whose prerequisites are unfinished when the project runs linear, or to permit any step at any time when the project runs free",
|
|
10
|
+
"soThat": "the surface matches the project's committed posture and does not let me enter a step whose prerequisites the domain forbids",
|
|
11
|
+
"acceptanceCriteria": [
|
|
12
|
+
{
|
|
13
|
+
"id": "AC-24106-1",
|
|
14
|
+
"testable": true,
|
|
15
|
+
"scope": "runtime",
|
|
16
|
+
"description": "On the ?nav=linear branch, task-list rows whose [data-step-state] is Cannot start yet render as non-anchor spans (no clickable href) and the pack asserts a click on the row does not change the URL. On the ?nav=free branch every row renders as an anchor and a click on any row navigates to that step's route. ADR-2501 records the elicit and the shipped default is linear."
|
|
17
|
+
}
|
|
18
|
+
],
|
|
19
|
+
"tacIds": [
|
|
20
|
+
"TAC-2501-application-forms-wizard-task-list"
|
|
21
|
+
],
|
|
22
|
+
"tags": [
|
|
23
|
+
"blueprint:application-forms-wizard",
|
|
24
|
+
"case:linear-vs-free-navigation"
|
|
25
|
+
],
|
|
26
|
+
"createdAt": "2026-09-06T18:00:00Z",
|
|
27
|
+
"updatedAt": "2026-09-06T18:00:00Z"
|
|
28
|
+
}
|