rcf-lite 0.27.0 → 0.28.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 +23 -0
- package/README.md +10 -0
- package/bin/rcf.js +2 -0
- package/blueprints/application-account-settings/CHANGELOG.md +35 -6
- package/blueprints/application-account-settings/README.md +1 -1
- package/blueprints/application-account-settings/blueprint.json +4 -2
- package/blueprints/application-account-settings/contributions/adrs/adr-2602-application-account-settings-security-surface-shape.json +1 -1
- package/blueprints/application-account-settings/contributions/probes/probe-utils.mjs +177 -0
- package/blueprints/application-account-settings/contributions/probes/profile-form-autocomplete.mjs +67 -0
- package/blueprints/application-account-settings/contributions/probes/run-profile-form-autocomplete.mjs +5 -0
- package/blueprints/application-account-settings/contributions/probes/run-sessions-adapter-uniform.mjs +5 -0
- package/blueprints/application-account-settings/contributions/probes/run-sessions-surface-shape.mjs +5 -0
- package/blueprints/application-account-settings/contributions/probes/run-shell-tablist-per-capability.mjs +5 -0
- package/blueprints/application-account-settings/contributions/probes/run-theme-radiogroup.mjs +5 -0
- package/blueprints/application-account-settings/contributions/probes/sessions-adapter-uniform.mjs +130 -0
- package/blueprints/application-account-settings/contributions/probes/sessions-surface-shape.mjs +70 -0
- package/blueprints/application-account-settings/contributions/probes/shell-tablist-per-capability.mjs +60 -0
- package/blueprints/application-account-settings/contributions/probes/theme-radiogroup.mjs +126 -0
- package/blueprints/application-admin-console/CHANGELOG.md +32 -6
- package/blueprints/application-admin-console/README.md +1 -1
- package/blueprints/application-admin-console/blueprint.json +4 -2
- package/blueprints/application-admin-console/contributions/adrs/adr-2201-application-admin-console-capability-vocabulary.json +1 -1
- package/blueprints/application-admin-console/contributions/probes/audit-log-surface.mjs +79 -0
- package/blueprints/application-admin-console/contributions/probes/org-switcher-surface.mjs +83 -0
- package/blueprints/application-admin-console/contributions/probes/permission-matrix-grid.mjs +67 -0
- package/blueprints/application-admin-console/contributions/probes/probe-utils.mjs +177 -0
- package/blueprints/application-admin-console/contributions/probes/run-audit-log-surface.mjs +5 -0
- package/blueprints/application-admin-console/contributions/probes/run-org-switcher-surface.mjs +5 -0
- package/blueprints/application-admin-console/contributions/probes/run-permission-matrix-grid.mjs +5 -0
- package/blueprints/application-admin-console/contributions/probes/run-sign-in-access-gated-surface.mjs +5 -0
- package/blueprints/application-admin-console/contributions/probes/run-users-directory-surface.mjs +5 -0
- package/blueprints/application-admin-console/contributions/probes/sign-in-access-gated-surface.mjs +117 -0
- package/blueprints/application-admin-console/contributions/probes/users-directory-surface.mjs +145 -0
- package/blueprints/application-api-rest/CHANGELOG.md +16 -8
- package/blueprints/application-api-rest/README.md +3 -3
- package/blueprints/application-api-rest/blueprint.json +3 -2
- package/blueprints/application-api-rest/contributions/adrs/adr-302-application-api-rest-auth-model.json +1 -1
- package/blueprints/application-api-rest/contributions/probes/cursor-pagination-round-trip.mjs +154 -0
- package/blueprints/application-api-rest/contributions/probes/health-probes-distinct.mjs +124 -0
- package/blueprints/application-api-rest/contributions/probes/probe-utils.mjs +177 -0
- package/blueprints/application-api-rest/contributions/probes/problem-details-on-error.mjs +77 -0
- package/blueprints/application-api-rest/contributions/probes/request-id-echoed.mjs +76 -0
- package/blueprints/application-api-rest/contributions/probes/run-cursor-pagination-round-trip.mjs +5 -0
- package/blueprints/application-api-rest/contributions/probes/run-health-probes-distinct.mjs +5 -0
- package/blueprints/application-api-rest/contributions/probes/run-problem-details-on-error.mjs +5 -0
- package/blueprints/application-api-rest/contributions/probes/run-request-id-echoed.mjs +5 -0
- package/blueprints/application-api-rest/docs/topics.md +1 -1
- package/blueprints/application-charts/CHANGELOG.md +35 -9
- package/blueprints/application-charts/README.md +6 -6
- package/blueprints/application-charts/blueprint.json +5 -3
- package/blueprints/application-charts/contributions/adrs/adr-1901-application-charts-engine-choice.json +1 -1
- package/blueprints/application-charts/contributions/probes/keyboard-traversal.mjs +151 -0
- package/blueprints/application-charts/contributions/probes/non-colour-distinction.mjs +67 -0
- package/blueprints/application-charts/contributions/probes/probe-utils.mjs +177 -0
- package/blueprints/application-charts/contributions/probes/run-keyboard-traversal.mjs +5 -0
- package/blueprints/application-charts/contributions/probes/run-non-colour-distinction.mjs +5 -0
- package/blueprints/application-charts/contributions/probes/run-text-alternative-table.mjs +5 -0
- package/blueprints/application-charts/contributions/probes/text-alternative-table.mjs +139 -0
- package/blueprints/application-charts/contributions/requirements/application-charts-req-001.json +1 -1
- package/blueprints/application-charts/contributions/requirements/application-charts-req-002.json +1 -1
- package/blueprints/application-charts/contributions/user-stories/application-charts-us-18101.json +5 -5
- package/blueprints/application-charts/contributions/user-stories/application-charts-us-18106.json +1 -1
- package/blueprints/application-charts/guide/application-charts.md +1 -1
- package/blueprints/application-dashboard/CHANGELOG.md +20 -10
- package/blueprints/application-dashboard/README.md +6 -6
- package/blueprints/application-dashboard/assets/guidance/dashboard-design.md +2 -2
- package/blueprints/application-dashboard/blueprint.json +3 -2
- package/blueprints/application-dashboard/contributions/adrs/adr-2001-application-dashboard-primary-kpi-enum.json +1 -1
- package/blueprints/application-dashboard/contributions/adrs/adr-2002-application-dashboard-timeframe-presets.json +1 -1
- package/blueprints/application-dashboard/contributions/probes/export-handle-formats.mjs +75 -0
- package/blueprints/application-dashboard/contributions/probes/four-tile-states.mjs +75 -0
- package/blueprints/application-dashboard/contributions/probes/primary-kpi-top-left.mjs +58 -0
- package/blueprints/application-dashboard/contributions/probes/probe-utils.mjs +177 -0
- package/blueprints/application-dashboard/contributions/probes/run-export-handle-formats.mjs +4 -0
- package/blueprints/application-dashboard/contributions/probes/run-four-tile-states.mjs +4 -0
- package/blueprints/application-dashboard/contributions/probes/run-primary-kpi-top-left.mjs +4 -0
- package/blueprints/application-dashboard/contributions/probes/run-shell-five-regions.mjs +4 -0
- package/blueprints/application-dashboard/contributions/probes/shell-five-regions.mjs +93 -0
- package/blueprints/application-dashboard/contributions/requirements/application-dashboard-req-002.json +1 -1
- package/blueprints/application-dashboard/contributions/requirements/application-dashboard-req-003.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 +2 -2
- package/blueprints/application-dashboard/contributions/user-stories/application-dashboard-us-19101.json +2 -2
- package/blueprints/application-dashboard/contributions/user-stories/application-dashboard-us-19102.json +2 -2
- package/blueprints/application-dashboard/contributions/user-stories/application-dashboard-us-19103.json +1 -1
- package/blueprints/application-dashboard/contributions/user-stories/application-dashboard-us-19104.json +1 -1
- package/blueprints/application-dashboard/contributions/user-stories/application-dashboard-us-19105.json +1 -1
- package/blueprints/application-dashboard/contributions/user-stories/application-dashboard-us-19106.json +2 -2
- package/blueprints/application-dashboard/contributions/user-stories/application-dashboard-us-19107.json +5 -5
- package/blueprints/application-dashboard/docs/topics.md +2 -2
- package/blueprints/application-dashboard/guide/application-dashboard.md +2 -2
- package/blueprints/application-datatable/CHANGELOG.md +19 -9
- package/blueprints/application-datatable/README.md +2 -2
- package/blueprints/application-datatable/blueprint.json +3 -2
- package/blueprints/application-datatable/contributions/probes/apg-table-shape.mjs +57 -0
- package/blueprints/application-datatable/contributions/probes/four-states-regions.mjs +80 -0
- package/blueprints/application-datatable/contributions/probes/probe-utils.mjs +177 -0
- package/blueprints/application-datatable/contributions/probes/run-apg-table-shape.mjs +4 -0
- package/blueprints/application-datatable/contributions/probes/run-four-states-regions.mjs +4 -0
- package/blueprints/application-datatable/contributions/probes/run-search-adapter-round-trip.mjs +4 -0
- package/blueprints/application-datatable/contributions/probes/run-sort-adapter-round-trip.mjs +4 -0
- package/blueprints/application-datatable/contributions/probes/search-adapter-round-trip.mjs +58 -0
- package/blueprints/application-datatable/contributions/probes/sort-adapter-round-trip.mjs +60 -0
- package/blueprints/application-datatable/contributions/requirements/application-datatable-req-006.json +1 -1
- package/blueprints/application-datatable/docs/topics.md +1 -1
- package/blueprints/application-empty-error-states/CHANGELOG.md +33 -3
- package/blueprints/application-empty-error-states/blueprint.json +4 -2
- package/blueprints/application-empty-error-states/contributions/probes/empty-list-and-no-search.mjs +66 -0
- package/blueprints/application-empty-error-states/contributions/probes/error-boundary-alert.mjs +65 -0
- package/blueprints/application-empty-error-states/contributions/probes/forbidden-and-server-error.mjs +167 -0
- package/blueprints/application-empty-error-states/contributions/probes/not-found-and-recovery.mjs +61 -0
- package/blueprints/application-empty-error-states/contributions/probes/permission-denied-and-offline.mjs +155 -0
- package/blueprints/application-empty-error-states/contributions/probes/probe-utils.mjs +177 -0
- package/blueprints/application-empty-error-states/contributions/probes/run-empty-list-and-no-search.mjs +5 -0
- package/blueprints/application-empty-error-states/contributions/probes/run-error-boundary-alert.mjs +5 -0
- package/blueprints/application-empty-error-states/contributions/probes/run-forbidden-and-server-error.mjs +5 -0
- package/blueprints/application-empty-error-states/contributions/probes/run-not-found-and-recovery.mjs +5 -0
- package/blueprints/application-empty-error-states/contributions/probes/run-permission-denied-and-offline.mjs +5 -0
- package/blueprints/application-error-handling/CHANGELOG.md +45 -6
- package/blueprints/application-error-handling/blueprint.json +3 -2
- package/blueprints/application-error-handling/contributions/probes/category-vocabulary.mjs +90 -0
- package/blueprints/application-error-handling/contributions/probes/probe-utils.mjs +177 -0
- package/blueprints/application-error-handling/contributions/probes/record-shape-adr-1701.mjs +78 -0
- package/blueprints/application-error-handling/contributions/probes/run-category-vocabulary.mjs +5 -0
- package/blueprints/application-error-handling/contributions/probes/run-record-shape-adr-1701.mjs +5 -0
- package/blueprints/application-error-handling/contributions/probes/run-two-boundaries-registered.mjs +5 -0
- package/blueprints/application-error-handling/contributions/probes/two-boundaries-registered.mjs +343 -0
- package/blueprints/application-file-upload/CHANGELOG.md +28 -6
- package/blueprints/application-file-upload/README.md +1 -1
- package/blueprints/application-file-upload/blueprint.json +3 -2
- package/blueprints/application-file-upload/contributions/probes/assertive-completion-slot.mjs +78 -0
- package/blueprints/application-file-upload/contributions/probes/chunked-transport-endpoints.mjs +173 -0
- package/blueprints/application-file-upload/contributions/probes/per-file-progressbar.mjs +124 -0
- package/blueprints/application-file-upload/contributions/probes/probe-utils.mjs +177 -0
- package/blueprints/application-file-upload/contributions/probes/run-assertive-completion-slot.mjs +4 -0
- package/blueprints/application-file-upload/contributions/probes/run-chunked-transport-endpoints.mjs +4 -0
- package/blueprints/application-file-upload/contributions/probes/run-per-file-progressbar.mjs +4 -0
- package/blueprints/application-file-upload/contributions/probes/run-upload-surface-shape.mjs +4 -0
- package/blueprints/application-file-upload/contributions/probes/upload-surface-shape.mjs +55 -0
- package/blueprints/application-file-upload/contributions/requirements/application-file-upload-req-001.json +1 -1
- package/blueprints/application-file-upload/contributions/requirements/application-file-upload-req-002.json +1 -1
- package/blueprints/application-file-upload/contributions/requirements/application-file-upload-req-003.json +1 -1
- package/blueprints/application-file-upload/contributions/requirements/application-file-upload-req-004.json +1 -1
- package/blueprints/application-file-upload/contributions/requirements/application-file-upload-req-005.json +1 -1
- package/blueprints/application-file-upload/probe-packs/application-file-upload.pack.mjs +1 -1
- package/blueprints/application-forms-wizard/CHANGELOG.md +20 -6
- package/blueprints/application-forms-wizard/README.md +2 -2
- package/blueprints/application-forms-wizard/blueprint.json +3 -2
- package/blueprints/application-forms-wizard/contributions/probes/draft-persistence-round-trip.mjs +110 -0
- package/blueprints/application-forms-wizard/contributions/probes/probe-utils.mjs +177 -0
- package/blueprints/application-forms-wizard/contributions/probes/run-draft-persistence-round-trip.mjs +4 -0
- package/blueprints/application-forms-wizard/contributions/probes/run-step-page-shape.mjs +4 -0
- package/blueprints/application-forms-wizard/contributions/probes/run-task-list-surface.mjs +4 -0
- package/blueprints/application-forms-wizard/contributions/probes/step-page-shape.mjs +61 -0
- package/blueprints/application-forms-wizard/contributions/probes/task-list-surface.mjs +109 -0
- package/blueprints/application-forms-wizard/contributions/requirements/application-forms-wizard-req-001.json +1 -1
- package/blueprints/application-forms-wizard/contributions/requirements/application-forms-wizard-req-002.json +1 -1
- package/blueprints/application-forms-wizard/contributions/requirements/application-forms-wizard-req-003.json +1 -1
- package/blueprints/application-forms-wizard/contributions/requirements/application-forms-wizard-req-004.json +1 -1
- package/blueprints/application-forms-wizard/contributions/requirements/application-forms-wizard-req-005.json +1 -1
- package/blueprints/application-forms-wizard/probe-packs/application-forms-wizard.pack.mjs +1 -1
- package/blueprints/application-notifications-in-app/CHANGELOG.md +38 -5
- package/blueprints/application-notifications-in-app/README.md +4 -4
- package/blueprints/application-notifications-in-app/blueprint.json +4 -2
- package/blueprints/application-notifications-in-app/contributions/adrs/adr-2101-application-notifications-in-app-live-region-role-mapping.json +1 -1
- package/blueprints/application-notifications-in-app/contributions/probes/centre-acknowledge-round-trip.mjs +210 -0
- package/blueprints/application-notifications-in-app/contributions/probes/live-region-preseeding.mjs +93 -0
- package/blueprints/application-notifications-in-app/contributions/probes/probe-utils.mjs +177 -0
- package/blueprints/application-notifications-in-app/contributions/probes/run-centre-acknowledge-round-trip.mjs +5 -0
- package/blueprints/application-notifications-in-app/contributions/probes/run-live-region-preseeding.mjs +5 -0
- package/blueprints/application-notifications-in-app/contributions/probes/run-toast-contract.mjs +5 -0
- package/blueprints/application-notifications-in-app/contributions/probes/toast-contract.mjs +92 -0
- package/blueprints/application-notifications-in-app/contributions/tacs/tac-2101-application-notifications-in-app-live-region.json +3 -3
- package/blueprints/application-notifications-in-app/contributions/tacs/tac-2102-application-notifications-in-app-centre.json +1 -1
- package/blueprints/application-notifications-in-app/contributions/user-stories/application-notifications-in-app-us-20101.json +1 -1
- package/blueprints/application-notifications-in-app/contributions/user-stories/application-notifications-in-app-us-20102.json +1 -1
- package/blueprints/application-notifications-in-app/contributions/user-stories/application-notifications-in-app-us-20103.json +1 -1
- package/blueprints/application-notifications-in-app/contributions/user-stories/application-notifications-in-app-us-20105.json +1 -1
- package/blueprints/application-notifications-in-app/guide/application-notifications-in-app.md +3 -3
- package/blueprints/application-onboarding-tour/CHANGELOG.md +31 -5
- package/blueprints/application-onboarding-tour/README.md +1 -1
- package/blueprints/application-onboarding-tour/blueprint.json +5 -3
- package/blueprints/application-onboarding-tour/contributions/probes/checklist-anchor-open.mjs +81 -0
- package/blueprints/application-onboarding-tour/contributions/probes/completion-persistence.mjs +159 -0
- package/blueprints/application-onboarding-tour/contributions/probes/first-run-detection.mjs +67 -0
- package/blueprints/application-onboarding-tour/contributions/probes/probe-utils.mjs +177 -0
- package/blueprints/application-onboarding-tour/contributions/probes/run-checklist-anchor-open.mjs +5 -0
- package/blueprints/application-onboarding-tour/contributions/probes/run-completion-persistence.mjs +5 -0
- package/blueprints/application-onboarding-tour/contributions/probes/run-first-run-detection.mjs +5 -0
- package/blueprints/application-onboarding-tour/contributions/probes/run-stepper-role-dialog.mjs +5 -0
- package/blueprints/application-onboarding-tour/contributions/probes/stepper-role-dialog.mjs +45 -0
- package/blueprints/application-spa/CHANGELOG.md +20 -11
- package/blueprints/application-spa/README.md +9 -10
- package/blueprints/application-spa/blueprint.json +3 -2
- package/blueprints/application-spa/contributions/adrs/adr-202-application-spa-theming.json +1 -1
- package/blueprints/application-spa/contributions/adrs/adr-206-application-spa-iconography.json +1 -1
- package/blueprints/application-spa/contributions/probes/designed-empty-state.mjs +72 -0
- package/blueprints/application-spa/contributions/probes/probe-utils.mjs +177 -0
- package/blueprints/application-spa/contributions/probes/route-inventory-published.mjs +185 -0
- package/blueprints/application-spa/contributions/probes/run-designed-empty-state.mjs +5 -0
- package/blueprints/application-spa/contributions/probes/run-route-inventory-published.mjs +5 -0
- package/blueprints/application-spa/contributions/probes/run-shell-nav-present.mjs +5 -0
- package/blueprints/application-spa/contributions/probes/shell-nav-present.mjs +69 -0
- 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 +2 -2
- 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-1131.json +1 -1
- package/blueprints/application-spa/docs/topics.md +1 -1
- package/blueprints/delivery-ci-workflows/CHANGELOG.md +31 -11
- package/blueprints/delivery-ci-workflows/README.md +3 -3
- package/blueprints/delivery-ci-workflows/blueprint.json +3 -2
- package/blueprints/delivery-ci-workflows/contributions/adrs/adr-702-delivery-ci-workflows-strict-coverage-gate.json +2 -2
- package/blueprints/delivery-ci-workflows/contributions/probes/node-gate-entrypoint.mjs +76 -0
- package/blueprints/delivery-ci-workflows/contributions/probes/probe-utils.mjs +56 -0
- package/blueprints/delivery-ci-workflows/contributions/probes/real-account-github-actions-run-record.mjs +139 -0
- package/blueprints/delivery-ci-workflows/contributions/probes/run-node-gate-entrypoint.mjs +3 -0
- package/blueprints/delivery-ci-workflows/contributions/probes/run-real-account-github-actions-run-record.mjs +3 -0
- package/blueprints/delivery-ci-workflows/contributions/probes/run-workflow-template-shape.mjs +3 -0
- package/blueprints/delivery-ci-workflows/contributions/probes/workflow-template-shape.mjs +94 -0
- package/blueprints/delivery-ci-workflows/contributions/requirements/delivery-ci-workflows-req-004.json +1 -1
- package/blueprints/delivery-ci-workflows/docs/topics.md +2 -3
- package/blueprints/deploy-cloudflare-workers/CHANGELOG.md +4 -4
- package/blueprints/deploy-cloudflare-workers/README.md +3 -3
- package/blueprints/deploy-cloudflare-workers/contributions/adrs/adr-1306-deploy-cloudflare-workers-spa-shape.json +2 -2
- package/blueprints/deploy-cloudflare-workers/docs/topics.md +2 -2
- package/blueprints/deploy-hetzner-server/CHANGELOG.md +98 -7
- package/blueprints/deploy-hetzner-server/blueprint.json +7 -6
- package/blueprints/deploy-hetzner-server/contributions/probes/cloud-init-render-lint.mjs +46 -21
- package/blueprints/deploy-hetzner-server/contributions/probes/hcloud-dry-run-mock.mjs +344 -83
- package/blueprints/deploy-hetzner-server/contributions/probes/manifest-schema-validate.mjs +211 -42
- package/blueprints/deploy-hetzner-server/contributions/probes/probe-utils.mjs +140 -22
- package/blueprints/deploy-hetzner-server/contributions/probes/real-account-cloud-init-hardened.mjs +111 -30
- package/blueprints/deploy-hetzner-server/contributions/probes/real-account-snapshot-on-demand.mjs +158 -30
- package/blueprints/deploy-hetzner-server/contributions/probes/real-account-throwaway-server-provision.mjs +154 -32
- package/blueprints/edge-cloudflare-access/CHANGELOG.md +6 -5
- package/blueprints/edge-cloudflare-access/blueprint.json +1 -1
- package/blueprints/edge-cloudflare-access/contributions/probes/admin-console-gate-surface.mjs +9 -1
- package/blueprints/edge-cloudflare-access/docs/topics.md +1 -1
- package/blueprints/edge-cloudflare-rate-limiting/CHANGELOG.md +4 -7
- package/blueprints/edge-cloudflare-rate-limiting/docs/topics.md +1 -1
- package/blueprints/edge-cloudflare-tunnel/CHANGELOG.md +4 -6
- package/blueprints/edge-cloudflare-tunnel/README.md +1 -2
- package/blueprints/edge-cloudflare-tunnel/docs/topics.md +1 -1
- package/blueprints/edge-cloudflare-turnstile/CHANGELOG.md +2 -3
- package/blueprints/edge-cloudflare-turnstile/docs/topics.md +1 -1
- package/blueprints/email-smtp-resend/CHANGELOG.md +24 -8
- package/blueprints/email-smtp-resend/README.md +2 -2
- package/blueprints/email-smtp-resend/blueprint.json +3 -2
- package/blueprints/email-smtp-resend/contributions/probes/probe-utils.mjs +50 -0
- package/blueprints/email-smtp-resend/contributions/probes/real-account-resend-send.mjs +50 -0
- package/blueprints/email-smtp-resend/contributions/probes/run-real-account-resend-send.mjs +3 -0
- package/blueprints/email-smtp-resend/contributions/probes/run-smtp-round-trip.mjs +3 -0
- package/blueprints/email-smtp-resend/contributions/probes/run-unverified-sender-refusal.mjs +3 -0
- package/blueprints/email-smtp-resend/contributions/probes/smtp-round-trip.mjs +43 -0
- package/blueprints/email-smtp-resend/contributions/probes/unverified-sender-refusal.mjs +99 -0
- package/blueprints/email-smtp-resend/docs/topics.md +2 -3
- package/blueprints/jobs-background/CHANGELOG.md +66 -5
- package/blueprints/jobs-background/README.md +2 -2
- package/blueprints/jobs-background/blueprint.json +3 -2
- package/blueprints/jobs-background/contributions/probes/apply-time-override.mjs +38 -10
- package/blueprints/jobs-background/contributions/probes/apply-time-refusal.mjs +28 -6
- package/blueprints/jobs-background/contributions/probes/event-secrecy.mjs +16 -2
- package/blueprints/jobs-background/contributions/probes/fake-clock-cron.mjs +102 -21
- package/blueprints/jobs-background/contributions/probes/probe-utils.mjs +10 -2
- package/blueprints/jobs-background/contributions/probes/retry-and-fail-real-account.mjs +355 -0
- package/blueprints/jobs-background/contributions/probes/retry-and-fail.mjs +33 -2
- package/blueprints/jobs-background/contributions/probes/run-retry-and-fail-real-account.mjs +12 -0
- package/blueprints/jobs-background/docs/topics.md +1 -1
- package/blueprints/jobs-background/guide/jobs-background.md +1 -1
- package/blueprints/messaging-queue-cloudflare/CHANGELOG.md +25 -19
- package/blueprints/messaging-queue-cloudflare/README.md +12 -12
- package/blueprints/messaging-queue-cloudflare/blueprint.json +1 -1
- package/blueprints/messaging-queue-cloudflare/contributions/adrs/adr-3001-messaging-queue-cloudflare-adapter.json +2 -2
- 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 +180 -12
- package/blueprints/messaging-queue-cloudflare/contributions/requirements/messaging-queue-cloudflare-req-006.json +1 -1
- package/blueprints/messaging-queue-cloudflare/docs/topics.md +2 -2
- package/blueprints/messaging-queue-cloudflare/guide/messaging-queue-cloudflare.md +2 -2
- package/blueprints/object-storage-s3/CHANGELOG.md +75 -4
- package/blueprints/object-storage-s3/blueprint.json +3 -2
- package/blueprints/object-storage-s3/contributions/probes/event-secrecy.mjs +73 -12
- package/blueprints/object-storage-s3/contributions/probes/facade-round-trip.mjs +55 -7
- package/blueprints/object-storage-s3/contributions/probes/hetzner-object-storage-round-trip.mjs +102 -18
- package/blueprints/object-storage-s3/contributions/probes/multipart-upload.mjs +105 -36
- package/blueprints/object-storage-s3/contributions/probes/presigned-url.mjs +104 -55
- package/blueprints/object-storage-s3/contributions/probes/probe-utils.mjs +129 -7
- package/blueprints/object-storage-s3/contributions/probes/put-get-round-trip.mjs +80 -18
- package/blueprints/object-storage-s3/contributions/probes/r2-real-account-smoke.mjs +291 -37
- package/blueprints/object-storage-s3/contributions/probes/run-event-secrecy.mjs +8 -2
- package/blueprints/object-storage-s3/contributions/probes/run-facade-round-trip.mjs +5 -5
- package/blueprints/object-storage-s3/contributions/probes/run-hetzner-object-storage-round-trip.mjs +8 -5
- package/blueprints/object-storage-s3/contributions/probes/run-multipart-upload.mjs +8 -2
- package/blueprints/object-storage-s3/contributions/probes/run-presigned-url.mjs +8 -2
- package/blueprints/object-storage-s3/contributions/probes/run-put-get-round-trip.mjs +6 -3
- package/blueprints/object-storage-s3/contributions/probes/run-r2-real-account-smoke.mjs +10 -2
- package/blueprints/object-storage-s3/contributions/requirements/object-storage-s3-req-006.json +1 -1
- package/blueprints/object-storage-s3/docs/topics.md +1 -1
- package/blueprints/object-storage-s3/guide/object-storage-s3.md +1 -1
- package/blueprints/observability-essentials/CHANGELOG.md +23 -7
- package/blueprints/observability-essentials/README.md +2 -2
- package/blueprints/observability-essentials/assets/probe-samples/probe-response-baseline.v2.json +1 -1
- package/blueprints/observability-essentials/blueprint.json +3 -2
- package/blueprints/observability-essentials/contributions/probes/liveness-probe.mjs +84 -0
- package/blueprints/observability-essentials/contributions/probes/metrics-endpoint.mjs +96 -0
- package/blueprints/observability-essentials/contributions/probes/probe-utils.mjs +52 -0
- package/blueprints/observability-essentials/contributions/probes/readiness-probe.mjs +171 -0
- package/blueprints/observability-essentials/contributions/probes/run-liveness-probe.mjs +3 -0
- package/blueprints/observability-essentials/contributions/probes/run-metrics-endpoint.mjs +3 -0
- package/blueprints/observability-essentials/contributions/probes/run-readiness-probe.mjs +3 -0
- package/blueprints/observability-essentials/docs/topics.md +2 -3
- package/blueprints/observability-logging/CHANGELOG.md +29 -4
- package/blueprints/observability-logging/README.md +2 -2
- package/blueprints/observability-logging/blueprint.json +3 -2
- package/blueprints/observability-logging/contributions/probes/correlation-id-flow.mjs +173 -0
- package/blueprints/observability-logging/contributions/probes/line-shape-and-fields.mjs +82 -0
- package/blueprints/observability-logging/contributions/probes/probe-utils.mjs +47 -0
- package/blueprints/observability-logging/contributions/probes/redaction-boundary.mjs +130 -0
- package/blueprints/observability-logging/contributions/probes/run-correlation-id-flow.mjs +3 -0
- package/blueprints/observability-logging/contributions/probes/run-line-shape-and-fields.mjs +3 -0
- package/blueprints/observability-logging/contributions/probes/run-redaction-boundary.mjs +3 -0
- package/blueprints/observability-probe-endpoints/CHANGELOG.md +23 -8
- package/blueprints/observability-probe-endpoints/README.md +3 -3
- package/blueprints/observability-probe-endpoints/blueprint.json +3 -2
- package/blueprints/observability-probe-endpoints/contributions/probes/kubernetes-startup-enabled.mjs +80 -0
- package/blueprints/observability-probe-endpoints/contributions/probes/partial-profile-refusal.mjs +101 -0
- package/blueprints/observability-probe-endpoints/contributions/probes/probe-utils.mjs +49 -0
- package/blueprints/observability-probe-endpoints/contributions/probes/profile-boot-materialisation.mjs +69 -0
- package/blueprints/observability-probe-endpoints/contributions/probes/run-kubernetes-startup-enabled.mjs +3 -0
- package/blueprints/observability-probe-endpoints/contributions/probes/run-partial-profile-refusal.mjs +3 -0
- package/blueprints/observability-probe-endpoints/contributions/probes/run-profile-boot-materialisation.mjs +3 -0
- package/blueprints/observability-probe-endpoints/docs/topics.md +2 -2
- package/blueprints/persistence-data-d1/CHANGELOG.md +16 -3
- package/blueprints/persistence-data-d1/README.md +2 -2
- package/blueprints/persistence-data-d1/blueprint.json +3 -2
- package/blueprints/persistence-data-d1/contributions/adrs/adr-1404-persistence-data-d1-store-boundary.json +1 -1
- package/blueprints/persistence-data-d1/contributions/probes/facade-round-trip.mjs +140 -0
- package/blueprints/persistence-data-d1/contributions/probes/migrations-forward-only.mjs +66 -0
- package/blueprints/persistence-data-d1/contributions/probes/probe-utils.mjs +51 -0
- package/blueprints/persistence-data-d1/contributions/probes/real-account-d1-round-trip.mjs +133 -0
- package/blueprints/persistence-data-d1/contributions/probes/run-facade-round-trip.mjs +3 -0
- package/blueprints/persistence-data-d1/contributions/probes/run-migrations-forward-only.mjs +3 -0
- package/blueprints/persistence-data-d1/contributions/probes/run-real-account-d1-round-trip.mjs +3 -0
- package/blueprints/persistence-data-d1/docs/topics.md +2 -3
- package/blueprints/persistence-data-postgres/CHANGELOG.md +84 -4
- package/blueprints/persistence-data-postgres/README.md +2 -2
- package/blueprints/persistence-data-postgres/blueprint.json +3 -2
- package/blueprints/persistence-data-postgres/contributions/adrs/adr-2801-persistence-data-postgres-driver.json +1 -1
- package/blueprints/persistence-data-postgres/contributions/probes/facade-round-trip.mjs +87 -12
- package/blueprints/persistence-data-postgres/contributions/probes/migration-apply.mjs +245 -19
- package/blueprints/persistence-data-postgres/contributions/probes/pool-posture-smoke.mjs +109 -26
- package/blueprints/persistence-data-postgres/contributions/probes/prepared-statement-scan.mjs +151 -38
- package/blueprints/persistence-data-postgres/contributions/probes/probe-utils.mjs +24 -6
- package/blueprints/persistence-data-postgres/contributions/probes/recovery-restore-round-trip.mjs +261 -48
- package/blueprints/persistence-data-postgres/contributions/probes/transaction-atomicity.mjs +76 -20
- package/blueprints/persistence-data-postgres/contributions/requirements/persistence-data-postgres-req-003.json +1 -1
- package/blueprints/persistence-data-postgres/docs/topics.md +1 -1
- package/blueprints/persistence-data-sqlite/CHANGELOG.md +16 -2
- package/blueprints/persistence-data-sqlite/README.md +2 -2
- package/blueprints/persistence-data-sqlite/blueprint.json +3 -2
- package/blueprints/persistence-data-sqlite/contributions/probes/boot-open-migrate.mjs +90 -0
- package/blueprints/persistence-data-sqlite/contributions/probes/facade-round-trip.mjs +82 -0
- package/blueprints/persistence-data-sqlite/contributions/probes/probe-utils.mjs +83 -0
- package/blueprints/persistence-data-sqlite/contributions/probes/run-boot-open-migrate.mjs +5 -0
- package/blueprints/persistence-data-sqlite/contributions/probes/run-facade-round-trip.mjs +5 -0
- package/blueprints/persistence-data-sqlite/contributions/probes/run-wal-checkpoint.mjs +5 -0
- package/blueprints/persistence-data-sqlite/contributions/probes/wal-checkpoint.mjs +137 -0
- package/blueprints/persistence-data-sqlite/docs/topics.md +2 -3
- package/blueprints/platform-cloudflare-cron-triggers/CHANGELOG.md +5 -5
- package/blueprints/platform-cloudflare-cron-triggers/README.md +2 -3
- package/blueprints/platform-cloudflare-cron-triggers/docs/topics.md +1 -1
- package/blueprints/platform-cloudflare-durable-objects/CHANGELOG.md +6 -10
- package/blueprints/platform-cloudflare-durable-objects/docs/topics.md +1 -1
- package/blueprints/platform-cloudflare-kv/CHANGELOG.md +16 -12
- package/blueprints/platform-cloudflare-kv/README.md +2 -4
- package/blueprints/platform-cloudflare-kv/blueprint.json +2 -2
- package/blueprints/platform-cloudflare-kv/docs/topics.md +1 -1
- package/blueprints/platform-docker-compose-host/CHANGELOG.md +92 -5
- package/blueprints/platform-docker-compose-host/blueprint.json +2 -2
- package/blueprints/platform-docker-compose-host/contributions/probes/caddyfile-validate.mjs +116 -29
- package/blueprints/platform-docker-compose-host/contributions/probes/compose-config-lint.mjs +181 -109
- package/blueprints/platform-docker-compose-host/contributions/probes/probe-utils.mjs +146 -26
- package/blueprints/platform-docker-compose-host/contributions/probes/real-account-minimal-stack-up.mjs +238 -24
- package/blueprints/platform-docker-compose-host/contributions/probes/real-account-reload-burst.mjs +207 -21
- package/blueprints/platform-docker-compose-host/contributions/probes/secrets-as-files-scan.mjs +246 -42
- package/blueprints/platform-docker-compose-host/docs/topics.md +1 -1
- package/blueprints/security-auth-clerk/CHANGELOG.md +18 -6
- package/blueprints/security-auth-clerk/README.md +3 -3
- package/blueprints/security-auth-clerk/assets/wiring/workers-wrangler-toml-shape.md +1 -1
- package/blueprints/security-auth-clerk/blueprint.json +3 -2
- package/blueprints/security-auth-clerk/contributions/probes/hosted-identity-ui-config.mjs +61 -0
- package/blueprints/security-auth-clerk/contributions/probes/probe-utils.mjs +188 -0
- package/blueprints/security-auth-clerk/contributions/probes/real-account-principal-directory-round-trip.mjs +216 -0
- package/blueprints/security-auth-clerk/contributions/probes/real-account-session-inventory.mjs +260 -0
- package/blueprints/security-auth-clerk/contributions/probes/role-model-adapter.mjs +53 -0
- package/blueprints/security-auth-clerk/contributions/probes/run-hosted-identity-ui-config.mjs +4 -0
- package/blueprints/security-auth-clerk/contributions/probes/run-real-account-principal-directory-round-trip.mjs +4 -0
- package/blueprints/security-auth-clerk/contributions/probes/run-real-account-session-inventory.mjs +4 -0
- package/blueprints/security-auth-clerk/contributions/probes/run-role-model-adapter.mjs +4 -0
- package/blueprints/security-auth-clerk/docs/topics.md +2 -3
- package/blueprints/security-auth-keycloak/CHANGELOG.md +18 -7
- package/blueprints/security-auth-keycloak/README.md +2 -2
- package/blueprints/security-auth-keycloak/blueprint.json +3 -2
- package/blueprints/security-auth-keycloak/contributions/probes/discovery-shape.mjs +68 -0
- package/blueprints/security-auth-keycloak/contributions/probes/introspection-shape.mjs +88 -0
- package/blueprints/security-auth-keycloak/contributions/probes/jwt-verifier-shape.mjs +86 -0
- package/blueprints/security-auth-keycloak/contributions/probes/probe-utils.mjs +180 -0
- package/blueprints/security-auth-keycloak/contributions/probes/real-account-realm-round-trip.mjs +91 -0
- package/blueprints/security-auth-keycloak/contributions/probes/role-adapter-shape.mjs +69 -0
- package/blueprints/security-auth-keycloak/contributions/probes/run-discovery-shape.mjs +4 -0
- package/blueprints/security-auth-keycloak/contributions/probes/run-introspection-shape.mjs +4 -0
- package/blueprints/security-auth-keycloak/contributions/probes/run-jwt-verifier-shape.mjs +4 -0
- package/blueprints/security-auth-keycloak/contributions/probes/run-real-account-realm-round-trip.mjs +4 -0
- package/blueprints/security-auth-keycloak/contributions/probes/run-role-adapter-shape.mjs +4 -0
- package/blueprints/security-auth-keycloak/docs/topics.md +1 -2
- package/blueprints/security-auth-magic-link/CHANGELOG.md +15 -4
- package/blueprints/security-auth-magic-link/README.md +2 -2
- package/blueprints/security-auth-magic-link/assets/principal-registry-samples/single-address.md +1 -1
- package/blueprints/security-auth-magic-link/blueprint.json +3 -2
- package/blueprints/security-auth-magic-link/contributions/probes/probe-utils.mjs +174 -0
- package/blueprints/security-auth-magic-link/contributions/probes/real-account-magic-link-send.mjs +139 -0
- package/blueprints/security-auth-magic-link/contributions/probes/run-real-account-magic-link-send.mjs +4 -0
- package/blueprints/security-auth-magic-link/contributions/probes/run-token-entropy-shape.mjs +4 -0
- package/blueprints/security-auth-magic-link/contributions/probes/run-token-issue-verify.mjs +4 -0
- package/blueprints/security-auth-magic-link/contributions/probes/token-entropy-shape.mjs +60 -0
- package/blueprints/security-auth-magic-link/contributions/probes/token-issue-verify.mjs +90 -0
- package/blueprints/security-auth-magic-link/docs/topics.md +1 -1
- package/blueprints/security-auth-oauth2/CHANGELOG.md +16 -5
- package/blueprints/security-auth-oauth2/README.md +2 -2
- package/blueprints/security-auth-oauth2/blueprint.json +3 -2
- package/blueprints/security-auth-oauth2/contributions/probes/authorisation-code-flow-shape.mjs +259 -0
- package/blueprints/security-auth-oauth2/contributions/probes/pkce-challenge-shape.mjs +58 -0
- package/blueprints/security-auth-oauth2/contributions/probes/probe-utils.mjs +190 -0
- package/blueprints/security-auth-oauth2/contributions/probes/provider-adapter-shape.mjs +64 -0
- package/blueprints/security-auth-oauth2/contributions/probes/real-account-authorisation-code-flow.mjs +93 -0
- package/blueprints/security-auth-oauth2/contributions/probes/run-authorisation-code-flow-shape.mjs +4 -0
- package/blueprints/security-auth-oauth2/contributions/probes/run-pkce-challenge-shape.mjs +4 -0
- package/blueprints/security-auth-oauth2/contributions/probes/run-provider-adapter-shape.mjs +4 -0
- package/blueprints/security-auth-oauth2/contributions/probes/run-real-account-authorisation-code-flow.mjs +4 -0
- package/blueprints/security-auth-oauth2/contributions/probes/run-session-bridge-shape.mjs +4 -0
- package/blueprints/security-auth-oauth2/contributions/probes/session-bridge-shape.mjs +78 -0
- package/blueprints/security-auth-oauth2/docs/topics.md +1 -2
- package/blueprints/security-secrets-management/CHANGELOG.md +15 -4
- package/blueprints/security-secrets-management/README.md +2 -2
- package/blueprints/security-secrets-management/blueprint.json +3 -2
- package/blueprints/security-secrets-management/contributions/probes/add-recipient-rotation.mjs +107 -0
- package/blueprints/security-secrets-management/contributions/probes/encrypt-decrypt-round-trip.mjs +122 -0
- package/blueprints/security-secrets-management/contributions/probes/key-rotation.mjs +93 -0
- package/blueprints/security-secrets-management/contributions/probes/mismatched-key-refusal.mjs +74 -0
- package/blueprints/security-secrets-management/contributions/probes/probe-utils.mjs +214 -0
- package/blueprints/security-secrets-management/contributions/probes/run-add-recipient-rotation.mjs +4 -0
- package/blueprints/security-secrets-management/contributions/probes/run-encrypt-decrypt-round-trip.mjs +4 -0
- package/blueprints/security-secrets-management/contributions/probes/run-key-rotation.mjs +4 -0
- package/blueprints/security-secrets-management/contributions/probes/run-mismatched-key-refusal.mjs +4 -0
- package/blueprints/security-secrets-management/docs/topics.md +2 -3
- package/fixtures/canary-manifest.json +9 -9
- package/guidance/harness-template.md +25 -0
- package/guidance/managed/agent-instructions-block.hash +1 -1
- package/guidance/managed/agent-instructions-block.md +25 -0
- package/package.json +2 -2
- package/rcf/adrs/adr-4101-feedback-store-gitignored.json +20 -0
- package/rcf/adrs/adr-4102-fingerprint-and-labels.json +25 -0
- package/rcf/adrs/adr-4103-redaction-rule-based.json +20 -0
- package/rcf/adrs/adr-4104-destination-on-library.json +25 -0
- package/rcf/adrs/adr-4105-gh-ambient-auth.json +20 -0
- package/rcf/adrs/adr-4106-bundled-entries-terminal.json +20 -0
- package/rcf/adrs/adr-4107-stop-is-ask-event.json +30 -0
- package/rcf/adrs/adr-4108-hooks-in-committed-config.json +25 -0
- package/rcf/adrs/adr-4109-referee-validate-adr-crosslinks.json +25 -0
- package/rcf/adrs/adr-4110-referee-coverage-strict-by-default.json +25 -0
- package/rcf/adrs/adr-4111-referee-finalise-refusals.json +20 -0
- package/rcf/adrs/adr-4112-referee-finalise-verified-invariant.json +30 -0
- package/rcf/code-nodes/cn-600.json +45 -0
- package/rcf/code-nodes/cn-601.json +18 -0
- package/rcf/code-nodes/cn-602.json +15 -0
- package/rcf/code-nodes/cn-603.json +12 -0
- package/rcf/code-nodes/cn-604.json +14 -0
- package/rcf/code-nodes/cn-605.json +17 -0
- package/rcf/code-nodes/cn-606.json +12 -0
- package/rcf/code-nodes/cn-607.json +12 -0
- package/rcf/code-nodes/cn-608.json +14 -0
- package/rcf/code-nodes/cn-609.json +17 -0
- package/rcf/code-nodes/cn-620.json +18 -0
- package/rcf/code-nodes/cn-621.json +14 -0
- package/rcf/code-nodes/cn-622.json +15 -0
- package/rcf/code-nodes/cn-623.json +16 -0
- package/rcf/code-nodes/cn-624.json +14 -0
- package/rcf/code-nodes/cn-625.json +15 -0
- package/rcf/code-nodes/cn-626.json +13 -0
- package/rcf/code-nodes/cn-627.json +13 -0
- package/rcf/code-nodes/cn-628.json +14 -0
- package/rcf/code-nodes/cn-629.json +12 -0
- package/rcf/code-nodes/cn-630.json +12 -0
- package/rcf/code-nodes/cn-631.json +13 -0
- package/rcf/code-nodes/cn-632.json +13 -0
- package/rcf/fbs/fbs-180.json +45 -0
- package/rcf/fbs/fbs-181.json +45 -0
- package/rcf/fbs/fbs-182.json +42 -0
- package/rcf/fbs/fbs-183.json +50 -0
- package/rcf/fbs/fbs-184.json +49 -0
- package/rcf/fbs/fbs-185.json +34 -0
- package/rcf/fbs/fbs-186.json +16 -0
- package/rcf/fbs/fbs-187.json +17 -0
- package/rcf/fbs/fbs-188.json +17 -0
- package/rcf/fbs/fbs-189.json +17 -0
- package/rcf/requirements/req-155.json +13 -0
- package/rcf/requirements/req-156.json +13 -0
- package/rcf/requirements/req-157.json +13 -0
- package/rcf/requirements/req-158.json +13 -0
- package/rcf/requirements/req-159.json +13 -0
- package/rcf/requirements/req-160.json +13 -0
- package/rcf/requirements/req-161.json +13 -0
- package/rcf/requirements/req-162.json +13 -0
- package/rcf/requirements/req-163.json +13 -0
- package/rcf/requirements/req-164.json +13 -0
- package/rcf/requirements/req-165.json +13 -0
- package/rcf/tacs/tac-4101-feedback-cli.json +77 -0
- package/rcf/tacs/tac-4102-feedback-store.json +50 -0
- package/rcf/tacs/tac-4103-feedback-redact.json +39 -0
- package/rcf/tacs/tac-4104-feedback-fingerprint.json +33 -0
- package/rcf/tacs/tac-4105-feedback-render.json +45 -0
- package/rcf/tacs/tac-4106-feedback-destination.json +39 -0
- package/rcf/tacs/tac-4107-feedback-gh.json +43 -0
- package/rcf/tacs/tac-4108-feedback-hook.json +46 -0
- package/rcf/tacs/tac-4109-referee-validate-adr-crosslinks.json +20 -0
- package/rcf/tacs/tac-4110-referee-coverage-mode-selector.json +21 -0
- package/rcf/tacs/tac-4111-referee-finalise-per-ac-refusals.json +21 -0
- package/rcf/tacs/tac-4112-referee-finalise-verified-invariant.json +22 -0
- package/rcf/test-suites/ts-140.json +9 -9
- package/rcf/test-suites/ts-150.json +9 -9
- package/rcf/test-suites/ts-185.json +54 -0
- package/rcf/test-suites/ts-186.json +58 -0
- package/rcf/test-suites/ts-187.json +44 -0
- package/rcf/test-suites/ts-188.json +166 -0
- package/rcf/test-suites/ts-189.json +38 -0
- package/rcf/test-suites/ts-190.json +30 -0
- package/rcf/test-suites/ts-191.json +51 -0
- package/rcf/test-suites/ts-192.json +37 -0
- package/rcf/test-suites/ts-193.json +60 -0
- package/rcf/test-suites/ts-194.json +67 -0
- package/rcf/test-suites/ts-195.json +52 -0
- package/rcf/test-suites/ts-196.json +58 -0
- package/rcf/test-suites/ts-197.json +66 -0
- package/rcf/test-suites/ts-198.json +87 -0
- package/rcf/test-suites/ts-199.json +51 -0
- package/rcf/test-suites/ts-200.json +30 -0
- package/rcf/test-suites/ts-201.json +38 -0
- package/rcf/test-suites/ts-202.json +38 -0
- package/rcf/test-suites/ts-203.json +38 -0
- package/rcf/user-stories/us-15501.json +60 -0
- package/rcf/user-stories/us-15502.json +33 -0
- package/rcf/user-stories/us-15503.json +33 -0
- package/rcf/user-stories/us-15601.json +51 -0
- package/rcf/user-stories/us-15701.json +42 -0
- package/rcf/user-stories/us-15801.json +42 -0
- package/rcf/user-stories/us-15802.json +33 -0
- package/rcf/user-stories/us-15901.json +33 -0
- package/rcf/user-stories/us-15902.json +51 -0
- package/rcf/user-stories/us-16001.json +51 -0
- package/rcf/user-stories/us-16101.json +42 -0
- package/rcf/user-stories/us-16102.json +33 -0
- package/rcf/user-stories/us-16103.json +42 -0
- package/rcf/user-stories/us-16104.json +42 -0
- package/rcf/user-stories/us-16201.json +33 -0
- package/rcf/user-stories/us-16301.json +36 -0
- package/rcf/user-stories/us-16401.json +45 -0
- package/rcf/user-stories/us-16501.json +45 -0
- package/rcf/user-stories/us-16502.json +45 -0
- package/releases/releases.yaml +11 -1
- package/src/blueprint/library-loader.js +48 -0
- package/src/blueprint/library-registry.js +13 -0
- package/src/browser-verify/pack-runner.js +7 -12
- package/src/build/mark.js +1 -1
- package/src/cli/blueprint-library.js +149 -0
- package/src/cli/coverage.js +49 -24
- package/src/cli/doctor.js +195 -7
- package/src/cli/feedback.js +2204 -0
- package/src/cli/finalise.js +158 -1
- package/src/cli/help.js +6 -0
- package/src/cli/init.js +63 -0
- package/src/cli/update.js +21 -1
- package/src/core/store/walker.js +33 -0
- package/src/core/store/writer.js +23 -0
- package/src/feedback/destination.js +361 -0
- package/src/feedback/fingerprint.js +132 -0
- package/src/feedback/gh.js +376 -0
- package/src/feedback/hook.js +183 -0
- package/src/feedback/labels.js +87 -0
- package/src/feedback/redact-allowlist.json +14 -0
- package/src/feedback/redact.js +1108 -0
- package/src/feedback/render.js +267 -0
- package/src/feedback/store.js +604 -0
- package/src/finalise/index.js +4 -0
- package/src/finalise/ingest.js +61 -0
- package/src/finalise/ship-without-eval.js +19 -7
- package/src/mcp/tools.js +8 -2
- package/src/setup/feedback-hooks.js +397 -0
- package/src/setup/managed-gitignore.js +3 -0
- package/src/view/html-page.js +5 -5
- package/src/view/style.css +2 -2
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{
|
|
2
|
+
"cnId": "CN-607",
|
|
3
|
+
"path": "src/blueprint/library-loader.js",
|
|
4
|
+
"implementsAcIds": [
|
|
5
|
+
"AC-15801-1"
|
|
6
|
+
],
|
|
7
|
+
"dependencies": [],
|
|
8
|
+
"version": "0.1.0",
|
|
9
|
+
"status": "draft",
|
|
10
|
+
"createdAt": "2026-09-16T16:20:01Z",
|
|
11
|
+
"updatedAt": "2026-09-16T16:20:01Z"
|
|
12
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"cnId": "CN-608",
|
|
3
|
+
"path": "src/cli/blueprint-library.js",
|
|
4
|
+
"implementsAcIds": [
|
|
5
|
+
"AC-15801-1"
|
|
6
|
+
],
|
|
7
|
+
"dependencies": [
|
|
8
|
+
"CN-607"
|
|
9
|
+
],
|
|
10
|
+
"version": "0.1.0",
|
|
11
|
+
"status": "draft",
|
|
12
|
+
"createdAt": "2026-09-16T16:20:01Z",
|
|
13
|
+
"updatedAt": "2026-09-16T16:20:01Z"
|
|
14
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"cnId": "CN-609",
|
|
3
|
+
"path": "src/cli/doctor.js",
|
|
4
|
+
"implementsAcIds": [
|
|
5
|
+
"AC-15801-3",
|
|
6
|
+
"AC-16104-3"
|
|
7
|
+
],
|
|
8
|
+
"dependencies": [
|
|
9
|
+
"CN-605",
|
|
10
|
+
"CN-606",
|
|
11
|
+
"CN-624"
|
|
12
|
+
],
|
|
13
|
+
"version": "0.1.0",
|
|
14
|
+
"status": "draft",
|
|
15
|
+
"createdAt": "2026-09-16T16:20:01Z",
|
|
16
|
+
"updatedAt": "2026-09-16T19:20:00Z"
|
|
17
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"cnId": "CN-620",
|
|
3
|
+
"path": "src/feedback/gh.js",
|
|
4
|
+
"implementsAcIds": [
|
|
5
|
+
"AC-15701-2",
|
|
6
|
+
"AC-15701-3",
|
|
7
|
+
"AC-15901-1",
|
|
8
|
+
"AC-15901-2",
|
|
9
|
+
"AC-15902-1",
|
|
10
|
+
"AC-16001-1",
|
|
11
|
+
"AC-16001-2"
|
|
12
|
+
],
|
|
13
|
+
"dependencies": [],
|
|
14
|
+
"version": "0.1.0",
|
|
15
|
+
"status": "draft",
|
|
16
|
+
"createdAt": "2026-09-16T17:23:38Z",
|
|
17
|
+
"updatedAt": "2026-09-16T17:23:38Z"
|
|
18
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"cnId": "CN-621",
|
|
3
|
+
"path": "src/feedback/labels.js",
|
|
4
|
+
"implementsAcIds": [
|
|
5
|
+
"AC-15902-1",
|
|
6
|
+
"AC-15902-3",
|
|
7
|
+
"AC-15902-4"
|
|
8
|
+
],
|
|
9
|
+
"dependencies": [],
|
|
10
|
+
"version": "0.1.0",
|
|
11
|
+
"status": "draft",
|
|
12
|
+
"createdAt": "2026-09-16T17:23:38Z",
|
|
13
|
+
"updatedAt": "2026-09-16T17:23:38Z"
|
|
14
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"cnId": "CN-622",
|
|
3
|
+
"path": "scripts/bootstrap-feedback-labels.mjs",
|
|
4
|
+
"implementsAcIds": [
|
|
5
|
+
"AC-15902-2"
|
|
6
|
+
],
|
|
7
|
+
"dependencies": [
|
|
8
|
+
"CN-620",
|
|
9
|
+
"CN-621"
|
|
10
|
+
],
|
|
11
|
+
"version": "0.1.0",
|
|
12
|
+
"status": "draft",
|
|
13
|
+
"createdAt": "2026-09-16T17:23:38Z",
|
|
14
|
+
"updatedAt": "2026-09-16T17:23:38Z"
|
|
15
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"cnId": "CN-623",
|
|
3
|
+
"path": "src/feedback/hook.js",
|
|
4
|
+
"implementsAcIds": [
|
|
5
|
+
"AC-16101-1",
|
|
6
|
+
"AC-16101-2",
|
|
7
|
+
"AC-16101-3",
|
|
8
|
+
"AC-16103-1",
|
|
9
|
+
"AC-16103-2"
|
|
10
|
+
],
|
|
11
|
+
"dependencies": [],
|
|
12
|
+
"version": "0.1.0",
|
|
13
|
+
"status": "draft",
|
|
14
|
+
"createdAt": "2026-09-16T19:20:00Z",
|
|
15
|
+
"updatedAt": "2026-09-16T19:20:00Z"
|
|
16
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"cnId": "CN-624",
|
|
3
|
+
"path": "src/setup/feedback-hooks.js",
|
|
4
|
+
"implementsAcIds": [
|
|
5
|
+
"AC-16104-1",
|
|
6
|
+
"AC-16104-2",
|
|
7
|
+
"AC-16104-3"
|
|
8
|
+
],
|
|
9
|
+
"dependencies": [],
|
|
10
|
+
"version": "0.1.0",
|
|
11
|
+
"status": "draft",
|
|
12
|
+
"createdAt": "2026-09-16T19:20:00Z",
|
|
13
|
+
"updatedAt": "2026-09-16T19:20:00Z"
|
|
14
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"cnId": "CN-625",
|
|
3
|
+
"path": "src/cli/init.js",
|
|
4
|
+
"implementsAcIds": [
|
|
5
|
+
"AC-16104-1",
|
|
6
|
+
"AC-16104-2"
|
|
7
|
+
],
|
|
8
|
+
"dependencies": [
|
|
9
|
+
"CN-624"
|
|
10
|
+
],
|
|
11
|
+
"version": "0.1.0",
|
|
12
|
+
"status": "draft",
|
|
13
|
+
"createdAt": "2026-09-16T19:20:00Z",
|
|
14
|
+
"updatedAt": "2026-09-16T19:20:00Z"
|
|
15
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"cnId": "CN-626",
|
|
3
|
+
"path": "guidance/managed/agent-instructions-block.md",
|
|
4
|
+
"implementsAcIds": [
|
|
5
|
+
"AC-16201-1",
|
|
6
|
+
"AC-16201-2"
|
|
7
|
+
],
|
|
8
|
+
"dependencies": [],
|
|
9
|
+
"version": "0.1.0",
|
|
10
|
+
"status": "draft",
|
|
11
|
+
"createdAt": "2026-09-16T21:17:00Z",
|
|
12
|
+
"updatedAt": "2026-09-16T21:17:00Z"
|
|
13
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"cnId": "CN-627",
|
|
3
|
+
"path": "src/core/store/walker.js#collectBrokenReferences",
|
|
4
|
+
"implementsAcIds": [
|
|
5
|
+
"AC-16301-1",
|
|
6
|
+
"AC-16301-2"
|
|
7
|
+
],
|
|
8
|
+
"dependencies": [],
|
|
9
|
+
"version": "0.1.0",
|
|
10
|
+
"status": "draft",
|
|
11
|
+
"createdAt": "2026-09-17T00:15:00Z",
|
|
12
|
+
"updatedAt": "2026-09-17T00:15:00Z"
|
|
13
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"cnId": "CN-628",
|
|
3
|
+
"path": "src/cli/coverage.js#main",
|
|
4
|
+
"implementsAcIds": [
|
|
5
|
+
"AC-16401-1",
|
|
6
|
+
"AC-16401-2",
|
|
7
|
+
"AC-16401-3"
|
|
8
|
+
],
|
|
9
|
+
"dependencies": [],
|
|
10
|
+
"version": "0.1.0",
|
|
11
|
+
"status": "draft",
|
|
12
|
+
"createdAt": "2026-09-17T00:15:00Z",
|
|
13
|
+
"updatedAt": "2026-09-17T00:15:00Z"
|
|
14
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{
|
|
2
|
+
"cnId": "CN-629",
|
|
3
|
+
"path": "src/finalise/ingest.js#findUiBaselineUnmetAcs",
|
|
4
|
+
"implementsAcIds": [
|
|
5
|
+
"AC-16501-1"
|
|
6
|
+
],
|
|
7
|
+
"dependencies": [],
|
|
8
|
+
"version": "0.1.0",
|
|
9
|
+
"status": "draft",
|
|
10
|
+
"createdAt": "2026-09-17T00:15:00Z",
|
|
11
|
+
"updatedAt": "2026-09-17T00:15:00Z"
|
|
12
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{
|
|
2
|
+
"cnId": "CN-630",
|
|
3
|
+
"path": "src/finalise/ingest.js#findBrowserVerificationMissingAcs",
|
|
4
|
+
"implementsAcIds": [
|
|
5
|
+
"AC-16501-2"
|
|
6
|
+
],
|
|
7
|
+
"dependencies": [],
|
|
8
|
+
"version": "0.1.0",
|
|
9
|
+
"status": "draft",
|
|
10
|
+
"createdAt": "2026-09-17T00:15:00Z",
|
|
11
|
+
"updatedAt": "2026-09-17T00:15:00Z"
|
|
12
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"cnId": "CN-631",
|
|
3
|
+
"path": "src/cli/finalise.js#main",
|
|
4
|
+
"implementsAcIds": [
|
|
5
|
+
"AC-16501-3",
|
|
6
|
+
"AC-16502-3"
|
|
7
|
+
],
|
|
8
|
+
"dependencies": [],
|
|
9
|
+
"version": "0.1.0",
|
|
10
|
+
"status": "draft",
|
|
11
|
+
"createdAt": "2026-09-17T00:15:00Z",
|
|
12
|
+
"updatedAt": "2026-09-17T00:15:00Z"
|
|
13
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"cnId": "CN-632",
|
|
3
|
+
"path": "src/core/store/writer.js#updateDocument",
|
|
4
|
+
"implementsAcIds": [
|
|
5
|
+
"AC-16502-1",
|
|
6
|
+
"AC-16502-2"
|
|
7
|
+
],
|
|
8
|
+
"dependencies": [],
|
|
9
|
+
"version": "0.1.0",
|
|
10
|
+
"status": "draft",
|
|
11
|
+
"createdAt": "2026-09-17T00:15:00Z",
|
|
12
|
+
"updatedAt": "2026-09-17T00:15:00Z"
|
|
13
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
{
|
|
2
|
+
"fbsId": "FBS-180",
|
|
3
|
+
"prdId": "PRD-001",
|
|
4
|
+
"bsId": "BS-001",
|
|
5
|
+
"buildOrder": 180,
|
|
6
|
+
"executionStatus": "notStarted",
|
|
7
|
+
"title": "Slice 1: capture and store",
|
|
8
|
+
"summary": "Deliver REQ-155 (Local feedback capture): the rcf feedback CLI skeleton, the append-only JSONL store, the gitignore entry with pre-upgrade refusal, list/status/defer/discard sub-verbs, HELP parity, and docs/feedback.md first cut.",
|
|
9
|
+
"approach": "Add feedbackMain to bin/rcf.js CORE. Write src/cli/feedback.js dispatcher and src/feedback/store.js (append-only JSONL, per-session state ledger, gitignore contribution). Wire feedbackGitignoreEntry into src/setup/managed-gitignore.js. Add doctor check for the gitignore. Publish docs/feedback.md and index it in docs/README.md.",
|
|
10
|
+
"acIds": [
|
|
11
|
+
"AC-15501-1",
|
|
12
|
+
"AC-15501-2",
|
|
13
|
+
"AC-15501-3",
|
|
14
|
+
"AC-15501-4",
|
|
15
|
+
"AC-15502-1",
|
|
16
|
+
"AC-15502-2",
|
|
17
|
+
"AC-15503-1",
|
|
18
|
+
"AC-15503-2",
|
|
19
|
+
"AC-15501-5"
|
|
20
|
+
],
|
|
21
|
+
"dependsOnFbsIds": [],
|
|
22
|
+
"contextRequirements": {
|
|
23
|
+
"tacIds": [
|
|
24
|
+
"TAC-4101-feedback-cli",
|
|
25
|
+
"TAC-4102-feedback-store"
|
|
26
|
+
],
|
|
27
|
+
"adrIds": [
|
|
28
|
+
"ADR-4101-feedback-store-gitignored"
|
|
29
|
+
]
|
|
30
|
+
},
|
|
31
|
+
"deliverables": [
|
|
32
|
+
"rcf feedback core verb registered and dispatched",
|
|
33
|
+
"Append-only JSONL store with fold-by-id read path",
|
|
34
|
+
"Managed gitignore entry with pre-upgrade refusal on rcf feedback add",
|
|
35
|
+
"add / list / status / defer / discard sub-verbs with exit-code contracts",
|
|
36
|
+
"docs/feedback.md first cut"
|
|
37
|
+
],
|
|
38
|
+
"riskLevel": "low",
|
|
39
|
+
"domain": "feedback",
|
|
40
|
+
"estimatedSize": "medium",
|
|
41
|
+
"estimatedHours": 12,
|
|
42
|
+
"notes": "Foundation slice; nothing depends on anything not in the tree before this lands. Design section 9 decision: body cap 8 KB, no attachments, no screenshots (rejected: attaching rcf define validate --json output and artefact files, marginal value for a larger redaction surface in v1).",
|
|
43
|
+
"createdAt": "2026-09-16T13:45:23.000Z",
|
|
44
|
+
"updatedAt": "2026-09-16T14:14:36Z"
|
|
45
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
{
|
|
2
|
+
"fbsId": "FBS-181",
|
|
3
|
+
"prdId": "PRD-001",
|
|
4
|
+
"bsId": "BS-001",
|
|
5
|
+
"buildOrder": 181,
|
|
6
|
+
"executionStatus": "complete",
|
|
7
|
+
"title": "Slice 2: redaction, fingerprint, preview",
|
|
8
|
+
"summary": "Deliver REQ-156 (Nothing leaves unredacted) and REQ-157 (One finding, one issue): rule-based redaction with disclosure ledger, deterministic 12-hex fingerprint, and the preview sub-verb the operator sees before consenting.",
|
|
9
|
+
"approach": "Write src/feedback/redact.js, src/feedback/redact-allowlist.json, src/feedback/fingerprint.js and src/feedback/render.js. Add preview to src/cli/feedback.js. Golden-file tests for the render templates; fixture corpus for redact.",
|
|
10
|
+
"acIds": [
|
|
11
|
+
"AC-15601-1",
|
|
12
|
+
"AC-15601-2",
|
|
13
|
+
"AC-15601-3",
|
|
14
|
+
"AC-15601-4",
|
|
15
|
+
"AC-15701-1"
|
|
16
|
+
],
|
|
17
|
+
"dependsOnFbsIds": [
|
|
18
|
+
"FBS-180"
|
|
19
|
+
],
|
|
20
|
+
"contextRequirements": {
|
|
21
|
+
"tacIds": [
|
|
22
|
+
"TAC-4103-feedback-redact",
|
|
23
|
+
"TAC-4104-feedback-fingerprint",
|
|
24
|
+
"TAC-4105-feedback-render"
|
|
25
|
+
],
|
|
26
|
+
"adrIds": [
|
|
27
|
+
"ADR-4102-fingerprint-and-labels",
|
|
28
|
+
"ADR-4103-redaction-rule-based"
|
|
29
|
+
]
|
|
30
|
+
},
|
|
31
|
+
"deliverables": [
|
|
32
|
+
"redact.js pure module with the eight rules and the ledger",
|
|
33
|
+
"redact-allowlist.json vendor host set",
|
|
34
|
+
"fingerprint.js pure module and normaliseTitle fallback",
|
|
35
|
+
"render.js title / body / +1-comment / bundle templates with fingerprint twin",
|
|
36
|
+
"preview sub-verb with JSON output shape"
|
|
37
|
+
],
|
|
38
|
+
"riskLevel": "medium",
|
|
39
|
+
"domain": "feedback",
|
|
40
|
+
"estimatedSize": "medium",
|
|
41
|
+
"estimatedHours": 16,
|
|
42
|
+
"notes": "Fingerprint decision confined to this slice via ADR-4102; the labels half of that ADR pays off in slice 4.",
|
|
43
|
+
"createdAt": "2026-09-16T13:45:23.000Z",
|
|
44
|
+
"updatedAt": "2026-09-16T13:45:23.000Z"
|
|
45
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
{
|
|
2
|
+
"fbsId": "FBS-182",
|
|
3
|
+
"prdId": "PRD-001",
|
|
4
|
+
"bsId": "BS-001",
|
|
5
|
+
"buildOrder": 182,
|
|
6
|
+
"executionStatus": "complete",
|
|
7
|
+
"title": "Slice 3: destination resolution",
|
|
8
|
+
"summary": "Deliver REQ-158 (Reports reach the owning repo): library.json:issues field, registry snapshot, destination resolver, review-on-add line, doctor feedback-destinations warn check, docs/library-authoring.md field-table row.",
|
|
9
|
+
"approach": "Extend library.json schema (issues object) and rcf/blueprint-libraries.json:entries[] snapshot in src/blueprint/library-registry.js. Write src/feedback/destination.js with the walk-and-derive logic. Add the doctor warn-only check. Update docs/library-authoring.md.",
|
|
10
|
+
"acIds": [
|
|
11
|
+
"AC-15801-1",
|
|
12
|
+
"AC-15801-2",
|
|
13
|
+
"AC-15801-3",
|
|
14
|
+
"AC-15802-1",
|
|
15
|
+
"AC-15802-2"
|
|
16
|
+
],
|
|
17
|
+
"dependsOnFbsIds": [
|
|
18
|
+
"FBS-181"
|
|
19
|
+
],
|
|
20
|
+
"contextRequirements": {
|
|
21
|
+
"tacIds": [
|
|
22
|
+
"TAC-4106-feedback-destination"
|
|
23
|
+
],
|
|
24
|
+
"adrIds": [
|
|
25
|
+
"ADR-4104-destination-on-library"
|
|
26
|
+
]
|
|
27
|
+
},
|
|
28
|
+
"deliverables": [
|
|
29
|
+
"library.json issues field (schema + docs)",
|
|
30
|
+
"rcf library add snapshot into blueprint-libraries.json",
|
|
31
|
+
"destination.js resolver with derivation fallback and CORE_REPO constant",
|
|
32
|
+
"doctor feedback-destinations warn check",
|
|
33
|
+
"docs/library-authoring.md field-table row"
|
|
34
|
+
],
|
|
35
|
+
"riskLevel": "medium",
|
|
36
|
+
"domain": "feedback",
|
|
37
|
+
"estimatedSize": "small",
|
|
38
|
+
"estimatedHours": 8,
|
|
39
|
+
"notes": "Extends the library manifest surface; downstream library owners can adopt at their own cadence.",
|
|
40
|
+
"createdAt": "2026-09-16T13:45:23.000Z",
|
|
41
|
+
"updatedAt": "2026-09-16T16:20:01Z"
|
|
42
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
{
|
|
2
|
+
"fbsId": "FBS-183",
|
|
3
|
+
"prdId": "PRD-001",
|
|
4
|
+
"bsId": "BS-001",
|
|
5
|
+
"buildOrder": 183,
|
|
6
|
+
"executionStatus": "inProgress",
|
|
7
|
+
"title": "Slice 4: submit, dedupe, fallback",
|
|
8
|
+
"summary": "Deliver REQ-159 (Consent-gated submission under reporter identity) and REQ-160 (No path leaves the operator stuck): gh module seam, submit sub-verb with dedupe search, label pre-check, outbox bundle fallback, and the scripts/bootstrap-feedback-labels.mjs maintainer aid.",
|
|
9
|
+
"approach": "Write src/feedback/gh.js with the RCF_FEEDBACK_GH_MODULE seam. Implement submit in src/cli/feedback.js: preflight -> dedupe search -> create-or-comment -> label pre-check -> bundle fallback. Write the bootstrap script. Extend rcf feedback status with gh availability. Tests use a fake gh module through the seam.",
|
|
10
|
+
"acIds": [
|
|
11
|
+
"AC-15701-2",
|
|
12
|
+
"AC-15701-3",
|
|
13
|
+
"AC-15901-1",
|
|
14
|
+
"AC-15901-2",
|
|
15
|
+
"AC-15902-1",
|
|
16
|
+
"AC-15902-2",
|
|
17
|
+
"AC-15902-3",
|
|
18
|
+
"AC-16001-1",
|
|
19
|
+
"AC-16001-2",
|
|
20
|
+
"AC-16001-3",
|
|
21
|
+
"AC-15902-4",
|
|
22
|
+
"AC-16001-4"
|
|
23
|
+
],
|
|
24
|
+
"dependsOnFbsIds": [
|
|
25
|
+
"FBS-182"
|
|
26
|
+
],
|
|
27
|
+
"contextRequirements": {
|
|
28
|
+
"tacIds": [
|
|
29
|
+
"TAC-4107-feedback-gh"
|
|
30
|
+
],
|
|
31
|
+
"adrIds": [
|
|
32
|
+
"ADR-4105-gh-ambient-auth",
|
|
33
|
+
"ADR-4106-bundled-entries-terminal"
|
|
34
|
+
]
|
|
35
|
+
},
|
|
36
|
+
"deliverables": [
|
|
37
|
+
"gh.js single-shell-out seam with fake-module override",
|
|
38
|
+
"submit sub-verb with preflight, dedupe, create-or-comment and bundle fallback",
|
|
39
|
+
"Label pre-check with droppedLabels ledger",
|
|
40
|
+
"scripts/bootstrap-feedback-labels.mjs (six-label idempotent bootstrap)",
|
|
41
|
+
"gh availability surfaced by rcf feedback status"
|
|
42
|
+
],
|
|
43
|
+
"riskLevel": "medium",
|
|
44
|
+
"domain": "feedback",
|
|
45
|
+
"estimatedSize": "large",
|
|
46
|
+
"estimatedHours": 16,
|
|
47
|
+
"notes": "Largest slice; carries the operator-visible submit flow and every fallback branch.",
|
|
48
|
+
"createdAt": "2026-09-16T13:45:23.000Z",
|
|
49
|
+
"updatedAt": "2026-09-16T17:25:50Z"
|
|
50
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
{
|
|
2
|
+
"fbsId": "FBS-184",
|
|
3
|
+
"prdId": "PRD-001",
|
|
4
|
+
"bsId": "BS-001",
|
|
5
|
+
"buildOrder": 184,
|
|
6
|
+
"executionStatus": "complete",
|
|
7
|
+
"title": "Slice 5: the ask",
|
|
8
|
+
"summary": "Deliver REQ-161 (One ask per session, at idle, never automatic): hook quiet rule, per-harness hook handlers, installer wired into rcf init, doctor feedback-hooks check, settings file, env variables, opt-in/opt-out sub-verbs.",
|
|
9
|
+
"approach": "Write src/feedback/hook.js with pure shouldAsk() and per-harness emit(). Write src/setup/feedback-hooks.js installer (mergeable). Wire init Step 6 and doctor feedback-hooks check. Add hook sub-verb and opt-in/opt-out sub-verbs. Add rcf/feedback-settings.json handling. Add RCF_FEEDBACK_ASK and RCF_FEEDBACK_DISABLE env handling.",
|
|
10
|
+
"acIds": [
|
|
11
|
+
"AC-16101-1",
|
|
12
|
+
"AC-16101-2",
|
|
13
|
+
"AC-16101-3",
|
|
14
|
+
"AC-16102-1",
|
|
15
|
+
"AC-16102-2",
|
|
16
|
+
"AC-16103-1",
|
|
17
|
+
"AC-16103-2",
|
|
18
|
+
"AC-16103-3",
|
|
19
|
+
"AC-16104-1",
|
|
20
|
+
"AC-16104-2",
|
|
21
|
+
"AC-16104-3"
|
|
22
|
+
],
|
|
23
|
+
"dependsOnFbsIds": [
|
|
24
|
+
"FBS-183"
|
|
25
|
+
],
|
|
26
|
+
"contextRequirements": {
|
|
27
|
+
"tacIds": [
|
|
28
|
+
"TAC-4108-feedback-hook"
|
|
29
|
+
],
|
|
30
|
+
"adrIds": [
|
|
31
|
+
"ADR-4107-stop-is-ask-event",
|
|
32
|
+
"ADR-4108-hooks-in-committed-config"
|
|
33
|
+
]
|
|
34
|
+
},
|
|
35
|
+
"deliverables": [
|
|
36
|
+
"hook.js with pure quiet-rule shouldAsk and per-harness emit",
|
|
37
|
+
"feedback-hooks.js installer merged into .claude/settings.json and .codex/hooks.json",
|
|
38
|
+
"rcf init step 6; --no-feedback-hooks flag; doctor feedback-hooks check",
|
|
39
|
+
"rcf feedback opt-in / opt-out sub-verbs; RCF_FEEDBACK_ASK, RCF_FEEDBACK_DISABLE env",
|
|
40
|
+
"session-end bundle flush and session-start carry-over context line"
|
|
41
|
+
],
|
|
42
|
+
"riskLevel": "medium",
|
|
43
|
+
"domain": "feedback",
|
|
44
|
+
"estimatedSize": "large",
|
|
45
|
+
"estimatedHours": 16,
|
|
46
|
+
"notes": "Introduces harness-facing config; the Codex hook trust prompt is a first-run curiosity, covered by RULE 17. Design section 9 decision: no global (~/.config) setting in v1 (rejected: a ~/.rcf/feedback.json file, because the behaviour a teammate sees on a shared project should come from the project, not from someone's home directory; a per-machine preference is the RCF_FEEDBACK_ASK env var).",
|
|
47
|
+
"createdAt": "2026-09-16T13:45:23.000Z",
|
|
48
|
+
"updatedAt": "2026-09-16T19:20:00Z"
|
|
49
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
{
|
|
2
|
+
"fbsId": "FBS-185",
|
|
3
|
+
"prdId": "PRD-001",
|
|
4
|
+
"bsId": "BS-001",
|
|
5
|
+
"buildOrder": 185,
|
|
6
|
+
"executionStatus": "complete",
|
|
7
|
+
"title": "Slice 6: instruction and release",
|
|
8
|
+
"summary": "Deliver REQ-162 (Agents know when to log and when to ask): RULE 17 in the managed instructions block, build:managed regen, CHANGELOG entry, docs index row, docs-site follow-up ticket for the mirror page and the form paragraph.",
|
|
9
|
+
"approach": "Append RULE 17 to guidance/managed/agent-instructions-block.md (design section 3.4 wording, static). Run pnpm run build:managed to regenerate the block hash and harness-template.md. Update CHANGELOG.md, docs/README.md index and open a follow-up ticket for the docs-site mirror page and the \"submit a blueprint idea\" form paragraph.",
|
|
10
|
+
"acIds": [
|
|
11
|
+
"AC-16201-1",
|
|
12
|
+
"AC-16201-2"
|
|
13
|
+
],
|
|
14
|
+
"dependsOnFbsIds": [
|
|
15
|
+
"FBS-184"
|
|
16
|
+
],
|
|
17
|
+
"contextRequirements": {
|
|
18
|
+
"tacIds": [],
|
|
19
|
+
"adrIds": []
|
|
20
|
+
},
|
|
21
|
+
"deliverables": [
|
|
22
|
+
"RULE 17 in guidance/managed/agent-instructions-block.md (static wording)",
|
|
23
|
+
"pnpm run build:managed regenerated block hash and harness-template.md",
|
|
24
|
+
"CHANGELOG entry and docs/README.md index row for docs/feedback.md",
|
|
25
|
+
"Docs-site follow-up ticket opened for the mirror page and form paragraph"
|
|
26
|
+
],
|
|
27
|
+
"riskLevel": "low",
|
|
28
|
+
"domain": "feedback",
|
|
29
|
+
"estimatedSize": "small",
|
|
30
|
+
"estimatedHours": 4,
|
|
31
|
+
"notes": "Ships with slice 5 (the rule and the hook reference each other); one-file edit plus the hash regen.",
|
|
32
|
+
"createdAt": "2026-09-16T13:45:23.000Z",
|
|
33
|
+
"updatedAt": "2026-09-16T13:45:23.000Z"
|
|
34
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"createdAt": "2026-09-17T00:15:00Z",
|
|
3
|
+
"updatedAt": "2026-09-17T00:15:00Z",
|
|
4
|
+
"acIds": [
|
|
5
|
+
"AC-16301-1",
|
|
6
|
+
"AC-16301-2"
|
|
7
|
+
],
|
|
8
|
+
"fbsId": "FBS-186",
|
|
9
|
+
"prdId": "PRD-001",
|
|
10
|
+
"bsId": "BS-001",
|
|
11
|
+
"buildOrder": 70,
|
|
12
|
+
"executionStatus": "notStarted",
|
|
13
|
+
"title": "Referee-guarantees: define validate walks ADR supersededBy and relatedAdrs",
|
|
14
|
+
"summary": "Extend collectBrokenReferences in packages/rcf-lite/src/core/store/walker.js so the two ADR schema-declared cross-links (supersededBy, relatedAdrs) walk through the same check helper as the existing FBS / TS / CN / EVAL cross-links. Broken targets surface as brokenReference errors named to the ADR file and the field, keyed rule:resolveTo:adr. Empty / absent fields stay silent. The walker change plus test/store/walker.test.js coverage closes referee-guarantees docs claim C-7. w-2026-09-16-dave-011.",
|
|
15
|
+
"dependsOnFbsIds": []
|
|
16
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"createdAt": "2026-09-17T00:15:00Z",
|
|
3
|
+
"updatedAt": "2026-09-17T00:15:00Z",
|
|
4
|
+
"acIds": [
|
|
5
|
+
"AC-16401-1",
|
|
6
|
+
"AC-16401-2",
|
|
7
|
+
"AC-16401-3"
|
|
8
|
+
],
|
|
9
|
+
"fbsId": "FBS-187",
|
|
10
|
+
"prdId": "PRD-001",
|
|
11
|
+
"bsId": "BS-001",
|
|
12
|
+
"buildOrder": 71,
|
|
13
|
+
"executionStatus": "notStarted",
|
|
14
|
+
"title": "Referee-guarantees: rcf audit coverage strict-by-default with --mode shallow-any opt-out",
|
|
15
|
+
"summary": "Flip the shipped default of `rcf audit coverage` from shallow-any to strict; add --mode shallow-any as the explicit opt-out (prints gaps, exits 0); keep --strict as a no-op alias; refuse --mode shallow-any --strict and --mode <unknown>. Update the repo's own CI dogfood step to the shipped default and add `rcf audit eval coverage --strict` alongside so referee-guarantees claim C-20 holds. Update docs/getting-started.md and docs/how-it-works.md to show the new default and the opt-out. Closes referee-guarantees docs claims C-11, C-14 and C-20. w-2026-09-16-dave-012.",
|
|
16
|
+
"dependsOnFbsIds": []
|
|
17
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"createdAt": "2026-09-17T00:15:00Z",
|
|
3
|
+
"updatedAt": "2026-09-17T00:15:00Z",
|
|
4
|
+
"acIds": [
|
|
5
|
+
"AC-16501-1",
|
|
6
|
+
"AC-16501-2",
|
|
7
|
+
"AC-16501-3"
|
|
8
|
+
],
|
|
9
|
+
"fbsId": "FBS-188",
|
|
10
|
+
"prdId": "PRD-001",
|
|
11
|
+
"bsId": "BS-001",
|
|
12
|
+
"buildOrder": 72,
|
|
13
|
+
"executionStatus": "notStarted",
|
|
14
|
+
"title": "Referee-guarantees: finalise refuses UI-BASELINE-UNMET, BROWSER-VERIFICATION-MISSING, SCOPE-MISMATCH",
|
|
15
|
+
"summary": "Add three finalise refusal branches after the MOCK-ONLY / EVAL branches. UI-BASELINE-UNMET (also covers a block-severity probe-pack failure, C-36), BROWSER-VERIFICATION-MISSING and SCOPE-MISMATCH each refuse promotion (exit 4) with a stderr message that names the AC(s), the count and the referee-guarantees claim ids. No --ship-without-* opt-out: the docs page names none and the failure classes are the shape the referee is chartered to refuse. Closes referee-guarantees docs claims C-28, C-29, C-30, C-36. w-2026-09-16-dave-013.",
|
|
16
|
+
"dependsOnFbsIds": []
|
|
17
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"createdAt": "2026-09-17T00:15:00Z",
|
|
3
|
+
"updatedAt": "2026-09-17T00:15:00Z",
|
|
4
|
+
"acIds": [
|
|
5
|
+
"AC-16502-1",
|
|
6
|
+
"AC-16502-2",
|
|
7
|
+
"AC-16502-3"
|
|
8
|
+
],
|
|
9
|
+
"fbsId": "FBS-189",
|
|
10
|
+
"prdId": "PRD-001",
|
|
11
|
+
"bsId": "BS-001",
|
|
12
|
+
"buildOrder": 73,
|
|
13
|
+
"executionStatus": "notStarted",
|
|
14
|
+
"title": "Referee-guarantees: verified-invariant gate + merge-state precondition on finalise",
|
|
15
|
+
"summary": "Gate the two paths that let the 0.27.0 chain say verified without a real finalise run. Writer refuses FBS.executionStatus=verified unless options.allowVerifiedOverride is true; rcf define update exposes --acknowledge-verified-override as the deliberate manual escape; rcf build finalise passes the seam through so its happy path is unchanged. Finalise spawns git rev-parse --abbrev-ref HEAD before the executionStatus write and refuses promotion (exit 4) when the branch is not main / master; --allow-pre-merge is the deliberate opt-out (logged on stdout). Absent a git checkout the check degrades to a warn line. Closes referee-guarantees docs claims C-22 and C-26. w-2026-09-16-dave-013.",
|
|
16
|
+
"dependsOnFbsIds": []
|
|
17
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"reqId": "REQ-155",
|
|
3
|
+
"prdId": "PRD-001",
|
|
4
|
+
"title": "Local feedback capture",
|
|
5
|
+
"description": "The agent records a finding about a blueprint or about rcf-lite itself with one CLI call. Nothing leaves the machine. The store is per-clone and gitignored, so unredacted content cannot ride a git push. The operator can list, defer or discard recorded findings by hand. Pre-upgrade projects whose .gitignore does not cover the store path are refused (with the rcf doctor --fix line) so a working tree cannot leak by accident.",
|
|
6
|
+
"category": "functional",
|
|
7
|
+
"domain": "functional",
|
|
8
|
+
"priority": "must",
|
|
9
|
+
"version": "0.1.0",
|
|
10
|
+
"status": "draft",
|
|
11
|
+
"createdAt": "2026-09-16T13:45:23.000Z",
|
|
12
|
+
"updatedAt": "2026-09-16T13:45:23.000Z"
|
|
13
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"reqId": "REQ-156",
|
|
3
|
+
"prdId": "PRD-001",
|
|
4
|
+
"title": "Nothing leaves the machine unredacted",
|
|
5
|
+
"description": "Every issue title, body and evidence pointer that would leave the machine is redacted by a deterministic, rule-based pass and the redactions are disclosed to the operator before consent. The stored entry stays raw; only the rendered issue and bundle are redacted. Project root, other absolute paths, emails, non-allowlisted hostnames and URLs, private and link-local IPs, secret-looking strings, operator identity and the git remote of the reporting project are stripped. A body with a residual secret pattern refuses to submit and the offending line is shown to the operator so the agent can rewrite it.",
|
|
6
|
+
"category": "functional",
|
|
7
|
+
"domain": "functional",
|
|
8
|
+
"priority": "must",
|
|
9
|
+
"version": "0.1.0",
|
|
10
|
+
"status": "draft",
|
|
11
|
+
"createdAt": "2026-09-16T13:45:23.000Z",
|
|
12
|
+
"updatedAt": "2026-09-16T13:45:23.000Z"
|
|
13
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"reqId": "REQ-157",
|
|
3
|
+
"prdId": "PRD-001",
|
|
4
|
+
"title": "One finding, one issue",
|
|
5
|
+
"description": "The same defect reported by many users folds into one GitHub issue with additional reporters as +1 comments, not into one issue per user. The fingerprint is deterministic from kind, target key, anchor and symptom class; blueprint version is not part of the fingerprint so a defect that persists across versions folds. Search unavailability falls through to create with a dedupe: unchecked stamp; closed issues are not matched (a recurrence is a regression).",
|
|
6
|
+
"category": "functional",
|
|
7
|
+
"domain": "functional",
|
|
8
|
+
"priority": "must",
|
|
9
|
+
"version": "0.1.0",
|
|
10
|
+
"status": "draft",
|
|
11
|
+
"createdAt": "2026-09-16T13:45:23.000Z",
|
|
12
|
+
"updatedAt": "2026-09-16T13:45:23.000Z"
|
|
13
|
+
}
|