rcf-lite 0.21.0 → 0.23.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +36 -0
- package/bin/rcf.js +13 -2
- 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 +50 -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/docs/topics.md +9 -0
- package/blueprints/application-api-rest/docs/topics.md +10 -1
- package/blueprints/application-charts/docs/topics.md +9 -0
- package/blueprints/application-dashboard/docs/topics.md +9 -0
- package/blueprints/application-datatable/docs/topics.md +9 -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 +55 -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 +9 -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 +60 -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 +51 -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/docs/topics.md +9 -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 +50 -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 +11 -2
- package/blueprints/delivery-ci-workflows/docs/topics.md +10 -1
- package/blueprints/deploy-cloudflare-workers/CHANGELOG.md +69 -0
- package/blueprints/deploy-cloudflare-workers/README.md +12 -0
- package/blueprints/deploy-cloudflare-workers/blueprint.json +234 -36
- package/blueprints/deploy-cloudflare-workers/contributions/adrs/adr-1306-deploy-cloudflare-workers-spa-shape.json +30 -0
- package/blueprints/deploy-cloudflare-workers/contributions/probes/assets-manifest-scan.mjs +207 -0
- package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-013.json +18 -0
- package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-014.json +18 -0
- package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12113.json +36 -0
- package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12114.json +27 -0
- package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12115.json +27 -0
- package/blueprints/deploy-cloudflare-workers/docs/topics.md +11 -2
- package/blueprints/deploy-cloudflare-workers/guide/deploy-cloudflare-workers.md +25 -0
- package/blueprints/email-smtp-resend/docs/topics.md +10 -1
- package/blueprints/jobs-background/CHANGELOG.md +16 -0
- package/blueprints/jobs-background/README.md +105 -0
- package/blueprints/jobs-background/blueprint.json +149 -0
- package/blueprints/jobs-background/contributions/adrs/adr-3101-jobs-background-model.json +27 -0
- package/blueprints/jobs-background/contributions/adrs/adr-3102-jobs-background-scheduler-mode.json +25 -0
- package/blueprints/jobs-background/contributions/adrs/adr-3103-jobs-background-requires-applied-capabilities.json +25 -0
- package/blueprints/jobs-background/contributions/adrs/adr-3104-jobs-background-timeout-floor.json +25 -0
- package/blueprints/jobs-background/contributions/probes/apply-time-override.mjs +95 -0
- package/blueprints/jobs-background/contributions/probes/apply-time-refusal.mjs +82 -0
- package/blueprints/jobs-background/contributions/probes/event-secrecy.mjs +69 -0
- package/blueprints/jobs-background/contributions/probes/fake-clock-cron.mjs +65 -0
- package/blueprints/jobs-background/contributions/probes/probe-utils.mjs +91 -0
- package/blueprints/jobs-background/contributions/probes/retry-and-fail.mjs +65 -0
- package/blueprints/jobs-background/contributions/probes/run-apply-time-override.mjs +10 -0
- package/blueprints/jobs-background/contributions/probes/run-apply-time-refusal.mjs +11 -0
- package/blueprints/jobs-background/contributions/probes/run-event-secrecy.mjs +11 -0
- package/blueprints/jobs-background/contributions/probes/run-fake-clock-cron.mjs +11 -0
- package/blueprints/jobs-background/contributions/probes/run-retry-and-fail.mjs +11 -0
- package/blueprints/jobs-background/contributions/requirements/jobs-background-req-001.json +18 -0
- package/blueprints/jobs-background/contributions/requirements/jobs-background-req-002.json +18 -0
- package/blueprints/jobs-background/contributions/requirements/jobs-background-req-003.json +18 -0
- package/blueprints/jobs-background/contributions/requirements/jobs-background-req-004.json +18 -0
- package/blueprints/jobs-background/contributions/requirements/jobs-background-req-005.json +18 -0
- package/blueprints/jobs-background/contributions/requirements/jobs-background-req-006.json +18 -0
- package/blueprints/jobs-background/contributions/tacs/tac-3101-jobs-background-job-definition.json +50 -0
- package/blueprints/jobs-background/contributions/tacs/tac-3102-jobs-background-scheduler.json +50 -0
- package/blueprints/jobs-background/contributions/tacs/tac-3103-jobs-background-run-log.json +49 -0
- package/blueprints/jobs-background/contributions/user-stories/jobs-background-us-30101.json +25 -0
- package/blueprints/jobs-background/contributions/user-stories/jobs-background-us-30102.json +25 -0
- package/blueprints/jobs-background/contributions/user-stories/jobs-background-us-30103.json +25 -0
- package/blueprints/jobs-background/contributions/user-stories/jobs-background-us-30104.json +25 -0
- package/blueprints/jobs-background/contributions/user-stories/jobs-background-us-30105.json +25 -0
- package/blueprints/jobs-background/contributions/user-stories/jobs-background-us-30106.json +25 -0
- package/blueprints/jobs-background/contributions/user-stories/jobs-background-us-30107.json +25 -0
- package/blueprints/jobs-background/contributions/user-stories/jobs-background-us-30108.json +25 -0
- package/blueprints/jobs-background/contributions/user-stories/jobs-background-us-30109.json +25 -0
- package/blueprints/jobs-background/docs/topics.md +62 -0
- package/blueprints/jobs-background/guide/jobs-background.md +147 -0
- package/blueprints/messaging-queue-cloudflare/CHANGELOG.md +15 -0
- package/blueprints/messaging-queue-cloudflare/README.md +125 -0
- package/blueprints/messaging-queue-cloudflare/blueprint.json +67 -0
- package/blueprints/messaging-queue-cloudflare/contributions/adrs/adr-3001-messaging-queue-cloudflare-adapter.json +30 -0
- package/blueprints/messaging-queue-cloudflare/contributions/adrs/adr-3002-messaging-queue-cloudflare-delivery-semantics.json +25 -0
- package/blueprints/messaging-queue-cloudflare/contributions/adrs/adr-3003-messaging-queue-cloudflare-max-attempts-floor.json +25 -0
- package/blueprints/messaging-queue-cloudflare/contributions/adrs/adr-3004-messaging-queue-cloudflare-batch-defaults.json +25 -0
- package/blueprints/messaging-queue-cloudflare/contributions/probes/event-secrecy.mjs +137 -0
- package/blueprints/messaging-queue-cloudflare/contributions/probes/probe-utils.mjs +82 -0
- package/blueprints/messaging-queue-cloudflare/contributions/probes/producer-facade-ready.mjs +35 -0
- package/blueprints/messaging-queue-cloudflare/contributions/probes/publish-to-delivery.mjs +94 -0
- package/blueprints/messaging-queue-cloudflare/contributions/probes/real-account-concurrency-smoke.mjs +54 -0
- package/blueprints/messaging-queue-cloudflare/contributions/probes/retry-and-dlq.mjs +87 -0
- package/blueprints/messaging-queue-cloudflare/contributions/probes/run-event-secrecy.mjs +5 -0
- package/blueprints/messaging-queue-cloudflare/contributions/probes/run-producer-facade-ready.mjs +11 -0
- package/blueprints/messaging-queue-cloudflare/contributions/probes/run-publish-to-delivery.mjs +5 -0
- package/blueprints/messaging-queue-cloudflare/contributions/probes/run-real-account-concurrency-smoke.mjs +5 -0
- package/blueprints/messaging-queue-cloudflare/contributions/probes/run-retry-and-dlq.mjs +5 -0
- package/blueprints/messaging-queue-cloudflare/contributions/requirements/messaging-queue-cloudflare-req-001.json +18 -0
- package/blueprints/messaging-queue-cloudflare/contributions/requirements/messaging-queue-cloudflare-req-002.json +18 -0
- package/blueprints/messaging-queue-cloudflare/contributions/requirements/messaging-queue-cloudflare-req-003.json +18 -0
- package/blueprints/messaging-queue-cloudflare/contributions/requirements/messaging-queue-cloudflare-req-004.json +18 -0
- package/blueprints/messaging-queue-cloudflare/contributions/requirements/messaging-queue-cloudflare-req-005.json +18 -0
- package/blueprints/messaging-queue-cloudflare/contributions/requirements/messaging-queue-cloudflare-req-006.json +18 -0
- package/blueprints/messaging-queue-cloudflare/contributions/tacs/tac-3001-messaging-queue-cloudflare-producer-facade.json +56 -0
- package/blueprints/messaging-queue-cloudflare/contributions/tacs/tac-3002-messaging-queue-cloudflare-consumer-registration.json +40 -0
- package/blueprints/messaging-queue-cloudflare/contributions/tacs/tac-3003-messaging-queue-cloudflare-event-sink.json +39 -0
- package/blueprints/messaging-queue-cloudflare/contributions/user-stories/messaging-queue-cloudflare-us-29101.json +34 -0
- package/blueprints/messaging-queue-cloudflare/contributions/user-stories/messaging-queue-cloudflare-us-29102.json +34 -0
- package/blueprints/messaging-queue-cloudflare/contributions/user-stories/messaging-queue-cloudflare-us-29103.json +25 -0
- package/blueprints/messaging-queue-cloudflare/contributions/user-stories/messaging-queue-cloudflare-us-29104.json +25 -0
- package/blueprints/messaging-queue-cloudflare/contributions/user-stories/messaging-queue-cloudflare-us-29105.json +25 -0
- package/blueprints/messaging-queue-cloudflare/contributions/user-stories/messaging-queue-cloudflare-us-29106.json +25 -0
- package/blueprints/messaging-queue-cloudflare/contributions/user-stories/messaging-queue-cloudflare-us-29107.json +25 -0
- package/blueprints/messaging-queue-cloudflare/contributions/user-stories/messaging-queue-cloudflare-us-29108.json +25 -0
- package/blueprints/messaging-queue-cloudflare/docs/topics.md +62 -0
- package/blueprints/messaging-queue-cloudflare/guide/messaging-queue-cloudflare.md +110 -0
- 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 +64 -0
- package/blueprints/object-storage-s3/guide/object-storage-s3.md +207 -0
- package/blueprints/observability-essentials/docs/topics.md +10 -1
- package/blueprints/observability-logging/CHANGELOG.md +4 -0
- package/blueprints/observability-logging/README.md +3 -0
- package/blueprints/observability-logging/blueprint.json +3 -2
- package/blueprints/observability-logging/docs/topics.md +9 -0
- package/blueprints/observability-probe-endpoints/docs/topics.md +10 -1
- package/blueprints/persistence-data-d1/docs/topics.md +10 -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 +66 -0
- package/blueprints/persistence-data-postgres/guide/persistence-data-postgres.md +172 -0
- package/blueprints/persistence-data-sqlite/docs/topics.md +10 -1
- package/blueprints/security-auth-clerk/CHANGELOG.md +4 -0
- package/blueprints/security-auth-clerk/README.md +3 -0
- package/blueprints/security-auth-clerk/blueprint.json +147 -30
- package/blueprints/security-auth-clerk/docs/topics.md +10 -1
- package/blueprints/security-auth-keycloak/CHANGELOG.md +4 -0
- package/blueprints/security-auth-keycloak/README.md +3 -0
- package/blueprints/security-auth-keycloak/blueprint.json +182 -37
- package/blueprints/security-auth-keycloak/docs/topics.md +10 -1
- package/blueprints/security-auth-magic-link/CHANGELOG.md +4 -0
- package/blueprints/security-auth-magic-link/README.md +3 -0
- package/blueprints/security-auth-magic-link/blueprint.json +159 -33
- package/blueprints/security-auth-magic-link/docs/topics.md +10 -1
- package/blueprints/security-auth-oauth2/CHANGELOG.md +4 -0
- package/blueprints/security-auth-oauth2/README.md +3 -0
- package/blueprints/security-auth-oauth2/blueprint.json +158 -32
- package/blueprints/security-auth-oauth2/docs/topics.md +10 -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 +10 -1
- package/fixtures/canary-manifest.json +9 -9
- package/package.json +1 -1
- 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/code-nodes/cn-206.json +14 -0
- package/rcf/code-nodes/cn-207.json +13 -0
- package/rcf/code-nodes/cn-208.json +14 -0
- package/rcf/code-nodes/cn-209.json +14 -0
- package/rcf/code-nodes/cn-210.json +13 -0
- package/rcf/code-nodes/cn-211.json +12 -0
- package/rcf/code-nodes/cn-212.json +12 -0
- package/rcf/code-nodes/cn-213.json +12 -0
- package/rcf/code-nodes/cn-214.json +15 -0
- package/rcf/code-nodes/cn-215.json +13 -0
- package/rcf/code-nodes/cn-216.json +14 -0
- package/rcf/code-nodes/cn-217.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/fbs/fbs-062.json +20 -0
- package/rcf/fbs/fbs-063.json +22 -0
- package/rcf/fbs/fbs-064.json +23 -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-029.json +57 -0
- package/rcf/requirements/req-030.json +67 -0
- package/rcf/requirements/req-040.json +13 -0
- package/rcf/requirements/req-041.json +125 -0
- package/rcf/requirements/req-042.json +59 -0
- package/rcf/requirements/req-043.json +39 -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/test-suites/ts-072.json +62 -0
- package/rcf/test-suites/ts-073.json +38 -0
- package/rcf/test-suites/ts-074.json +30 -0
- package/rcf/test-suites/ts-075.json +38 -0
- package/rcf/test-suites/ts-076.json +70 -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-2901.json +45 -0
- package/rcf/user-stories/us-2902.json +36 -0
- package/rcf/user-stories/us-3001.json +45 -0
- package/rcf/user-stories/us-4001.json +69 -0
- package/rcf/user-stories/us-4101.json +69 -0
- package/rcf/user-stories/us-4201.json +69 -0
- package/rcf/user-stories/us-4301.json +78 -0
- package/releases/releases.yaml +21 -1
- package/src/blueprint/apply.js +13 -1
- package/src/blueprint/capabilities.js +66 -2
- package/src/cli/blueprint.js +15 -1
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
{
|
|
2
|
+
"createdAt": "2026-09-06T19:17:48.415Z",
|
|
3
|
+
"updatedAt": "2026-09-06T19:18:05.472Z",
|
|
4
|
+
"purpose": "Cover AC-4201-1..6 via unit tests over the shipped messaging-queue-cloudflare blueprint shape (contribution count, capabilities, suggestedCompanions, ADR standardsTraceClause), applies-clean behaviour, REQ-004 dead_letter_queue grep and retention wording, six Node-only probe module contract with anchorAcId cross-check, induced-failure switch documentation on the fixture README, and shelf-doc consistency (section 6a table row for queue with reserved sibling note, shelf-wide docs/topics.md row for messaging-queue-cloudflare at 29101-29899 / 30xx).",
|
|
5
|
+
"testLevel": "unit",
|
|
6
|
+
"acIds": [
|
|
7
|
+
"AC-4201-1",
|
|
8
|
+
"AC-4201-2",
|
|
9
|
+
"AC-4201-3",
|
|
10
|
+
"AC-4201-4",
|
|
11
|
+
"AC-4201-5",
|
|
12
|
+
"AC-4201-6"
|
|
13
|
+
],
|
|
14
|
+
"id": "TS-072",
|
|
15
|
+
"usId": "US-4201",
|
|
16
|
+
"title": "messaging-queue-cloudflare v1.0.0 shelf shape, apply-clean, DLQ REQ description grep, six-probe module contract, induced-failure switches and shelf-doc consistency",
|
|
17
|
+
"testCases": [
|
|
18
|
+
{
|
|
19
|
+
"id": "TC-072-blueprint-json-shape",
|
|
20
|
+
"acId": "AC-4201-1",
|
|
21
|
+
"description": "Cover AC-4201-1 via anatomy test",
|
|
22
|
+
"status": "pending",
|
|
23
|
+
"testPointer": "test/blueprint/messaging-queue-cloudflare-anatomy.test.js::blueprint.json declares 21 contributions with capabilities queue, suggestedCompanions logging and errorHandling, and standardsTraceClause on every ADR entry (TC-072-blueprint-json-shape)"
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"id": "TC-072-applies-clean",
|
|
27
|
+
"acId": "AC-4201-2",
|
|
28
|
+
"description": "Cover AC-4201-2 via anatomy test",
|
|
29
|
+
"status": "pending",
|
|
30
|
+
"testPointer": "test/blueprint/messaging-queue-cloudflare-anatomy.test.js::apply messaging-queue-cloudflare lands 21 contributions on a scratch project (TC-072-applies-clean)"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"id": "TC-072-dlq-req-grep",
|
|
34
|
+
"acId": "AC-4201-3",
|
|
35
|
+
"description": "Cover AC-4201-3 via anatomy test",
|
|
36
|
+
"status": "pending",
|
|
37
|
+
"testPointer": "test/blueprint/messaging-queue-cloudflare-anatomy.test.js::REQ-004 description names dead_letter_queue and the 4-day DLQ retention with the Cloudflare DLQ doc URL (TC-072-dlq-req-grep)"
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"id": "TC-072-probe-anchor-ids-cross-check",
|
|
41
|
+
"acId": "AC-4201-4",
|
|
42
|
+
"description": "Cover AC-4201-4 via anatomy test",
|
|
43
|
+
"status": "pending",
|
|
44
|
+
"testPointer": "test/blueprint/messaging-queue-cloudflare-anatomy.test.js::every probe module exports the section 3.2 verdict envelope with an anchorAcId matching a contributed AC id (TC-072-probe-anchor-ids-cross-check)"
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"id": "TC-072-fixture-and-switches",
|
|
48
|
+
"acId": "AC-4201-5",
|
|
49
|
+
"description": "Cover AC-4201-5 via anatomy test",
|
|
50
|
+
"status": "pending",
|
|
51
|
+
"testPointer": "test/blueprint/messaging-queue-cloudflare-anatomy.test.js::sample-app fixture ships wrangler.toml, src/producer.mjs, src/consumer.mjs, src/dlq-inspector.mjs, and its README documents wrangler dev and the three wired induced-failure switches (TC-072-fixture-and-switches)"
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"id": "TC-072-shelf-doc-consistency",
|
|
55
|
+
"acId": "AC-4201-6",
|
|
56
|
+
"description": "Cover AC-4201-6 via anatomy test",
|
|
57
|
+
"status": "pending",
|
|
58
|
+
"testPointer": "test/blueprint/messaging-queue-cloudflare-anatomy.test.js::section 6a table gains a queue row with reserved messaging-queue-postgres sibling and every shipped blueprint docs/topics.md gains a messaging-queue-cloudflare row at 29101-29899 / 30xx (TC-072-shelf-doc-consistency)"
|
|
59
|
+
}
|
|
60
|
+
],
|
|
61
|
+
"status": "draft"
|
|
62
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
{
|
|
2
|
+
"createdAt": "2026-09-07T09:11:24.816Z",
|
|
3
|
+
"updatedAt": "2026-09-07T09:12:00.080Z",
|
|
4
|
+
"purpose": "Cover AC-2901-1..3 via unit tests over the shipped deploy-cloudflare-workers v1.2.0 blueprint shape (12 REQs 15 USs 6 TACs 6 ADRs, no capabilities, suggestedCompanions logging and errorHandling unchanged, standardsTraceClause on ADR-1306 contribution entry), the assets-manifest-scan probe module contract and passing run against the cf-platform fixture, and the repo chain-slice counts and validate-clean.",
|
|
5
|
+
"testLevel": "unit",
|
|
6
|
+
"acIds": [
|
|
7
|
+
"AC-2901-1",
|
|
8
|
+
"AC-2901-2",
|
|
9
|
+
"AC-2901-3"
|
|
10
|
+
],
|
|
11
|
+
"id": "TS-073",
|
|
12
|
+
"usId": "US-2901",
|
|
13
|
+
"title": "T-0 deploy-cloudflare-workers v1.2.0 shelf shape, apply-clean, chain-slice cross-check",
|
|
14
|
+
"testCases": [
|
|
15
|
+
{
|
|
16
|
+
"id": "TC-073-blueprint-json-shape",
|
|
17
|
+
"acId": "AC-2901-1",
|
|
18
|
+
"description": "Cover AC-2901-1 via anatomy test: blueprint.json declares slug deploy-cloudflare-workers, version 1.2.0, category deploy; contributions split 12 req, 15 us, 6 tac, 6 adr; suggestedCompanions unchanged; standardsTraceClause non-null on every ADR contribution entry including ADR-1306",
|
|
19
|
+
"status": "pending",
|
|
20
|
+
"testPointer": "test/blueprint/deploy-cloudflare-workers-v-1-2-0-anatomy.test.js::blueprint.json declares 41 contributions with v1.2.0, delta shape and unchanged v1.1.0 companions (TC-073-blueprint-json-shape)"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"id": "TC-073-probe-module-and-scan-pass",
|
|
24
|
+
"acId": "AC-2901-2",
|
|
25
|
+
"description": "Cover AC-2901-2 via anatomy test: assets-manifest-scan.mjs exports the section 3.2 verdict envelope with anchorAcId AC-12113-1 and accountBound false; the shim run-assets-manifest-scan.mjs on the cf-platform fixture exits 0 and the report carries aggregateVerdict pass with directory ./dist and no pages_build_output_dir field",
|
|
26
|
+
"status": "pending",
|
|
27
|
+
"testPointer": "test/blueprint/deploy-cloudflare-workers-v-1-2-0-anatomy.test.js::assets-manifest-scan probe module contract and cf-platform fixture scan-pass (TC-073-probe-module-and-scan-pass)"
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"id": "TC-073-chain-slice-cross-check",
|
|
31
|
+
"acId": "AC-2901-3",
|
|
32
|
+
"description": "Cover AC-2901-3 via anatomy test: the repo chain adds REQ-029 REQ-030 US-2901 US-2902 US-3001 TS-073 TS-074 TS-075 FBS-063 CN-209, every US carries at least one AC, every AC has a covering TC on a paired TS with a resolvable test-pointer, and rcf define validate reports the tree clean",
|
|
33
|
+
"status": "pending",
|
|
34
|
+
"testPointer": "test/blueprint/deploy-cloudflare-workers-v-1-2-0-anatomy.test.js::T-0 chain slice adds two REQs three USs three TSs one FBS and one CN under the HQ block (TC-073-chain-slice-cross-check)"
|
|
35
|
+
}
|
|
36
|
+
],
|
|
37
|
+
"status": "draft"
|
|
38
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
"createdAt": "2026-09-07T09:11:24.993Z",
|
|
3
|
+
"updatedAt": "2026-09-07T09:12:00.427Z",
|
|
4
|
+
"purpose": "Cover AC-2902-1..2 via unit tests over the top-level elicits[] shape (id, kind, default, loader shape gate) and the cf-platform fixture files (wrangler.toml, dist/, src/, package.json, run-assets-manifest-scan.mjs, README naming the switches).",
|
|
5
|
+
"testLevel": "unit",
|
|
6
|
+
"acIds": [
|
|
7
|
+
"AC-2902-1",
|
|
8
|
+
"AC-2902-2"
|
|
9
|
+
],
|
|
10
|
+
"id": "TS-074",
|
|
11
|
+
"usId": "US-2902",
|
|
12
|
+
"title": "T-0 deploy-cloudflare-workers v1.2.0 elicits: assets-directory and run-worker-first on blueprint.json elicits[] and cf-platform fixture",
|
|
13
|
+
"testCases": [
|
|
14
|
+
{
|
|
15
|
+
"id": "TC-074-elicits-shape",
|
|
16
|
+
"acId": "AC-2902-1",
|
|
17
|
+
"description": "Cover AC-2902-1 via anatomy test: blueprint.json elicits[] declares exactly two new entries assets-directory and run-worker-first with the correct id, kind and default; neither carries providesCapability; the loader loads blueprint.json without a validation error",
|
|
18
|
+
"status": "pending",
|
|
19
|
+
"testPointer": "test/blueprint/deploy-cloudflare-workers-v-1-2-0-anatomy.test.js::elicits[] declares assets-directory string default empty and run-worker-first boolean default false and loader accepts blueprint.json (TC-074-elicits-shape)"
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"id": "TC-074-cf-platform-fixture-files",
|
|
23
|
+
"acId": "AC-2902-2",
|
|
24
|
+
"description": "Cover AC-2902-2 via anatomy test: the cf-platform fixture ships wrangler.toml with the [assets] block, dist/index.html, src/index.mjs, package.json with wrangler dev script and wrangler as a devDependency, run-assets-manifest-scan.mjs shim and README naming the wrangler dev boot line, the elicit answers and the two induced-failure switches",
|
|
25
|
+
"status": "pending",
|
|
26
|
+
"testPointer": "test/blueprint/deploy-cloudflare-workers-v-1-2-0-anatomy.test.js::cf-platform fixture ships wrangler.toml dist index.html src index.mjs package.json shim and README with SIMULATE_MIXED_SHAPE and SIMULATE_EMPTY_ASSETS switches (TC-074-cf-platform-fixture-files)"
|
|
27
|
+
}
|
|
28
|
+
],
|
|
29
|
+
"status": "draft"
|
|
30
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
{
|
|
2
|
+
"createdAt": "2026-09-07T09:11:25.167Z",
|
|
3
|
+
"updatedAt": "2026-09-07T09:12:00.950Z",
|
|
4
|
+
"purpose": "Cover AC-3001-1..3 via unit tests over the ADR-1306 body validity and standardsTraceClause on the contribution entry, the guide's new SPA-on-Workers section with the two Cloudflare URLs (fetched 200 at gate time), and the probe module driven on the three fixture states (canonical, SIMULATE_MIXED_SHAPE fails naming pages_build_output_dir, SIMULATE_EMPTY_ASSETS passes with the empty-directory record).",
|
|
5
|
+
"testLevel": "unit",
|
|
6
|
+
"acIds": [
|
|
7
|
+
"AC-3001-1",
|
|
8
|
+
"AC-3001-2",
|
|
9
|
+
"AC-3001-3"
|
|
10
|
+
],
|
|
11
|
+
"id": "TS-075",
|
|
12
|
+
"usId": "US-3001",
|
|
13
|
+
"title": "T-0 deploy-cloudflare-workers v1.2.0 ADR-1306, guide section, and probed spaFallbackShape with induced-failure switches",
|
|
14
|
+
"testCases": [
|
|
15
|
+
{
|
|
16
|
+
"id": "TC-075-adr-1306-body-and-clause",
|
|
17
|
+
"acId": "AC-3001-1",
|
|
18
|
+
"description": "Cover AC-3001-1 via anatomy test: ADR-1306 body validates against rcf-schemas 0.6.1 (required fields present, no standardsTraceClause on body), the body carries the verbatim Cloudflare Pages landing-page quote in context or decision, and the blueprint.json contribution entry carries standardsTraceClause Cloudflare Pages landing-page recommendation (2026-09-06) with recommendedDefault true and elicited false",
|
|
19
|
+
"status": "pending",
|
|
20
|
+
"testPointer": "test/blueprint/deploy-cloudflare-workers-v-1-2-0-anatomy.test.js::ADR-1306 body validates against 0.6.1 with verbatim Cloudflare quote and standardsTraceClause on the contribution entry (TC-075-adr-1306-body-and-clause)"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"id": "TC-075-guide-section-and-urls",
|
|
24
|
+
"acId": "AC-3001-2",
|
|
25
|
+
"description": "Cover AC-3001-2 via anatomy test: the guide file carries the new Workers-with-static-assets: the SPA-on-Workers shape section with both the migrate-from-Pages guide URL and the static-assets docs URL. The urls-fetched log (fetched at ship time) records both URLs at HTTP 200.",
|
|
26
|
+
"status": "pending",
|
|
27
|
+
"testPointer": "test/blueprint/deploy-cloudflare-workers-v-1-2-0-anatomy.test.js::guide section Workers-with-static-assets adds the two Cloudflare URLs and the elicit signatures and the wrangler.toml snippet (TC-075-guide-section-and-urls)"
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"id": "TC-075-probed-spa-fallback-shape",
|
|
31
|
+
"acId": "AC-3001-3",
|
|
32
|
+
"description": "Cover AC-3001-3 via anatomy test: the assets-manifest-scan probe run against the cf-platform fixture returns verdict pass on the canonical state; SIMULATE_MIXED_SHAPE=true returns verdict fail with a detail naming pages_build_output_dir; SIMULATE_EMPTY_ASSETS=true returns verdict pass with the empty-directory record for the bare-Worker shape",
|
|
33
|
+
"status": "pending",
|
|
34
|
+
"testPointer": "test/blueprint/deploy-cloudflare-workers-v-1-2-0-anatomy.test.js::assets-manifest-scan drives three fixture states and produces the expected pass fail pass verdicts (TC-075-probed-spa-fallback-shape)"
|
|
35
|
+
}
|
|
36
|
+
],
|
|
37
|
+
"status": "draft"
|
|
38
|
+
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
{
|
|
2
|
+
"createdAt": "2026-09-07T10:15:20.121Z",
|
|
3
|
+
"updatedAt": "2026-09-07T10:15:59.868Z",
|
|
4
|
+
"purpose": "Cover AC-4301-1..7 via unit tests over the shipped jobs-background blueprint shape (contribution count, capabilities, suggestedCompanions, requiresAppliedCapabilities gate shape, ADR standardsTraceClause), the four capabilities-apply.test.js cases (bare-project refusal with tag and messaging-queue-cloudflare name, --allow-no-queue-yet override with queue-family sidecar note, happy path with messaging-queue-cloudflare applied producing appliedCapabilities including queue, and backward-compatible --allow-no-auth-yet also unblocks the override), the five-probe module contract with anchorAcId cross-check, the two induced-failure switch documentation on the fixture README, and shelf-doc consistency (section 6a table row for backgroundJobs, shelf-wide docs/topics.md row for jobs-background at 30101-30899 / 31xx).",
|
|
5
|
+
"testLevel": "unit",
|
|
6
|
+
"acIds": [
|
|
7
|
+
"AC-4301-1",
|
|
8
|
+
"AC-4301-2",
|
|
9
|
+
"AC-4301-3",
|
|
10
|
+
"AC-4301-4",
|
|
11
|
+
"AC-4301-5",
|
|
12
|
+
"AC-4301-6",
|
|
13
|
+
"AC-4301-7"
|
|
14
|
+
],
|
|
15
|
+
"id": "TS-076",
|
|
16
|
+
"usId": "US-4301",
|
|
17
|
+
"title": "Jobs-background v1.0.0 shelf shape, apply-time refusal and override paths (via capabilities-apply tests), five-probe module contract, induced-failure switches, and shelf-doc consistency",
|
|
18
|
+
"testCases": [
|
|
19
|
+
{
|
|
20
|
+
"id": "TC-076-blueprint-json-shape",
|
|
21
|
+
"acId": "AC-4301-1",
|
|
22
|
+
"description": "blueprint.json declares 22 contributions with capabilities backgroundJobs, requiresAppliedCapabilities on queue with allowSkipFlag allow-no-queue-yet and refusalMessageId jobs-background-no-queue, and standardsTraceClause on every ADR entry",
|
|
23
|
+
"status": "pending",
|
|
24
|
+
"testPointer": "test/blueprint/jobs-background-anatomy.test.js::blueprint.json declares 22 contributions with capabilities backgroundJobs, requiresAppliedCapabilities on queue with allowSkipFlag allow-no-queue-yet and refusalMessageId jobs-background-no-queue, and standardsTraceClause on every ADR entry (TC-076-blueprint-json-shape)"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"id": "TC-076-bare-refusal",
|
|
28
|
+
"acId": "AC-4301-2",
|
|
29
|
+
"description": "jobs-background apply refuses on a bare project with the jobs-background-no-queue tag, names messaging-queue-cloudflare and the --allow-no-queue-yet override",
|
|
30
|
+
"status": "pending",
|
|
31
|
+
"testPointer": "test/blueprint/capabilities-apply.test.js::jobs-background apply refuses on a bare project with the jobs-background-no-queue tag, names messaging-queue-cloudflare and the --allow-no-queue-yet override (TC-051-jobs-background-refuse)"
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"id": "TC-076-override-sidecar",
|
|
35
|
+
"acId": "AC-4301-3",
|
|
36
|
+
"description": "jobs-background --allow-no-queue-yet override writes sidecar with queue-family notes",
|
|
37
|
+
"status": "pending",
|
|
38
|
+
"testPointer": "test/blueprint/capabilities-apply.test.js::jobs-background --allow-no-queue-yet override writes sidecar with queue-family notes (TC-051-jobs-background-allow-skip)"
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"id": "TC-076-happy-path-caps",
|
|
42
|
+
"acId": "AC-4301-4",
|
|
43
|
+
"description": "jobs-background apply passes on a project with messaging-queue-cloudflare (queue) applied",
|
|
44
|
+
"status": "pending",
|
|
45
|
+
"testPointer": "test/blueprint/capabilities-apply.test.js::jobs-background apply passes on a project with messaging-queue-cloudflare (queue) applied (TC-051-jobs-background-cap-satisfied)"
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"id": "TC-076-probe-anchor-ids-cross-check",
|
|
49
|
+
"acId": "AC-4301-5",
|
|
50
|
+
"description": "every probe module exports the section 3.2 verdict envelope with an anchorAcId matching a contributed AC id",
|
|
51
|
+
"status": "pending",
|
|
52
|
+
"testPointer": "test/blueprint/jobs-background-anatomy.test.js::every probe module exports the section 3.2 verdict envelope with an anchorAcId matching a contributed AC id (TC-076-probe-anchor-ids-cross-check)"
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
"id": "TC-076-fixture-and-switches",
|
|
56
|
+
"acId": "AC-4301-6",
|
|
57
|
+
"description": "sample-app fixture ships jobs/ toy job-definitions plus src/jobs-runtime.mjs and src/scheduler.mjs and its README documents the two wired induced-failure switches SIMULATE_HANDLER_THROW and SIMULATE_PII_IN_JOB_INPUT",
|
|
58
|
+
"status": "pending",
|
|
59
|
+
"testPointer": "test/blueprint/jobs-background-anatomy.test.js::sample-app fixture ships jobs/ toy job-definitions plus src/jobs-runtime.mjs and src/scheduler.mjs and its README documents the two wired induced-failure switches SIMULATE_HANDLER_THROW and SIMULATE_PII_IN_JOB_INPUT (TC-076-fixture-and-switches)"
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"id": "TC-076-shelf-doc-consistency",
|
|
63
|
+
"acId": "AC-4301-7",
|
|
64
|
+
"description": "section 6a table gains a backgroundJobs row naming jobs-background and reserved sibling posture; every shipped blueprint docs/topics.md gains a jobs-background row at 30101-30899 / 31xx",
|
|
65
|
+
"status": "pending",
|
|
66
|
+
"testPointer": "test/blueprint/jobs-background-anatomy.test.js::section 6a table gains a backgroundJobs row naming jobs-background and reserved sibling posture; every shipped blueprint docs/topics.md gains a jobs-background row at 30101-30899 / 31xx (TC-076-shelf-doc-consistency)"
|
|
67
|
+
}
|
|
68
|
+
],
|
|
69
|
+
"status": "draft"
|
|
70
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
{
|
|
2
|
+
"createdAt": "2026-09-06T15:38:51.042Z",
|
|
3
|
+
"updatedAt": "2026-09-06T15:38:51.042Z",
|
|
4
|
+
"asA": "shelf consumer applying the application-empty-error-states v1.0.0 blueprint",
|
|
5
|
+
"iWant": "the shipped blueprint files, the Playwright probe pack anchoring the eight named states of the empty and error catalogue, the recovery-action router across parent-surface search request-access and retry, the offline state with the write-buffer contract, and a sample-app fixture proving the pack passes on a compliant surface and refuses on the four break switches",
|
|
6
|
+
"soThat": "a project consuming rcf-lite gets the eight-state contract with a runtime-verified pack, the least-privilege surface for the 500 and 403 states, and a golden fixture the pack refuses on a surface that leaks a stack trace, leaks a resource id, drops a recovery affordance, or drops the polite live-region wrapper",
|
|
7
|
+
"description": "US-2401 anchors the shelf-shape acceptance criteria for the T-1 track: shelf carries blueprint.json with the ratified shape, contributions apply cleanly on a fresh init project, the pack cross-checks against contributed AC ids, the sample-app fixture serves every state on the honest branch, and the break switches refuse on the negative branch. The blueprint contributes 19 to 24 further AC records on its own USs 22101 to 22108; those are covered by the pack against the fixture and by the anatomy test that walks the contributions.",
|
|
8
|
+
"acceptanceCriteria": [
|
|
9
|
+
{
|
|
10
|
+
"id": "AC-2401-1",
|
|
11
|
+
"testable": true,
|
|
12
|
+
"scope": "runtime",
|
|
13
|
+
"description": "The shelf carries blueprints/application-empty-error-states/blueprint.json declaring slug application-empty-error-states, version 1.0.0, category application, and 19 to 24 contributions in the 5 REQ / 8 US / 3 TAC / 3 ADR groups per spec section 5.1; suggestedCompanions declares logging and errorHandling with reasons from spec section 5.1; providesRoles is absent; capabilities is absent or empty; requiresAppliedCapabilities is absent (no auth required)."
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"id": "AC-2401-2",
|
|
17
|
+
"testable": true,
|
|
18
|
+
"scope": "runtime",
|
|
19
|
+
"description": "rcf define blueprint add ./blueprints/application-empty-error-states applies the 19 contributions cleanly on a fresh init project (exit 0, contribution count matches blueprint.json); rcf define validate on the scratch project reports the tree clean; both rcf audit coverage --strict and rcf audit eval coverage --strict exit 0 on the scratch project."
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"id": "AC-2401-3",
|
|
23
|
+
"testable": true,
|
|
24
|
+
"scope": "runtime",
|
|
25
|
+
"description": "The shipped probe pack blueprints/application-empty-error-states/probe-packs/application-empty-error-states.pack.mjs loads via T-0s pack-loader against a scratch project with the blueprint applied; each of its eight check ids (AC-22101-1 through AC-22108-1) resolves to an AC id contributed by the blueprint per T-0 AC-1701-3; every check carries a description field per spec section 9; the pack-level appliesTo predicate references BOTH tacIds and route; every URL string is composed by the withUrl(runtimeUrl, path) helper and no bare string concatenation appears in the pack source."
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"id": "AC-2401-4",
|
|
29
|
+
"testable": true,
|
|
30
|
+
"scope": "runtime",
|
|
31
|
+
"description": "The sample-app fixture at packages/rcf-lite/test/fixtures/probe-pack-application-empty-error-states/ ships a dependency-free Node HTTP server (server.js) with a start script; every one of the eight states renders on its default branch and is selectable via ?state=<name>; PORT env overrides the bind port (default 3000, never binds 4200); the fixture responds LISTENING <port> once bound."
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"id": "AC-2401-5",
|
|
35
|
+
"testable": true,
|
|
36
|
+
"scope": "runtime",
|
|
37
|
+
"description": "The probe pack refuses ship on each broken fixture branch: ?break=stack-trace re-adds a stack trace to the 500 state so AC-22103-1 fails at severity block; ?break=leak-id re-adds the resource id to the forbidden and permission-denied surfaces so AC-22102-1 or AC-22104-1 fails at severity block; ?break=no-recovery drops the recovery control from the empty-list state so AC-22106-1 fails at severity block; ?break=no-live-region drops the polite live-region wrapper so AC-22105-1 (offline reconnection announcement) fails at severity block."
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"id": "AC-2401-6",
|
|
41
|
+
"testable": true,
|
|
42
|
+
"scope": "runtime",
|
|
43
|
+
"description": "The eight enumerated named states appear identically across the scope paragraph in the blueprint README, the packs checks[] list, the guide, and the docs/topics.md registry table; a grep sweep for each state slug (not-found, forbidden, server-error, offline, permission-denied, empty-list, no-search-results, error-boundary) confirms every occurrence is accounted for and no state is silently dropped."
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"id": "AC-2401-7",
|
|
47
|
+
"testable": true,
|
|
48
|
+
"scope": "runtime",
|
|
49
|
+
"description": "The blueprint README lists every runtime-observable AC the pack does NOT bind directly under Known mechanism-reach gaps, individually per AC id; the blueprint CHANGELOG.md carries a single 1.0.0 entry naming the eight state contracts, the pack checks, the recovery-action router and the offline strategy ADR; docs/topics.md carries the shelf id band registry table extended with the T-1 row (application-empty-error-states 22101-22899 / 23xx)."
|
|
50
|
+
}
|
|
51
|
+
],
|
|
52
|
+
"tacIds": [],
|
|
53
|
+
"tags": [
|
|
54
|
+
"blueprint:application-empty-error-states"
|
|
55
|
+
],
|
|
56
|
+
"version": "0.1.0",
|
|
57
|
+
"status": "draft",
|
|
58
|
+
"usId": "US-2401",
|
|
59
|
+
"prdId": "PRD-001",
|
|
60
|
+
"reqId": "REQ-024",
|
|
61
|
+
"title": "The application-empty-error-states blueprint ships on the shelf with its eight-state pack and sample-app fixture; the pack refuses on the four break switches"
|
|
62
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
{
|
|
2
|
+
"createdAt": "2026-09-06T16:55:12.496Z",
|
|
3
|
+
"updatedAt": "2026-09-06T16:56:03.586Z",
|
|
4
|
+
"description": "US-2501 anchors the shelf-shape acceptance criteria for the T-2 track: shelf carries blueprint.json with the ratified shape, contributions apply cleanly on a fresh init project, the pack cross-checks against contributed AC ids, the sample-app fixture serves both transport branches (multipart POST default and tus.io elicited alternative) on the honest branch, and the break switches refuse on the negative branch. The blueprint contributes further AC records on its own USs 23101 to 23107; those are covered by the pack against the fixture and by the anatomy test that walks the contributions.",
|
|
5
|
+
"usId": "US-2501",
|
|
6
|
+
"prdId": "PRD-001",
|
|
7
|
+
"reqId": "REQ-025",
|
|
8
|
+
"version": "0.1.0",
|
|
9
|
+
"status": "draft",
|
|
10
|
+
"title": "The application-file-upload blueprint ships on the shelf with its four-check pack and sample-app fixture; the pack refuses on the four break switches",
|
|
11
|
+
"asA": "shelf consumer applying the application-file-upload v1.0.0 blueprint",
|
|
12
|
+
"iWant": "the shipped blueprint files, the Playwright probe pack anchoring the four surface-observable checks of the file-upload contract (input surface with a labelled file input plus drop-zone plus keyboard alternative, transport contract with a chunked path and a refusal contract, and a progress announcer with a polite tick and an assertive completion), and a sample-app fixture proving the pack passes on both transport branches multipart POST and tus.io and refuses on the four break switches",
|
|
13
|
+
"soThat": "a project consuming rcf-lite gets the WCAG 2.5.7 dragging-movements safe file-upload contract with a runtime-verified pack, one recommended transport with two elicited alternatives, and a golden fixture the pack refuses on a surface that drops the file input, drops the polite live-region, ships a refused file to the server or collapses the chunked path",
|
|
14
|
+
"acceptanceCriteria": [
|
|
15
|
+
{
|
|
16
|
+
"id": "AC-2501-1",
|
|
17
|
+
"testable": true,
|
|
18
|
+
"scope": "runtime",
|
|
19
|
+
"description": "The shelf carries blueprints/application-file-upload/blueprint.json declaring slug application-file-upload, version 1.0.0, category application, and 18 to 22 contributions in the 5 REQ / 7 US / 3 TAC / 3 ADR groups per spec section 5.2; suggestedCompanions declares logging and errorHandling with reasons from spec section 5.2; providesRoles is absent; capabilities is absent; requiresAppliedCapabilities is absent."
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"id": "AC-2501-2",
|
|
23
|
+
"testable": true,
|
|
24
|
+
"scope": "runtime",
|
|
25
|
+
"description": "rcf define blueprint add ./blueprints/application-file-upload applies the 18 contributions cleanly on a fresh init project (exit 0, contribution count matches blueprint.json); rcf define validate on the scratch project reports the tree clean; both rcf audit coverage --strict and rcf audit eval coverage --strict exit 0 on the scratch project."
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"id": "AC-2501-3",
|
|
29
|
+
"testable": true,
|
|
30
|
+
"scope": "runtime",
|
|
31
|
+
"description": "The shipped probe pack blueprints/application-file-upload/probe-packs/application-file-upload.pack.mjs loads via T-0s pack-loader against a scratch project with the blueprint applied; each of its four check ids (AC-23101-1 input surface, AC-23102-1 progress announcer, AC-23103-1 refusal contract, AC-23104-1 chunked transport) resolves to an AC id contributed by the blueprint per T-0 AC-1701-3; every check carries a description field per spec section 9; the pack-level appliesTo predicate references BOTH tacIds and route; every URL string is composed by the withUrl(runtimeUrl, path) helper and no bare string concatenation appears in the pack source."
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"id": "AC-2501-4",
|
|
35
|
+
"testable": true,
|
|
36
|
+
"scope": "runtime",
|
|
37
|
+
"description": "The sample-app fixture at packages/rcf-lite/test/fixtures/probe-pack-application-file-upload/ ships a dependency-free Node HTTP server (server.js) with a start script; on the multipart POST default branch the four states idle, uploading, refused and complete render honestly and per-file plus aggregate progress ticks fire through the polite live-region wrapper; on the ?transport=tus branch chunked PATCH uploads carry an Upload-Offset header per chunk and the assertive completion announcement fires; PORT env overrides the bind port (default 3000, never binds 4200); the fixture responds LISTENING <port> once bound."
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"id": "AC-2501-5",
|
|
41
|
+
"testable": true,
|
|
42
|
+
"scope": "runtime",
|
|
43
|
+
"description": "The probe pack refuses ship on each broken fixture branch: ?break=no-input drops the file input leaving only the drop-zone so AC-23101-1 fails at severity block (WCAG 2.5.7 keyboard alternative gone); ?break=no-live-region drops the polite live-region wrapper so AC-23102-1 fails at severity block; ?break=send-refused sends a refused file to the server so AC-23103-1 fails at severity block (a POST for the refused filename is observed on the network); ?break=no-chunks collapses the chunked path to a single POST so AC-23104-1 fails at severity block (no Upload-Offset header on any request)."
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"id": "AC-2501-6",
|
|
47
|
+
"testable": true,
|
|
48
|
+
"scope": "runtime",
|
|
49
|
+
"description": "The four fixture states (idle, uploading, refused, complete) and the two transport slugs (multipart, tus) appear identically across the scope paragraph in the blueprint README, the packs checks[] list, the guide, the fixture README and the docs/topics.md registry table; a grep sweep for each slug confirms every occurrence is accounted for and no state or transport is silently dropped."
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"id": "AC-2501-7",
|
|
53
|
+
"testable": true,
|
|
54
|
+
"scope": "runtime",
|
|
55
|
+
"description": "The blueprint README lists every runtime-observable AC the pack does NOT bind directly under Known mechanism-reach gaps, individually per AC id; the blueprint CHANGELOG.md carries a single 1.0.0 entry naming the input contract, the progress contract, the refusal contract, the transport contract with the multipart default and the tus.io elicited alternative, the completion contract, the pack checks, the sample-app fixture and the three ADRs; docs/topics.md carries the shelf id band registry table extended with the T-2 row (application-file-upload 23101-23899 / 24xx)."
|
|
56
|
+
}
|
|
57
|
+
]
|
|
58
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
{
|
|
2
|
+
"createdAt": "2026-09-06T19:03:26.530Z",
|
|
3
|
+
"updatedAt": "2026-09-06T19:07:14.938Z",
|
|
4
|
+
"description": "US-2601 anchors the shelf-shape acceptance criteria for the T-3 track: shelf carries blueprint.json with the ratified shape, contributions apply cleanly on a fresh init project, the pack cross-checks against contributed AC ids, the sample-app fixture serves the four wizard surfaces honestly and drives both save-and-return transports on their query branches, and the break switches refuse on the negative branch. The blueprint contributes further AC records on its own USs 24101 to 24108; those are covered by the pack against the fixture and by the anatomy test that walks the contributions.",
|
|
5
|
+
"usId": "US-2601",
|
|
6
|
+
"prdId": "PRD-001",
|
|
7
|
+
"reqId": "REQ-026",
|
|
8
|
+
"version": "0.1.0",
|
|
9
|
+
"status": "draft",
|
|
10
|
+
"title": "The application-forms-wizard blueprint ships on the shelf with its four-check pack and sample-app fixture; the pack refuses on the four break switches",
|
|
11
|
+
"asA": "shelf consumer applying the application-forms-wizard v1.0.0 blueprint",
|
|
12
|
+
"iWant": "the shipped blueprint files, the Playwright probe pack anchoring the four surface-observable checks of the wizard contract (task-list contract with the closed GOV.UK vocabulary, error-summary contract with the top-of-page summary and aria bindings, summary-review pattern with the change-per-row and answer retention, and save-and-return contract with a server-side draft table or a client-side local buffer with a sync tick), and a sample-app fixture proving the pack passes on the honest render of the four wizard surfaces and refuses on the four break switches",
|
|
13
|
+
"soThat": "a project consuming rcf-lite gets the WCAG 2.2 AA compliant multi-step forms contract with a runtime-verified pack, the GOV.UK Design System task-list pattern out of the box, one recommended navigation posture with an elicited alternative, two save-and-return transports with no default so the abandoned-draft loss class does not ship silently, and a golden fixture the pack refuses on a surface that swaps a state string away from the closed vocabulary, drops the error summary, drops answer retention on the summary review, or drops the draft transport altogether",
|
|
14
|
+
"acceptanceCriteria": [
|
|
15
|
+
{
|
|
16
|
+
"id": "AC-2601-1",
|
|
17
|
+
"description": "The shelf carries blueprints/application-forms-wizard/blueprint.json declaring slug application-forms-wizard, version 1.0.0, category application, and 19 contributions in the 5 REQ / 8 US / 3 TAC / 3 ADR groups per spec section 5.3; suggestedCompanions declares logging and errorHandling with reasons from spec section 5.3; providesRoles is absent; capabilities is absent; requiresAppliedCapabilities is absent.",
|
|
18
|
+
"testable": true
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"id": "AC-2601-2",
|
|
22
|
+
"description": "rcf define blueprint add ./blueprints/application-forms-wizard applies the 19 contributions cleanly on a fresh init project (exit 0, contribution count matches blueprint.json); rcf define validate on the scratch project reports the tree clean; both rcf audit coverage --strict and rcf audit eval coverage --strict exit 0 on the scratch project.",
|
|
23
|
+
"testable": true
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"id": "AC-2601-3",
|
|
27
|
+
"description": "The shipped probe pack blueprints/application-forms-wizard/probe-packs/application-forms-wizard.pack.mjs loads via T-0 pack-loader against a scratch project with the blueprint applied; each of its four check ids (AC-24101-1 task-list, AC-24103-1 error-summary, AC-24104-1 summary-review, AC-24105-1 save-and-return) resolves to an AC id contributed by the blueprint per T-0 AC-1701-3; every check carries a description field per spec section 9; the pack-level appliesTo predicate references BOTH tacIds and route; every URL string is composed by the withUrl(runtimeUrl, path) helper and no bare string concatenation appears in the pack source.",
|
|
28
|
+
"testable": true
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"id": "AC-2601-4",
|
|
32
|
+
"description": "The sample-app fixture at packages/rcf-lite/test/fixtures/probe-pack-application-forms-wizard/ ships a dependency-free Node HTTP server (server.js) with a start script; on the honest branch /task-list renders the ARIA progressbar wrapper plus one step row per manifest entry with a data-step-state from the closed GOV.UK vocabulary; /step/2?refused=1 pre-renders the error-summary shape with a heading, one skip link per failed field and aria-invalid=\"true\" on the field with aria-describedby to the message; /summary?seed=complete renders one summary-list section per step with data-summary-row entries and a data-recovery=\"change\" link per row; /step/1?draft-store=server&preseed=1 writes into the in-memory drafts table so GET /drafts returns the persisted fields, and /step/1?draft-store=local&preseed=1 writes to window.localStorage under draft:application-forms-wizard:<step-slug> and renders [data-sync-tick] carrying an ISO-8601 timestamp; PORT env overrides the bind port (default 3000, never binds 4200); the fixture prints LISTENING <port> once bound.",
|
|
33
|
+
"testable": true
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"id": "AC-2601-5",
|
|
37
|
+
"description": "The probe pack refuses ship on each broken fixture branch: ?break=task-list-vocab swaps a step-state string away from the closed GOV.UK vocabulary so AC-24101-1 fails at severity block; ?break=no-summary drops the [data-surface=\"error-summary\"] region on the refused step so AC-24103-1 fails at severity block; ?break=no-retain wipes every unedited answer on the edit-and-save round-trip so AC-24104-1 fails at severity block; ?break=no-draft drops the draft transport altogether so AC-24105-1 fails at severity block on both branches (no POST to /drafts, no localStorage write, no data-sync-tick element).",
|
|
38
|
+
"testable": true
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"id": "AC-2601-6",
|
|
42
|
+
"description": "The four state slugs from the closed GOV.UK vocabulary (Cannot start yet, Not started, In progress, Completed), the two save-and-return transport slugs (server-draft-table, client-local-buffer), the four break switches and the four probe-pack check ids appear identically across the scope paragraph in the blueprint README, the pack checks[] list, the guide, the fixture README and the docs/topics.md registry table; a grep sweep for each slug confirms every occurrence is accounted for and no vocabulary string is silently dropped.",
|
|
43
|
+
"testable": true
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"id": "AC-2601-7",
|
|
47
|
+
"description": "The blueprint README lists every runtime-observable AC the pack does NOT bind directly under Known mechanism-reach gaps, individually per AC id; the blueprint CHANGELOG.md carries a single 1.0.0 entry naming the task-list contract, the per-step validation timing rule, the error-summary contract, the summary-review pattern, the save-and-return contract with the two transports, the pack checks, the sample-app fixture and the three ADRs; docs/topics.md carries the shelf id band registry table extended with the T-3 row (application-forms-wizard 24101-24899 / 25xx) and the cross-reference to application-empty-error-states for the no-in-progress empty state.",
|
|
48
|
+
"testable": true
|
|
49
|
+
}
|
|
50
|
+
]
|
|
51
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
{
|
|
2
|
+
"createdAt": "2026-09-06T21:11:39.906Z",
|
|
3
|
+
"updatedAt": "2026-09-06T21:12:11.457Z",
|
|
4
|
+
"usId": "US-2701",
|
|
5
|
+
"prdId": "PRD-001",
|
|
6
|
+
"reqId": "REQ-027",
|
|
7
|
+
"version": "0.1.0",
|
|
8
|
+
"status": "draft",
|
|
9
|
+
"title": "The application-account-settings blueprint ships on the shelf with its 5-check pack and sample-app fixture; the pack refuses on the four break switches; the four auth minors and the observability-logging minor bump ship in the same PR with the extended section 6a capability table",
|
|
10
|
+
"asA": "shelf consumer applying the application-account-settings v1.0.0 blueprint",
|
|
11
|
+
"iWant": "the shipped blueprint files, the Playwright probe pack anchoring the five surface-observable checks (shell tabs, profile autocomplete, security branch, sessions dialog-modal, theme radiogroup) with capability-gated appliesTo, and a sample-app fixture proving the pack passes on the honest render of the five conditional surfaces and fails on the four break switches; the four auth blueprint minor bumps and the observability-logging minor bump riding the same PR extending the section 6a capability table with credentialSelfService sessionInventory and hostedIdentityUi",
|
|
12
|
+
"soThat": "a project consuming rcf-lite gets the WCAG 2.2 AA compliant account-settings surface with a runtime-verified pack that gates on the applied capability set (no bespoke work when magic-link is applied and only profile activates; the security surface renders self-service on Keycloak or hosted-link-out on Clerk; the sessions surface renders on any applied sessionInventory provider including observability-logging as the logging-projection provider), one recommended default per elicit where honest and no recommended default on security-surface-shape where dishonest",
|
|
13
|
+
"acceptanceCriteria": [
|
|
14
|
+
{
|
|
15
|
+
"id": "AC-2701-1",
|
|
16
|
+
"description": "The shelf carries blueprints/application-account-settings/blueprint.json declaring slug application-account-settings, version 1.0.0, category application, and 24 contributions in the 6 REQ / 10 US / 4 TAC / 4 ADR groups per spec section 5.4; suggestedCompanions declares logging and errorHandling with reasons; providesRoles is absent; capabilities is absent; requiresAppliedCapabilities declares principalDirectory with allowSkipFlag allow-no-auth-yet and refusalMessageId application-account-settings-bare-spa.",
|
|
17
|
+
"testable": true
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"id": "AC-2701-2",
|
|
21
|
+
"description": "The shelf carries blueprints/application-account-settings/blueprint.json declaring slug application-account-settings, version 1.0.0, category application, and 24 contributions in the 6 REQ / 10 US / 4 TAC / 4 ADR groups per spec section 5.4; suggestedCompanions declares logging and errorHandling with reasons from spec section 5.4; providesRoles is absent; capabilities is absent; requiresAppliedCapabilities declares principalDirectory with allowSkipFlag allow-no-auth-yet and refusalMessageId application-account-settings-bare-spa.",
|
|
22
|
+
"testable": true
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"id": "AC-2701-3",
|
|
26
|
+
"description": "rcf define blueprint add ./blueprints/application-account-settings applies the 24 contributions cleanly on a fresh init project with security-auth-magic-link applied (exit 0, contribution count matches blueprint.json); the applied sidecar records appliedCapabilities principalDirectory only; a fresh init project with no auth applied refuses at exit 3 with the [application-account-settings-bare-spa] refusal message; --allow-no-auth-yet applies with allowNoAuthYet true and a scaffolding-pass note on the sidecar.",
|
|
27
|
+
"testable": true
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"id": "AC-2701-4",
|
|
31
|
+
"description": "The shipped probe pack blueprints/application-account-settings/probe-packs/application-account-settings.pack.mjs loads via T-0 pack-loader against a scratch project with the blueprint applied; each of its five check ids (AC-25101-1 shell, AC-25102-1 profile, AC-25105-1 security, AC-25106-1 sessions, AC-25108-1 theme) resolves to an AC id contributed by the blueprint; every check carries a description field; the pack-level appliesTo predicate references BOTH tacIds AND route; every URL string is composed by the withUrl(runtimeUrl, path) helper and no bare string concatenation appears in the pack source.",
|
|
32
|
+
"testable": true
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"id": "AC-2701-5",
|
|
36
|
+
"description": "The sample-app fixture at packages/rcf-lite/test/fixtures/probe-pack-application-account-settings/ ships a dependency-free Node HTTP server (server.js) with a start script; on the honest branch /account renders the ARIA APG tabs shell whose tabs mirror the CAPS env; /account/profile renders the form with autocomplete tokens name email bday country; /account/security?security-surface-shape=self-service renders the change-password and mfa-management regions when credentialSelfService is in CAPS; /account/sessions renders one row per session with data-session-id and a terminate control on non-current rows plus the ARIA dialog-modal; /account/theme renders the radiogroup with light dark system and persists per the ACCOUNT_SETTINGS_THEME_PERSIST env; PORT env overrides the bind port (default 3000, never binds 4200).",
|
|
37
|
+
"testable": true
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"id": "AC-2701-6",
|
|
41
|
+
"description": "The probe pack fails on each broken fixture branch: ?break=leak-tab renders the security tab even when neither credentialSelfService nor hostedIdentityUi is in CAPS so AC-25101-1 fails at severity block; ?break=no-autocomplete drops the autocomplete tokens on the profile form so AC-25102-1 fails at severity block; ?break=no-dialog removes the terminate confirmation dialog so AC-25106-1 fails at severity block; ?break=no-persist drops the theme persistence write so AC-25108-1 does not fail on this fixture-side signal directly but the data-persist attribute mismatch triggers the fail.",
|
|
42
|
+
"testable": true
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"id": "AC-2701-7",
|
|
46
|
+
"description": "The four capability strings principalDirectory credentialSelfService sessionInventory hostedIdentityUi and the security surface shape enum self-service hosted-link-out hosted-embed appear identically across README, guide, pack checks[] descriptions and docs/topics.md registry; the section 6a capability table in packages/rcf-lite/docs/blueprint-authoring.md lists credentialSelfService sessionInventory and hostedIdentityUi with the shelf providers named.",
|
|
47
|
+
"testable": true
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"id": "AC-2701-8",
|
|
51
|
+
"description": "README lists mechanism-reach gaps individually per AC id per checklist section 6.g; CHANGELOG carries one 1.0.0 entry naming the auth minors and the observability-logging minor that ride the same PR; docs/topics.md carries the T-4 shelf registry row and the cross-references to application-empty-error-states and application-admin-console; the four amended auth blueprints each carry a README latest note and a CHANGELOG entry naming the new capabilities and the account-settings consumer; the observability-logging blueprint carries the same.",
|
|
52
|
+
"testable": true
|
|
53
|
+
}
|
|
54
|
+
]
|
|
55
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
{
|
|
2
|
+
"createdAt": "2026-09-06T23:03:12.225Z",
|
|
3
|
+
"updatedAt": "2026-09-06T23:04:29.543Z",
|
|
4
|
+
"usId": "US-2801",
|
|
5
|
+
"prdId": "PRD-001",
|
|
6
|
+
"reqId": "REQ-028",
|
|
7
|
+
"version": "0.1.0",
|
|
8
|
+
"status": "draft",
|
|
9
|
+
"title": "The application-onboarding-tour blueprint ships on the shelf with its 4-check pack and sample-app fixture; the pack refuses on the four break switches; the tour composes on dashboard notifications-in-app account-settings and the SPA with the documented fallback per Q4 when no persistence blueprint is applied",
|
|
10
|
+
"asA": "shelf consumer applying the application-onboarding-tour v1.0.0 blueprint",
|
|
11
|
+
"iWant": "the shipped blueprint files, the Playwright probe pack anchoring the four surface-observable checks (step-container focus and Escape, tooltip-as-dialog contract, checklist slot with dashboard-when-applied and settings-page-when-not, completion-state persistence per the elicited store shape) with the pack composing on the applied blueprint set (dashboard for the anchor slot, notifications-in-app for the completion announcement, account-settings for the restart control, any auth for the per-principal state) and a sample-app fixture proving the pack passes on both the ?apps=dashboard and ?apps= (empty) branches plus multiple ?store= branches and refuses on the four break switches",
|
|
12
|
+
"soThat": "a project consuming rcf-lite gets a WCAG 2.2 AA compliant onboarding-tour surface (2.1.1 Keyboard, 2.1.2 No Keyboard Trap, 2.4.11 Focus Not Obscured Minimum, 2.4.3 Focus Order) built on the ARIA APG dialog-modal pattern, a first-run checklist that renders on the dashboard shell when application-dashboard is applied and collapses to the settings page when not, three-to-five steps with per-step content owned by the project voice, one recommended default per elicit (dismissal policy dismiss-permanently, completion-state store spa-local-storage per Q4 when no persistence blueprint is applied, checklist anchor derived at apply time), and a documented restart-tour affordance on the settings surface",
|
|
13
|
+
"acceptanceCriteria": [
|
|
14
|
+
{
|
|
15
|
+
"id": "AC-2801-1",
|
|
16
|
+
"description": "The shelf carries blueprints/application-onboarding-tour/blueprint.json declaring slug application-onboarding-tour, version 1.0.0, category application, and 17 to 22 contributions in the 4 REQ / 7 US / 3 TAC / 3 ADR groups per spec section 5.5; suggestedCompanions declares logging and errorHandling with reasons from spec section 5.5; providesRoles is absent; capabilities is absent; requiresAppliedCapabilities is absent (no hard dependency; documented Q4 fallback spa-local-storage when no persistence blueprint is applied).",
|
|
17
|
+
"testable": true
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"id": "AC-2801-2",
|
|
21
|
+
"description": "The 3 ADR JSON documents under blueprints/application-onboarding-tour/contributions/adrs/ validate against rcf-schemas 0.6.1 ADR shape; the ADR contribution entries in blueprint.json carry a non-null standardsTraceClause per spec section 8a.4 (dialog-modal pattern for ADR-2701, WCAG 2.5.3 or generic enterprise practice for ADR-2702 and ADR-2703 as honest); ADR-2701 dismissal-policy declares recommendedDefault true elicited true; ADR-2702 completion-store-shape declares elicited true with the Q4 default spa-local-storage; ADR-2703 checklist-anchor declares elicited true with the default derived at apply time.",
|
|
22
|
+
"testable": true
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"id": "AC-2801-3",
|
|
26
|
+
"description": "rcf define blueprint add ./blueprints/application-onboarding-tour applies the 17 contributions cleanly on a fresh init project (exit 0; contribution count matches blueprint.json); the applied sidecar records appliedElicitations for dismissal policy completion-state store checklist anchor tour-step-manifest per-step-content-voice; no requiresAppliedCapabilities refusal fires (T-5 has no hard dependency).",
|
|
27
|
+
"testable": true
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"id": "AC-2801-4",
|
|
31
|
+
"description": "The shipped probe pack blueprints/application-onboarding-tour/probe-packs/application-onboarding-tour.pack.mjs loads via the T-0 pack-loader against a scratch project with the blueprint applied; each of its four check ids (AC-26101-1 step-container focus and Escape, AC-26102-1 tooltip-as-dialog contract, AC-26103-1 checklist slot with dashboard-when-applied and settings-page-when-not, AC-26104-1 completion-state persistence) resolves to an AC id contributed by the blueprint; every check carries a description field; the pack-level appliesTo predicate references BOTH tacIds AND route (via the operator-configured tour-anchor path glob); every URL string is composed by the withUrl(runtimeUrl, path) helper and no bare string concatenation appears in the pack source; the tooltip-as-dialog check uses browser.resize(1440, 900) and browser.resize(360, 640) to probe focus-not-obscured (WCAG 2.4.11).",
|
|
32
|
+
"testable": true
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"id": "AC-2801-5",
|
|
36
|
+
"description": "The sample-app fixture at packages/rcf-lite/test/fixtures/probe-pack-application-onboarding-tour/ ships a dependency-free Node HTTP server (server.js) with a start script; on the honest branch /tour renders the tooltip-as-dialog opened on the first step (role=dialog, aria-labelledby to the step heading, focus moves to the tooltip on open, focus returns to the anchor on close); Escape dismisses the tour; Tab traverses tour controls in DOM order and Enter activates the next step; ?apps=dashboard renders the checklist as a <details open> on the dashboard-top anchor; ?apps= (empty) renders the checklist as a <details> (closed) on the settings-page anchor; ?store=<spa-local-storage|spa-session-storage|server-side-per-principal> selects the completion-store backend; ?first-run=<0|1> gates the auto-open; PORT env overrides the bind port (default 3000, never binds 4200).",
|
|
37
|
+
"testable": true
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"id": "AC-2801-6",
|
|
41
|
+
"description": "The probe pack fails on each broken fixture branch: ?break=no-role drops role=dialog on the tooltip so AC-26102-1 fails at severity block; ?break=focus-escape allows Tab to escape the tooltip to the underlying surface so AC-26101-1 fails at severity block; ?break=no-collapse drops the <details> collapse contract on the checklist slot so AC-26103-1 fails at severity block; ?break=no-persist drops the completion-state write so AC-26104-1 fails at severity block. The aggregate verdict on each break switch reports fail.",
|
|
42
|
+
"testable": true
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"id": "AC-2801-7",
|
|
46
|
+
"description": "The four surface-observable checks (AC-26101-1 step-container, AC-26102-1 tooltip-as-dialog, AC-26103-1 checklist-slot, AC-26104-1 completion-state) appear identically across README, guide, pack checks[] descriptions, and docs/topics.md registry; the topics.md T-5 row lists the four cross-references (application-dashboard, application-notifications-in-app, application-account-settings, application-spa) with the compose reason in one line each; the Q4 default (spa-local-storage) is named on ADR-2702 and README with the same rationale.",
|
|
47
|
+
"testable": true
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"id": "AC-2801-8",
|
|
51
|
+
"description": "README lists mechanism-reach gaps individually per AC id per checklist section 6.g (T-1 gate discipline); CHANGELOG carries one 1.0.0 entry naming the four checks, the checklist collapse contract and the Q4 fallback; guide/application-onboarding-tour.md exists and names the ARIA APG dialog-modal pattern with a URL, the WCAG 2.2 AA success criteria (2.1.1, 2.1.2, 2.4.3, 2.4.11) with links, the fixture READMEs manual boot line, and the Q4 fallback rationale; packages/rcf-lite/CHANGELOG.md is NOT edited (the round-close release PR owns the 0.22.0 entry).",
|
|
52
|
+
"testable": true
|
|
53
|
+
}
|
|
54
|
+
]
|
|
55
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
{
|
|
2
|
+
"createdAt": "2026-09-07T09:11:05.053Z",
|
|
3
|
+
"updatedAt": "2026-09-07T09:11:05.053Z",
|
|
4
|
+
"asA": "shelf consumer applying the deploy-cloudflare-workers v1.2.0 blueprint on a fresh SPA-on-Workers project",
|
|
5
|
+
"iWant": "the shipped v1.2.0 blueprint files (blueprint.json version 1.2.0 with the seven-contribution delta on top of the v1.1.0 shipped set; two new REQ contributions deploy-cloudflare-workers-REQ-013 and REQ-014; three new US contributions in the existing 12xx band deploy-cloudflare-workers-US-12113 SPA-on-Workers deploy, US-12114 assets-directory elicitation, US-12115 migrate-from-Pages guidance; one new ADR contribution ADR-1306-deploy-cloudflare-workers-spa-shape with the verbatim Cloudflare Pages landing-page quote and standardsTraceClause Cloudflare Pages landing-page recommendation 2026-09-06; one new probe module assets-manifest-scan.mjs anchored to AC-2901-2 assetsBlockEmitted; two new elicits assets-directory and run-worker-first) proven against the cf-platform shared sample-app fixture",
|
|
6
|
+
"soThat": "a rcf-lite project applying deploy-cloudflare-workers v1.2.0 gets a Workers-with-static-assets shape ratified over Pages for greenfield SPA-on-Workers projects (per the Cloudflare Pages landing-page recommendation, verbatim quoted on ADR-1306), an elicited [assets] directory in wrangler.toml, a probed assertion of the emitted assets block, an unchanged v1.1.0 contribution set (12 REQs, 12 USs, 6 TACs, 5 ADRs, deploymentTarget global topic, suggestedCompanions logging and errorHandling), and a shared sample-app fixture that T-1 through T-3 and T-5 extend later",
|
|
7
|
+
"acceptanceCriteria": [
|
|
8
|
+
{
|
|
9
|
+
"id": "AC-2901-1",
|
|
10
|
+
"description": "The shelf carries blueprints/deploy-cloudflare-workers/blueprint.json declaring slug deploy-cloudflare-workers, version 1.2.0, category deploy; the contributions array holds 41 entries splitting 14 req + 15 us + 6 tac + 6 adr (the probe is NOT a contribution kind under the loader's CONTRIBUTABLE_KINDS gate; assets-manifest-scan.mjs ships under contributions/probes/ as a source file only, cross-referenced from the shipped README and the applied fixture shim); the delta over v1.1.0 is six contribution-kind entries plus the probe module: 2 REQs REQ-013 and REQ-014, 3 USs US-12113 US-12114 US-12115, 1 ADR ADR-1306 with recommendedDefault true and standardsTraceClause Cloudflare Pages landing-page recommendation (2026-09-06) on the contribution entry, 1 probe contribution assets-manifest-scan with anchorAcId AC-12113-1 and accountBound false; providesRoles absent, capabilities absent, requiresAppliedCapabilities absent, suggestedCompanions unchanged with logging and errorHandling; the top-level elicits[] gains the two new entries assets-directory and run-worker-first; every ADR contribution entry carries a non-null standardsTraceClause per section 8a.2.",
|
|
11
|
+
"given": "the shelf tree after this blueprint delta lands",
|
|
12
|
+
"when": "jq queries against blueprints/deploy-cloudflare-workers/blueprint.json",
|
|
13
|
+
"then": "jq .slug returns deploy-cloudflare-workers; jq .version returns 1.2.0; jq .contributions returns an array whose kinds split 14 req, 15 us, 6 tac, 6 adr (total 41 entries); the probe module lives under blueprints/deploy-cloudflare-workers/contributions/probes/assets-manifest-scan.mjs and is NOT listed as a contribution; jq .capabilities returns null; jq .suggestedCompanions maps to logging and errorHandling; jq .elicits returns an array containing assets-directory and run-worker-first; jq .contributions[] where kind is adr yields standardsTraceClause non-null for every entry",
|
|
14
|
+
"testable": true,
|
|
15
|
+
"scope": "runtime"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"id": "AC-2901-2",
|
|
19
|
+
"description": "The canonical AC assetsBlockEmitted (from spec section 5.0 example ACs) is realised as blueprint contribution AC-12113-1 on US-12113 with a runtime-observable then clause. The shipped probe blueprints/deploy-cloudflare-workers/contributions/probes/assets-manifest-scan.mjs exports a Node module whose default export is a scan verb returning the section 3.2 verdict envelope {verdict, detail, anchorAcId, aggregateVerdict} with anchorAcId AC-12113-1 and accountBound false; the module parses the applied fixture wrangler.toml, asserts the [assets] block directory matches the elicited assets-directory answer, and asserts the absence of any pages_build_output_dir field.",
|
|
20
|
+
"given": "the cf-platform sample-app fixture at packages/rcf-lite/test/fixtures/cf-platform/ with wrangler.toml carrying [assets] directory = ./dist and no pages_build_output_dir field",
|
|
21
|
+
"when": "the shim run-assets-manifest-scan.mjs drives the probe module against the fixture wrangler.toml",
|
|
22
|
+
"then": "the process exits 0 and the written report at .rcf/reports/blueprints/deploy-cloudflare-workers/assets-manifest-scan.json carries aggregateVerdict pass with a detail record naming directory ./dist and no pages_build_output_dir field on the parsed wrangler.toml",
|
|
23
|
+
"testable": true,
|
|
24
|
+
"scope": "runtime"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"id": "AC-2901-3",
|
|
28
|
+
"description": "The rcf-lite repo chain is extended with the T-0 delta and validates clean; the chain adds two REQs REQ-029 and REQ-030 under PRD-001, three USs US-2901 US-2902 US-3001, three test suites TS-073 TS-074 TS-075, one FBS FBS-063, and one CN CN-209 anchoring the assets-manifest-scan.mjs probe module; every US carries at least one AC; every AC is covered by a TC on the paired TS with a resolvable test-pointer to test/blueprint/deploy-cloudflare-workers-v-1-2-0-anatomy.test.js. Repo counts bump: requirements 31 to 33, userStories 60 to 63, fbs 50 to 51, testSuite 60 to 63, codeNode 195 to 196.",
|
|
29
|
+
"given": "the extended repo chain on the T-0 branch after all define create commands have run",
|
|
30
|
+
"when": "node bin/rcf.js define validate runs from packages/rcf-lite",
|
|
31
|
+
"then": "the CLI reports rcf define validate: tree is clean and both node bin/rcf.js audit coverage --strict and node bin/rcf.js audit eval coverage --strict exit 0",
|
|
32
|
+
"testable": true,
|
|
33
|
+
"scope": "runtime"
|
|
34
|
+
}
|
|
35
|
+
],
|
|
36
|
+
"tags": [
|
|
37
|
+
"blueprint:deploy-cloudflare-workers"
|
|
38
|
+
],
|
|
39
|
+
"usId": "US-2901",
|
|
40
|
+
"prdId": "PRD-001",
|
|
41
|
+
"reqId": "REQ-029",
|
|
42
|
+
"version": "0.1.0",
|
|
43
|
+
"status": "draft",
|
|
44
|
+
"title": "T-0 delta on deploy-cloudflare-workers v1.2.0 shelf: seven-contribution additive minor bump plus cf-platform fixture with the assets-manifest-scan probe passing"
|
|
45
|
+
}
|