rcf-lite 0.25.0 → 0.27.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +45 -0
- package/blueprints/application-account-settings/CHANGELOG.md +35 -2
- package/blueprints/application-account-settings/README.md +10 -10
- package/blueprints/application-account-settings/blueprint.json +23 -3
- package/blueprints/application-account-settings/contributions/adrs/adr-2601-application-account-settings-capability-vocabulary.json +1 -1
- package/blueprints/application-account-settings/contributions/adrs/adr-2604-application-account-settings-reauth-window.json +5 -5
- package/blueprints/application-account-settings/contributions/requirements/application-account-settings-req-001.json +6 -2
- package/blueprints/application-account-settings/contributions/requirements/application-account-settings-req-002.json +4 -0
- package/blueprints/application-account-settings/contributions/requirements/application-account-settings-req-003.json +7 -3
- package/blueprints/application-account-settings/contributions/requirements/application-account-settings-req-004.json +4 -0
- package/blueprints/application-account-settings/contributions/requirements/application-account-settings-req-005.json +4 -0
- package/blueprints/application-account-settings/contributions/requirements/application-account-settings-req-006.json +6 -2
- package/blueprints/application-account-settings/contributions/requirements/application-account-settings-req-007.json +22 -0
- package/blueprints/application-account-settings/contributions/requirements/application-account-settings-req-009.json +21 -0
- package/blueprints/application-account-settings/contributions/tacs/tac-2601-application-account-settings-shell.json +8 -4
- package/blueprints/application-account-settings/contributions/tacs/tac-2602-application-account-settings-capability-discovery.json +3 -3
- package/blueprints/application-account-settings/contributions/tacs/tac-2604-application-account-settings-session-store.json +13 -7
- package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25101.json +19 -3
- package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25102.json +27 -2
- package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25103.json +13 -2
- package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25104.json +23 -2
- package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25105.json +51 -3
- package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25106.json +25 -6
- package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25107.json +13 -2
- package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25108.json +27 -2
- package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25109.json +4 -2
- package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25110.json +13 -2
- package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25111.json +71 -0
- package/blueprints/application-account-settings/contributions/user-stories/application-account-settings-us-25112.json +77 -0
- package/blueprints/application-account-settings/docs/topics.md +5 -5
- package/blueprints/application-account-settings/guide/application-account-settings.md +1 -1
- package/blueprints/application-account-settings/probe-packs/application-account-settings.pack.mjs +2 -2
- package/blueprints/application-admin-console/CHANGELOG.md +42 -6
- package/blueprints/application-admin-console/README.md +4 -4
- package/blueprints/application-admin-console/blueprint.json +31 -1
- package/blueprints/application-admin-console/contributions/adrs/adr-2201-application-admin-console-capability-vocabulary.json +2 -2
- package/blueprints/application-admin-console/contributions/adrs/adr-2203-application-admin-console-invite-transport.json +5 -5
- package/blueprints/application-admin-console/contributions/adrs/adr-2204-application-admin-console-audit-retention.json +7 -7
- package/blueprints/application-admin-console/contributions/adrs/adr-2214-application-admin-console-consume-zero-trust-gate.json +3 -3
- package/blueprints/application-admin-console/contributions/requirements/application-admin-console-req-001.json +4 -0
- package/blueprints/application-admin-console/contributions/requirements/application-admin-console-req-002.json +5 -1
- package/blueprints/application-admin-console/contributions/requirements/application-admin-console-req-003.json +4 -0
- package/blueprints/application-admin-console/contributions/requirements/application-admin-console-req-004.json +4 -0
- package/blueprints/application-admin-console/contributions/requirements/application-admin-console-req-005.json +6 -2
- package/blueprints/application-admin-console/contributions/requirements/application-admin-console-req-006.json +4 -0
- package/blueprints/application-admin-console/contributions/requirements/application-admin-console-req-007.json +22 -0
- package/blueprints/application-admin-console/contributions/requirements/application-admin-console-req-008.json +22 -0
- package/blueprints/application-admin-console/contributions/requirements/application-admin-console-req-009.json +21 -0
- package/blueprints/application-admin-console/contributions/requirements/application-admin-console-req-014.json +6 -2
- package/blueprints/application-admin-console/contributions/tacs/tac-2201-application-admin-console-shell.json +9 -7
- package/blueprints/application-admin-console/contributions/tacs/tac-2202-application-admin-console-capability-discovery.json +6 -6
- package/blueprints/application-admin-console/contributions/tacs/tac-2204-application-admin-console-audit-view.json +1 -1
- package/blueprints/application-admin-console/contributions/tacs/tac-2214-application-admin-console-access-gated-signin-surface.json +5 -5
- package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21101.json +4 -2
- package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21102.json +4 -2
- package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21103.json +10 -4
- package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21104.json +13 -2
- package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21105.json +15 -3
- package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21106.json +35 -2
- package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21107.json +22 -3
- package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21108.json +4 -2
- package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21109.json +4 -2
- package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21110.json +68 -0
- package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21111.json +76 -0
- package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21112.json +77 -0
- package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21815.json +21 -2
- package/blueprints/application-admin-console/contributions/user-stories/application-admin-console-us-21816.json +21 -2
- package/blueprints/application-admin-console/docs/topics.md +1 -1
- package/blueprints/application-admin-console/guide/application-admin-console.md +3 -3
- package/blueprints/application-admin-console/probe-packs/application-admin-console.pack.mjs +2 -2
- package/blueprints/application-api-rest/CHANGELOG.md +26 -0
- package/blueprints/application-api-rest/assets/samples/request-response-pairs.md +2 -0
- package/blueprints/application-api-rest/blueprint.json +1 -1
- package/blueprints/application-api-rest/contributions/adrs/adr-301-application-api-rest-error-envelope.json +1 -1
- package/blueprints/application-api-rest/contributions/adrs/adr-302-application-api-rest-auth-model.json +1 -1
- package/blueprints/application-api-rest/contributions/adrs/adr-303-application-api-rest-api-versioning.json +1 -1
- package/blueprints/application-api-rest/contributions/adrs/adr-304-application-api-rest-logging.json +1 -1
- package/blueprints/application-api-rest/contributions/adrs/adr-305-application-api-rest-pagination.json +1 -1
- package/blueprints/application-api-rest/contributions/adrs/adr-306-application-api-rest-idempotency.json +3 -3
- package/blueprints/application-api-rest/contributions/adrs/adr-307-application-api-rest-openapi-generation.json +1 -1
- package/blueprints/application-api-rest/contributions/adrs/adr-308-application-api-rest-rate-limiting.json +1 -1
- package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-001.json +6 -2
- package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-002.json +7 -3
- package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-003.json +6 -2
- package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-004.json +6 -2
- package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-005.json +6 -2
- package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-006.json +6 -2
- package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-007.json +6 -2
- package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-008.json +6 -2
- package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-009.json +6 -2
- package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-010.json +8 -4
- package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-011.json +6 -2
- package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-012.json +6 -2
- package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-013.json +7 -3
- package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-014.json +6 -2
- package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-015.json +6 -2
- package/blueprints/application-api-rest/contributions/requirements/application-api-rest-req-016.json +6 -2
- package/blueprints/application-api-rest/contributions/tacs/tac-301-application-api-rest-request-pipeline.json +1 -1
- package/blueprints/application-api-rest/contributions/tacs/tac-302-application-api-rest-auth-middleware.json +1 -1
- package/blueprints/application-api-rest/contributions/tacs/tac-303-application-api-rest-contract-surface.json +2 -2
- package/blueprints/application-api-rest/contributions/tacs/tac-304-application-api-rest-resource-layer.json +1 -1
- package/blueprints/application-api-rest/contributions/tacs/tac-305-application-api-rest-observability.json +1 -1
- package/blueprints/application-api-rest/contributions/tacs/tac-306-application-api-rest-operability.json +1 -1
- package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2101.json +13 -7
- package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2102.json +27 -13
- package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2103.json +18 -9
- package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2104.json +32 -10
- package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2105.json +19 -6
- package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2106.json +14 -8
- package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2107.json +20 -12
- package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2108.json +37 -15
- package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2109.json +15 -9
- package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2110.json +21 -11
- package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2111.json +42 -8
- package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2112.json +23 -13
- package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2113.json +17 -11
- package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2114.json +13 -8
- package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2115.json +13 -8
- package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2116.json +11 -6
- package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2117.json +19 -14
- package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2118.json +20 -10
- package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2119.json +20 -7
- package/blueprints/application-api-rest/contributions/user-stories/application-api-rest-us-2120.json +16 -10
- package/blueprints/application-api-rest/docs/topics.md +1 -1
- package/blueprints/application-charts/CHANGELOG.md +24 -3
- package/blueprints/application-charts/README.md +5 -5
- package/blueprints/application-charts/blueprint.json +112 -18
- package/blueprints/application-charts/contributions/adrs/adr-1901-application-charts-engine-choice.json +1 -1
- package/blueprints/application-charts/contributions/adrs/adr-1902-application-charts-accessible-palette.json +1 -1
- package/blueprints/application-charts/contributions/adrs/adr-1903-application-charts-motion.json +1 -1
- package/blueprints/application-charts/contributions/requirements/application-charts-req-001.json +11 -4
- package/blueprints/application-charts/contributions/requirements/application-charts-req-002.json +11 -4
- package/blueprints/application-charts/contributions/requirements/application-charts-req-003.json +10 -3
- package/blueprints/application-charts/contributions/requirements/application-charts-req-004.json +10 -3
- package/blueprints/application-charts/contributions/tacs/tac-1901-application-charts-render-shell.json +3 -2
- package/blueprints/application-charts/contributions/tacs/tac-1902-application-charts-keyboard-traversal.json +1 -1
- package/blueprints/application-charts/contributions/user-stories/application-charts-us-18101.json +50 -6
- package/blueprints/application-charts/contributions/user-stories/application-charts-us-18102.json +58 -6
- package/blueprints/application-charts/contributions/user-stories/application-charts-us-18103.json +54 -6
- package/blueprints/application-charts/contributions/user-stories/application-charts-us-18104.json +55 -6
- package/blueprints/application-charts/contributions/user-stories/application-charts-us-18105.json +64 -8
- package/blueprints/application-charts/contributions/user-stories/application-charts-us-18106.json +45 -7
- package/blueprints/application-charts/docs/topics.md +3 -3
- package/blueprints/application-charts/guide/application-charts.md +3 -3
- package/blueprints/application-charts/probe-packs/application-charts.pack.mjs +2 -2
- package/blueprints/application-dashboard/CHANGELOG.md +24 -3
- package/blueprints/application-dashboard/README.md +8 -8
- package/blueprints/application-dashboard/blueprint.json +147 -21
- package/blueprints/application-dashboard/contributions/adrs/adr-2001-application-dashboard-primary-kpi-enum.json +4 -4
- package/blueprints/application-dashboard/contributions/adrs/adr-2002-application-dashboard-timeframe-presets.json +1 -1
- package/blueprints/application-dashboard/contributions/adrs/adr-2003-application-dashboard-export-formats.json +1 -1
- package/blueprints/application-dashboard/contributions/requirements/application-dashboard-req-001.json +10 -3
- package/blueprints/application-dashboard/contributions/requirements/application-dashboard-req-002.json +11 -4
- package/blueprints/application-dashboard/contributions/requirements/application-dashboard-req-003.json +10 -3
- package/blueprints/application-dashboard/contributions/requirements/application-dashboard-req-004.json +11 -4
- package/blueprints/application-dashboard/contributions/requirements/application-dashboard-req-005.json +11 -4
- package/blueprints/application-dashboard/contributions/tacs/tac-2001-application-dashboard-tile-grid.json +1 -1
- package/blueprints/application-dashboard/contributions/tacs/tac-2002-application-dashboard-filter-chrome.json +1 -1
- package/blueprints/application-dashboard/contributions/tacs/tac-2003-application-dashboard-export-handle.json +1 -1
- package/blueprints/application-dashboard/contributions/user-stories/application-dashboard-us-19101.json +54 -6
- package/blueprints/application-dashboard/contributions/user-stories/application-dashboard-us-19102.json +54 -6
- package/blueprints/application-dashboard/contributions/user-stories/application-dashboard-us-19103.json +58 -6
- package/blueprints/application-dashboard/contributions/user-stories/application-dashboard-us-19104.json +55 -7
- package/blueprints/application-dashboard/contributions/user-stories/application-dashboard-us-19105.json +54 -6
- package/blueprints/application-dashboard/contributions/user-stories/application-dashboard-us-19106.json +60 -8
- package/blueprints/application-dashboard/contributions/user-stories/application-dashboard-us-19107.json +57 -9
- package/blueprints/application-dashboard/docs/topics.md +4 -4
- package/blueprints/application-dashboard/guide/application-dashboard.md +3 -3
- package/blueprints/application-dashboard/probe-packs/application-dashboard.pack.mjs +4 -4
- package/blueprints/application-datatable/CHANGELOG.md +23 -2
- package/blueprints/application-datatable/README.md +3 -3
- package/blueprints/application-datatable/blueprint.json +167 -25
- package/blueprints/application-datatable/contributions/adrs/adr-1801-application-datatable-pattern-choice.json +1 -1
- package/blueprints/application-datatable/contributions/adrs/adr-1802-application-datatable-url-state.json +1 -1
- package/blueprints/application-datatable/contributions/adrs/adr-1803-application-datatable-page-size.json +1 -1
- package/blueprints/application-datatable/contributions/adrs/adr-1804-application-datatable-selection-persistence.json +1 -1
- package/blueprints/application-datatable/contributions/requirements/application-datatable-req-001.json +11 -4
- package/blueprints/application-datatable/contributions/requirements/application-datatable-req-002.json +11 -4
- package/blueprints/application-datatable/contributions/requirements/application-datatable-req-003.json +10 -3
- package/blueprints/application-datatable/contributions/requirements/application-datatable-req-004.json +11 -4
- package/blueprints/application-datatable/contributions/requirements/application-datatable-req-005.json +10 -3
- package/blueprints/application-datatable/contributions/requirements/application-datatable-req-006.json +10 -3
- package/blueprints/application-datatable/contributions/tacs/tac-1801-application-datatable-shell.json +1 -1
- package/blueprints/application-datatable/contributions/tacs/tac-1802-application-datatable-query-adapter.json +1 -1
- package/blueprints/application-datatable/contributions/tacs/tac-1803-application-datatable-selection-model.json +2 -2
- package/blueprints/application-datatable/contributions/user-stories/application-datatable-us-17101.json +29 -7
- package/blueprints/application-datatable/contributions/user-stories/application-datatable-us-17102.json +29 -7
- package/blueprints/application-datatable/contributions/user-stories/application-datatable-us-17103.json +28 -6
- package/blueprints/application-datatable/contributions/user-stories/application-datatable-us-17104.json +65 -7
- package/blueprints/application-datatable/contributions/user-stories/application-datatable-us-17105.json +32 -7
- package/blueprints/application-datatable/contributions/user-stories/application-datatable-us-17106.json +60 -7
- package/blueprints/application-datatable/contributions/user-stories/application-datatable-us-17107.json +72 -7
- package/blueprints/application-datatable/contributions/user-stories/application-datatable-us-17108.json +59 -9
- package/blueprints/application-datatable/contributions/user-stories/application-datatable-us-17109.json +58 -9
- package/blueprints/application-datatable/docs/topics.md +2 -2
- package/blueprints/application-datatable/guide/application-datatable.md +1 -1
- package/blueprints/application-empty-error-states/CHANGELOG.md +33 -3
- package/blueprints/application-empty-error-states/README.md +3 -3
- package/blueprints/application-empty-error-states/blueprint.json +35 -1
- package/blueprints/application-empty-error-states/contributions/requirements/application-empty-error-states-req-001.json +4 -0
- package/blueprints/application-empty-error-states/contributions/requirements/application-empty-error-states-req-002.json +7 -3
- package/blueprints/application-empty-error-states/contributions/requirements/application-empty-error-states-req-003.json +4 -0
- package/blueprints/application-empty-error-states/contributions/requirements/application-empty-error-states-req-004.json +6 -2
- package/blueprints/application-empty-error-states/contributions/requirements/application-empty-error-states-req-005.json +7 -3
- package/blueprints/application-empty-error-states/contributions/requirements/application-empty-error-states-req-006.json +21 -0
- package/blueprints/application-empty-error-states/contributions/requirements/application-empty-error-states-req-007.json +21 -0
- package/blueprints/application-empty-error-states/contributions/tacs/tac-2301-application-empty-error-states-state-machine.json +7 -4
- package/blueprints/application-empty-error-states/contributions/tacs/tac-2303-application-empty-error-states-offline-buffer.json +3 -2
- package/blueprints/application-empty-error-states/contributions/user-stories/application-empty-error-states-us-22101.json +17 -2
- package/blueprints/application-empty-error-states/contributions/user-stories/application-empty-error-states-us-22102.json +31 -2
- package/blueprints/application-empty-error-states/contributions/user-stories/application-empty-error-states-us-22103.json +27 -2
- package/blueprints/application-empty-error-states/contributions/user-stories/application-empty-error-states-us-22104.json +13 -2
- package/blueprints/application-empty-error-states/contributions/user-stories/application-empty-error-states-us-22105.json +33 -2
- package/blueprints/application-empty-error-states/contributions/user-stories/application-empty-error-states-us-22106.json +13 -2
- package/blueprints/application-empty-error-states/contributions/user-stories/application-empty-error-states-us-22107.json +23 -2
- package/blueprints/application-empty-error-states/contributions/user-stories/application-empty-error-states-us-22108.json +27 -2
- package/blueprints/application-empty-error-states/docs/topics.md +1 -1
- package/blueprints/application-empty-error-states/probe-packs/application-empty-error-states.pack.mjs +93 -9
- package/blueprints/application-error-handling/CHANGELOG.md +17 -0
- package/blueprints/application-error-handling/blueprint.json +104 -19
- package/blueprints/application-error-handling/contributions/adrs/adr-1701-application-error-handling-record-shape.json +1 -1
- package/blueprints/application-error-handling/contributions/adrs/adr-1702-application-error-handling-classification-vocabulary.json +1 -1
- package/blueprints/application-error-handling/contributions/adrs/adr-1703-application-error-handling-transport-mapping.json +1 -1
- package/blueprints/application-error-handling/contributions/requirements/application-error-handling-req-001.json +10 -3
- package/blueprints/application-error-handling/contributions/requirements/application-error-handling-req-002.json +10 -3
- package/blueprints/application-error-handling/contributions/requirements/application-error-handling-req-003.json +10 -3
- package/blueprints/application-error-handling/contributions/requirements/application-error-handling-req-004.json +10 -3
- package/blueprints/application-error-handling/contributions/tacs/tac-1701-application-error-handling-boundary.json +1 -1
- package/blueprints/application-error-handling/contributions/tacs/tac-1702-application-error-handling-record-factory.json +1 -1
- package/blueprints/application-error-handling/contributions/user-stories/application-error-handling-us-16101.json +63 -4
- package/blueprints/application-error-handling/contributions/user-stories/application-error-handling-us-16102.json +49 -4
- package/blueprints/application-error-handling/contributions/user-stories/application-error-handling-us-16103.json +51 -5
- package/blueprints/application-error-handling/contributions/user-stories/application-error-handling-us-16104.json +49 -4
- package/blueprints/application-error-handling/contributions/user-stories/application-error-handling-us-16105.json +49 -4
- package/blueprints/application-error-handling/contributions/user-stories/application-error-handling-us-16106.json +49 -4
- package/blueprints/application-error-handling/contributions/user-stories/application-error-handling-us-16107.json +53 -4
- package/blueprints/application-error-handling/docs/topics.md +1 -1
- package/blueprints/application-file-upload/CHANGELOG.md +36 -3
- package/blueprints/application-file-upload/README.md +1 -1
- package/blueprints/application-file-upload/blueprint.json +56 -1
- package/blueprints/application-file-upload/contributions/adrs/adr-2402-application-file-upload-accepted-set.json +3 -3
- package/blueprints/application-file-upload/contributions/requirements/application-file-upload-req-001.json +4 -0
- package/blueprints/application-file-upload/contributions/requirements/application-file-upload-req-002.json +7 -3
- package/blueprints/application-file-upload/contributions/requirements/application-file-upload-req-003.json +6 -2
- package/blueprints/application-file-upload/contributions/requirements/application-file-upload-req-004.json +6 -2
- package/blueprints/application-file-upload/contributions/requirements/application-file-upload-req-005.json +4 -0
- package/blueprints/application-file-upload/contributions/requirements/application-file-upload-req-006.json +21 -0
- package/blueprints/application-file-upload/contributions/requirements/application-file-upload-req-007.json +21 -0
- package/blueprints/application-file-upload/contributions/tacs/tac-2401-application-file-upload-input.json +4 -2
- package/blueprints/application-file-upload/contributions/tacs/tac-2402-application-file-upload-transport.json +7 -2
- package/blueprints/application-file-upload/contributions/tacs/tac-2403-application-file-upload-progress-announcer.json +16 -6
- package/blueprints/application-file-upload/contributions/user-stories/application-file-upload-us-23101.json +23 -2
- package/blueprints/application-file-upload/contributions/user-stories/application-file-upload-us-23102.json +29 -4
- package/blueprints/application-file-upload/contributions/user-stories/application-file-upload-us-23103.json +13 -2
- package/blueprints/application-file-upload/contributions/user-stories/application-file-upload-us-23104.json +45 -2
- package/blueprints/application-file-upload/contributions/user-stories/application-file-upload-us-23105.json +37 -2
- package/blueprints/application-file-upload/contributions/user-stories/application-file-upload-us-23106.json +13 -2
- package/blueprints/application-file-upload/contributions/user-stories/application-file-upload-us-23107.json +17 -2
- package/blueprints/application-file-upload/docs/topics.md +1 -1
- package/blueprints/application-file-upload/probe-packs/application-file-upload.pack.mjs +14 -5
- package/blueprints/application-forms-wizard/CHANGELOG.md +34 -3
- package/blueprints/application-forms-wizard/README.md +2 -2
- package/blueprints/application-forms-wizard/blueprint.json +57 -1
- package/blueprints/application-forms-wizard/contributions/requirements/application-forms-wizard-req-001.json +4 -0
- package/blueprints/application-forms-wizard/contributions/requirements/application-forms-wizard-req-002.json +6 -2
- package/blueprints/application-forms-wizard/contributions/requirements/application-forms-wizard-req-003.json +6 -2
- package/blueprints/application-forms-wizard/contributions/requirements/application-forms-wizard-req-004.json +6 -2
- package/blueprints/application-forms-wizard/contributions/requirements/application-forms-wizard-req-005.json +4 -0
- package/blueprints/application-forms-wizard/contributions/requirements/application-forms-wizard-req-006.json +21 -0
- package/blueprints/application-forms-wizard/contributions/tacs/tac-2501-application-forms-wizard-task-list.json +6 -4
- package/blueprints/application-forms-wizard/contributions/tacs/tac-2502-application-forms-wizard-error-summary.json +4 -3
- package/blueprints/application-forms-wizard/contributions/user-stories/application-forms-wizard-us-24101.json +35 -2
- package/blueprints/application-forms-wizard/contributions/user-stories/application-forms-wizard-us-24102.json +27 -2
- package/blueprints/application-forms-wizard/contributions/user-stories/application-forms-wizard-us-24103.json +21 -2
- package/blueprints/application-forms-wizard/contributions/user-stories/application-forms-wizard-us-24104.json +13 -2
- package/blueprints/application-forms-wizard/contributions/user-stories/application-forms-wizard-us-24105.json +33 -2
- package/blueprints/application-forms-wizard/contributions/user-stories/application-forms-wizard-us-24106.json +18 -3
- package/blueprints/application-forms-wizard/contributions/user-stories/application-forms-wizard-us-24107.json +23 -2
- package/blueprints/application-forms-wizard/contributions/user-stories/application-forms-wizard-us-24108.json +13 -2
- package/blueprints/application-forms-wizard/docs/topics.md +1 -1
- package/blueprints/application-forms-wizard/probe-packs/application-forms-wizard.pack.mjs +3 -3
- package/blueprints/application-notifications-in-app/CHANGELOG.md +35 -3
- package/blueprints/application-notifications-in-app/README.md +5 -5
- package/blueprints/application-notifications-in-app/blueprint.json +150 -22
- package/blueprints/application-notifications-in-app/contributions/requirements/application-notifications-in-app-req-001.json +11 -4
- package/blueprints/application-notifications-in-app/contributions/requirements/application-notifications-in-app-req-002.json +8 -1
- package/blueprints/application-notifications-in-app/contributions/requirements/application-notifications-in-app-req-003.json +10 -3
- package/blueprints/application-notifications-in-app/contributions/requirements/application-notifications-in-app-req-004.json +11 -4
- package/blueprints/application-notifications-in-app/contributions/requirements/application-notifications-in-app-req-005.json +12 -5
- package/blueprints/application-notifications-in-app/contributions/requirements/application-notifications-in-app-req-006.json +21 -0
- package/blueprints/application-notifications-in-app/contributions/tacs/tac-2102-application-notifications-in-app-centre.json +14 -8
- package/blueprints/application-notifications-in-app/contributions/tacs/tac-2103-application-notifications-in-app-preferences.json +2 -2
- package/blueprints/application-notifications-in-app/contributions/user-stories/application-notifications-in-app-us-20101.json +29 -5
- package/blueprints/application-notifications-in-app/contributions/user-stories/application-notifications-in-app-us-20102.json +43 -5
- package/blueprints/application-notifications-in-app/contributions/user-stories/application-notifications-in-app-us-20103.json +39 -5
- package/blueprints/application-notifications-in-app/contributions/user-stories/application-notifications-in-app-us-20104.json +31 -5
- package/blueprints/application-notifications-in-app/contributions/user-stories/application-notifications-in-app-us-20105.json +50 -8
- package/blueprints/application-notifications-in-app/contributions/user-stories/application-notifications-in-app-us-20106.json +19 -4
- package/blueprints/application-notifications-in-app/contributions/user-stories/application-notifications-in-app-us-20107.json +19 -4
- package/blueprints/application-notifications-in-app/contributions/user-stories/application-notifications-in-app-us-20108.json +19 -4
- package/blueprints/application-notifications-in-app/docs/topics.md +1 -1
- package/blueprints/application-notifications-in-app/guide/application-notifications-in-app.md +1 -1
- package/blueprints/application-notifications-in-app/probe-packs/application-notifications-in-app.pack.mjs +4 -4
- package/blueprints/application-onboarding-tour/CHANGELOG.md +33 -2
- package/blueprints/application-onboarding-tour/README.md +2 -2
- package/blueprints/application-onboarding-tour/blueprint.json +22 -2
- package/blueprints/application-onboarding-tour/contributions/adrs/adr-2702-application-onboarding-tour-completion-store-shape.json +4 -4
- package/blueprints/application-onboarding-tour/contributions/requirements/application-onboarding-tour-req-001.json +6 -2
- package/blueprints/application-onboarding-tour/contributions/requirements/application-onboarding-tour-req-002.json +6 -2
- package/blueprints/application-onboarding-tour/contributions/requirements/application-onboarding-tour-req-003.json +4 -0
- package/blueprints/application-onboarding-tour/contributions/requirements/application-onboarding-tour-req-004.json +4 -0
- package/blueprints/application-onboarding-tour/contributions/requirements/application-onboarding-tour-req-005.json +22 -0
- package/blueprints/application-onboarding-tour/contributions/requirements/application-onboarding-tour-req-006.json +22 -0
- package/blueprints/application-onboarding-tour/contributions/tacs/tac-2702-application-onboarding-tour-checklist-slot.json +2 -1
- package/blueprints/application-onboarding-tour/contributions/tacs/tac-2703-application-onboarding-tour-completion-store.json +7 -7
- package/blueprints/application-onboarding-tour/contributions/user-stories/application-onboarding-tour-us-26101.json +67 -2
- package/blueprints/application-onboarding-tour/contributions/user-stories/application-onboarding-tour-us-26102.json +35 -2
- package/blueprints/application-onboarding-tour/contributions/user-stories/application-onboarding-tour-us-26103.json +13 -2
- package/blueprints/application-onboarding-tour/contributions/user-stories/application-onboarding-tour-us-26104.json +33 -2
- package/blueprints/application-onboarding-tour/contributions/user-stories/application-onboarding-tour-us-26105.json +13 -2
- package/blueprints/application-onboarding-tour/contributions/user-stories/application-onboarding-tour-us-26106.json +13 -2
- package/blueprints/application-onboarding-tour/contributions/user-stories/application-onboarding-tour-us-26107.json +17 -2
- package/blueprints/application-onboarding-tour/contributions/user-stories/application-onboarding-tour-us-26108.json +62 -0
- package/blueprints/application-onboarding-tour/contributions/user-stories/application-onboarding-tour-us-26109.json +72 -0
- package/blueprints/application-onboarding-tour/docs/topics.md +3 -3
- package/blueprints/application-onboarding-tour/guide/application-onboarding-tour.md +1 -1
- package/blueprints/application-onboarding-tour/probe-packs/application-onboarding-tour.pack.mjs +2 -2
- package/blueprints/application-spa/CHANGELOG.md +30 -0
- package/blueprints/application-spa/README.md +8 -8
- package/blueprints/application-spa/blueprint.json +1 -1
- package/blueprints/application-spa/contributions/adrs/adr-201-application-spa-routing.json +1 -1
- package/blueprints/application-spa/contributions/adrs/adr-202-application-spa-theming.json +1 -1
- package/blueprints/application-spa/contributions/adrs/adr-203-application-spa-client-state.json +1 -1
- package/blueprints/application-spa/contributions/adrs/adr-204-application-spa-error-envelope.json +1 -1
- package/blueprints/application-spa/contributions/adrs/adr-205-application-spa-auth-model.json +1 -1
- package/blueprints/application-spa/contributions/adrs/adr-206-application-spa-iconography.json +1 -1
- package/blueprints/application-spa/contributions/adrs/adr-207-application-spa-motion.json +1 -1
- package/blueprints/application-spa/contributions/adrs/adr-208-application-spa-i18n.json +1 -1
- package/blueprints/application-spa/contributions/adrs/adr-209-application-spa-telemetry-naming.json +1 -1
- package/blueprints/application-spa/contributions/requirements/application-spa-req-001.json +6 -2
- package/blueprints/application-spa/contributions/requirements/application-spa-req-002.json +6 -2
- package/blueprints/application-spa/contributions/requirements/application-spa-req-003.json +6 -2
- package/blueprints/application-spa/contributions/requirements/application-spa-req-004.json +6 -2
- package/blueprints/application-spa/contributions/requirements/application-spa-req-005.json +6 -2
- package/blueprints/application-spa/contributions/requirements/application-spa-req-006.json +6 -2
- package/blueprints/application-spa/contributions/requirements/application-spa-req-007.json +6 -2
- package/blueprints/application-spa/contributions/requirements/application-spa-req-008.json +6 -2
- package/blueprints/application-spa/contributions/requirements/application-spa-req-009.json +7 -3
- package/blueprints/application-spa/contributions/requirements/application-spa-req-010.json +6 -2
- package/blueprints/application-spa/contributions/requirements/application-spa-req-011.json +6 -2
- package/blueprints/application-spa/contributions/requirements/application-spa-req-012.json +6 -2
- package/blueprints/application-spa/contributions/requirements/application-spa-req-013.json +6 -2
- package/blueprints/application-spa/contributions/requirements/application-spa-req-014.json +6 -2
- package/blueprints/application-spa/contributions/requirements/application-spa-req-015.json +6 -2
- package/blueprints/application-spa/contributions/requirements/application-spa-req-016.json +6 -2
- package/blueprints/application-spa/contributions/requirements/application-spa-req-017.json +6 -2
- package/blueprints/application-spa/contributions/requirements/application-spa-req-018.json +7 -3
- package/blueprints/application-spa/contributions/requirements/application-spa-req-019.json +6 -2
- package/blueprints/application-spa/contributions/requirements/application-spa-req-020.json +6 -2
- package/blueprints/application-spa/contributions/requirements/application-spa-req-021.json +6 -2
- package/blueprints/application-spa/contributions/tacs/tac-201-application-spa-app-shell.json +4 -3
- package/blueprints/application-spa/contributions/tacs/tac-202-application-spa-theme-system.json +1 -1
- package/blueprints/application-spa/contributions/tacs/tac-203-application-spa-component-library.json +1 -1
- package/blueprints/application-spa/contributions/tacs/tac-204-application-spa-client-data-layer.json +1 -1
- package/blueprints/application-spa/contributions/tacs/tac-205-application-spa-forms-engine.json +1 -1
- package/blueprints/application-spa/contributions/tacs/tac-206-application-spa-telemetry.json +1 -1
- package/blueprints/application-spa/contributions/tacs/tac-207-application-spa-token-adherence-probe.json +1 -1
- package/blueprints/application-spa/contributions/tacs/tac-208-application-spa-icon-adherence-probe.json +1 -1
- package/blueprints/application-spa/contributions/tacs/tac-209-application-spa-csp-styled-adherence-probe.json +3 -3
- package/blueprints/application-spa/contributions/tacs/tac-210-application-spa-external-dependency-provisioning-probe.json +2 -2
- package/blueprints/application-spa/contributions/tacs/tac-211-application-spa-core-flow-e2e-probe.json +2 -2
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1101.json +22 -8
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1102.json +18 -9
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1103.json +13 -7
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1104.json +15 -10
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1105.json +13 -7
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1106.json +12 -7
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1107.json +25 -6
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1108.json +17 -9
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1109.json +17 -9
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1110.json +19 -10
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1111.json +19 -11
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1112.json +15 -8
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1113.json +15 -8
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1114.json +15 -10
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1115.json +13 -7
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1116.json +15 -9
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1117.json +20 -10
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1118.json +9 -5
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1119.json +11 -6
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1120.json +16 -10
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1121.json +13 -7
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1122.json +13 -7
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1123.json +28 -9
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1124.json +11 -6
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1125.json +14 -8
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1126.json +24 -9
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1127.json +11 -6
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1128.json +11 -7
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1129.json +25 -5
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1130.json +25 -5
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1131.json +19 -9
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1132.json +40 -10
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1133.json +35 -9
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1134.json +23 -3
- package/blueprints/application-spa/contributions/user-stories/application-spa-us-1135.json +19 -3
- package/blueprints/application-spa/docs/topics.md +1 -1
- package/blueprints/application-spa/guide/application-spa.md +2 -2
- package/blueprints/delivery-ci-workflows/CHANGELOG.md +18 -0
- package/blueprints/delivery-ci-workflows/README.md +1 -1
- package/blueprints/delivery-ci-workflows/blueprint.json +62 -1
- package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-001.json +4 -0
- package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-002.json +4 -0
- package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-003.json +4 -0
- package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-004.json +4 -0
- package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-005.json +4 -0
- package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-006.json +4 -0
- package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-007.json +4 -0
- package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-008.json +4 -0
- package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-009.json +4 -0
- package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-010.json +4 -0
- package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-011.json +6 -2
- package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-012.json +4 -0
- package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-013.json +4 -0
- package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-014.json +4 -0
- package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-015.json +4 -0
- package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-016.json +4 -0
- package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-017.json +4 -0
- package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-018.json +4 -0
- package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-019.json +4 -0
- package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-020.json +4 -0
- package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-021.json +4 -0
- package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-022.json +4 -0
- package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-023.json +4 -0
- package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6101.json +20 -4
- package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6102.json +19 -3
- package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6103.json +20 -4
- package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6104.json +20 -4
- package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6105.json +20 -4
- package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6106.json +20 -4
- package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6107.json +20 -4
- package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6108.json +20 -4
- package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6109.json +12 -5
- package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6110.json +21 -5
- package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6111.json +21 -5
- package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6112.json +35 -5
- package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6113.json +21 -5
- package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6114.json +8 -5
- package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6115.json +21 -5
- package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6116.json +19 -3
- package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6117.json +19 -3
- package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6118.json +21 -5
- package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6119.json +19 -3
- package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6120.json +19 -3
- package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6121.json +23 -6
- package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6122.json +24 -7
- package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6123.json +21 -5
- package/blueprints/delivery-ci-workflows/contributions/user-stories/delivery-ci-workflows-us-6124.json +19 -3
- package/blueprints/delivery-ci-workflows/docs/topics.md +1 -1
- package/blueprints/deploy-cloudflare-workers/CHANGELOG.md +17 -2
- package/blueprints/deploy-cloudflare-workers/README.md +2 -2
- package/blueprints/deploy-cloudflare-workers/blueprint.json +4 -4
- package/blueprints/deploy-cloudflare-workers/contributions/adrs/adr-1303-deploy-cloudflare-workers-preview-vs-production.json +1 -1
- package/blueprints/deploy-cloudflare-workers/contributions/adrs/adr-1306-deploy-cloudflare-workers-spa-shape.json +2 -2
- package/blueprints/deploy-cloudflare-workers/contributions/probes/assets-manifest-scan.mjs +25 -7
- package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-001.json +5 -1
- package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-002.json +6 -2
- package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-003.json +5 -1
- package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-004.json +5 -1
- package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-005.json +5 -1
- package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-006.json +5 -1
- package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-007.json +5 -1
- package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-008.json +5 -1
- package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-009.json +5 -1
- package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-010.json +5 -1
- package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-011.json +5 -1
- package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-012.json +5 -1
- package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-013.json +5 -1
- package/blueprints/deploy-cloudflare-workers/contributions/requirements/deploy-cloudflare-workers-req-014.json +7 -3
- package/blueprints/deploy-cloudflare-workers/contributions/tacs/tac-1301-deploy-cloudflare-workers-deploy-adapter.json +3 -2
- package/blueprints/deploy-cloudflare-workers/contributions/tacs/tac-1302-deploy-cloudflare-workers-wrangler-manifest.json +5 -2
- package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12101.json +21 -9
- package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12102.json +23 -4
- package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12103.json +7 -4
- package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12104.json +7 -4
- package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12105.json +11 -4
- package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12106.json +7 -4
- package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12107.json +7 -4
- package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12108.json +15 -4
- package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12109.json +11 -4
- package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12110.json +7 -4
- package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12111.json +11 -4
- package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12112.json +11 -4
- package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12113.json +41 -3
- package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12114.json +17 -2
- package/blueprints/deploy-cloudflare-workers/contributions/user-stories/deploy-cloudflare-workers-us-12115.json +18 -3
- package/blueprints/deploy-cloudflare-workers/docs/topics.md +1 -1
- package/blueprints/deploy-cloudflare-workers/guide/deploy-cloudflare-workers.md +7 -2
- package/blueprints/deploy-hetzner-server/CHANGELOG.md +39 -2
- package/blueprints/deploy-hetzner-server/README.md +12 -12
- package/blueprints/deploy-hetzner-server/blueprint.json +2 -2
- package/blueprints/deploy-hetzner-server/contributions/adrs/adr-3801-deploy-hetzner-server-cloud-host-contract.json +2 -2
- package/blueprints/deploy-hetzner-server/contributions/adrs/adr-3803-deploy-hetzner-server-provisioning-tool.json +2 -2
- package/blueprints/deploy-hetzner-server/contributions/probes/cloud-init-render-lint.mjs +12 -5
- package/blueprints/deploy-hetzner-server/contributions/probes/hcloud-dry-run-mock.mjs +68 -20
- package/blueprints/deploy-hetzner-server/contributions/probes/manifest-schema-validate.mjs +8 -6
- package/blueprints/deploy-hetzner-server/contributions/probes/probe-utils.mjs +7 -1
- package/blueprints/deploy-hetzner-server/contributions/probes/real-account-cloud-init-hardened.mjs +2 -1
- package/blueprints/deploy-hetzner-server/contributions/requirements/deploy-hetzner-server-req-001.json +6 -2
- package/blueprints/deploy-hetzner-server/contributions/requirements/deploy-hetzner-server-req-002.json +6 -2
- package/blueprints/deploy-hetzner-server/contributions/requirements/deploy-hetzner-server-req-003.json +5 -1
- package/blueprints/deploy-hetzner-server/contributions/requirements/deploy-hetzner-server-req-004.json +5 -1
- package/blueprints/deploy-hetzner-server/contributions/requirements/deploy-hetzner-server-req-005.json +6 -2
- package/blueprints/deploy-hetzner-server/contributions/requirements/deploy-hetzner-server-req-006.json +5 -1
- package/blueprints/deploy-hetzner-server/contributions/schemas/hetzner-server.schema.json +1 -1
- package/blueprints/deploy-hetzner-server/contributions/templates/cloud-init.yaml.tmpl +26 -6
- package/blueprints/deploy-hetzner-server/contributions/user-stories/deploy-hetzner-server-us-37101.json +63 -2
- package/blueprints/deploy-hetzner-server/contributions/user-stories/deploy-hetzner-server-us-37102.json +35 -2
- package/blueprints/deploy-hetzner-server/contributions/user-stories/deploy-hetzner-server-us-37103.json +59 -2
- package/blueprints/deploy-hetzner-server/contributions/user-stories/deploy-hetzner-server-us-37104.json +31 -2
- package/blueprints/deploy-hetzner-server/contributions/user-stories/deploy-hetzner-server-us-37105.json +25 -2
- package/blueprints/deploy-hetzner-server/contributions/user-stories/deploy-hetzner-server-us-37106.json +35 -2
- package/blueprints/deploy-hetzner-server/contributions/user-stories/deploy-hetzner-server-us-37107.json +31 -2
- package/blueprints/deploy-hetzner-server/contributions/user-stories/deploy-hetzner-server-us-37108.json +43 -2
- package/blueprints/deploy-hetzner-server/contributions/user-stories/deploy-hetzner-server-us-37109.json +31 -2
- package/blueprints/deploy-hetzner-server/docs/topics.md +3 -3
- package/blueprints/deploy-hetzner-server/guide/deploy-hetzner-server.md +12 -11
- package/blueprints/edge-cloudflare-access/CHANGELOG.md +35 -3
- package/blueprints/edge-cloudflare-access/README.md +2 -2
- package/blueprints/edge-cloudflare-access/blueprint.json +12 -2
- package/blueprints/edge-cloudflare-access/contributions/probes/real-account-gated-url.mjs +10 -2
- package/blueprints/edge-cloudflare-access/contributions/probes/wrangler-seam.mjs +1 -1
- package/blueprints/edge-cloudflare-access/contributions/requirements/edge-cloudflare-access-req-001.json +5 -1
- package/blueprints/edge-cloudflare-access/contributions/requirements/edge-cloudflare-access-req-002.json +5 -1
- package/blueprints/edge-cloudflare-access/contributions/requirements/edge-cloudflare-access-req-003.json +5 -1
- package/blueprints/edge-cloudflare-access/contributions/requirements/edge-cloudflare-access-req-004.json +6 -2
- package/blueprints/edge-cloudflare-access/contributions/requirements/edge-cloudflare-access-req-005.json +5 -1
- package/blueprints/edge-cloudflare-access/contributions/requirements/edge-cloudflare-access-req-006.json +7 -3
- package/blueprints/edge-cloudflare-access/contributions/requirements/edge-cloudflare-access-req-007.json +22 -0
- package/blueprints/edge-cloudflare-access/contributions/user-stories/edge-cloudflare-access-us-34101.json +13 -3
- package/blueprints/edge-cloudflare-access/contributions/user-stories/edge-cloudflare-access-us-34102.json +63 -2
- package/blueprints/edge-cloudflare-access/contributions/user-stories/edge-cloudflare-access-us-34103.json +18 -3
- package/blueprints/edge-cloudflare-access/contributions/user-stories/edge-cloudflare-access-us-34104.json +36 -3
- package/blueprints/edge-cloudflare-access/contributions/user-stories/edge-cloudflare-access-us-34105.json +13 -3
- package/blueprints/edge-cloudflare-access/contributions/user-stories/edge-cloudflare-access-us-34106.json +9 -3
- package/blueprints/edge-cloudflare-access/contributions/user-stories/edge-cloudflare-access-us-34107.json +68 -3
- package/blueprints/edge-cloudflare-access/contributions/user-stories/edge-cloudflare-access-us-34108.json +5 -3
- package/blueprints/edge-cloudflare-access/contributions/user-stories/edge-cloudflare-access-us-34109.json +10 -4
- package/blueprints/edge-cloudflare-access/contributions/user-stories/edge-cloudflare-access-us-34110.json +33 -0
- package/blueprints/edge-cloudflare-access/docs/topics.md +2 -2
- package/blueprints/edge-cloudflare-rate-limiting/CHANGELOG.md +35 -1
- package/blueprints/edge-cloudflare-rate-limiting/README.md +3 -3
- package/blueprints/edge-cloudflare-rate-limiting/blueprint.json +1 -1
- package/blueprints/edge-cloudflare-rate-limiting/contributions/probes/real-account-burst-and-429.mjs +10 -2
- package/blueprints/edge-cloudflare-rate-limiting/contributions/requirements/edge-cloudflare-rate-limiting-req-001.json +6 -2
- package/blueprints/edge-cloudflare-rate-limiting/contributions/requirements/edge-cloudflare-rate-limiting-req-002.json +5 -1
- package/blueprints/edge-cloudflare-rate-limiting/contributions/requirements/edge-cloudflare-rate-limiting-req-003.json +5 -1
- package/blueprints/edge-cloudflare-rate-limiting/contributions/requirements/edge-cloudflare-rate-limiting-req-004.json +6 -2
- package/blueprints/edge-cloudflare-rate-limiting/contributions/requirements/edge-cloudflare-rate-limiting-req-005.json +5 -1
- package/blueprints/edge-cloudflare-rate-limiting/contributions/tacs/tac-3701-edge-cloudflare-rate-limiting-manifest-schema.json +2 -2
- package/blueprints/edge-cloudflare-rate-limiting/contributions/tacs/tac-3703-edge-cloudflare-rate-limiting-drift-audit-runner.json +2 -2
- package/blueprints/edge-cloudflare-rate-limiting/contributions/user-stories/edge-cloudflare-rate-limiting-us-36101.json +27 -3
- package/blueprints/edge-cloudflare-rate-limiting/contributions/user-stories/edge-cloudflare-rate-limiting-us-36102.json +9 -3
- package/blueprints/edge-cloudflare-rate-limiting/contributions/user-stories/edge-cloudflare-rate-limiting-us-36103.json +24 -5
- package/blueprints/edge-cloudflare-rate-limiting/contributions/user-stories/edge-cloudflare-rate-limiting-us-36104.json +88 -3
- package/blueprints/edge-cloudflare-rate-limiting/contributions/user-stories/edge-cloudflare-rate-limiting-us-36105.json +5 -3
- package/blueprints/edge-cloudflare-rate-limiting/contributions/user-stories/edge-cloudflare-rate-limiting-us-36106.json +22 -3
- package/blueprints/edge-cloudflare-rate-limiting/contributions/user-stories/edge-cloudflare-rate-limiting-us-36107.json +16 -5
- package/blueprints/edge-cloudflare-rate-limiting/contributions/user-stories/edge-cloudflare-rate-limiting-us-36108.json +14 -3
- package/blueprints/edge-cloudflare-rate-limiting/docs/topics.md +1 -1
- package/blueprints/edge-cloudflare-rate-limiting/guide/edge-cloudflare-rate-limiting.md +2 -2
- package/blueprints/edge-cloudflare-tunnel/CHANGELOG.md +49 -4
- package/blueprints/edge-cloudflare-tunnel/README.md +20 -21
- package/blueprints/edge-cloudflare-tunnel/blueprint.json +29 -4
- package/blueprints/edge-cloudflare-tunnel/contributions/adrs/adr-4001-edge-cloudflare-tunnel-ingress-bridge-contract.json +4 -4
- package/blueprints/edge-cloudflare-tunnel/contributions/adrs/adr-4002-edge-cloudflare-tunnel-connector-runtime.json +1 -1
- package/blueprints/edge-cloudflare-tunnel/contributions/probes/manifest-schema-validate.mjs +7 -4
- package/blueprints/edge-cloudflare-tunnel/contributions/probes/probe-utils.mjs +13 -2
- package/blueprints/edge-cloudflare-tunnel/contributions/probes/real-account-connector-healthy.mjs +109 -21
- package/blueprints/edge-cloudflare-tunnel/contributions/probes/real-account-tunnel-hostname-routes.mjs +123 -30
- package/blueprints/edge-cloudflare-tunnel/contributions/requirements/edge-cloudflare-tunnel-req-001.json +6 -2
- package/blueprints/edge-cloudflare-tunnel/contributions/requirements/edge-cloudflare-tunnel-req-002.json +5 -1
- package/blueprints/edge-cloudflare-tunnel/contributions/requirements/edge-cloudflare-tunnel-req-003.json +7 -3
- package/blueprints/edge-cloudflare-tunnel/contributions/requirements/edge-cloudflare-tunnel-req-004.json +5 -1
- package/blueprints/edge-cloudflare-tunnel/contributions/requirements/edge-cloudflare-tunnel-req-005.json +5 -1
- package/blueprints/edge-cloudflare-tunnel/contributions/requirements/edge-cloudflare-tunnel-req-006.json +22 -0
- package/blueprints/edge-cloudflare-tunnel/contributions/requirements/edge-cloudflare-tunnel-req-007.json +22 -0
- package/blueprints/edge-cloudflare-tunnel/contributions/tacs/tac-4001-edge-cloudflare-tunnel-connector-shape.json +1 -1
- package/blueprints/edge-cloudflare-tunnel/contributions/tacs/tac-4004-edge-cloudflare-tunnel-zone-and-hostname-apply.json +29 -0
- package/blueprints/edge-cloudflare-tunnel/contributions/user-stories/edge-cloudflare-tunnel-us-39101.json +39 -3
- package/blueprints/edge-cloudflare-tunnel/contributions/user-stories/edge-cloudflare-tunnel-us-39102.json +23 -4
- package/blueprints/edge-cloudflare-tunnel/contributions/user-stories/edge-cloudflare-tunnel-us-39103.json +53 -3
- package/blueprints/edge-cloudflare-tunnel/contributions/user-stories/edge-cloudflare-tunnel-us-39104.json +33 -3
- package/blueprints/edge-cloudflare-tunnel/contributions/user-stories/edge-cloudflare-tunnel-us-39105.json +25 -3
- package/blueprints/edge-cloudflare-tunnel/contributions/user-stories/edge-cloudflare-tunnel-us-39106.json +86 -2
- package/blueprints/edge-cloudflare-tunnel/contributions/user-stories/edge-cloudflare-tunnel-us-39107.json +25 -3
- package/blueprints/edge-cloudflare-tunnel/contributions/user-stories/edge-cloudflare-tunnel-us-39108.json +35 -2
- package/blueprints/edge-cloudflare-tunnel/contributions/user-stories/edge-cloudflare-tunnel-us-39109.json +74 -0
- package/blueprints/edge-cloudflare-tunnel/contributions/user-stories/edge-cloudflare-tunnel-us-39110.json +60 -0
- package/blueprints/edge-cloudflare-tunnel/docs/topics.md +2 -2
- package/blueprints/edge-cloudflare-tunnel/guide/edge-cloudflare-tunnel.md +60 -13
- package/blueprints/edge-cloudflare-turnstile/CHANGELOG.md +33 -1
- package/blueprints/edge-cloudflare-turnstile/README.md +2 -2
- package/blueprints/edge-cloudflare-turnstile/blueprint.json +1 -1
- package/blueprints/edge-cloudflare-turnstile/contributions/requirements/edge-cloudflare-turnstile-req-001.json +6 -2
- package/blueprints/edge-cloudflare-turnstile/contributions/requirements/edge-cloudflare-turnstile-req-002.json +5 -1
- package/blueprints/edge-cloudflare-turnstile/contributions/requirements/edge-cloudflare-turnstile-req-003.json +6 -2
- package/blueprints/edge-cloudflare-turnstile/contributions/requirements/edge-cloudflare-turnstile-req-004.json +5 -1
- package/blueprints/edge-cloudflare-turnstile/contributions/requirements/edge-cloudflare-turnstile-req-005.json +5 -1
- package/blueprints/edge-cloudflare-turnstile/contributions/tacs/tac-3601-edge-cloudflare-turnstile-widget-mount.json +2 -2
- package/blueprints/edge-cloudflare-turnstile/contributions/tacs/tac-3602-edge-cloudflare-turnstile-server-verifier.json +2 -2
- package/blueprints/edge-cloudflare-turnstile/contributions/user-stories/edge-cloudflare-turnstile-us-35101.json +46 -5
- package/blueprints/edge-cloudflare-turnstile/contributions/user-stories/edge-cloudflare-turnstile-us-35102.json +53 -2
- package/blueprints/edge-cloudflare-turnstile/contributions/user-stories/edge-cloudflare-turnstile-us-35103.json +81 -2
- package/blueprints/edge-cloudflare-turnstile/contributions/user-stories/edge-cloudflare-turnstile-us-35104.json +29 -6
- package/blueprints/edge-cloudflare-turnstile/contributions/user-stories/edge-cloudflare-turnstile-us-35105.json +14 -4
- package/blueprints/edge-cloudflare-turnstile/contributions/user-stories/edge-cloudflare-turnstile-us-35106.json +9 -3
- package/blueprints/edge-cloudflare-turnstile/contributions/user-stories/edge-cloudflare-turnstile-us-35107.json +5 -3
- package/blueprints/edge-cloudflare-turnstile/contributions/user-stories/edge-cloudflare-turnstile-us-35108.json +5 -3
- package/blueprints/edge-cloudflare-turnstile/docs/topics.md +1 -1
- package/blueprints/edge-cloudflare-turnstile/probe-packs/edge-cloudflare-turnstile.pack.mjs +27 -5
- package/blueprints/email-smtp-resend/CHANGELOG.md +24 -0
- package/blueprints/email-smtp-resend/README.md +2 -2
- package/blueprints/email-smtp-resend/assets/stub-adapter.md +2 -0
- package/blueprints/email-smtp-resend/blueprint.json +119 -17
- package/blueprints/email-smtp-resend/contributions/requirements/email-smtp-resend-req-001.json +7 -3
- package/blueprints/email-smtp-resend/contributions/requirements/email-smtp-resend-req-002.json +4 -0
- package/blueprints/email-smtp-resend/contributions/requirements/email-smtp-resend-req-003.json +4 -0
- package/blueprints/email-smtp-resend/contributions/requirements/email-smtp-resend-req-004.json +4 -0
- package/blueprints/email-smtp-resend/contributions/requirements/email-smtp-resend-req-005.json +4 -0
- package/blueprints/email-smtp-resend/contributions/requirements/email-smtp-resend-req-006.json +4 -0
- package/blueprints/email-smtp-resend/contributions/tacs/tac-401-email-smtp-resend-send-adapter.json +3 -3
- package/blueprints/email-smtp-resend/contributions/tacs/tac-402-email-smtp-resend-webhook-verifier.json +7 -2
- package/blueprints/email-smtp-resend/contributions/user-stories/email-smtp-resend-us-4101.json +15 -8
- package/blueprints/email-smtp-resend/contributions/user-stories/email-smtp-resend-us-4102.json +27 -7
- package/blueprints/email-smtp-resend/contributions/user-stories/email-smtp-resend-us-4103.json +49 -4
- package/blueprints/email-smtp-resend/contributions/user-stories/email-smtp-resend-us-4104.json +6 -3
- package/blueprints/email-smtp-resend/contributions/user-stories/email-smtp-resend-us-4105.json +21 -5
- package/blueprints/email-smtp-resend/contributions/user-stories/email-smtp-resend-us-4106.json +27 -7
- package/blueprints/email-smtp-resend/docs/topics.md +1 -1
- package/blueprints/email-smtp-resend/guide/email-smtp-resend.md +2 -2
- package/blueprints/jobs-background/CHANGELOG.md +30 -6
- package/blueprints/jobs-background/README.md +8 -8
- package/blueprints/jobs-background/blueprint.json +55 -2
- package/blueprints/jobs-background/contributions/adrs/adr-3102-jobs-background-scheduler-mode.json +1 -1
- package/blueprints/jobs-background/contributions/adrs/adr-3103-jobs-background-requires-applied-capabilities.json +6 -6
- package/blueprints/jobs-background/contributions/probes/fake-clock-cron.mjs +1 -1
- package/blueprints/jobs-background/contributions/probes/probe-utils.mjs +4 -4
- package/blueprints/jobs-background/contributions/requirements/jobs-background-req-001.json +7 -3
- package/blueprints/jobs-background/contributions/requirements/jobs-background-req-002.json +7 -3
- package/blueprints/jobs-background/contributions/requirements/jobs-background-req-003.json +5 -1
- package/blueprints/jobs-background/contributions/requirements/jobs-background-req-004.json +5 -1
- package/blueprints/jobs-background/contributions/requirements/jobs-background-req-005.json +5 -1
- package/blueprints/jobs-background/contributions/requirements/jobs-background-req-006.json +5 -1
- package/blueprints/jobs-background/contributions/tacs/tac-3101-jobs-background-job-definition.json +5 -5
- package/blueprints/jobs-background/contributions/user-stories/jobs-background-us-30101.json +20 -3
- package/blueprints/jobs-background/contributions/user-stories/jobs-background-us-30102.json +44 -9
- package/blueprints/jobs-background/contributions/user-stories/jobs-background-us-30103.json +48 -3
- package/blueprints/jobs-background/contributions/user-stories/jobs-background-us-30104.json +63 -3
- package/blueprints/jobs-background/contributions/user-stories/jobs-background-us-30105.json +20 -3
- package/blueprints/jobs-background/contributions/user-stories/jobs-background-us-30106.json +20 -3
- package/blueprints/jobs-background/contributions/user-stories/jobs-background-us-30107.json +20 -3
- package/blueprints/jobs-background/contributions/user-stories/jobs-background-us-30108.json +21 -3
- package/blueprints/jobs-background/contributions/user-stories/jobs-background-us-30109.json +23 -6
- package/blueprints/jobs-background/docs/topics.md +3 -3
- package/blueprints/jobs-background/guide/jobs-background.md +6 -6
- package/blueprints/messaging-queue-cloudflare/CHANGELOG.md +41 -6
- package/blueprints/messaging-queue-cloudflare/README.md +6 -6
- package/blueprints/messaging-queue-cloudflare/blueprint.json +127 -19
- package/blueprints/messaging-queue-cloudflare/contributions/adrs/adr-3001-messaging-queue-cloudflare-adapter.json +3 -3
- package/blueprints/messaging-queue-cloudflare/contributions/adrs/adr-3002-messaging-queue-cloudflare-delivery-semantics.json +1 -1
- package/blueprints/messaging-queue-cloudflare/contributions/probes/real-account-concurrency-smoke.mjs +192 -37
- package/blueprints/messaging-queue-cloudflare/contributions/requirements/messaging-queue-cloudflare-req-001.json +6 -2
- package/blueprints/messaging-queue-cloudflare/contributions/requirements/messaging-queue-cloudflare-req-002.json +6 -2
- package/blueprints/messaging-queue-cloudflare/contributions/requirements/messaging-queue-cloudflare-req-003.json +5 -1
- package/blueprints/messaging-queue-cloudflare/contributions/requirements/messaging-queue-cloudflare-req-004.json +6 -2
- package/blueprints/messaging-queue-cloudflare/contributions/requirements/messaging-queue-cloudflare-req-005.json +6 -2
- package/blueprints/messaging-queue-cloudflare/contributions/requirements/messaging-queue-cloudflare-req-006.json +6 -2
- package/blueprints/messaging-queue-cloudflare/contributions/user-stories/messaging-queue-cloudflare-us-29101.json +22 -4
- package/blueprints/messaging-queue-cloudflare/contributions/user-stories/messaging-queue-cloudflare-us-29102.json +23 -4
- package/blueprints/messaging-queue-cloudflare/contributions/user-stories/messaging-queue-cloudflare-us-29103.json +20 -3
- package/blueprints/messaging-queue-cloudflare/contributions/user-stories/messaging-queue-cloudflare-us-29104.json +29 -7
- package/blueprints/messaging-queue-cloudflare/contributions/user-stories/messaging-queue-cloudflare-us-29105.json +20 -3
- package/blueprints/messaging-queue-cloudflare/contributions/user-stories/messaging-queue-cloudflare-us-29106.json +25 -4
- package/blueprints/messaging-queue-cloudflare/contributions/user-stories/messaging-queue-cloudflare-us-29107.json +25 -3
- package/blueprints/messaging-queue-cloudflare/contributions/user-stories/messaging-queue-cloudflare-us-29108.json +28 -6
- package/blueprints/messaging-queue-cloudflare/docs/topics.md +3 -3
- package/blueprints/messaging-queue-cloudflare/guide/messaging-queue-cloudflare.md +7 -5
- package/blueprints/object-storage-s3/CHANGELOG.md +32 -4
- package/blueprints/object-storage-s3/README.md +16 -3
- package/blueprints/object-storage-s3/blueprint.json +162 -20
- package/blueprints/object-storage-s3/contributions/adrs/adr-2905-object-storage-s3-hetzner-object-storage-provider.json +30 -0
- package/blueprints/object-storage-s3/contributions/probes/hetzner-object-storage-round-trip.mjs +136 -0
- package/blueprints/object-storage-s3/contributions/probes/run-hetzner-object-storage-round-trip.mjs +11 -0
- package/blueprints/object-storage-s3/contributions/requirements/object-storage-s3-req-001.json +6 -2
- package/blueprints/object-storage-s3/contributions/requirements/object-storage-s3-req-002.json +6 -2
- package/blueprints/object-storage-s3/contributions/requirements/object-storage-s3-req-003.json +5 -1
- package/blueprints/object-storage-s3/contributions/requirements/object-storage-s3-req-004.json +6 -2
- package/blueprints/object-storage-s3/contributions/requirements/object-storage-s3-req-005.json +6 -2
- package/blueprints/object-storage-s3/contributions/requirements/object-storage-s3-req-006.json +6 -2
- package/blueprints/object-storage-s3/contributions/requirements/object-storage-s3-req-101.json +22 -0
- package/blueprints/object-storage-s3/contributions/tacs/tac-2904-object-storage-s3-hetzner-endpoint-helper.json +34 -0
- package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28101.json +36 -4
- package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28102.json +32 -5
- package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28103.json +42 -3
- package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28104.json +22 -4
- package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28105.json +25 -4
- package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28106.json +13 -5
- package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28107.json +10 -4
- package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28108.json +12 -4
- package/blueprints/object-storage-s3/contributions/user-stories/object-storage-s3-us-28110.json +42 -0
- package/blueprints/object-storage-s3/docs/topics.md +1 -1
- package/blueprints/object-storage-s3/guide/object-storage-s3.md +37 -1
- package/blueprints/observability-essentials/CHANGELOG.md +21 -0
- package/blueprints/observability-essentials/README.md +1 -1
- package/blueprints/observability-essentials/assets/probe-samples/probe-response-baseline.v2.json +17 -0
- package/blueprints/observability-essentials/blueprint.json +32 -1
- package/blueprints/observability-essentials/contributions/adrs/adr-801-observability-essentials-health-probes.json +1 -1
- package/blueprints/observability-essentials/contributions/requirements/observability-essentials-req-001.json +4 -0
- package/blueprints/observability-essentials/contributions/requirements/observability-essentials-req-002.json +4 -0
- package/blueprints/observability-essentials/contributions/requirements/observability-essentials-req-003.json +4 -0
- package/blueprints/observability-essentials/contributions/requirements/observability-essentials-req-004.json +4 -0
- package/blueprints/observability-essentials/contributions/requirements/observability-essentials-req-005.json +4 -0
- package/blueprints/observability-essentials/contributions/requirements/observability-essentials-req-006.json +6 -2
- package/blueprints/observability-essentials/contributions/requirements/observability-essentials-req-007.json +7 -3
- package/blueprints/observability-essentials/contributions/requirements/observability-essentials-req-008.json +4 -0
- package/blueprints/observability-essentials/contributions/requirements/observability-essentials-req-009.json +4 -0
- package/blueprints/observability-essentials/contributions/requirements/observability-essentials-req-010.json +4 -0
- package/blueprints/observability-essentials/contributions/tacs/tac-802-observability-essentials-readiness-probe.json +6 -1
- package/blueprints/observability-essentials/contributions/tacs/tac-803-observability-essentials-status-page.json +1 -1
- package/blueprints/observability-essentials/contributions/user-stories/observability-essentials-us-7101.json +25 -7
- package/blueprints/observability-essentials/contributions/user-stories/observability-essentials-us-7102.json +9 -5
- package/blueprints/observability-essentials/contributions/user-stories/observability-essentials-us-7103.json +51 -6
- package/blueprints/observability-essentials/contributions/user-stories/observability-essentials-us-7104.json +7 -4
- package/blueprints/observability-essentials/contributions/user-stories/observability-essentials-us-7105.json +6 -3
- package/blueprints/observability-essentials/contributions/user-stories/observability-essentials-us-7106.json +37 -6
- package/blueprints/observability-essentials/contributions/user-stories/observability-essentials-us-7107.json +18 -11
- package/blueprints/observability-essentials/contributions/user-stories/observability-essentials-us-7108.json +6 -3
- package/blueprints/observability-essentials/contributions/user-stories/observability-essentials-us-7109.json +7 -4
- package/blueprints/observability-essentials/contributions/user-stories/observability-essentials-us-7110.json +8 -5
- package/blueprints/observability-essentials/docs/topics.md +2 -2
- package/blueprints/observability-essentials/guide/observability-essentials.md +1 -1
- package/blueprints/observability-logging/CHANGELOG.md +19 -4
- package/blueprints/observability-logging/README.md +1 -1
- package/blueprints/observability-logging/blueprint.json +76 -28
- package/blueprints/observability-logging/contributions/adrs/adr-1605-observability-logging-serialisation-refusal.json +25 -0
- package/blueprints/observability-logging/contributions/requirements/observability-logging-req-001.json +10 -3
- package/blueprints/observability-logging/contributions/requirements/observability-logging-req-002.json +8 -1
- package/blueprints/observability-logging/contributions/requirements/observability-logging-req-003.json +8 -1
- package/blueprints/observability-logging/contributions/requirements/observability-logging-req-004.json +8 -1
- package/blueprints/observability-logging/contributions/requirements/observability-logging-req-005.json +8 -1
- package/blueprints/observability-logging/contributions/requirements/observability-logging-req-006.json +16 -0
- package/blueprints/observability-logging/contributions/tacs/tac-1601-observability-logging-logger-factory.json +4 -4
- package/blueprints/observability-logging/contributions/user-stories/observability-logging-us-15101.json +62 -8
- package/blueprints/observability-logging/contributions/user-stories/observability-logging-us-15102.json +11 -6
- package/blueprints/observability-logging/contributions/user-stories/observability-logging-us-15103.json +37 -5
- package/blueprints/observability-logging/contributions/user-stories/observability-logging-us-15104.json +35 -4
- package/blueprints/observability-logging/contributions/user-stories/observability-logging-us-15105.json +24 -6
- package/blueprints/observability-logging/contributions/user-stories/observability-logging-us-15106.json +22 -4
- package/blueprints/observability-logging/contributions/user-stories/observability-logging-us-15107.json +34 -3
- package/blueprints/observability-logging/contributions/user-stories/observability-logging-us-15108.json +21 -3
- package/blueprints/observability-logging/contributions/user-stories/observability-logging-us-15109.json +71 -0
- package/blueprints/observability-logging/docs/topics.md +1 -1
- package/blueprints/observability-probe-endpoints/CHANGELOG.md +17 -0
- package/blueprints/observability-probe-endpoints/README.md +1 -1
- package/blueprints/observability-probe-endpoints/blueprint.json +40 -1
- package/blueprints/observability-probe-endpoints/contributions/requirements/observability-probe-endpoints-req-001.json +6 -2
- package/blueprints/observability-probe-endpoints/contributions/requirements/observability-probe-endpoints-req-002.json +4 -0
- package/blueprints/observability-probe-endpoints/contributions/requirements/observability-probe-endpoints-req-003.json +4 -0
- package/blueprints/observability-probe-endpoints/contributions/requirements/observability-probe-endpoints-req-004.json +4 -0
- package/blueprints/observability-probe-endpoints/contributions/requirements/observability-probe-endpoints-req-005.json +4 -0
- package/blueprints/observability-probe-endpoints/contributions/requirements/observability-probe-endpoints-req-006.json +4 -0
- package/blueprints/observability-probe-endpoints/contributions/requirements/observability-probe-endpoints-req-007.json +4 -0
- package/blueprints/observability-probe-endpoints/contributions/requirements/observability-probe-endpoints-req-008.json +4 -0
- package/blueprints/observability-probe-endpoints/contributions/user-stories/observability-probe-endpoints-us-14101.json +30 -9
- package/blueprints/observability-probe-endpoints/contributions/user-stories/observability-probe-endpoints-us-14102.json +24 -6
- package/blueprints/observability-probe-endpoints/contributions/user-stories/observability-probe-endpoints-us-14103.json +6 -3
- package/blueprints/observability-probe-endpoints/contributions/user-stories/observability-probe-endpoints-us-14104.json +9 -6
- package/blueprints/observability-probe-endpoints/contributions/user-stories/observability-probe-endpoints-us-14105.json +49 -4
- package/blueprints/observability-probe-endpoints/contributions/user-stories/observability-probe-endpoints-us-14106.json +9 -6
- package/blueprints/observability-probe-endpoints/contributions/user-stories/observability-probe-endpoints-us-14107.json +12 -8
- package/blueprints/observability-probe-endpoints/contributions/user-stories/observability-probe-endpoints-us-14108.json +6 -3
- package/blueprints/observability-probe-endpoints/docs/topics.md +2 -2
- package/blueprints/observability-probe-endpoints/guide/observability-probe-endpoints.md +3 -6
- package/blueprints/persistence-data-d1/CHANGELOG.md +19 -0
- package/blueprints/persistence-data-d1/README.md +1 -1
- package/blueprints/persistence-data-d1/assets/batch-usage/batch-atomicity-example.md +2 -0
- package/blueprints/persistence-data-d1/assets/facade-shape/facade-module-shape.md +2 -0
- package/blueprints/persistence-data-d1/blueprint.json +106 -22
- package/blueprints/persistence-data-d1/contributions/adrs/adr-1404-persistence-data-d1-store-boundary.json +4 -4
- package/blueprints/persistence-data-d1/contributions/requirements/persistence-data-d1-req-001.json +5 -1
- package/blueprints/persistence-data-d1/contributions/requirements/persistence-data-d1-req-002.json +5 -1
- package/blueprints/persistence-data-d1/contributions/requirements/persistence-data-d1-req-003.json +5 -1
- package/blueprints/persistence-data-d1/contributions/requirements/persistence-data-d1-req-004.json +7 -3
- package/blueprints/persistence-data-d1/contributions/requirements/persistence-data-d1-req-005.json +5 -1
- package/blueprints/persistence-data-d1/contributions/requirements/persistence-data-d1-req-006.json +5 -1
- package/blueprints/persistence-data-d1/contributions/requirements/persistence-data-d1-req-007.json +5 -1
- package/blueprints/persistence-data-d1/contributions/user-stories/persistence-data-d1-us-13101.json +35 -4
- package/blueprints/persistence-data-d1/contributions/user-stories/persistence-data-d1-us-13102.json +25 -4
- package/blueprints/persistence-data-d1/contributions/user-stories/persistence-data-d1-us-13103.json +11 -4
- package/blueprints/persistence-data-d1/contributions/user-stories/persistence-data-d1-us-13104.json +13 -6
- package/blueprints/persistence-data-d1/contributions/user-stories/persistence-data-d1-us-13105.json +11 -4
- package/blueprints/persistence-data-d1/contributions/user-stories/persistence-data-d1-us-13106.json +7 -4
- package/blueprints/persistence-data-d1/contributions/user-stories/persistence-data-d1-us-13107.json +23 -3
- package/blueprints/persistence-data-d1/docs/topics.md +1 -1
- package/blueprints/persistence-data-postgres/CHANGELOG.md +18 -2
- package/blueprints/persistence-data-postgres/README.md +1 -1
- package/blueprints/persistence-data-postgres/blueprint.json +201 -23
- package/blueprints/persistence-data-postgres/contributions/adrs/adr-2801-persistence-data-postgres-driver.json +1 -1
- package/blueprints/persistence-data-postgres/contributions/adrs/adr-2805-persistence-data-postgres-connection-pool-posture.json +1 -1
- package/blueprints/persistence-data-postgres/contributions/requirements/persistence-data-postgres-req-001.json +6 -2
- package/blueprints/persistence-data-postgres/contributions/requirements/persistence-data-postgres-req-002.json +6 -2
- package/blueprints/persistence-data-postgres/contributions/requirements/persistence-data-postgres-req-003.json +5 -1
- package/blueprints/persistence-data-postgres/contributions/requirements/persistence-data-postgres-req-004.json +7 -3
- package/blueprints/persistence-data-postgres/contributions/requirements/persistence-data-postgres-req-005.json +6 -2
- package/blueprints/persistence-data-postgres/contributions/requirements/persistence-data-postgres-req-006.json +6 -2
- package/blueprints/persistence-data-postgres/contributions/requirements/persistence-data-postgres-req-007.json +7 -3
- package/blueprints/persistence-data-postgres/contributions/tacs/tac-2802-persistence-data-postgres-migration-runner.json +2 -2
- package/blueprints/persistence-data-postgres/contributions/tacs/tac-2803-persistence-data-postgres-transaction-helper.json +5 -5
- package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27101.json +22 -4
- package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27102.json +118 -3
- package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27103.json +20 -3
- package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27104.json +26 -5
- package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27105.json +62 -3
- package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27106.json +20 -3
- package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27107.json +20 -3
- package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27108.json +20 -3
- package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27109.json +20 -3
- package/blueprints/persistence-data-postgres/contributions/user-stories/persistence-data-postgres-us-27110.json +48 -3
- package/blueprints/persistence-data-postgres/docs/topics.md +1 -1
- package/blueprints/persistence-data-sqlite/CHANGELOG.md +14 -0
- package/blueprints/persistence-data-sqlite/blueprint.json +146 -30
- package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-001.json +5 -1
- package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-002.json +5 -1
- package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-003.json +5 -1
- package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-004.json +5 -1
- package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-005.json +5 -1
- package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-006.json +5 -1
- package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-007.json +5 -1
- package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-008.json +5 -1
- package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-009.json +5 -1
- package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-010.json +5 -1
- package/blueprints/persistence-data-sqlite/contributions/requirements/persistence-data-sqlite-req-011.json +5 -1
- package/blueprints/persistence-data-sqlite/contributions/user-stories/persistence-data-sqlite-us-5101.json +35 -4
- package/blueprints/persistence-data-sqlite/contributions/user-stories/persistence-data-sqlite-us-5102.json +7 -4
- package/blueprints/persistence-data-sqlite/contributions/user-stories/persistence-data-sqlite-us-5103.json +19 -3
- package/blueprints/persistence-data-sqlite/contributions/user-stories/persistence-data-sqlite-us-5104.json +21 -4
- package/blueprints/persistence-data-sqlite/contributions/user-stories/persistence-data-sqlite-us-5105.json +7 -4
- package/blueprints/persistence-data-sqlite/contributions/user-stories/persistence-data-sqlite-us-5106.json +11 -4
- package/blueprints/persistence-data-sqlite/contributions/user-stories/persistence-data-sqlite-us-5107.json +7 -4
- package/blueprints/persistence-data-sqlite/contributions/user-stories/persistence-data-sqlite-us-5108.json +7 -4
- package/blueprints/persistence-data-sqlite/contributions/user-stories/persistence-data-sqlite-us-5109.json +11 -8
- package/blueprints/persistence-data-sqlite/contributions/user-stories/persistence-data-sqlite-us-5110.json +23 -3
- package/blueprints/persistence-data-sqlite/contributions/user-stories/persistence-data-sqlite-us-5111.json +19 -3
- package/blueprints/persistence-data-sqlite/docs/topics.md +1 -1
- package/blueprints/persistence-data-sqlite/guide/persistence-data-sqlite.md +1 -1
- package/blueprints/platform-cloudflare-cron-triggers/CHANGELOG.md +40 -2
- package/blueprints/platform-cloudflare-cron-triggers/blueprint.json +78 -17
- package/blueprints/platform-cloudflare-cron-triggers/contributions/adrs/adr-3301-platform-cloudflare-cron-triggers-scheduled-trigger-contract.json +2 -2
- package/blueprints/platform-cloudflare-cron-triggers/contributions/probes/real-account-scheduled-smoke.mjs +24 -3
- package/blueprints/platform-cloudflare-cron-triggers/contributions/probes/skew-tolerance.mjs +1 -1
- package/blueprints/platform-cloudflare-cron-triggers/contributions/requirements/platform-cloudflare-cron-triggers-req-001.json +6 -2
- package/blueprints/platform-cloudflare-cron-triggers/contributions/requirements/platform-cloudflare-cron-triggers-req-002.json +5 -1
- package/blueprints/platform-cloudflare-cron-triggers/contributions/requirements/platform-cloudflare-cron-triggers-req-003.json +5 -1
- package/blueprints/platform-cloudflare-cron-triggers/contributions/requirements/platform-cloudflare-cron-triggers-req-004.json +6 -2
- package/blueprints/platform-cloudflare-cron-triggers/contributions/tacs/tac-3301-platform-cloudflare-cron-triggers-scheduled-handler.json +1 -1
- package/blueprints/platform-cloudflare-cron-triggers/contributions/user-stories/platform-cloudflare-cron-triggers-us-32101.json +86 -5
- package/blueprints/platform-cloudflare-cron-triggers/contributions/user-stories/platform-cloudflare-cron-triggers-us-32102.json +69 -5
- package/blueprints/platform-cloudflare-cron-triggers/contributions/user-stories/platform-cloudflare-cron-triggers-us-32103.json +51 -4
- package/blueprints/platform-cloudflare-cron-triggers/contributions/user-stories/platform-cloudflare-cron-triggers-us-32104.json +65 -4
- package/blueprints/platform-cloudflare-cron-triggers/contributions/user-stories/platform-cloudflare-cron-triggers-us-32105.json +68 -5
- package/blueprints/platform-cloudflare-cron-triggers/contributions/user-stories/platform-cloudflare-cron-triggers-us-32106.json +62 -3
- package/blueprints/platform-cloudflare-cron-triggers/contributions/user-stories/platform-cloudflare-cron-triggers-us-32107.json +56 -3
- package/blueprints/platform-cloudflare-cron-triggers/docs/topics.md +4 -4
- package/blueprints/platform-cloudflare-durable-objects/CHANGELOG.md +57 -2
- package/blueprints/platform-cloudflare-durable-objects/README.md +6 -6
- package/blueprints/platform-cloudflare-durable-objects/blueprint.json +3 -2
- package/blueprints/platform-cloudflare-durable-objects/contributions/adrs/adr-3401-platform-cloudflare-durable-objects-single-cell-contract.json +1 -1
- package/blueprints/platform-cloudflare-durable-objects/contributions/adrs/adr-3402-platform-cloudflare-durable-objects-websocket-hub-contract.json +1 -1
- package/blueprints/platform-cloudflare-durable-objects/contributions/probes/namespace-facade-ready.mjs +3 -3
- package/blueprints/platform-cloudflare-durable-objects/contributions/probes/probe-utils.mjs +28 -14
- package/blueprints/platform-cloudflare-durable-objects/contributions/probes/real-account-storage-smoke.mjs +139 -27
- package/blueprints/platform-cloudflare-durable-objects/contributions/probes/sole-reader-scan.mjs +40 -39
- package/blueprints/platform-cloudflare-durable-objects/contributions/probes/storage-round-trip.mjs +26 -16
- package/blueprints/platform-cloudflare-durable-objects/contributions/probes/websocket-hub-broadcast.mjs +31 -34
- package/blueprints/platform-cloudflare-durable-objects/contributions/probes/wrangler-seam.mjs +11 -5
- package/blueprints/platform-cloudflare-durable-objects/contributions/requirements/platform-cloudflare-durable-objects-req-001.json +5 -1
- package/blueprints/platform-cloudflare-durable-objects/contributions/requirements/platform-cloudflare-durable-objects-req-002.json +6 -2
- package/blueprints/platform-cloudflare-durable-objects/contributions/requirements/platform-cloudflare-durable-objects-req-003.json +5 -1
- package/blueprints/platform-cloudflare-durable-objects/contributions/requirements/platform-cloudflare-durable-objects-req-004.json +5 -1
- package/blueprints/platform-cloudflare-durable-objects/contributions/requirements/platform-cloudflare-durable-objects-req-005.json +6 -2
- package/blueprints/platform-cloudflare-durable-objects/contributions/requirements/platform-cloudflare-durable-objects-req-006.json +6 -2
- package/blueprints/platform-cloudflare-durable-objects/contributions/requirements/platform-cloudflare-durable-objects-req-007.json +5 -1
- package/blueprints/platform-cloudflare-durable-objects/contributions/requirements/platform-cloudflare-durable-objects-req-008.json +5 -1
- package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33101.json +73 -2
- package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33102.json +59 -2
- package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33103.json +77 -2
- package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33104.json +75 -6
- package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33105.json +73 -2
- package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33106.json +49 -2
- package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33107.json +45 -2
- package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33108.json +84 -3
- package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33109.json +45 -2
- package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33110.json +59 -2
- package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33111.json +45 -2
- package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33112.json +53 -2
- package/blueprints/platform-cloudflare-durable-objects/contributions/user-stories/platform-cloudflare-durable-objects-us-33113.json +68 -5
- package/blueprints/platform-cloudflare-durable-objects/docs/topics.md +2 -2
- package/blueprints/platform-cloudflare-durable-objects/guide/platform-cloudflare-durable-objects.md +9 -9
- package/blueprints/platform-cloudflare-kv/CHANGELOG.md +83 -2
- package/blueprints/platform-cloudflare-kv/README.md +40 -14
- package/blueprints/platform-cloudflare-kv/blueprint.json +115 -20
- package/blueprints/platform-cloudflare-kv/contributions/adrs/adr-3201-platform-cloudflare-kv-key-value-store-contract.json +3 -3
- package/blueprints/platform-cloudflare-kv/contributions/probes/cache-aside-hit-then-miss.mjs +26 -26
- package/blueprints/platform-cloudflare-kv/contributions/probes/event-secrecy.mjs +49 -31
- package/blueprints/platform-cloudflare-kv/contributions/probes/facade-round-trip.mjs +58 -16
- package/blueprints/platform-cloudflare-kv/contributions/probes/list-with-prefix.mjs +6 -5
- package/blueprints/platform-cloudflare-kv/contributions/probes/real-account-eventual-consistency-smoke.mjs +165 -66
- package/blueprints/platform-cloudflare-kv/contributions/requirements/platform-cloudflare-kv-req-001.json +6 -2
- package/blueprints/platform-cloudflare-kv/contributions/requirements/platform-cloudflare-kv-req-002.json +5 -1
- package/blueprints/platform-cloudflare-kv/contributions/requirements/platform-cloudflare-kv-req-003.json +5 -1
- package/blueprints/platform-cloudflare-kv/contributions/requirements/platform-cloudflare-kv-req-004.json +6 -2
- package/blueprints/platform-cloudflare-kv/contributions/requirements/platform-cloudflare-kv-req-005.json +7 -3
- package/blueprints/platform-cloudflare-kv/contributions/requirements/platform-cloudflare-kv-req-006.json +22 -0
- package/blueprints/platform-cloudflare-kv/contributions/requirements/platform-cloudflare-kv-req-007.json +22 -0
- package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31101.json +59 -2
- package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31102.json +45 -2
- package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31103.json +73 -3
- package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31104.json +67 -2
- package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31105.json +59 -2
- package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31106.json +45 -2
- package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31107.json +45 -2
- package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31108.json +45 -2
- package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31109.json +92 -0
- package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31110.json +88 -0
- package/blueprints/platform-cloudflare-kv/contributions/user-stories/platform-cloudflare-kv-us-31111.json +89 -0
- package/blueprints/platform-cloudflare-kv/docs/topics.md +2 -2
- package/blueprints/platform-cloudflare-kv/guide/platform-cloudflare-kv.md +2 -2
- package/blueprints/platform-docker-compose-host/CHANGELOG.md +37 -3
- package/blueprints/platform-docker-compose-host/README.md +7 -7
- package/blueprints/platform-docker-compose-host/blueprint.json +23 -6
- package/blueprints/platform-docker-compose-host/contributions/adrs/adr-3901-platform-docker-compose-host-contract.json +3 -3
- package/blueprints/platform-docker-compose-host/contributions/adrs/adr-3902-platform-docker-compose-host-reverse-proxy.json +4 -4
- package/blueprints/platform-docker-compose-host/contributions/adrs/adr-3903-platform-docker-compose-host-reject-coolify.json +2 -2
- package/blueprints/platform-docker-compose-host/contributions/adrs/adr-3904-platform-docker-compose-host-log-driver.json +2 -2
- package/blueprints/platform-docker-compose-host/contributions/probes/probe-utils.mjs +1 -1
- package/blueprints/platform-docker-compose-host/contributions/probes/real-account-minimal-stack-up.mjs +2 -3
- package/blueprints/platform-docker-compose-host/contributions/probes/real-account-reload-burst.mjs +1 -1
- package/blueprints/platform-docker-compose-host/contributions/requirements/platform-docker-compose-host-req-001.json +6 -2
- package/blueprints/platform-docker-compose-host/contributions/requirements/platform-docker-compose-host-req-002.json +5 -1
- package/blueprints/platform-docker-compose-host/contributions/requirements/platform-docker-compose-host-req-003.json +6 -2
- package/blueprints/platform-docker-compose-host/contributions/requirements/platform-docker-compose-host-req-004.json +5 -1
- package/blueprints/platform-docker-compose-host/contributions/requirements/platform-docker-compose-host-req-005.json +6 -2
- package/blueprints/platform-docker-compose-host/contributions/requirements/platform-docker-compose-host-req-006.json +6 -2
- package/blueprints/platform-docker-compose-host/contributions/requirements/platform-docker-compose-host-req-007.json +22 -0
- package/blueprints/platform-docker-compose-host/contributions/user-stories/platform-docker-compose-host-us-38101.json +73 -2
- package/blueprints/platform-docker-compose-host/contributions/user-stories/platform-docker-compose-host-us-38102.json +67 -2
- package/blueprints/platform-docker-compose-host/contributions/user-stories/platform-docker-compose-host-us-38103.json +59 -2
- package/blueprints/platform-docker-compose-host/contributions/user-stories/platform-docker-compose-host-us-38104.json +75 -2
- package/blueprints/platform-docker-compose-host/contributions/user-stories/platform-docker-compose-host-us-38105.json +49 -2
- package/blueprints/platform-docker-compose-host/contributions/user-stories/platform-docker-compose-host-us-38106.json +45 -2
- package/blueprints/platform-docker-compose-host/contributions/user-stories/platform-docker-compose-host-us-38107.json +49 -2
- package/blueprints/platform-docker-compose-host/contributions/user-stories/platform-docker-compose-host-us-38108.json +49 -2
- package/blueprints/platform-docker-compose-host/contributions/user-stories/platform-docker-compose-host-us-38109.json +57 -2
- package/blueprints/platform-docker-compose-host/contributions/user-stories/platform-docker-compose-host-us-38110.json +92 -0
- package/blueprints/platform-docker-compose-host/docs/topics.md +4 -4
- package/blueprints/platform-docker-compose-host/guide/platform-docker-compose-host.md +6 -6
- package/blueprints/security-auth-clerk/CHANGELOG.md +24 -4
- package/blueprints/security-auth-clerk/README.md +1 -1
- package/blueprints/security-auth-clerk/blueprint.json +21 -1
- package/blueprints/security-auth-clerk/contributions/requirements/security-auth-clerk-req-001.json +6 -2
- package/blueprints/security-auth-clerk/contributions/requirements/security-auth-clerk-req-002.json +5 -1
- package/blueprints/security-auth-clerk/contributions/requirements/security-auth-clerk-req-003.json +6 -2
- package/blueprints/security-auth-clerk/contributions/requirements/security-auth-clerk-req-004.json +6 -2
- package/blueprints/security-auth-clerk/contributions/requirements/security-auth-clerk-req-005.json +5 -2
- package/blueprints/security-auth-clerk/contributions/requirements/security-auth-clerk-req-006.json +5 -1
- package/blueprints/security-auth-clerk/contributions/requirements/security-auth-clerk-req-007.json +4 -1
- package/blueprints/security-auth-clerk/contributions/requirements/security-auth-clerk-req-008.json +4 -1
- package/blueprints/security-auth-clerk/contributions/requirements/security-auth-clerk-req-009.json +4 -1
- package/blueprints/security-auth-clerk/contributions/requirements/security-auth-clerk-req-010.json +22 -0
- package/blueprints/security-auth-clerk/contributions/requirements/security-auth-clerk-req-011.json +22 -0
- package/blueprints/security-auth-clerk/contributions/tacs/tac-1001-security-auth-clerk-middleware.json +14 -4
- package/blueprints/security-auth-clerk/contributions/tacs/tac-1003-security-auth-clerk-session-verifier.json +7 -1
- package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9101.json +6 -3
- package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9102.json +19 -3
- package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9103.json +6 -3
- package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9104.json +6 -3
- package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9105.json +4 -2
- package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9106.json +4 -2
- package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9107.json +4 -2
- package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9108.json +13 -3
- package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9109.json +8 -2
- package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9110.json +4 -2
- package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9111.json +4 -2
- package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9112.json +102 -0
- package/blueprints/security-auth-clerk/contributions/user-stories/security-auth-clerk-us-9113.json +103 -0
- package/blueprints/security-auth-clerk/docs/topics.md +1 -1
- package/blueprints/security-auth-keycloak/CHANGELOG.md +23 -4
- package/blueprints/security-auth-keycloak/README.md +1 -1
- package/blueprints/security-auth-keycloak/blueprint.json +101 -1
- package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-001.json +5 -2
- package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-002.json +5 -1
- package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-003.json +5 -1
- package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-004.json +5 -1
- package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-005.json +6 -2
- package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-006.json +6 -2
- package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-007.json +4 -1
- package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-008.json +4 -1
- package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-009.json +4 -1
- package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-010.json +4 -1
- package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-011.json +5 -1
- package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-012.json +4 -1
- package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-013.json +22 -0
- package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-014.json +22 -0
- package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-015.json +22 -0
- package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-016.json +22 -0
- package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-017.json +22 -0
- package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-018.json +22 -0
- package/blueprints/security-auth-keycloak/contributions/requirements/security-auth-keycloak-req-019.json +22 -0
- package/blueprints/security-auth-keycloak/contributions/tacs/tac-1201-security-auth-keycloak-discovery-client.json +4 -2
- package/blueprints/security-auth-keycloak/contributions/tacs/tac-1202-security-auth-keycloak-jwt-verifier.json +8 -2
- package/blueprints/security-auth-keycloak/contributions/tacs/tac-1203-security-auth-keycloak-introspection-client.json +8 -2
- package/blueprints/security-auth-keycloak/contributions/tacs/tac-1204-security-auth-keycloak-provider-router.json +3 -1
- package/blueprints/security-auth-keycloak/contributions/tacs/tac-1205-security-auth-keycloak-role-adapter.json +2 -1
- package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11101.json +6 -3
- package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11102.json +10 -3
- package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11103.json +12 -2
- package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11104.json +8 -2
- package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11105.json +6 -3
- package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11106.json +18 -3
- package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11107.json +6 -3
- package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11108.json +6 -3
- package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11109.json +4 -2
- package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11110.json +6 -3
- package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11111.json +14 -3
- package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11112.json +4 -2
- package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11113.json +4 -2
- package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11114.json +72 -0
- package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11115.json +88 -0
- package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11116.json +117 -0
- package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11117.json +117 -0
- package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11118.json +117 -0
- package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11119.json +117 -0
- package/blueprints/security-auth-keycloak/contributions/user-stories/security-auth-keycloak-us-11120.json +103 -0
- package/blueprints/security-auth-keycloak/docs/topics.md +1 -1
- package/blueprints/security-auth-keycloak/guide/security-auth-keycloak.md +1 -1
- package/blueprints/security-auth-magic-link/CHANGELOG.md +19 -3
- package/blueprints/security-auth-magic-link/README.md +1 -1
- package/blueprints/security-auth-magic-link/blueprint.json +1 -1
- package/blueprints/security-auth-magic-link/contributions/requirements/security-auth-magic-link-req-001.json +4 -1
- package/blueprints/security-auth-magic-link/contributions/requirements/security-auth-magic-link-req-002.json +5 -1
- package/blueprints/security-auth-magic-link/contributions/requirements/security-auth-magic-link-req-003.json +6 -2
- package/blueprints/security-auth-magic-link/contributions/requirements/security-auth-magic-link-req-004.json +5 -1
- package/blueprints/security-auth-magic-link/contributions/requirements/security-auth-magic-link-req-005.json +5 -1
- package/blueprints/security-auth-magic-link/contributions/requirements/security-auth-magic-link-req-006.json +4 -1
- package/blueprints/security-auth-magic-link/contributions/requirements/security-auth-magic-link-req-007.json +4 -1
- package/blueprints/security-auth-magic-link/contributions/requirements/security-auth-magic-link-req-008.json +5 -1
- package/blueprints/security-auth-magic-link/contributions/requirements/security-auth-magic-link-req-009.json +5 -1
- package/blueprints/security-auth-magic-link/contributions/requirements/security-auth-magic-link-req-010.json +6 -2
- package/blueprints/security-auth-magic-link/contributions/requirements/security-auth-magic-link-req-011.json +6 -2
- package/blueprints/security-auth-magic-link/contributions/user-stories/security-auth-magic-link-us-3101.json +10 -5
- package/blueprints/security-auth-magic-link/contributions/user-stories/security-auth-magic-link-us-3102.json +8 -4
- package/blueprints/security-auth-magic-link/contributions/user-stories/security-auth-magic-link-us-3103.json +6 -3
- package/blueprints/security-auth-magic-link/contributions/user-stories/security-auth-magic-link-us-3104.json +8 -4
- package/blueprints/security-auth-magic-link/contributions/user-stories/security-auth-magic-link-us-3105.json +6 -3
- package/blueprints/security-auth-magic-link/contributions/user-stories/security-auth-magic-link-us-3106.json +6 -3
- package/blueprints/security-auth-magic-link/contributions/user-stories/security-auth-magic-link-us-3107.json +8 -4
- package/blueprints/security-auth-magic-link/contributions/user-stories/security-auth-magic-link-us-3108.json +6 -3
- package/blueprints/security-auth-magic-link/contributions/user-stories/security-auth-magic-link-us-3109.json +6 -3
- package/blueprints/security-auth-magic-link/contributions/user-stories/security-auth-magic-link-us-3110.json +6 -3
- package/blueprints/security-auth-magic-link/contributions/user-stories/security-auth-magic-link-us-3111.json +14 -3
- package/blueprints/security-auth-magic-link/docs/topics.md +1 -1
- package/blueprints/security-auth-magic-link/guide/security-auth-magic-link.md +1 -1
- package/blueprints/security-auth-oauth2/CHANGELOG.md +21 -4
- package/blueprints/security-auth-oauth2/README.md +1 -1
- package/blueprints/security-auth-oauth2/blueprint.json +33 -2
- package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-001.json +5 -2
- package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-002.json +5 -1
- package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-003.json +5 -1
- package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-004.json +4 -1
- package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-005.json +5 -1
- package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-006.json +6 -2
- package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-007.json +4 -1
- package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-008.json +6 -2
- package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-009.json +5 -1
- package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-010.json +4 -1
- package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-011.json +22 -0
- package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-012.json +22 -0
- package/blueprints/security-auth-oauth2/contributions/requirements/security-auth-oauth2-req-013.json +22 -0
- package/blueprints/security-auth-oauth2/contributions/tacs/tac-1102-security-auth-oauth2-provider-adapter.json +2 -1
- package/blueprints/security-auth-oauth2/contributions/tacs/tac-1103-security-auth-oauth2-session-bridge.json +9 -2
- package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10101.json +6 -3
- package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10102.json +6 -3
- package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10103.json +4 -2
- package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10104.json +4 -2
- package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10105.json +8 -4
- package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10106.json +6 -3
- package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10107.json +6 -3
- package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10108.json +6 -3
- package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10109.json +4 -2
- package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10110.json +4 -2
- package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10111.json +17 -2
- package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10112.json +82 -0
- package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10113.json +68 -0
- package/blueprints/security-auth-oauth2/contributions/user-stories/security-auth-oauth2-us-10114.json +88 -0
- package/blueprints/security-auth-oauth2/docs/topics.md +1 -1
- package/blueprints/security-secrets-management/CHANGELOG.md +14 -2
- package/blueprints/security-secrets-management/blueprint.json +168 -31
- package/blueprints/security-secrets-management/contributions/requirements/security-secrets-management-req-001.json +5 -1
- package/blueprints/security-secrets-management/contributions/requirements/security-secrets-management-req-002.json +6 -2
- package/blueprints/security-secrets-management/contributions/requirements/security-secrets-management-req-003.json +6 -2
- package/blueprints/security-secrets-management/contributions/requirements/security-secrets-management-req-004.json +5 -1
- package/blueprints/security-secrets-management/contributions/requirements/security-secrets-management-req-005.json +6 -2
- package/blueprints/security-secrets-management/contributions/requirements/security-secrets-management-req-006.json +5 -1
- package/blueprints/security-secrets-management/contributions/requirements/security-secrets-management-req-007.json +5 -1
- package/blueprints/security-secrets-management/contributions/requirements/security-secrets-management-req-008.json +5 -1
- package/blueprints/security-secrets-management/contributions/requirements/security-secrets-management-req-009.json +5 -1
- package/blueprints/security-secrets-management/contributions/requirements/security-secrets-management-req-010.json +6 -3
- package/blueprints/security-secrets-management/contributions/user-stories/security-secrets-management-us-8101.json +6 -3
- package/blueprints/security-secrets-management/contributions/user-stories/security-secrets-management-us-8102.json +6 -3
- package/blueprints/security-secrets-management/contributions/user-stories/security-secrets-management-us-8103.json +4 -2
- package/blueprints/security-secrets-management/contributions/user-stories/security-secrets-management-us-8104.json +6 -3
- package/blueprints/security-secrets-management/contributions/user-stories/security-secrets-management-us-8105.json +8 -4
- package/blueprints/security-secrets-management/contributions/user-stories/security-secrets-management-us-8106.json +6 -3
- package/blueprints/security-secrets-management/contributions/user-stories/security-secrets-management-us-8107.json +6 -3
- package/blueprints/security-secrets-management/contributions/user-stories/security-secrets-management-us-8108.json +6 -3
- package/blueprints/security-secrets-management/contributions/user-stories/security-secrets-management-us-8109.json +6 -3
- package/blueprints/security-secrets-management/contributions/user-stories/security-secrets-management-us-8110.json +6 -3
- package/blueprints/security-secrets-management/docs/topics.md +1 -1
- package/fixtures/canary-manifest.json +9 -9
- package/guidance/harness-template.md +67 -0
- package/guidance/managed/agent-instructions-block.hash +1 -1
- package/guidance/managed/agent-instructions-block.md +67 -0
- package/package.json +2 -2
- package/rcf/code-nodes/cn-500.json +12 -0
- package/rcf/code-nodes/cn-510.json +12 -0
- package/rcf/code-nodes/cn-520.json +14 -0
- package/rcf/code-nodes/cn-521.json +12 -0
- package/rcf/code-nodes/cn-522.json +13 -0
- package/rcf/code-nodes/cn-523.json +12 -0
- package/rcf/code-nodes/cn-524.json +14 -0
- package/rcf/code-nodes/cn-525.json +12 -0
- package/rcf/code-nodes/cn-526.json +14 -0
- package/rcf/fbs/fbs-160.json +15 -0
- package/rcf/fbs/fbs-165.json +15 -0
- package/rcf/fbs/fbs-170.json +16 -0
- package/rcf/fbs/fbs-171.json +16 -0
- package/rcf/fbs/fbs-172.json +15 -0
- package/rcf/fbs/fbs-173.json +17 -0
- package/rcf/fbs/fbs-174.json +17 -0
- package/rcf/requirements/req-140.json +149 -0
- package/rcf/requirements/req-145.json +53 -0
- package/rcf/requirements/req-150.json +20 -0
- package/rcf/requirements/req-151.json +85 -0
- package/rcf/requirements/req-152.json +20 -0
- package/rcf/requirements/req-153.json +59 -0
- package/rcf/requirements/req-154.json +44 -0
- package/rcf/test-suites/ts-050.json +1 -1
- package/rcf/test-suites/ts-052.json +1 -1
- package/rcf/test-suites/ts-053.json +2 -2
- package/rcf/test-suites/ts-054.json +2 -2
- package/rcf/test-suites/ts-055.json +2 -2
- package/rcf/test-suites/ts-056.json +4 -4
- package/rcf/test-suites/ts-057.json +2 -2
- package/rcf/test-suites/ts-071.json +2 -2
- package/rcf/test-suites/ts-086.json +2 -2
- package/rcf/test-suites/ts-170.json +22 -0
- package/rcf/test-suites/ts-175.json +22 -0
- package/rcf/test-suites/ts-180.json +30 -0
- package/rcf/test-suites/ts-181.json +30 -0
- package/rcf/test-suites/ts-182.json +22 -0
- package/rcf/test-suites/ts-183.json +38 -0
- package/rcf/test-suites/ts-184.json +38 -0
- package/rcf/user-stories/us-14001.json +21 -0
- package/rcf/user-stories/us-14501.json +24 -0
- package/rcf/user-stories/us-15001.json +26 -0
- package/rcf/user-stories/us-15101.json +26 -0
- package/rcf/user-stories/us-15201.json +21 -0
- package/rcf/user-stories/us-15301.json +31 -0
- package/rcf/user-stories/us-15401.json +31 -0
- package/rcf/user-stories/us-7701.json +3 -3
- package/releases/releases.yaml +21 -1
- package/src/blueprint/apply.js +64 -0
- package/src/blueprint/consistency-lint.js +432 -0
- package/src/blueprint/disposition-ledger.js +224 -0
- package/src/blueprint/dispositions.js +44 -0
- package/src/blueprint/index.js +19 -0
- package/src/browser-verify/manifest-writer.js +53 -2
- package/src/browser-verify/pack-runner.js +18 -0
- package/src/cli/blueprint.js +103 -0
- package/src/cli/view.js +22 -11
- package/src/setup/identity-seed.js +18 -0
|
@@ -0,0 +1,432 @@
|
|
|
1
|
+
// Blueprint chain-consistency lint (spec section 5 of the integration
|
|
2
|
+
// and contradiction protocol, 2026-09-09).
|
|
3
|
+
//
|
|
4
|
+
// Two passes over ONE blueprint's own JSON and markdown. Pure functions;
|
|
5
|
+
// the CLI seam loads the blueprint from disk and hands the model in.
|
|
6
|
+
//
|
|
7
|
+
// PASS 1: single-definition ownership, MECHANICAL ONLY.
|
|
8
|
+
// The check is intentionally conservative. Pass 1 fires when the
|
|
9
|
+
// same identifier-shaped literal appears on more than one artefact
|
|
10
|
+
// and one of the appearances is case-INCONSISTENT with the owning
|
|
11
|
+
// TAC on a case-sensitive axis (HTTP header, env-var, camelCase
|
|
12
|
+
// JSON field name in a strict-parse context). A byte-identical
|
|
13
|
+
// restatement is only flagged when the owning TAC declares the
|
|
14
|
+
// token on its `interfaces[]` (the strict interface surface) and
|
|
15
|
+
// the restating AC carries no `ownerRef` back to that TAC. Every
|
|
16
|
+
// other kind of appearance is treated as a reference, not a
|
|
17
|
+
// restatement (the mechanical detector cannot reliably tell a
|
|
18
|
+
// duplicate literal from a legitimate mention without domain
|
|
19
|
+
// knowledge, and the spec explicitly names four human-read shapes
|
|
20
|
+
// the lint does not catch, per section 5.7).
|
|
21
|
+
//
|
|
22
|
+
// PASS 2: REQ delivery, MECHANICAL.
|
|
23
|
+
// A REQ whose description carries a promise phrase (must / requires
|
|
24
|
+
// / guarantees / ceiling / never / invariant / on boot / at boot /
|
|
25
|
+
// event / boundary) must carry a `deliveredBy` link into a TAC or
|
|
26
|
+
// ADR. When the link points at a TAC in the same blueprint, the
|
|
27
|
+
// TAC's responsibilities and interfaces must reference the field
|
|
28
|
+
// (or the REQ's subject, when no `field` sub-path is given).
|
|
29
|
+
//
|
|
30
|
+
// Every finding carries a stable `id` the operator can quote in the
|
|
31
|
+
// blueprint README under "Known chain-consistency-lint suppressions"
|
|
32
|
+
// (pass 1 only; pass 2 findings are not suppressible per spec 5.8).
|
|
33
|
+
|
|
34
|
+
import { readFile, readdir } from 'node:fs/promises';
|
|
35
|
+
import { join } from 'node:path';
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* @typedef {object} ConsistencyFinding
|
|
39
|
+
* @property {string} id
|
|
40
|
+
* @property {'pass1'|'pass2'} pass
|
|
41
|
+
* @property {'contractDrift'|'undeclaredRestatement'|'reqNoDelivery'|'reqDeliveryNotCarried'} kind
|
|
42
|
+
* @property {string} subject
|
|
43
|
+
* @property {string[]} refs
|
|
44
|
+
* @property {string} message
|
|
45
|
+
* @property {boolean} [suppressed]
|
|
46
|
+
* @property {string} [suppressionReason]
|
|
47
|
+
*/
|
|
48
|
+
|
|
49
|
+
const HTTP_HEADER_RE = /^[A-Z][A-Za-z0-9]*(-[A-Z][A-Za-z0-9]*)+$/;
|
|
50
|
+
const HTTP_HEADER_LOWER_RE = /^[a-z][a-z0-9]*(-[a-z][a-z0-9]*)+$/;
|
|
51
|
+
const ENV_VAR_RE = /^[A-Z][A-Z0-9]*(_[A-Z0-9]+)+$/;
|
|
52
|
+
const CAMEL_JSON_FIELD_RE = /^[a-z][a-zA-Z0-9]*$/;
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Extract identifier-shaped tokens from a body of text: dashed
|
|
56
|
+
* identifiers (Cf-Turnstile-Response, run_worker_first),
|
|
57
|
+
* ALL_CAPS_ENV_VARS, and camelCase / PascalCase runs. Duplicates are
|
|
58
|
+
* preserved so callers can index by occurrence.
|
|
59
|
+
*
|
|
60
|
+
* @param {string} text
|
|
61
|
+
*/
|
|
62
|
+
function extractTokens(text) {
|
|
63
|
+
if (typeof text !== 'string' || text.length === 0) return [];
|
|
64
|
+
const out = [];
|
|
65
|
+
const re = /[A-Za-z][A-Za-z0-9]*(?:[-_][A-Za-z0-9]+)+|[A-Z][a-z]+(?:[A-Z][a-z]*)+|[a-z]+(?:[A-Z][a-z]*){1,}/g;
|
|
66
|
+
for (const m of text.matchAll(re)) out.push(m[0]);
|
|
67
|
+
return out;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Classify a token for case-sensitivity purposes.
|
|
72
|
+
*
|
|
73
|
+
* @param {string} token
|
|
74
|
+
* @returns {'header'|'headerLower'|'envVar'|'jsonField'|'identifier'}
|
|
75
|
+
*/
|
|
76
|
+
function tokenClass(token) {
|
|
77
|
+
if (ENV_VAR_RE.test(token)) return 'envVar';
|
|
78
|
+
if (HTTP_HEADER_RE.test(token)) return 'header';
|
|
79
|
+
if (HTTP_HEADER_LOWER_RE.test(token)) return 'headerLower';
|
|
80
|
+
if (CAMEL_JSON_FIELD_RE.test(token)) return 'jsonField';
|
|
81
|
+
return 'identifier';
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
// TAC / ADR / REQ / US / PRD / TAD / BS / FBS id prefixes: these read
|
|
85
|
+
// as identifier-shaped but they are meta references, not contract
|
|
86
|
+
// literals. Skip them in both directions of the drift check.
|
|
87
|
+
const ID_TOKEN_RE = /^(?:TAC|ADR|REQ|US|PRD|TAD|BS|FBS|TS|CN|AC)[-_A-Z0-9-]*$/;
|
|
88
|
+
|
|
89
|
+
// Small stop-list of ordinary English hyphenated / camel-cased words
|
|
90
|
+
// that appear as identifier-shape but are prose, not contracts.
|
|
91
|
+
const PROSE_TOKENS = new Set([
|
|
92
|
+
'stable-coded', 'per-environment', 'wall-clock', 'operator-authored',
|
|
93
|
+
'project-authored', 'vendor-resolved', 'required-absent',
|
|
94
|
+
'deployable-to-slice', 'rotation-days', 'admin-UI',
|
|
95
|
+
'read-through', 'write-through', 'follow-up',
|
|
96
|
+
]);
|
|
97
|
+
|
|
98
|
+
function isNoise(token) {
|
|
99
|
+
if (token.length < 4) return true;
|
|
100
|
+
if (ID_TOKEN_RE.test(token)) return true;
|
|
101
|
+
if (PROSE_TOKENS.has(token)) return true;
|
|
102
|
+
return false;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Owned-token dictionary. Keyed by lower-case token; the value is the
|
|
107
|
+
* canonical spelling on the owning TAC's interface surface, plus the
|
|
108
|
+
* TAC id and field where it lives.
|
|
109
|
+
*
|
|
110
|
+
* Only `interfaces[].name` and `interfaces[].summary` (backtick-quoted
|
|
111
|
+
* spans only) plus `internalStructure` (backtick-quoted spans only)
|
|
112
|
+
* count as owning surfaces. `responsibilities[]` and `purpose` are
|
|
113
|
+
* prose narrative where a mention is a reference, not a declaration.
|
|
114
|
+
*/
|
|
115
|
+
function collectOwnedTokens(tacs) {
|
|
116
|
+
/** @type {Map<string, { canonical: string, tacId: string, field: string, klass: string }>} */
|
|
117
|
+
const owned = new Map();
|
|
118
|
+
// record() takes an `onlySensitive` flag. For strict interface
|
|
119
|
+
// surfaces (`interfaces[].name`, `internalStructure` backtick spans,
|
|
120
|
+
// `responsibilities[]` backtick spans) we record every non-prose
|
|
121
|
+
// token including camelCase field names. For less-strict prose
|
|
122
|
+
// surfaces (interface summaries, purpose, responsibilities prose)
|
|
123
|
+
// we only record tokens classified as `header` / `headerLower` /
|
|
124
|
+
// `envVar`, because a prose mention of a camelCase word is usually
|
|
125
|
+
// a reference and only case-sensitive axes reliably indicate a
|
|
126
|
+
// literal declaration.
|
|
127
|
+
const record = (token, tacId, field, onlySensitive) => {
|
|
128
|
+
if (isNoise(token)) return;
|
|
129
|
+
const klass = tokenClass(token);
|
|
130
|
+
if (klass === 'identifier') return;
|
|
131
|
+
if (onlySensitive && klass === 'jsonField') return;
|
|
132
|
+
const key = token.toLowerCase();
|
|
133
|
+
if (!owned.has(key)) owned.set(key, { canonical: token, tacId, field, klass });
|
|
134
|
+
};
|
|
135
|
+
for (const tac of tacs) {
|
|
136
|
+
const tacId = tac.tacId || tac.id || '(unknown-tac)';
|
|
137
|
+
// Strict interface surfaces first so their spellings win the
|
|
138
|
+
// Map's first-write-wins semantics over any weaker prose mention.
|
|
139
|
+
if (Array.isArray(tac.interfaces)) {
|
|
140
|
+
for (let i = 0; i < tac.interfaces.length; i += 1) {
|
|
141
|
+
const iface = tac.interfaces[i];
|
|
142
|
+
if (iface && typeof iface.name === 'string') {
|
|
143
|
+
for (const t of extractTokens(iface.name)) record(t, tacId, `interfaces[${i}].name`, false);
|
|
144
|
+
}
|
|
145
|
+
if (iface && typeof iface.summary === 'string') {
|
|
146
|
+
for (const m of iface.summary.matchAll(/`+([^`]+)`+/g)) {
|
|
147
|
+
for (const t of extractTokens(m[1])) record(t, tacId, `interfaces[${i}].summary`, false);
|
|
148
|
+
}
|
|
149
|
+
// Plain-text summary: case-sensitive axes only. This is what
|
|
150
|
+
// catches `Cf-Turnstile-Response` on TAC-3602's guard summary.
|
|
151
|
+
for (const t of extractTokens(iface.summary)) record(t, tacId, `interfaces[${i}].summary`, true);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
if (typeof tac.internalStructure === 'string') {
|
|
156
|
+
for (const m of tac.internalStructure.matchAll(/`+([^`]+)`+/g)) {
|
|
157
|
+
for (const t of extractTokens(m[1])) record(t, tacId, 'internalStructure', false);
|
|
158
|
+
}
|
|
159
|
+
for (const t of extractTokens(tac.internalStructure)) record(t, tacId, 'internalStructure', true);
|
|
160
|
+
}
|
|
161
|
+
if (Array.isArray(tac.responsibilities)) {
|
|
162
|
+
for (let i = 0; i < tac.responsibilities.length; i += 1) {
|
|
163
|
+
const s = tac.responsibilities[i];
|
|
164
|
+
if (typeof s !== 'string') continue;
|
|
165
|
+
for (const m of s.matchAll(/`+([^`]+)`+/g)) {
|
|
166
|
+
for (const t of extractTokens(m[1])) record(t, tacId, `responsibilities[${i}]`, false);
|
|
167
|
+
}
|
|
168
|
+
for (const t of extractTokens(s)) record(t, tacId, `responsibilities[${i}]`, true);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
if (typeof tac.purpose === 'string') {
|
|
172
|
+
// Purpose prose: header / envVar only (never fires on ordinary
|
|
173
|
+
// English or camelCase identifiers).
|
|
174
|
+
for (const t of extractTokens(tac.purpose)) record(t, tacId, 'purpose', true);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
return owned;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
/**
|
|
181
|
+
* Collect artefact surfaces (holderId, holderKind, field, text,
|
|
182
|
+
* optional ownerRef on ACs). Used by pass 1's cross-surface walk.
|
|
183
|
+
*/
|
|
184
|
+
function collectArtefactSurfaces(input) {
|
|
185
|
+
const surfaces = [];
|
|
186
|
+
for (const req of input.reqs) {
|
|
187
|
+
const rid = req.reqId || req.id || '(unknown-req)';
|
|
188
|
+
if (typeof req.description === 'string') surfaces.push({ holderId: rid, holderKind: 'req', field: 'description', text: req.description });
|
|
189
|
+
}
|
|
190
|
+
for (const us of input.userStories) {
|
|
191
|
+
const usid = us.usId || us.id || '(unknown-us)';
|
|
192
|
+
if (typeof us.iWant === 'string') surfaces.push({ holderId: usid, holderKind: 'us', field: 'iWant', text: us.iWant });
|
|
193
|
+
if (Array.isArray(us.acceptanceCriteria)) {
|
|
194
|
+
for (const ac of us.acceptanceCriteria) {
|
|
195
|
+
const acid = ac.id || `${usid}-AC?`;
|
|
196
|
+
const ownerRef = ac.ownerRef && typeof ac.ownerRef === 'object' ? ac.ownerRef : null;
|
|
197
|
+
for (const f of ['description', 'given', 'when', 'then']) {
|
|
198
|
+
if (typeof ac[f] === 'string') surfaces.push({ holderId: acid, holderKind: 'ac', field: f, text: ac[f], parentUsId: usid, ownerRef });
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
for (const adr of input.adrs) {
|
|
204
|
+
const aid = adr.adrId || adr.id || '(unknown-adr)';
|
|
205
|
+
for (const f of ['context', 'decision', 'consequences']) {
|
|
206
|
+
if (typeof adr[f] === 'string') surfaces.push({ holderId: aid, holderKind: 'adr', field: f, text: adr[f] });
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
if (typeof input.guideMarkdown === 'string' && input.guideMarkdown.length > 0) {
|
|
210
|
+
surfaces.push({ holderId: 'guide', holderKind: 'guide', field: 'body', text: input.guideMarkdown });
|
|
211
|
+
}
|
|
212
|
+
return surfaces;
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
/**
|
|
216
|
+
* @param {{ slug: string, sourcePath: string, tacs: object[], reqs: object[], userStories: object[], adrs: object[], guideMarkdown?: string }} input
|
|
217
|
+
* @returns {ConsistencyFinding[]}
|
|
218
|
+
*/
|
|
219
|
+
export function runPass1(input) {
|
|
220
|
+
const owned = collectOwnedTokens(input.tacs);
|
|
221
|
+
if (owned.size === 0) return [];
|
|
222
|
+
const surfaces = collectArtefactSurfaces(input);
|
|
223
|
+
/** @type {ConsistencyFinding[]} */
|
|
224
|
+
const findings = [];
|
|
225
|
+
const seen = new Set();
|
|
226
|
+
|
|
227
|
+
for (const surface of surfaces) {
|
|
228
|
+
for (const raw of extractTokens(surface.text)) {
|
|
229
|
+
if (isNoise(raw)) continue;
|
|
230
|
+
const key = raw.toLowerCase();
|
|
231
|
+
const owner = owned.get(key);
|
|
232
|
+
if (!owner) continue;
|
|
233
|
+
const isSensitive = owner.klass === 'header' || owner.klass === 'envVar' || owner.klass === 'headerLower';
|
|
234
|
+
// Contract drift: the same lower-cased token, spelled
|
|
235
|
+
// differently, on a case-sensitive axis (HTTP header or
|
|
236
|
+
// env-var). This is the primary mechanical catch and includes
|
|
237
|
+
// the `Cf-Turnstile-Response` / `cf-turnstile-response`
|
|
238
|
+
// specimen shape.
|
|
239
|
+
if (isSensitive && owner.canonical !== raw) {
|
|
240
|
+
// Sentence-start capitalisation is not contract drift.
|
|
241
|
+
// Skip when the two tokens differ ONLY in the case of the
|
|
242
|
+
// very first character (rest of the token is byte-identical).
|
|
243
|
+
if (owner.canonical.length === raw.length
|
|
244
|
+
&& owner.canonical.slice(1) === raw.slice(1)
|
|
245
|
+
&& owner.canonical[0].toLowerCase() === raw[0].toLowerCase()) continue;
|
|
246
|
+
const id = `pass1-drift-${owner.tacId}-${owner.canonical}`;
|
|
247
|
+
const dedupe = `${id}::${surface.holderId}::${raw}`;
|
|
248
|
+
if (!seen.has(dedupe)) {
|
|
249
|
+
seen.add(dedupe);
|
|
250
|
+
findings.push({
|
|
251
|
+
id, pass: 'pass1', kind: 'contractDrift',
|
|
252
|
+
subject: owner.canonical,
|
|
253
|
+
refs: [owner.tacId, surface.holderId],
|
|
254
|
+
message: `${surface.holderId}.${surface.field} spells '${owner.canonical}' as '${raw}'; owner ${owner.tacId}.${owner.field} declares '${owner.canonical}'.`,
|
|
255
|
+
});
|
|
256
|
+
}
|
|
257
|
+
continue;
|
|
258
|
+
}
|
|
259
|
+
// Undeclared restatement: only fires for AC surfaces (the
|
|
260
|
+
// schema field `ownerRef` lives on AC records), only when the
|
|
261
|
+
// owning surface is an `interfaces[].name` (the strict
|
|
262
|
+
// interface surface), and only when the AC does not name an
|
|
263
|
+
// `ownerRef.tacId` matching the owning TAC. Every other cross
|
|
264
|
+
// surface mention is read as a reference, not a restatement.
|
|
265
|
+
if (surface.holderKind !== 'ac') continue;
|
|
266
|
+
if (!owner.field.startsWith('interfaces[') || !owner.field.endsWith('].name')) continue;
|
|
267
|
+
const ownerRef = surface.ownerRef;
|
|
268
|
+
const declared = ownerRef && typeof ownerRef.tacId === 'string' && ownerRef.tacId === owner.tacId;
|
|
269
|
+
if (declared) continue;
|
|
270
|
+
const id = `pass1-restated-${owner.tacId}-${owner.canonical}`;
|
|
271
|
+
const dedupe = `${id}::${surface.holderId}`;
|
|
272
|
+
if (seen.has(dedupe)) continue;
|
|
273
|
+
seen.add(dedupe);
|
|
274
|
+
findings.push({
|
|
275
|
+
id, pass: 'pass1', kind: 'undeclaredRestatement',
|
|
276
|
+
subject: owner.canonical,
|
|
277
|
+
refs: [owner.tacId, surface.holderId],
|
|
278
|
+
message: `${surface.holderId}.${surface.field} restates '${owner.canonical}' owned by ${owner.tacId}.${owner.field}; declare ownerRef or turn the mention into a reference.`,
|
|
279
|
+
});
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
return findings;
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
// REQ description phrases that read as an externally observable
|
|
286
|
+
// promise the lint asks a TAC or ADR to deliver.
|
|
287
|
+
const PROMISE_TERMS = [
|
|
288
|
+
'must', 'requires', 'required', 'guarantee', 'guarantees', 'guaranteed',
|
|
289
|
+
'ceiling', 'never', 'invariant', 'on boot', 'at boot', 'boot event',
|
|
290
|
+
'always', 'ensures', 'refuse', 'refuses', 'forbid', 'forbidden',
|
|
291
|
+
];
|
|
292
|
+
|
|
293
|
+
export function runPass2(input) {
|
|
294
|
+
const findings = [];
|
|
295
|
+
const tacsById = new Map();
|
|
296
|
+
for (const t of input.tacs) tacsById.set(t.tacId || t.id, t);
|
|
297
|
+
for (const req of input.reqs) {
|
|
298
|
+
const rid = req.reqId || req.id || '(unknown-req)';
|
|
299
|
+
const desc = typeof req.description === 'string' ? req.description : '';
|
|
300
|
+
const promises = PROMISE_TERMS.some((term) => new RegExp(`(^|[^A-Za-z])${term}([^A-Za-z]|$)`, 'i').test(desc));
|
|
301
|
+
if (!promises) continue;
|
|
302
|
+
const delivery = req.deliveredBy && typeof req.deliveredBy === 'object' ? req.deliveredBy : null;
|
|
303
|
+
if (!delivery || (!delivery.tacId && !delivery.adrId)) {
|
|
304
|
+
findings.push({
|
|
305
|
+
id: `pass2-no-delivery-${rid}`, pass: 'pass2', kind: 'reqNoDelivery',
|
|
306
|
+
subject: rid, refs: [rid],
|
|
307
|
+
message: `${rid}.description promises an externally observable property but declares no deliveredBy link into a TAC or ADR.`,
|
|
308
|
+
});
|
|
309
|
+
continue;
|
|
310
|
+
}
|
|
311
|
+
if (delivery.tacId) {
|
|
312
|
+
const target = tacsById.get(delivery.tacId);
|
|
313
|
+
if (!target) {
|
|
314
|
+
findings.push({
|
|
315
|
+
id: `pass2-delivery-missing-tac-${rid}-${delivery.tacId}`, pass: 'pass2', kind: 'reqDeliveryNotCarried',
|
|
316
|
+
subject: rid, refs: [rid, delivery.tacId],
|
|
317
|
+
message: `${rid}.deliveredBy names TAC ${delivery.tacId} which is not present in the blueprint.`,
|
|
318
|
+
});
|
|
319
|
+
continue;
|
|
320
|
+
}
|
|
321
|
+
const carried = collectTacSurfaceText(target).toLowerCase();
|
|
322
|
+
const field = typeof delivery.field === 'string' ? delivery.field.toLowerCase() : '';
|
|
323
|
+
const fieldTail = field ? field.split('.').pop() : '';
|
|
324
|
+
if (fieldTail && !carried.includes(fieldTail)) {
|
|
325
|
+
findings.push({
|
|
326
|
+
id: `pass2-delivery-field-missing-${rid}-${delivery.tacId}`, pass: 'pass2', kind: 'reqDeliveryNotCarried',
|
|
327
|
+
subject: rid, refs: [rid, delivery.tacId, fieldTail],
|
|
328
|
+
message: `${rid}.deliveredBy points at ${delivery.tacId}.${delivery.field} but that field is not present on the TAC's responsibilities or interfaces.`,
|
|
329
|
+
});
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
return findings;
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
function collectTacSurfaceText(tac) {
|
|
337
|
+
const parts = [];
|
|
338
|
+
if (typeof tac.purpose === 'string') parts.push(tac.purpose);
|
|
339
|
+
if (typeof tac.internalStructure === 'string') parts.push(tac.internalStructure);
|
|
340
|
+
if (Array.isArray(tac.responsibilities)) parts.push(tac.responsibilities.filter((s) => typeof s === 'string').join(' '));
|
|
341
|
+
if (Array.isArray(tac.interfaces)) {
|
|
342
|
+
for (const iface of tac.interfaces) {
|
|
343
|
+
if (iface && typeof iface.name === 'string') parts.push(iface.name);
|
|
344
|
+
if (iface && typeof iface.summary === 'string') parts.push(iface.summary);
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
return parts.join(' ');
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
/**
|
|
351
|
+
* Load a blueprint from disk into the shape the passes consume.
|
|
352
|
+
*
|
|
353
|
+
* @param {string} sourcePath
|
|
354
|
+
* @returns {Promise<{ slug: string, sourcePath: string, tacs: object[], reqs: object[], userStories: object[], adrs: object[], guideMarkdown: string } | { error: string }>}
|
|
355
|
+
*/
|
|
356
|
+
export async function loadForLint(sourcePath) {
|
|
357
|
+
let meta;
|
|
358
|
+
try {
|
|
359
|
+
const raw = await readFile(join(sourcePath, 'blueprint.json'), 'utf8');
|
|
360
|
+
meta = JSON.parse(raw);
|
|
361
|
+
} catch (err) {
|
|
362
|
+
return { error: `cannot read blueprint.json under ${sourcePath}: ${err.message}` };
|
|
363
|
+
}
|
|
364
|
+
const slug = meta.slug || '(unknown-slug)';
|
|
365
|
+
const contributions = Array.isArray(meta.contributions) ? meta.contributions : [];
|
|
366
|
+
const tacs = []; const reqs = []; const userStories = []; const adrs = [];
|
|
367
|
+
for (const c of contributions) {
|
|
368
|
+
if (!c || typeof c.path !== 'string') continue;
|
|
369
|
+
const abs = join(sourcePath, 'contributions', c.path);
|
|
370
|
+
let doc;
|
|
371
|
+
try { doc = JSON.parse(await readFile(abs, 'utf8')); } catch { continue; }
|
|
372
|
+
switch (c.kind) {
|
|
373
|
+
case 'tac': tacs.push(doc); break;
|
|
374
|
+
case 'req': reqs.push(doc); break;
|
|
375
|
+
case 'us': userStories.push(doc); break;
|
|
376
|
+
case 'adr': adrs.push(doc); break;
|
|
377
|
+
default: break;
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
let guideMarkdown = '';
|
|
381
|
+
try {
|
|
382
|
+
const entries = await readdir(join(sourcePath, 'guide'));
|
|
383
|
+
for (const name of entries) {
|
|
384
|
+
if (!name.endsWith('.md')) continue;
|
|
385
|
+
guideMarkdown += `${await readFile(join(sourcePath, 'guide', name), 'utf8')}\n`;
|
|
386
|
+
}
|
|
387
|
+
} catch { /* no guide directory is fine */ }
|
|
388
|
+
return { slug, sourcePath, tacs, reqs, userStories, adrs, guideMarkdown };
|
|
389
|
+
}
|
|
390
|
+
|
|
391
|
+
/**
|
|
392
|
+
* Extract "Known chain-consistency-lint suppressions" entries from a
|
|
393
|
+
* blueprint's README.md. Returns a Map from finding id to reason.
|
|
394
|
+
*/
|
|
395
|
+
export async function loadSuppressions(sourcePath) {
|
|
396
|
+
const out = new Map();
|
|
397
|
+
let readme;
|
|
398
|
+
try { readme = await readFile(join(sourcePath, 'README.md'), 'utf8'); } catch { return out; }
|
|
399
|
+
const m = readme.match(/##\s+Known chain-consistency-lint suppressions([\s\S]*?)(\n##\s+|$)/);
|
|
400
|
+
if (!m) return out;
|
|
401
|
+
for (const line of m[1].split('\n')) {
|
|
402
|
+
const rm = line.match(/^\s*[-*]\s+([A-Za-z0-9][A-Za-z0-9._:-]*)\s*:\s*(.+?)\s*$/);
|
|
403
|
+
if (rm) out.set(rm[1], rm[2]);
|
|
404
|
+
}
|
|
405
|
+
return out;
|
|
406
|
+
}
|
|
407
|
+
|
|
408
|
+
/**
|
|
409
|
+
* Run both passes and shape the result envelope. Pass 1 findings that
|
|
410
|
+
* appear in `suppressions` are marked `suppressed: true`; pass 2
|
|
411
|
+
* findings are never suppressible.
|
|
412
|
+
*/
|
|
413
|
+
export function runLint(input, suppressions = new Map()) {
|
|
414
|
+
const pass1 = runPass1(input);
|
|
415
|
+
const pass2 = runPass2(input);
|
|
416
|
+
let suppressedCount = 0;
|
|
417
|
+
for (const f of pass1) {
|
|
418
|
+
if (suppressions.has(f.id)) {
|
|
419
|
+
f.suppressed = true;
|
|
420
|
+
f.suppressionReason = suppressions.get(f.id);
|
|
421
|
+
suppressedCount += 1;
|
|
422
|
+
}
|
|
423
|
+
}
|
|
424
|
+
const findings = [...pass1, ...pass2];
|
|
425
|
+
const unsuppressed = findings.filter((f) => !f.suppressed);
|
|
426
|
+
return {
|
|
427
|
+
blueprint: input.slug,
|
|
428
|
+
findings,
|
|
429
|
+
verdict: unsuppressed.length === 0 ? 'pass' : 'fail',
|
|
430
|
+
passCounts: { pass1: pass1.length, pass2: pass2.length, suppressed: suppressedCount },
|
|
431
|
+
};
|
|
432
|
+
}
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
// Per-slug disposition ledger for applied blueprints. Sits alongside
|
|
2
|
+
// the existing `<slug>.applied.json` sidecar (see capabilities.js) and
|
|
3
|
+
// records one entry per AC contributed by the blueprint, plus the
|
|
4
|
+
// disposition the applying agent (or the operator) recorded.
|
|
5
|
+
//
|
|
6
|
+
// Schema follow-up: a `$defs/blueprintDispositionLedger` shape lands
|
|
7
|
+
// on `@stravica-ai/rcf-schemas` alongside the four fields the 0.6.2
|
|
8
|
+
// bump already ships (deliveredBy, ownerRef, disposition,
|
|
9
|
+
// vendorCitation). Until it does, the ledger validates itself via the
|
|
10
|
+
// local `validateRecord` guard so a malformed write refuses before
|
|
11
|
+
// touching the file.
|
|
12
|
+
//
|
|
13
|
+
// Ledger location: `rcf/blueprints/<slug>.disposition.json`.
|
|
14
|
+
|
|
15
|
+
import { readFile, mkdir, writeFile, stat } from 'node:fs/promises';
|
|
16
|
+
import { join, dirname } from 'node:path';
|
|
17
|
+
|
|
18
|
+
const ACTIONS = new Set([
|
|
19
|
+
'pending-disposition',
|
|
20
|
+
'pending-operator',
|
|
21
|
+
'accepted',
|
|
22
|
+
'adjusted',
|
|
23
|
+
'dropped',
|
|
24
|
+
'escalated-as-defect',
|
|
25
|
+
]);
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* @typedef {object} DispositionRecord
|
|
29
|
+
* @property {string} acId
|
|
30
|
+
* @property {string} storyId
|
|
31
|
+
* @property {'fixed'|'template'} [sourceDisposition]
|
|
32
|
+
* @property {'pending-disposition'|'pending-operator'|'accepted'|'adjusted'|'dropped'|'escalated-as-defect'} action
|
|
33
|
+
* @property {string} [reason]
|
|
34
|
+
* @property {string} [resolvedAt]
|
|
35
|
+
* @property {string} [resolvedBy]
|
|
36
|
+
* @property {string} [escalatedAt]
|
|
37
|
+
* @property {boolean} [escalatedToOperator]
|
|
38
|
+
* @property {string} [defectUrl]
|
|
39
|
+
*/
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Ledger file path (relative to project root).
|
|
43
|
+
*
|
|
44
|
+
* @param {string} slug
|
|
45
|
+
*/
|
|
46
|
+
export function ledgerRelPath(slug) {
|
|
47
|
+
return join('rcf', 'blueprints', `${slug}.disposition.json`);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Absolute path helper.
|
|
52
|
+
*/
|
|
53
|
+
export function ledgerAbsPath(projectRoot, slug) {
|
|
54
|
+
return join(projectRoot, ledgerRelPath(slug));
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Best-effort shape check for a single ledger record. Returns null on
|
|
59
|
+
* ok, an error string on any refusal.
|
|
60
|
+
*
|
|
61
|
+
* @param {any} rec
|
|
62
|
+
* @returns {string | null}
|
|
63
|
+
*/
|
|
64
|
+
function validateRecord(rec) {
|
|
65
|
+
if (!rec || typeof rec !== 'object') return 'record is not an object';
|
|
66
|
+
if (typeof rec.acId !== 'string' || rec.acId.length === 0) return 'acId is missing';
|
|
67
|
+
if (typeof rec.storyId !== 'string' || rec.storyId.length === 0) return 'storyId is missing';
|
|
68
|
+
if (typeof rec.action !== 'string' || !ACTIONS.has(rec.action)) return `action must be one of ${[...ACTIONS].join(', ')}; got '${rec.action}'`;
|
|
69
|
+
if (rec.sourceDisposition !== undefined && rec.sourceDisposition !== 'fixed' && rec.sourceDisposition !== 'template') {
|
|
70
|
+
return `sourceDisposition must be 'fixed' or 'template' when set; got '${rec.sourceDisposition}'`;
|
|
71
|
+
}
|
|
72
|
+
return null;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* Read a slug's ledger from disk. Missing file returns null.
|
|
77
|
+
*
|
|
78
|
+
* @param {string} projectRoot
|
|
79
|
+
* @param {string} slug
|
|
80
|
+
* @returns {Promise<{ slug: string, schemaVersion: number, records: DispositionRecord[] } | null>}
|
|
81
|
+
*/
|
|
82
|
+
export async function readLedger(projectRoot, slug) {
|
|
83
|
+
const abs = ledgerAbsPath(projectRoot, slug);
|
|
84
|
+
try {
|
|
85
|
+
const raw = await readFile(abs, 'utf8');
|
|
86
|
+
return JSON.parse(raw);
|
|
87
|
+
} catch (err) {
|
|
88
|
+
if (err && err.code === 'ENOENT') return null;
|
|
89
|
+
throw err;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* Presence check for the ledger file. Does not parse.
|
|
95
|
+
*
|
|
96
|
+
* @param {string} projectRoot
|
|
97
|
+
* @param {string} slug
|
|
98
|
+
* @returns {Promise<boolean>}
|
|
99
|
+
*/
|
|
100
|
+
export async function ledgerExists(projectRoot, slug) {
|
|
101
|
+
try { await stat(ledgerAbsPath(projectRoot, slug)); return true; } catch { return false; }
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* Write a whole ledger document (overwrites). Validates every record
|
|
106
|
+
* before touching disk; a bad record returns { error: string } and
|
|
107
|
+
* writes nothing.
|
|
108
|
+
*
|
|
109
|
+
* @param {object} args
|
|
110
|
+
* @param {string} args.projectRoot
|
|
111
|
+
* @param {string} args.slug
|
|
112
|
+
* @param {DispositionRecord[]} args.records
|
|
113
|
+
* @returns {Promise<{ path: string } | { error: string }>}
|
|
114
|
+
*/
|
|
115
|
+
export async function writeLedger({ projectRoot, slug, records }) {
|
|
116
|
+
if (!Array.isArray(records)) return { error: 'records must be an array' };
|
|
117
|
+
for (const r of records) {
|
|
118
|
+
const err = validateRecord(r);
|
|
119
|
+
if (err) return { error: `invalid ledger record for AC '${r?.acId ?? '?'}': ${err}` };
|
|
120
|
+
}
|
|
121
|
+
const abs = ledgerAbsPath(projectRoot, slug);
|
|
122
|
+
await mkdir(dirname(abs), { recursive: true });
|
|
123
|
+
const payload = { slug, schemaVersion: 1, records };
|
|
124
|
+
await writeFile(abs, `${JSON.stringify(payload, null, 2)}\n`, 'utf8');
|
|
125
|
+
return { path: ledgerRelPath(slug) };
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* Initialise a ledger for a freshly-applied blueprint. One record
|
|
130
|
+
* per AC contributed by the blueprint. Existing ledger (re-apply)
|
|
131
|
+
* is left byte-identical so operator disposition edits are never
|
|
132
|
+
* clobbered; the return value carries `alreadyExisted: true`.
|
|
133
|
+
*
|
|
134
|
+
* A `fixed` AC (per rcf-schemas 0.6.2 `$defs.acDisposition`) lands as
|
|
135
|
+
* `accepted` with the sentinel reason `fixed-mechanism-inherited`,
|
|
136
|
+
* per spec section 3.6.
|
|
137
|
+
*
|
|
138
|
+
* @param {object} args
|
|
139
|
+
* @param {string} args.projectRoot
|
|
140
|
+
* @param {string} args.slug
|
|
141
|
+
* @param {Array<{ id: string, storyId: string, sourceDisposition?: 'fixed'|'template' }>} args.acDescriptors
|
|
142
|
+
* @param {Date} [args.now]
|
|
143
|
+
* @returns {Promise<{ path: string, alreadyExisted: boolean, recordCount: number }>}
|
|
144
|
+
*/
|
|
145
|
+
export async function initialiseLedger({ projectRoot, slug, acDescriptors, now = new Date() }) {
|
|
146
|
+
if (await ledgerExists(projectRoot, slug)) {
|
|
147
|
+
const existing = await readLedger(projectRoot, slug);
|
|
148
|
+
return { path: ledgerRelPath(slug), alreadyExisted: true, recordCount: existing?.records?.length ?? 0 };
|
|
149
|
+
}
|
|
150
|
+
const iso = now.toISOString().slice(0, 10);
|
|
151
|
+
const records = acDescriptors.map((d) => {
|
|
152
|
+
const base = { acId: d.id, storyId: d.storyId };
|
|
153
|
+
if (d.sourceDisposition === 'fixed') {
|
|
154
|
+
return { ...base, sourceDisposition: 'fixed', action: 'accepted', reason: 'fixed-mechanism-inherited', resolvedAt: iso, resolvedBy: 'blueprint-author' };
|
|
155
|
+
}
|
|
156
|
+
if (d.sourceDisposition === 'template') {
|
|
157
|
+
return { ...base, sourceDisposition: 'template', action: 'pending-disposition' };
|
|
158
|
+
}
|
|
159
|
+
return { ...base, action: 'pending-disposition' };
|
|
160
|
+
});
|
|
161
|
+
const res = await writeLedger({ projectRoot, slug, records });
|
|
162
|
+
if ('error' in res) throw new Error(`ledger init failed: ${res.error}`);
|
|
163
|
+
return { path: res.path, alreadyExisted: false, recordCount: records.length };
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
/**
|
|
167
|
+
* Update or append a single AC record. If the acId is present, its
|
|
168
|
+
* fields are merged (later fields win); otherwise the record is
|
|
169
|
+
* appended. Returns { updated: boolean, path } on success.
|
|
170
|
+
*/
|
|
171
|
+
export async function upsertLedgerRecord({ projectRoot, slug, record }) {
|
|
172
|
+
const err = validateRecord(record);
|
|
173
|
+
if (err) return { error: err };
|
|
174
|
+
const doc = (await readLedger(projectRoot, slug)) ?? { slug, schemaVersion: 1, records: [] };
|
|
175
|
+
let updated = false;
|
|
176
|
+
const next = doc.records.map((r) => {
|
|
177
|
+
if (r.acId === record.acId) { updated = true; return { ...r, ...record }; }
|
|
178
|
+
return r;
|
|
179
|
+
});
|
|
180
|
+
if (!updated) next.push(record);
|
|
181
|
+
const res = await writeLedger({ projectRoot, slug, records: next });
|
|
182
|
+
if ('error' in res) return res;
|
|
183
|
+
return { updated, path: res.path };
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
// The prompt the operator sees at apply time. Kept a canonical string
|
|
187
|
+
// so tests can assert against it and the dispatch spec can echo it
|
|
188
|
+
// verbatim. Contains no em-dashes and no internal identifiers so it
|
|
189
|
+
// reads cleanly in third-party output.
|
|
190
|
+
export const APPLY_DISPOSITION_PROMPT = (slug, version, count) => (
|
|
191
|
+
`Blueprint '${slug}' v${version} contributed ${count} acceptance criteria. `
|
|
192
|
+
+ `For each, you or the applying agent must record a disposition (accept as authored, adjust with a stated reason, `
|
|
193
|
+
+ `drop with a stated reason, or escalate to the operator). `
|
|
194
|
+
+ `Run 'rcf define blueprint dispositions ${slug}' at any time to see the current state; `
|
|
195
|
+
+ `the applying agent will drive the walk unless you want to do it yourself.`
|
|
196
|
+
);
|
|
197
|
+
|
|
198
|
+
/**
|
|
199
|
+
* Ledger schema documentation the follow-up rcf-schemas PR will land.
|
|
200
|
+
* Kept close to the writer so the local guard and the eventual schema
|
|
201
|
+
* definition stay in step.
|
|
202
|
+
*/
|
|
203
|
+
export const LEDGER_SCHEMA_NOTE = `
|
|
204
|
+
The per-slug disposition ledger is a JSON object with:
|
|
205
|
+
{ slug: string,
|
|
206
|
+
schemaVersion: 1,
|
|
207
|
+
records: [
|
|
208
|
+
{ acId: string,
|
|
209
|
+
storyId: string,
|
|
210
|
+
sourceDisposition?: 'fixed' | 'template',
|
|
211
|
+
action: 'pending-disposition' | 'pending-operator' | 'accepted' | 'adjusted' | 'dropped' | 'escalated-as-defect',
|
|
212
|
+
reason?: string,
|
|
213
|
+
resolvedAt?: string (ISO date),
|
|
214
|
+
resolvedBy?: string,
|
|
215
|
+
escalatedAt?: string (ISO date),
|
|
216
|
+
escalatedToOperator?: boolean,
|
|
217
|
+
defectUrl?: string
|
|
218
|
+
}, ...
|
|
219
|
+
]
|
|
220
|
+
}
|
|
221
|
+
Follow-up: a $defs/blueprintDispositionLedger schema on @stravica-ai/rcf-schemas
|
|
222
|
+
will make the shape validator-checkable; today the ledger writer guards it
|
|
223
|
+
inline (see validateRecord).
|
|
224
|
+
`.trim();
|