Notifications and Communications Planning Examination
This examination checks the supplied planning layer against the two pinned repositories. Source inspection establishes implemented behavior; recorded decisions establish product authority. Neither inspection nor this report approves the layer.
Scope and Counts
The examination covers all 62 supplied module files: the charter, findings, identifier ledger, seven features, six concept records, twenty capabilities, six journeys and twenty acceptance sets. It also covers the five module-added Platform actors and the module registry status. The final model has three active broad concepts and three superseded records, 216 rules, 175 must-prove rules and 185 acceptance scenarios. The findings register contains 36 findings, including twelve added during examination, and seven open questions.
The requested planning brief is absent from the supplied checkout. That prevents examination of its requirements and is recorded separately. Producer implementation outside the registered paths is not treated as observed evidence.
Coverage
Covered means mapped to a capability, evidence line or explicit finding after inspection; it does not mean approved or executed successfully.
| Surface | Covered / total | Uncovered or limited behavior |
|---|---|---|
| Business HTTP operations | 44 / 44 | None unmapped; provider and access-policy questions remain open |
| Module tables | 30 / 30 | Retention maintenance and unconsumed future preferences remain findings |
| Route-required permission keys | 18 / 18 | Caller-service ownership and HQ content grant boundary remain findings |
| IAM invocation entries | 12 / 12 | Caller identity is not established by supplied service filters |
| Primary queues and dead-letter queues | 12 / 12 | Notification text queue has no deployed consumer |
| Scheduled entry points | 4 / 4 | Minute scheduling does not promise delivery latency |
| Deployed module state machines | 1 / 1 | Nightly reconciliation is inspected, not executed here |
| Hosted scoped console pages | 3 / 3 | Combined bell and fuller History chain remain incomplete |
| Legacy alerts redirects | 1 / 1 | Redirect supplies no additional notification surface |
| Scoped Platform test files | 98 / 98 | Mapped and inspected; not run during this documentation job |
| Platform e2e files, subset of preceding total | 5 / 5 | Provider execution and ambiguity guarantees remain limited |
| Scoped console unit test files | 4 / 4 | No fresh browser or console run |
| Notification browser acceptance files | 19 / 19 | Recorded run limitations remain findings |
| Acceptance seed-guard test file | 1 / 1 | Fixture isolation evidence; not run here |
HTTP Operations
| Operation | Capability home |
|---|---|
listMyNotifications | CAP-PFM-NOT-009 |
getMyNotificationSummary | CAP-PFM-NOT-009 |
getMyNotification | CAP-PFM-NOT-009 |
markMyNotificationRead | CAP-PFM-NOT-009 |
markMyNotificationUnread | CAP-PFM-NOT-009 |
archiveMyNotification | CAP-PFM-NOT-009 |
unarchiveMyNotification | CAP-PFM-NOT-009 |
markAllMyNotificationsRead | CAP-PFM-NOT-009 |
sendMyTestNotification | CAP-PFM-NOT-009 |
listNotificationHistory | CAP-PFM-NOT-011 |
listNotificationRequests | CAP-PFM-NOT-011 |
getNotificationRequest | CAP-PFM-NOT-011 |
getNotificationInstance | CAP-PFM-NOT-011 |
getNotificationDelivery | CAP-PFM-NOT-011 |
requestNotification | CAP-PFM-NOT-002 |
cancelNotificationRequest | CAP-PFM-NOT-002 |
listHqNotificationDefinitions | CAP-PFM-NOT-001 |
listHqTenantNotificationHistory | CAP-PFM-NOT-012 |
listHqTenantNotificationRequests | CAP-PFM-NOT-012 |
listHqNotificationDeadLetters | CAP-PFM-NOT-012 |
retryHqNotificationDelivery | CAP-PFM-NOT-012 |
listCommunicationPurposes | CAP-PFM-NOT-016 |
listCommunicationTemplates | CAP-PFM-NOT-016 |
createCommunicationTemplate | CAP-PFM-NOT-016 |
getCommunicationTemplate | CAP-PFM-NOT-016 |
updateCommunicationTemplate | CAP-PFM-NOT-016 |
archiveCommunicationTemplate | CAP-PFM-NOT-016 |
validateCommunicationTemplate | CAP-PFM-NOT-016 |
previewCommunicationTemplate | CAP-PFM-NOT-016 |
testSendCommunicationTemplate | CAP-PFM-NOT-016 |
publishCommunicationTemplate | CAP-PFM-NOT-016 |
listCommunicationTemplateVersions | CAP-PFM-NOT-016 |
getCommunicationTemplateVersion | CAP-PFM-NOT-016 |
getCommunicationReadiness | CAP-PFM-NOT-016 |
listCommunicationMessages | CAP-PFM-NOT-019 |
getCommunicationMessage | CAP-PFM-NOT-019 |
getCommunicationMessageContent | CAP-PFM-NOT-019 |
cancelCommunicationMessage | CAP-PFM-NOT-018 |
listCommunicationRequests | CAP-PFM-NOT-019 |
getCommunicationRequest | CAP-PFM-NOT-019 |
requestCommunication | CAP-PFM-NOT-017 |
listCommunicationSuppressions | CAP-PFM-NOT-020 |
createCommunicationSuppression | CAP-PFM-NOT-020 |
releaseCommunicationSuppression | CAP-PFM-NOT-020 |
Table Inventory
| Table definition | Capability home |
|---|---|
modules/notifications/db/notification-channel-identities.table.ts | CAP-PFM-NOT-015 |
modules/notifications/db/notification-channel-settings.table.ts | CAP-PFM-NOT-015 |
modules/notifications/db/notification-definition-settings.table.ts | CAP-PFM-NOT-015 |
modules/notifications/db/notification-definitions.table.ts | CAP-PFM-NOT-001 |
modules/notifications/db/notification-deliveries.table.ts | CAP-PFM-NOT-007 |
modules/notifications/db/notification-delivery-events.table.ts | CAP-PFM-NOT-007 |
modules/notifications/db/notification-delivery-work.table.ts | CAP-PFM-NOT-007 |
modules/notifications/db/notification-digests.table.ts | CAP-PFM-NOT-007 |
modules/notifications/db/notification-instance-keys.table.ts | CAP-PFM-NOT-005 |
modules/notifications/db/notification-instances.table.ts | CAP-PFM-NOT-004 |
modules/notifications/db/notification-preferences.table.ts | CAP-PFM-NOT-015 |
modules/notifications/db/notification-reconcile-job-events.table.ts | CAP-PFM-NOT-008 |
modules/notifications/db/notification-reconcile-job-steps.table.ts | CAP-PFM-NOT-008 |
modules/notifications/db/notification-reconcile-jobs.table.ts | CAP-PFM-NOT-008 |
modules/notifications/db/notification-requests.table.ts | CAP-PFM-NOT-002 |
modules/notifications/db/notification-sms-usage.table.ts | CAP-PFM-NOT-015 |
modules/notifications/db/notification-sms-verifications.table.ts | CAP-PFM-NOT-015 |
modules/notifications/db/notification-submissions.table.ts | CAP-PFM-NOT-002 |
modules/notifications/db/notification-template-overrides.table.ts | CAP-PFM-NOT-015 |
modules/notifications/db/notification-user-settings.table.ts | CAP-PFM-NOT-015 |
modules/communications/db/communication-lane-budgets.table.ts | CAP-PFM-NOT-018 |
modules/communications/db/communication-message-attempts.table.ts | CAP-PFM-NOT-018 |
modules/communications/db/communication-message-events.table.ts | CAP-PFM-NOT-019 |
modules/communications/db/communication-messages.table.ts | CAP-PFM-NOT-017 |
modules/communications/db/communication-request-submissions.table.ts | CAP-PFM-NOT-017 |
modules/communications/db/communication-requests.table.ts | CAP-PFM-NOT-017 |
modules/communications/db/communication-sender-identities.table.ts | CAP-PFM-NOT-020 |
modules/communications/db/communication-suppressions.table.ts | CAP-PFM-NOT-020 |
modules/communications/db/communication-template-versions.table.ts | CAP-PFM-NOT-016 |
modules/communications/db/communication-templates.table.ts | CAP-PFM-NOT-016 |
Permissions and Runtime Entries
The route definitions supply notification use, manage and publish; HQ notification read and operate; communication-template read, create, update, delete, publish and test-send; communication-message read, read-content and update; communication request; and communication-suppression read, create and update. Personal access belongs to the inbox capability, workspace review to History, operator access to HQ review, and the communication keys to content authoring, request acceptance, outcome inspection and recipient protection. The shared catalog supplies role assignments but does not resolve the access-policy disagreements.
| Runtime entry | Capability home or finding |
|---|---|
| Notification publish and cancel IAM entries | CAP-PFM-NOT-002 |
| Notification registration IAM entry | CAP-PFM-NOT-001 |
| Communication request invocation | CAP-PFM-NOT-017 |
| Communication testSend, renderPreview, readiness, saveOwnedTemplate, clearOwnedTemplate, getOwnedTemplates invocations | CAP-PFM-NOT-016 |
| Communication changedMessages invocation | CAP-PFM-NOT-019; FND-PFM-NOT-035 |
| Message-version template storage invocation | CAP-PFM-NOT-016 |
| Notification request queue and its dead-letter queue | CAP-PFM-NOT-002 |
| Notification chat queue and its dead-letter queue | CAP-PFM-NOT-007, CAP-PFM-NOT-013 |
| Notification text queue and its dead-letter queue | CAP-PFM-NOT-007; FND-PFM-NOT-034 |
| Communication send, marketing and feedback queues, each with a dead-letter queue | CAP-PFM-NOT-018, CAP-PFM-NOT-019 |
| Notification minute dispatcher | CAP-PFM-NOT-007, CAP-PFM-NOT-008 |
| Notification nightly reconciliation schedule and state machine | CAP-PFM-NOT-008 |
| Communication minute dispatcher and minute quota guard | CAP-PFM-NOT-018 |
| Personal notification page | CAP-PFM-NOT-009, CAP-PFM-NOT-010 |
| Administrator notification History page | CAP-PFM-NOT-011 |
| HQ notification History page | CAP-PFM-NOT-012 |
| Legacy alerts page redirect | FND-PFM-NOT-011 |
Test File Inventory
The following file map records evidence coverage, not a fresh test result. Composite scenarios retain their proof limits, and unbound checks remain proposed.
| File | Capability home |
|---|---|
services-platform:modules/notifications/tests/e2e/notifications.e2e.spec.js | CAP-PFM-NOT-002, CAP-PFM-NOT-009, CAP-PFM-NOT-010, CAP-PFM-NOT-011 |
services-platform:modules/notifications/tests/integration/db/notification-instances.table.integration.spec.js | CAP-PFM-NOT-004 (inventory evidence) |
services-platform:modules/notifications/tests/integration/db/notification-submissions.table.integration.spec.js | CAP-PFM-NOT-002 |
services-platform:modules/notifications/tests/integration/services/centre/hq-notifications.integration.spec.js | CAP-PFM-NOT-001, CAP-PFM-NOT-012 |
services-platform:modules/notifications/tests/integration/services/centre/notification-centre.integration.spec.js | CAP-PFM-NOT-009, CAP-PFM-NOT-010, CAP-PFM-NOT-011 |
services-platform:modules/notifications/tests/integration/services/dispatch/deliver-delivery.integration.spec.js | CAP-PFM-NOT-006, CAP-PFM-NOT-007, CAP-PFM-NOT-012 |
services-platform:modules/notifications/tests/integration/services/dispatch/dispatch-notifications.integration.spec.js | CAP-PFM-NOT-002, CAP-PFM-NOT-008 |
services-platform:modules/notifications/tests/integration/services/dispatch/process-request-batch.integration.spec.js | CAP-PFM-NOT-008 |
services-platform:modules/notifications/tests/integration/services/orchestration/cancel-and-supersede.integration.spec.js | CAP-PFM-NOT-005, CAP-PFM-NOT-006 |
services-platform:modules/notifications/tests/integration/services/orchestration/logging.integration.spec.js | CAP-PFM-NOT-008 (inventory evidence) |
services-platform:modules/notifications/tests/integration/services/orchestration/orchestrate-request.integration.spec.js | CAP-PFM-NOT-003, CAP-PFM-NOT-004, CAP-PFM-NOT-005, CAP-PFM-NOT-006, CAP-PFM-NOT-007, CAP-PFM-NOT-008 |
services-platform:modules/notifications/tests/integration/services/orchestration/resolve-audience.integration.spec.js | CAP-PFM-NOT-003 |
services-platform:modules/notifications/tests/integration/services/persistence/channel-settings.integration.spec.js | CAP-PFM-NOT-015 |
services-platform:modules/notifications/tests/integration/services/persistence/definition-settings.integration.spec.js | CAP-PFM-NOT-015 |
services-platform:modules/notifications/tests/integration/services/persistence/definitions.integration.spec.js | CAP-PFM-NOT-001 (inventory evidence) |
services-platform:modules/notifications/tests/integration/services/persistence/definitions.queries.integration.spec.js | CAP-PFM-NOT-001 (inventory evidence) |
services-platform:modules/notifications/tests/integration/services/persistence/deliveries.integration.spec.js | CAP-PFM-NOT-007 |
services-platform:modules/notifications/tests/integration/services/persistence/delivery-works.integration.spec.js | CAP-PFM-NOT-007 (inventory evidence) |
services-platform:modules/notifications/tests/integration/services/persistence/digests.integration.spec.js | CAP-PFM-NOT-015 |
services-platform:modules/notifications/tests/integration/services/persistence/identities.integration.spec.js | CAP-PFM-NOT-015 |
services-platform:modules/notifications/tests/integration/services/persistence/instances.integration.spec.js | CAP-PFM-NOT-009 |
services-platform:modules/notifications/tests/integration/services/persistence/instances.queries.integration.spec.js | CAP-PFM-NOT-004 (inventory evidence) |
services-platform:modules/notifications/tests/integration/services/persistence/preferences.integration.spec.js | CAP-PFM-NOT-015 |
services-platform:modules/notifications/tests/integration/services/persistence/reconcile-jobs.integration.spec.js | CAP-PFM-NOT-008 (inventory evidence) |
services-platform:modules/notifications/tests/integration/services/persistence/requests.integration.spec.js | CAP-PFM-NOT-002 (inventory evidence) |
services-platform:modules/notifications/tests/integration/services/persistence/requests.queries.integration.spec.js | CAP-PFM-NOT-002 (inventory evidence) |
services-platform:modules/notifications/tests/integration/services/persistence/sms-usages.integration.spec.js | CAP-PFM-NOT-015 |
services-platform:modules/notifications/tests/integration/services/persistence/submissions.integration.spec.js | CAP-PFM-NOT-002 (inventory evidence) |
services-platform:modules/notifications/tests/integration/services/persistence/template-overrides.integration.spec.js | CAP-PFM-NOT-015 |
services-platform:modules/notifications/tests/integration/services/persistence/tenant-purges.integration.spec.js | CAP-PFM-NOT-008 |
services-platform:modules/notifications/tests/integration/services/persistence/user-settings.integration.spec.js | CAP-PFM-NOT-015 |
services-platform:modules/notifications/tests/integration/services/reconcile/reconcile-tenant.integration.spec.js | CAP-PFM-NOT-006, CAP-PFM-NOT-008 |
services-platform:modules/notifications/tests/integration/services/registration/register-service-notifications.integration.spec.js | CAP-PFM-NOT-001 |
services-platform:modules/notifications/tests/integration/services/requests/submit-notification-request.integration.spec.js | CAP-PFM-NOT-002 |
services-platform:modules/notifications/tests/integration/services/system/system-audience.integration.spec.js | CAP-PFM-NOT-013 |
services-platform:modules/notifications/tests/provider/slack-system.provider.spec.ts | CAP-PFM-NOT-004 (inventory evidence) |
services-platform:modules/notifications/tests/unit/audience-planner.spec.js | CAP-PFM-NOT-003, CAP-PFM-NOT-010 |
services-platform:modules/notifications/tests/unit/channel-resolution.spec.js | CAP-PFM-NOT-007 |
services-platform:modules/notifications/tests/unit/collapsing.spec.js | CAP-PFM-NOT-005 |
services-platform:modules/notifications/tests/unit/hq-channels.spec.js | CAP-PFM-NOT-013 |
services-platform:modules/notifications/tests/unit/instance-status.spec.js | CAP-PFM-NOT-007 |
services-platform:modules/notifications/tests/unit/permissions.spec.js | CAP-PFM-NOT-009, CAP-PFM-NOT-012 |
services-platform:modules/notifications/tests/unit/platform-notification-definitions.spec.js | CAP-PFM-NOT-001 |
services-platform:modules/notifications/tests/unit/queue-items.spec.js | CAP-PFM-NOT-004 (inventory evidence) |
services-platform:modules/notifications/tests/unit/registration-manifest.spec.js | CAP-PFM-NOT-001 |
services-platform:modules/notifications/tests/unit/registry-tables.spec.js | CAP-PFM-NOT-008 |
services-platform:modules/notifications/tests/unit/render-message.spec.js | CAP-PFM-NOT-004 |
services-platform:modules/notifications/tests/unit/slack-system-adapter.spec.js | CAP-PFM-NOT-013 |
services-platform:modules/notifications/tests/unit/slack-system-render.spec.js | CAP-PFM-NOT-013 |
services-platform:modules/notifications/tests/unit/templates.spec.js | CAP-PFM-NOT-004 (inventory evidence) |
services-platform:modules/communications/tests/e2e/messages.e2e.spec.js | CAP-PFM-NOT-018, CAP-PFM-NOT-019 |
services-platform:modules/communications/tests/e2e/requests.e2e.spec.js | CAP-PFM-NOT-017, CAP-PFM-NOT-019 |
services-platform:modules/communications/tests/e2e/suppressions.e2e.spec.js | CAP-PFM-NOT-020 |
services-platform:modules/communications/tests/e2e/templates.e2e.spec.js | CAP-PFM-NOT-016 |
services-platform:modules/communications/tests/integration/db/communication-messages.table.integration.spec.js | CAP-PFM-NOT-017 |
services-platform:modules/communications/tests/integration/db/communication-request-submissions.table.integration.spec.js | CAP-PFM-NOT-017 |
services-platform:modules/communications/tests/integration/db/communication-sender-identities.table.integration.spec.js | CAP-PFM-NOT-020 |
services-platform:modules/communications/tests/integration/lifecycle/contact-role-compliance-communication.integration.spec.js | CAP-PFM-NOT-016, CAP-PFM-NOT-017, CAP-PFM-NOT-018, CAP-PFM-NOT-019, CAP-PFM-NOT-020 |
services-platform:modules/communications/tests/integration/services/communication-reads.integration.spec.js | CAP-PFM-NOT-017 |
services-platform:modules/communications/tests/integration/services/dispatch/caller-rendered.integration.spec.js | CAP-PFM-NOT-017 |
services-platform:modules/communications/tests/integration/services/dispatch/dispatch-communications.integration.spec.js | CAP-PFM-NOT-018 |
services-platform:modules/communications/tests/integration/services/dispatch/marketing-lane.integration.spec.js | CAP-PFM-NOT-018 |
services-platform:modules/communications/tests/integration/services/dispatch/owned-template.integration.spec.js | CAP-PFM-NOT-017 |
services-platform:modules/communications/tests/integration/services/dispatch/process-communication-request.integration.spec.js | CAP-PFM-NOT-018 |
services-platform:modules/communications/tests/integration/services/dispatch/reserved-domain-suppression.integration.spec.js | CAP-PFM-NOT-020 |
services-platform:modules/communications/tests/integration/services/dispatch/send-handler.integration.spec.js | CAP-PFM-NOT-017 (inventory evidence) |
services-platform:modules/communications/tests/integration/services/dispatch/template-copies.integration.spec.js | CAP-PFM-NOT-019 |
services-platform:modules/communications/tests/integration/services/persistence/lane-budgets.integration.spec.js | CAP-PFM-NOT-018 |
services-platform:modules/communications/tests/integration/services/persistence/messages.changes.queries.integration.spec.js | CAP-PFM-NOT-019 |
services-platform:modules/communications/tests/integration/services/persistence/messages.integration.spec.js | CAP-PFM-NOT-018 |
services-platform:modules/communications/tests/integration/services/persistence/messages.queries.integration.spec.js | CAP-PFM-NOT-019 |
services-platform:modules/communications/tests/integration/services/persistence/request-submissions.integration.spec.js | CAP-PFM-NOT-017 (inventory evidence) |
services-platform:modules/communications/tests/integration/services/persistence/request-submissions.queries.integration.spec.js | CAP-PFM-NOT-017 (inventory evidence) |
services-platform:modules/communications/tests/integration/services/persistence/requests.integration.spec.js | CAP-PFM-NOT-017 (inventory evidence) |
services-platform:modules/communications/tests/integration/services/persistence/requests.queries.integration.spec.js | CAP-PFM-NOT-017 (inventory evidence) |
services-platform:modules/communications/tests/integration/services/persistence/sender-identities.integration.spec.js | CAP-PFM-NOT-020 |
services-platform:modules/communications/tests/integration/services/persistence/sender-identities.queries.integration.spec.js | CAP-PFM-NOT-020 (inventory evidence) |
services-platform:modules/communications/tests/integration/services/persistence/suppressions.integration.spec.js | CAP-PFM-NOT-020 |
services-platform:modules/communications/tests/integration/services/persistence/suppressions.queries.integration.spec.js | CAP-PFM-NOT-020 |
services-platform:modules/communications/tests/integration/services/persistence/templates.integration.spec.js | CAP-PFM-NOT-016 |
services-platform:modules/communications/tests/integration/services/persistence/templates.queries.integration.spec.js | CAP-PFM-NOT-016 (inventory evidence) |
services-platform:modules/communications/tests/integration/services/requests/changed-messages.integration.spec.js | CAP-PFM-NOT-017 (inventory evidence) |
services-platform:modules/communications/tests/integration/services/requests/handle-invocation.integration.spec.js | CAP-PFM-NOT-016, CAP-PFM-NOT-017 |
services-platform:modules/communications/tests/integration/services/requests/record-merge-fields.integration.spec.js | CAP-PFM-NOT-016 |
services-platform:modules/communications/tests/integration/services/requests/submit-request.integration.spec.js | CAP-PFM-NOT-017 |
services-platform:modules/communications/tests/integration/services/sender-identity/provision-sender-identity.integration.spec.js | CAP-PFM-NOT-020 |
services-platform:modules/communications/tests/integration/services/sender-identity/tenant-sender-address.integration.spec.js | CAP-PFM-NOT-020 |
services-platform:modules/communications/tests/integration/services/storage/communication-objects.integration.spec.js | CAP-PFM-NOT-017, CAP-PFM-NOT-019 |
services-platform:modules/communications/tests/integration/services/storage/tenant-objects.integration.spec.js | CAP-PFM-NOT-017 (inventory evidence) |
services-platform:modules/communications/tests/integration/services/templates/caller-rendered-purposes.integration.spec.js | CAP-PFM-NOT-016 |
services-platform:modules/communications/tests/integration/services/templates/message-version-templates.integration.spec.js | CAP-PFM-NOT-016 |
services-platform:modules/communications/tests/integration/services/templates/owned-templates.integration.spec.js | CAP-PFM-NOT-016 |
services-platform:modules/communications/tests/integration/services/templates/render-preview.integration.spec.js | CAP-PFM-NOT-016 |
services-platform:modules/communications/tests/unit/aws/api/communications-schemas.spec.ts | CAP-PFM-NOT-017 (inventory evidence) |
services-platform:modules/communications/tests/unit/services/dispatch/lane-bucket.spec.js | CAP-PFM-NOT-018 |
services-platform:modules/communications/tests/unit/services/dispatch/lanes.spec.js | CAP-PFM-NOT-017 (inventory evidence) |
services-platform:modules/communications/tests/unit/services/dispatch/send-queue.spec.js | CAP-PFM-NOT-017 (inventory evidence) |
services-platform:modules/communications/tests/unit/services/templates/empty-merge-fields.spec.js | CAP-PFM-NOT-016 (inventory evidence) |
react-console:components/notifications/__tests__/destination.test.ts | CAP-PFM-NOT-004 |
react-console:components/notifications/__tests__/notifications.test.tsx | CAP-PFM-NOT-010, CAP-PFM-NOT-011, CAP-PFM-NOT-012 |
react-console:lib/notifications/__tests__/model.test.ts | CAP-PFM-NOT-009, CAP-PFM-NOT-010 |
react-console:lib/notifications/__tests__/normalize.test.ts | CAP-PFM-NOT-004 (inventory evidence) |
react-console:acceptance/notifications/playwright/helpers/guardrails.test.ts | CAP-PFM-NOT-004 (inventory evidence) |
react-console:acceptance/notifications/playwright/journeys/cross-application/NT-ACC-0300.spec.ts | CAP-PFM-NOT-004 (inventory evidence) |
react-console:acceptance/notifications/playwright/journeys/history/NT-ACC-0100.spec.ts | CAP-PFM-NOT-012 |
react-console:acceptance/notifications/playwright/journeys/history/NT-ACC-0101.spec.ts | CAP-PFM-NOT-010, CAP-PFM-NOT-011 |
react-console:acceptance/notifications/playwright/journeys/hq/NT-ACC-0150.spec.ts | CAP-PFM-NOT-013 |
react-console:acceptance/notifications/playwright/journeys/inbox/NT-ACC-0001.spec.ts | CAP-PFM-NOT-009 |
react-console:acceptance/notifications/playwright/journeys/inbox/NT-ACC-0002.spec.ts | CAP-PFM-NOT-004 (inventory evidence) |
react-console:acceptance/notifications/playwright/journeys/inbox/NT-ACC-0003.spec.ts | CAP-PFM-NOT-009 |
react-console:acceptance/notifications/playwright/journeys/inbox/NT-ACC-0004.spec.ts | CAP-PFM-NOT-006, CAP-PFM-NOT-014 |
react-console:acceptance/notifications/playwright/journeys/inbox/NT-ACC-0005.spec.ts | CAP-PFM-NOT-006, CAP-PFM-NOT-014 |
react-console:acceptance/notifications/playwright/journeys/inbox/NT-ACC-0006.spec.ts | CAP-PFM-NOT-004 (inventory evidence) |
react-console:acceptance/notifications/playwright/journeys/pipeline/NT-ACC-0200.spec.ts | CAP-PFM-NOT-002 |
react-console:acceptance/notifications/playwright/journeys/pipeline/NT-ACC-0201.spec.ts | CAP-PFM-NOT-004 (inventory evidence) |
react-console:acceptance/notifications/playwright/journeys/pipeline/NT-ACC-0202.spec.ts | CAP-PFM-NOT-003 |
react-console:acceptance/notifications/playwright/journeys/pipeline/NT-ACC-0203.spec.ts | CAP-PFM-NOT-004 (inventory evidence) |
react-console:acceptance/notifications/playwright/journeys/pipeline/NT-ACC-0204.spec.ts | CAP-PFM-NOT-001 |
react-console:acceptance/notifications/playwright/journeys/pipeline/NT-ACC-0205.spec.ts | CAP-PFM-NOT-005 |
react-console:acceptance/notifications/playwright/journeys/pipeline/NT-ACC-0206.spec.ts | CAP-PFM-NOT-008 |
react-console:acceptance/notifications/playwright/journeys/pipeline/NT-ACC-0207.spec.ts | CAP-PFM-NOT-004 (inventory evidence) |
react-console:acceptance/notifications/playwright/journeys/pipeline/NT-ACC-0208.spec.ts | CAP-PFM-NOT-004 (inventory evidence) |
Changes by Artifact
Every supplied artifact receives OpenAI final wording. Prose, rule statements, facets, scenario text, steps, assertions, actor descriptions and meanings are rewritten after verification; verification and final wording are committed separately. Permanent identities remain assigned, including superseded records. The following table records the final wording pass and the verification changes by artifact.
| Artifact | Examination and final text |
|---|---|
ATS-PFM-NOT-001 | Sources, provenance, approval origin and scope checked. Final wording replaces the draft throughout. |
ATS-PFM-NOT-002 | Sources, provenance, approval origin and scope checked. Final wording replaces the draft throughout. |
ATS-PFM-NOT-003 | Sources, provenance, approval origin and scope checked. Final wording replaces the draft throughout. |
ATS-PFM-NOT-004 | Following the console destination is browser evidence, beyond rendering unit tests. Final wording replaces the draft throughout. |
ATS-PFM-NOT-005 | Newest wording and counts include database-backed orchestration evidence. Separate advisory identities do not prove a maximum wait. The unit lineage bindings did not prove latest rendered data; add the existing integration assertion. Final wording replaces the draft throughout. |
ATS-PFM-NOT-006 | Sources, provenance, approval origin and scope checked. Final wording replaces the draft throughout. |
ATS-PFM-NOT-007 | Sources, provenance, approval origin and scope checked. Final wording replaces the draft throughout. |
ATS-PFM-NOT-008 | The binding includes database-backed integration evidence. Final wording replaces the draft throughout. |
ATS-PFM-NOT-009 | Sources, provenance, approval origin and scope checked. Final wording replaces the draft throughout. |
ATS-PFM-NOT-010 | Sources, provenance, approval origin and scope checked. Final wording replaces the draft throughout. |
ATS-PFM-NOT-011 | Sources, provenance, approval origin and scope checked. Final wording replaces the draft throughout. |
ATS-PFM-NOT-012 | Sources, provenance, approval origin and scope checked. Final wording replaces the draft throughout. |
ATS-PFM-NOT-013 | Sources, provenance, approval origin and scope checked. Final wording replaces the draft throughout. |
ATS-PFM-NOT-014 | Sources, provenance, approval origin and scope checked. Final wording replaces the draft throughout. |
ATS-PFM-NOT-015 | Overrides are not used by the current pipeline. Final wording replaces the draft throughout. |
ATS-PFM-NOT-016 | Sources, provenance, approval origin and scope checked. Final wording replaces the draft throughout. |
ATS-PFM-NOT-017 | Sources, provenance, approval origin and scope checked. Final wording replaces the draft throughout. |
ATS-PFM-NOT-018 | A later re-claim can resubmit and does not prove exactly-once. Final wording replaces the draft throughout. |
ATS-PFM-NOT-019 | The request supplies the service filter. Service filtering is observed, authenticated caller ownership is not. Final wording replaces the draft throughout. |
ATS-PFM-NOT-020 | Permitted addresses may belong to real people. Final wording replaces the draft throughout. |
CAP-PFM-NOT-001 | Key grammar permits digits and underscores. Do not attribute the mandatory-default check to a database constraint. Database checks JSON shape rather than JSON Schema semantics. Retirement is committed separately and cancellation is best effort. Capability includes implementation details or extensions not individually confirmed by a cited decision; recorded rule origins retain their derived authority. The cited decision confirms the broader topic but does not establish this complete implementation rule. The cited approval establishes a broader outcome or selected examples, not every validation, calculation, presentation or later implementation clause in this compound rule. Final wording replaces the draft throughout. Outcomes are qualified to the verified behavior. |
CAP-PFM-NOT-002 | A schedule is not a latency bound. Capability includes implementation details or extensions not individually confirmed by a cited decision; recorded rule origins retain their derived authority. The cited approval establishes a broader outcome or selected examples, not every validation, calculation, presentation or later implementation clause in this compound rule. Final wording replaces the draft throughout. Outcomes are qualified to the verified behavior. |
CAP-PFM-NOT-003 | Capability includes implementation details or extensions not individually confirmed by a cited decision; recorded rule origins retain their derived authority. The pipeline consumes lookup results; a covering label does not itself perform fallback resolution. The cited approval establishes a broader outcome or selected examples, not every validation, calculation, presentation or later implementation clause in this compound rule. Final wording replaces the draft throughout. Outcomes are qualified to the verified behavior. |
CAP-PFM-NOT-004 | The code replaces values and keeps keys. Absolute destination rendering is conditional on a configured base URL. The cited approval establishes a broader outcome or selected examples, not every validation, calculation, presentation or later implementation clause in this compound rule. Final wording replaces the draft throughout. Outcomes are qualified to the verified behavior. |
CAP-PFM-NOT-005 | Remove unconditional no-wait guarantee. Re-render can be skipped for link fields or an ineligible recipient. The cited approval establishes a broader outcome or selected examples, not every validation, calculation, presentation or later implementation clause in this compound rule. Final wording replaces the draft throughout. Outcomes are qualified to the verified behavior. |
CAP-PFM-NOT-006 | Capability includes implementation details or extensions not individually confirmed by a cited decision; recorded rule origins retain their derived authority. The pinned journey still sends the ending notice. The cited approval establishes a broader outcome or selected examples, not every validation, calculation, presentation or later implementation clause in this compound rule. The illustration adds a state, surface or timing detail beyond the cited test fixture. State the reasoning required for inferred provenance. Final wording replaces the draft throughout. Outcomes are qualified to the verified behavior. |
CAP-PFM-NOT-007 | Routing can refuse a channel. HQ explicitly requeues exhausted final deliveries. Event insertion and bounded retention change records. The cited approval establishes a broader outcome or selected examples, not every validation, calculation, presentation or later implementation clause in this compound rule. Final wording replaces the draft throughout. Outcomes are qualified to the verified behavior. |
CAP-PFM-NOT-008 | SMS verification retention uses a separate one-day cutoff. Normal-path capturing tests do not prove the throwing-adapter path. Job-owned children have no workspace column. Capability includes implementation details or extensions not individually confirmed by a cited decision; recorded rule origins retain their derived authority. The cited approval establishes a broader outcome or selected examples, not every validation, calculation, presentation or later implementation clause in this compound rule. Match the approved scenario’s explicit restriction without treating additional diagnostic-field choices as approved. Final wording replaces the draft throughout. Outcomes are qualified to the verified behavior. |
CAP-PFM-NOT-009 | Capability includes implementation details or extensions not individually confirmed by a cited decision; recorded rule origins retain their derived authority. The cited approval establishes a broader outcome or selected examples, not every validation, calculation, presentation or later implementation clause in this compound rule. Final wording replaces the draft throughout. Outcomes are qualified to the verified behavior. |
CAP-PFM-NOT-010 | Capability includes implementation details or extensions not individually confirmed by a cited decision; recorded rule origins retain their derived authority. The cited approval establishes a broader outcome or selected examples, not every validation, calculation, presentation or later implementation clause in this compound rule. Final wording replaces the draft throughout. Outcomes are qualified to the verified behavior. |
CAP-PFM-NOT-011 | Capability includes implementation details or extensions not individually confirmed by a cited decision; recorded rule origins retain their derived authority. Rendering replaces link values rather than removing fields. The cited approval establishes a broader outcome or selected examples, not every validation, calculation, presentation or later implementation clause in this compound rule. Final wording replaces the draft throughout. Outcomes are qualified to the verified behavior. |
CAP-PFM-NOT-012 | The traversal is bounded and does not cover every workspace. Capability includes implementation details or extensions not individually confirmed by a cited decision; recorded rule origins retain their derived authority. The illustration adds a state, surface or timing detail beyond the cited test fixture. State the reasoning required for inferred provenance. Final wording replaces the draft throughout. Outcomes are qualified to the verified behavior. |
CAP-PFM-NOT-013 | D1 does not approve the reserved workspace. Creation changes system records. Capability includes implementation details or extensions not individually confirmed by a cited decision; recorded rule origins retain their derived authority. The cited decision confirms the broader topic but does not establish this complete implementation rule. The cited approval establishes a broader outcome or selected examples, not every validation, calculation, presentation or later implementation clause in this compound rule. Keep the general log-content restriction in its notification-recovery home; this rule covers retained Slack data. Final wording replaces the draft throughout. Outcomes are qualified to the verified behavior. |
CAP-PFM-NOT-014 | A direct-assignment journey does not establish silent system producers. Capability includes implementation details or extensions not individually confirmed by a cited decision; recorded rule origins retain their derived authority. The cited approval establishes a broader outcome or selected examples, not every validation, calculation, presentation or later implementation clause in this compound rule. Producer transactions, delegation confirmation and refusal compensation are outside the registered code boundary. The acceptance journey records an optional quality observation rather than asserting that an ending item must exist. The execution/defect record explicitly states that the ending notice arrives. Final wording replaces the draft throughout. Outcomes are qualified to the verified behavior. |
CAP-PFM-NOT-015 | Persistence is implemented but runtime override use is not. There is no implemented digest delivery schedule. The cited decision confirms the broader topic but does not establish this complete implementation rule. The scenario describes future preference delivery rather than current runtime or fully approved behavior. Prevent stored preference evidence being read as active channel behavior. The service applies its at-least-one check only to nonempty overrides and its digestibility check only to a supplied definition. The combined rule includes branches not asserted by its original console-disable test. Point directly to all validation branches rather than one negative assertion. Final wording replaces the draft throughout. Outcomes are qualified to the verified behavior. |
CAP-PFM-NOT-016 | Caller-rendered purposes do not require a template. Capability includes implementation details or extensions not individually confirmed by a cited decision; recorded rule origins retain their derived authority. The cited approval establishes a broader outcome or selected examples, not every validation, calculation, presentation or later implementation clause in this compound rule. The composite illustration uses the invalid-save and corrected-publication assertions in the same lifecycle file. Final wording replaces the draft throughout. Outcomes are qualified to the verified behavior. |
CAP-PFM-NOT-017 | Capability includes implementation details or extensions not individually confirmed by a cited decision; recorded rule origins retain their derived authority. Use the explicit Andrew-approved object-write exception dated 2026-10-10 rather than the preceding acceptance. The cited approval establishes a broader outcome or selected examples, not every validation, calculation, presentation or later implementation clause in this compound rule. The record establishes the object-write ordering; rollback orphaning follows from independent object storage and database rollback. Final wording replaces the draft throughout. Outcomes are qualified to the verified behavior. |
CAP-PFM-NOT-018 | Ambiguous submissions can be reclaimed after the window. The cited approval establishes a broader outcome or selected examples, not every validation, calculation, presentation or later implementation clause in this compound rule. The illustration adds a state, surface or timing detail beyond the cited test fixture. State the reasoning required for inferred provenance. Final wording replaces the draft throughout. Outcomes are qualified to the verified behavior. |
CAP-PFM-NOT-019 | The feed filter is not proof of trusted caller-service isolation. Request objects are not request records and workspace deletion removes objects. Capability includes implementation details or extensions not individually confirmed by a cited decision; recorded rule origins retain their derived authority. The filter is not proof of independently authenticated caller service identity. The cited approval establishes a broader outcome or selected examples, not every validation, calculation, presentation or later implementation clause in this compound rule. Final wording replaces the draft throughout. Outcomes are qualified to the verified behavior. |
CAP-PFM-NOT-020 | Rhythm addresses are allowed by configuration, not a universal intrinsic exemption. From-name overrides are supported and not always the association name. Domain and address strategies each create one, and provisioning preserves verification state. The cited approval establishes a broader outcome or selected examples, not every validation, calculation, presentation or later implementation clause in this compound rule. The illustration adds a state, surface or timing detail beyond the cited test fixture. State the reasoning required for inferred provenance. Final wording replaces the draft throughout. Outcomes are qualified to the verified behavior. |
CON-PFM-NOT-001 | Mandatory definitions need not support e-mail. Retirement does not guarantee cancellation succeeds everywhere. Superseded as facets of Staff Notification; existing ids retained. Final wording replaces the draft throughout. |
CON-PFM-NOT-002 | No unconditional dispatch latency bound. Superseded as facets of Staff Notification; existing ids retained. Final wording replaces the draft throughout. |
CON-PFM-NOT-003 | Absorbs declared types and submitted events as facets of the broad Staff Notification concept. Final wording replaces the draft throughout. |
CON-PFM-NOT-004 | Template concept includes caller-rendered and Marketing extensions not confirmed by the cited acceptance record. Final wording replaces the draft throughout. |
CON-PFM-NOT-005 | Ambiguous submissions can be retried after the recovery window. Allowed addresses may be real people; there is no intrinsic Rhythm-domain exemption. Nonproduction rules cannot promise that no real person receives mail. Resubmission after ambiguity means a once-only guarantee is not established. Absorbs recipient protection and sender facets into Association Communication. Final wording replaces the draft throughout. |
CON-PFM-NOT-006 | Sending safeguards are facets of Communication under the broad-noun contract. Allowed addresses may be real people; there is no intrinsic Rhythm-domain exemption. Nonproduction rules cannot promise that no real person receives mail. Superseded as facets of Association Communication; existing id retained. Final wording replaces the draft throughout. |
FEAT-PFM-NOT-01 | Sources, provenance, approval origin and scope checked. Final wording replaces the draft throughout. |
FEAT-PFM-NOT-02 | Sources, provenance, approval origin and scope checked. Final wording replaces the draft throughout. |
FEAT-PFM-NOT-03 | Sources, provenance, approval origin and scope checked. Final wording replaces the draft throughout. |
FEAT-PFM-NOT-04 | Sources, provenance, approval origin and scope checked. Final wording replaces the draft throughout. |
FEAT-PFM-NOT-05 | Sources, provenance, approval origin and scope checked. Final wording replaces the draft throughout. |
FEAT-PFM-NOT-06 | Sources, provenance, approval origin and scope checked. Final wording replaces the draft throughout. |
FEAT-PFM-NOT-07 | Sources, provenance, approval origin and scope checked. Final wording replaces the draft throughout. |
JNY-PFM-NOT-001 | Sources, provenance, approval origin and scope checked. Final wording replaces the draft throughout. |
JNY-PFM-NOT-002 | Use the recorded ending-notice observation rather than a universal test assertion. The defect record is the direct evidence for this unresolved product outcome. Final wording replaces the draft throughout. |
JNY-PFM-NOT-003 | Sources, provenance, approval origin and scope checked. Final wording replaces the draft throughout. |
JNY-PFM-NOT-004 | Sources, provenance, approval origin and scope checked. Final wording replaces the draft throughout. |
JNY-PFM-NOT-005 | Sources, provenance, approval origin and scope checked. Final wording replaces the draft throughout. |
JNY-PFM-NOT-006 | Ambiguous recovery prevents an unconditional exactly-once promise. The pinned lifecycle fixture includes environment withholding as well as suppression. The cited lifecycle test queues one contact, not two. The original queue-publication test does not prove universal exactly-once provider delivery. Bind to the assertion that actually checks provider redelivery. Final wording replaces the draft throughout. |
MOD-PFM-NOT | Rewrites the boundary and product position, reconciles all inventory counts, and changes the product-area registry status to planning examined. |
FINDINGS | Rewrites all original findings and recommendations; adds findings 025 through 036 and open question 007 with evidence. |
ID_REGISTRY | Rewrites the permanent ledger; reserves nine added rules and thirteen added acceptance scenarios without reusing or renumbering any identity. |
ACT-PFM-027 | Checks module-owned scope and rewrites the actor name, description, goals and broad capabilities. |
ACT-PFM-028 | Checks module-owned scope and rewrites the actor name, description, goals and broad capabilities. |
ACT-PFM-029 | Checks module-owned scope and rewrites the actor name, description, goals and broad capabilities. |
ACT-PFM-030 | Checks module-owned scope and rewrites the actor name, description, goals and broad capabilities. |
ACT-PFM-031 | Checks module-owned scope and rewrites the actor name, description, goals and broad capabilities. |
Verified Field Changes
This ledger records each verification change, including authority, source, provenance, enforcement location and proof binding changes. Sources are read at the pinned commits. General milestone acceptance does not confirm every implementation clause: unmatched rule origins become unapproved, and mixed capabilities retain proposed intent. Configuration and later communication extensions receive no new approval from observation.
| Artifact | Field | Change and reason |
|---|---|---|
CAP-PFM-NOT-001 | rules.0.statement | Key grammar permits digits and underscores. |
CAP-PFM-NOT-001 | rules.2.enforced_at | Do not attribute the mandatory-default check to a database constraint. |
CAP-PFM-NOT-001 | rules.2.note | Do not attribute the mandatory-default check to a database constraint. |
CAP-PFM-NOT-001 | rules.3.enforced_at | Database checks JSON shape rather than JSON Schema semantics. |
CAP-PFM-NOT-001 | rules.3.note | Database checks JSON shape rather than JSON Schema semantics. |
CAP-PFM-NOT-001 | rules.10.statement | Retirement is committed separately and cancellation is best effort. |
CAP-PFM-NOT-001 | rules.10.provenance | Retirement is committed separately and cancellation is best effort. |
CAP-PFM-NOT-001 | rules.10.source | Retirement is committed separately and cancellation is best effort. |
CAP-PFM-NOT-001 | rules.10.origin | Retirement is committed separately and cancellation is best effort. |
CAP-PFM-NOT-001 | rules.10.note | Retirement is committed separately and cancellation is best effort. |
CAP-PFM-NOT-002 | rules.8.statement | A schedule is not a latency bound. |
CAP-PFM-NOT-002 | rules.8.provenance | A schedule is not a latency bound. |
CAP-PFM-NOT-002 | rules.8.source | A schedule is not a latency bound. |
CAP-PFM-NOT-004 | rules.4.statement | The code replaces values and keeps keys. |
CAP-PFM-NOT-005 | rules.4.statement | Remove unconditional no-wait guarantee. |
CAP-PFM-NOT-005 | rules.4.note | Remove unconditional no-wait guarantee. |
CAP-PFM-NOT-005 | rules.5.statement | Re-render can be skipped for link fields or an ineligible recipient. |
CAP-PFM-NOT-007 | rules.2.must_prove | Routing can refuse a channel. |
CAP-PFM-NOT-007 | rules.7.statement | HQ explicitly requeues exhausted final deliveries. |
CAP-PFM-NOT-007 | rules.8.must_prove | Event insertion and bounded retention change records. |
CAP-PFM-NOT-008 | rules.5.statement | SMS verification retention uses a separate one-day cutoff. |
CAP-PFM-NOT-008 | rules.7.provenance | Normal-path capturing tests do not prove the throwing-adapter path. |
CAP-PFM-NOT-008 | rules.7.source | Normal-path capturing tests do not prove the throwing-adapter path. |
CAP-PFM-NOT-008 | rules.7.note | Normal-path capturing tests do not prove the throwing-adapter path. |
CAP-PFM-NOT-008 | rules.8.statement | Job-owned children have no workspace column. |
CAP-PFM-NOT-012 | rules.2.statement | The traversal is bounded and does not cover every workspace. |
CAP-PFM-NOT-012 | rules.2.provenance | The traversal is bounded and does not cover every workspace. |
CAP-PFM-NOT-012 | rules.2.source | The traversal is bounded and does not cover every workspace. |
CAP-PFM-NOT-013 | rules.0.origin | D1 does not approve the reserved workspace. |
CAP-PFM-NOT-013 | rules.0.note | D1 does not approve the reserved workspace. |
CAP-PFM-NOT-013 | rules.10.must_prove | Creation changes system records. |
CAP-PFM-NOT-014 | rules.0.provenance | A direct-assignment journey does not establish silent system producers. |
CAP-PFM-NOT-014 | rules.0.source | A direct-assignment journey does not establish silent system producers. |
CAP-PFM-NOT-014 | rules.0.note | A direct-assignment journey does not establish silent system producers. |
CAP-PFM-NOT-015 | rules.5.statement | Persistence is implemented but runtime override use is not. |
CAP-PFM-NOT-015 | rules.7.statement | There is no implemented digest delivery schedule. |
CAP-PFM-NOT-016 | rules.0.statement | Caller-rendered purposes do not require a template. |
CAP-PFM-NOT-018 | rules.1.statement | Ambiguous submissions can be reclaimed after the window. |
CAP-PFM-NOT-019 | rules.8.note | The feed filter is not proof of trusted caller-service isolation. |
CAP-PFM-NOT-019 | rules.10.statement | Request objects are not request records and workspace deletion removes objects. |
CAP-PFM-NOT-020 | rules.6.statement | Rhythm addresses are allowed by configuration, not a universal intrinsic exemption. |
CAP-PFM-NOT-020 | rules.7.statement | From-name overrides are supported and not always the association name. |
CAP-PFM-NOT-020 | rules.9.statement | Domain and address strategies each create one, and provisioning preserves verification state. |
CAP-PFM-NOT-001 | product_intent | Capability includes implementation details or extensions not individually confirmed by a cited decision; recorded rule origins retain their derived authority. |
CAP-PFM-NOT-002 | product_intent | Capability includes implementation details or extensions not individually confirmed by a cited decision; recorded rule origins retain their derived authority. |
CAP-PFM-NOT-003 | product_intent | Capability includes implementation details or extensions not individually confirmed by a cited decision; recorded rule origins retain their derived authority. |
CAP-PFM-NOT-006 | product_intent | Capability includes implementation details or extensions not individually confirmed by a cited decision; recorded rule origins retain their derived authority. |
CAP-PFM-NOT-008 | product_intent | Capability includes implementation details or extensions not individually confirmed by a cited decision; recorded rule origins retain their derived authority. |
CAP-PFM-NOT-009 | product_intent | Capability includes implementation details or extensions not individually confirmed by a cited decision; recorded rule origins retain their derived authority. |
CAP-PFM-NOT-010 | product_intent | Capability includes implementation details or extensions not individually confirmed by a cited decision; recorded rule origins retain their derived authority. |
CAP-PFM-NOT-011 | product_intent | Capability includes implementation details or extensions not individually confirmed by a cited decision; recorded rule origins retain their derived authority. |
CAP-PFM-NOT-012 | product_intent | Capability includes implementation details or extensions not individually confirmed by a cited decision; recorded rule origins retain their derived authority. |
CAP-PFM-NOT-013 | product_intent | Capability includes implementation details or extensions not individually confirmed by a cited decision; recorded rule origins retain their derived authority. |
CAP-PFM-NOT-014 | product_intent | Capability includes implementation details or extensions not individually confirmed by a cited decision; recorded rule origins retain their derived authority. |
CAP-PFM-NOT-016 | product_intent | Capability includes implementation details or extensions not individually confirmed by a cited decision; recorded rule origins retain their derived authority. |
CAP-PFM-NOT-017 | product_intent | Capability includes implementation details or extensions not individually confirmed by a cited decision; recorded rule origins retain their derived authority. |
CAP-PFM-NOT-019 | product_intent | Capability includes implementation details or extensions not individually confirmed by a cited decision; recorded rule origins retain their derived authority. |
CON-PFM-NOT-006 | status | Sending safeguards are facets of Communication under the broad-noun contract. |
ATS-PFM-NOT-008 | scenarios.6.level | The binding includes database-backed integration evidence. |
ATS-PFM-NOT-005 | scenarios.3.level | Newest wording and counts include database-backed orchestration evidence. |
CAP-PFM-NOT-003 | BR-CAP-PFM-NOT-003-03.statement | The pipeline consumes lookup results; a covering label does not itself perform fallback resolution. |
CAP-PFM-NOT-004 | BR-CAP-PFM-NOT-004-04.statement | Absolute destination rendering is conditional on a configured base URL. |
CAP-PFM-NOT-011 | BR-CAP-PFM-NOT-011-05.statement | Rendering replaces link values rather than removing fields. |
CAP-PFM-NOT-019 | BR-CAP-PFM-NOT-019-09.statement | The filter is not proof of independently authenticated caller service identity. |
CAP-PFM-NOT-001 | BR-CAP-PFM-NOT-001-03.origin | The cited decision confirms the broader topic but does not establish this complete implementation rule. |
CAP-PFM-NOT-015 | BR-CAP-PFM-NOT-015-02.origin | The cited decision confirms the broader topic but does not establish this complete implementation rule. |
CAP-PFM-NOT-015 | BR-CAP-PFM-NOT-015-10.origin | The cited decision confirms the broader topic but does not establish this complete implementation rule. |
CAP-PFM-NOT-015 | BR-CAP-PFM-NOT-015-11.origin | The cited decision confirms the broader topic but does not establish this complete implementation rule. |
CAP-PFM-NOT-013 | BR-CAP-PFM-NOT-013-02.origin | The cited decision confirms the broader topic but does not establish this complete implementation rule. |
CAP-PFM-NOT-013 | BR-CAP-PFM-NOT-013-05.origin | The cited decision confirms the broader topic but does not establish this complete implementation rule. |
CON-PFM-NOT-001 | meaning | Mandatory definitions need not support e-mail. |
CON-PFM-NOT-001 | meaning | Retirement does not guarantee cancellation succeeds everywhere. |
CON-PFM-NOT-002 | how_it_changes | No unconditional dispatch latency bound. |
CON-PFM-NOT-004 | product_intent | Template concept includes caller-rendered and Marketing extensions not confirmed by the cited acceptance record. |
CON-PFM-NOT-005 | used_for | Ambiguous submissions can be retried after the recovery window. |
CON-PFM-NOT-005 | meaning | Allowed addresses may be real people; there is no intrinsic Rhythm-domain exemption. |
CON-PFM-NOT-005 | used_for | Nonproduction rules cannot promise that no real person receives mail. |
CON-PFM-NOT-005 | meaning | Resubmission after ambiguity means a once-only guarantee is not established. |
CON-PFM-NOT-006 | meaning | Allowed addresses may be real people; there is no intrinsic Rhythm-domain exemption. |
CON-PFM-NOT-006 | used_for | Nonproduction rules cannot promise that no real person receives mail. |
ATS-PFM-NOT-005 | ATS-PFM-NOT-005-05.expected | Separate advisory identities do not prove a maximum wait. |
ATS-PFM-NOT-015 | ATS-PFM-NOT-015-05.expected | Overrides are not used by the current pipeline. |
ATS-PFM-NOT-018 | ATS-PFM-NOT-018-06.title | A later re-claim can resubmit and does not prove exactly-once. |
ATS-PFM-NOT-019 | ATS-PFM-NOT-019-06.title | The request supplies the service filter. |
ATS-PFM-NOT-019 | ATS-PFM-NOT-019-06.expected | Service filtering is observed, authenticated caller ownership is not. |
ATS-PFM-NOT-020 | ATS-PFM-NOT-020-06.title | Permitted addresses may belong to real people. |
JNY-PFM-NOT-006 | goal | Ambiguous recovery prevents an unconditional exactly-once promise. |
JNY-PFM-NOT-006 | action | The pinned lifecycle fixture includes environment withholding as well as suppression. |
JNY-PFM-NOT-006 | expected | The cited lifecycle test queues one contact, not two. |
JNY-PFM-NOT-006 | statement | The original queue-publication test does not prove universal exactly-once provider delivery. |
JNY-PFM-NOT-006 | source | Bind to the assertion that actually checks provider redelivery. |
CAP-PFM-NOT-006 | SC-CAP-PFM-NOT-006-01.then | The pinned journey still sends the ending notice. |
CAP-PFM-NOT-015 | SC-CAP-PFM-NOT-015-01.provenance | The scenario describes future preference delivery rather than current runtime or fully approved behavior. |
CAP-PFM-NOT-015 | SC-CAP-PFM-NOT-015-01.note | Prevent stored preference evidence being read as active channel behavior. |
CAP-PFM-NOT-001 | BR-CAP-PFM-NOT-001-01.origin | The cited approval establishes a broader outcome or selected examples, not every validation, calculation, presentation or later implementation clause in this compound rule. |
CAP-PFM-NOT-001 | BR-CAP-PFM-NOT-001-02.origin | The cited approval establishes a broader outcome or selected examples, not every validation, calculation, presentation or later implementation clause in this compound rule. |
CAP-PFM-NOT-001 | BR-CAP-PFM-NOT-001-04.origin | The cited approval establishes a broader outcome or selected examples, not every validation, calculation, presentation or later implementation clause in this compound rule. |
CAP-PFM-NOT-001 | BR-CAP-PFM-NOT-001-05.origin | The cited approval establishes a broader outcome or selected examples, not every validation, calculation, presentation or later implementation clause in this compound rule. |
CAP-PFM-NOT-001 | BR-CAP-PFM-NOT-001-10.origin | The cited approval establishes a broader outcome or selected examples, not every validation, calculation, presentation or later implementation clause in this compound rule. |
CAP-PFM-NOT-001 | BR-CAP-PFM-NOT-001-12.origin | The cited approval establishes a broader outcome or selected examples, not every validation, calculation, presentation or later implementation clause in this compound rule. |
CAP-PFM-NOT-001 | BR-CAP-PFM-NOT-001-13.origin | The cited approval establishes a broader outcome or selected examples, not every validation, calculation, presentation or later implementation clause in this compound rule. |
CAP-PFM-NOT-002 | BR-CAP-PFM-NOT-002-03.origin | The cited approval establishes a broader outcome or selected examples, not every validation, calculation, presentation or later implementation clause in this compound rule. |
CAP-PFM-NOT-003 | BR-CAP-PFM-NOT-003-01.origin | The cited approval establishes a broader outcome or selected examples, not every validation, calculation, presentation or later implementation clause in this compound rule. |
CAP-PFM-NOT-003 | BR-CAP-PFM-NOT-003-04.origin | The cited approval establishes a broader outcome or selected examples, not every validation, calculation, presentation or later implementation clause in this compound rule. |
CAP-PFM-NOT-003 | BR-CAP-PFM-NOT-003-05.origin | The cited approval establishes a broader outcome or selected examples, not every validation, calculation, presentation or later implementation clause in this compound rule. |
CAP-PFM-NOT-003 | BR-CAP-PFM-NOT-003-07.origin | The cited approval establishes a broader outcome or selected examples, not every validation, calculation, presentation or later implementation clause in this compound rule. |
CAP-PFM-NOT-004 | BR-CAP-PFM-NOT-004-04.origin | The cited approval establishes a broader outcome or selected examples, not every validation, calculation, presentation or later implementation clause in this compound rule. |
CAP-PFM-NOT-004 | BR-CAP-PFM-NOT-004-06.origin | The cited approval establishes a broader outcome or selected examples, not every validation, calculation, presentation or later implementation clause in this compound rule. |
CAP-PFM-NOT-005 | BR-CAP-PFM-NOT-005-01.origin | The cited approval establishes a broader outcome or selected examples, not every validation, calculation, presentation or later implementation clause in this compound rule. |
CAP-PFM-NOT-005 | BR-CAP-PFM-NOT-005-07.origin | The cited approval establishes a broader outcome or selected examples, not every validation, calculation, presentation or later implementation clause in this compound rule. |
CAP-PFM-NOT-006 | BR-CAP-PFM-NOT-006-01.origin | The cited approval establishes a broader outcome or selected examples, not every validation, calculation, presentation or later implementation clause in this compound rule. |
CAP-PFM-NOT-006 | BR-CAP-PFM-NOT-006-02.origin | The cited approval establishes a broader outcome or selected examples, not every validation, calculation, presentation or later implementation clause in this compound rule. |
CAP-PFM-NOT-006 | BR-CAP-PFM-NOT-006-04.origin | The cited approval establishes a broader outcome or selected examples, not every validation, calculation, presentation or later implementation clause in this compound rule. |
CAP-PFM-NOT-006 | BR-CAP-PFM-NOT-006-05.origin | The cited approval establishes a broader outcome or selected examples, not every validation, calculation, presentation or later implementation clause in this compound rule. |
CAP-PFM-NOT-007 | BR-CAP-PFM-NOT-007-02.origin | The cited approval establishes a broader outcome or selected examples, not every validation, calculation, presentation or later implementation clause in this compound rule. |
CAP-PFM-NOT-008 | BR-CAP-PFM-NOT-008-01.origin | The cited approval establishes a broader outcome or selected examples, not every validation, calculation, presentation or later implementation clause in this compound rule. |
CAP-PFM-NOT-008 | BR-CAP-PFM-NOT-008-03.origin | The cited approval establishes a broader outcome or selected examples, not every validation, calculation, presentation or later implementation clause in this compound rule. |
CAP-PFM-NOT-008 | BR-CAP-PFM-NOT-008-06.origin | The cited approval establishes a broader outcome or selected examples, not every validation, calculation, presentation or later implementation clause in this compound rule. |
CAP-PFM-NOT-008 | BR-CAP-PFM-NOT-008-07.origin | The cited approval establishes a broader outcome or selected examples, not every validation, calculation, presentation or later implementation clause in this compound rule. |
CAP-PFM-NOT-008 | BR-CAP-PFM-NOT-008-08.statement | Match the approved scenario’s explicit restriction without treating additional diagnostic-field choices as approved. |
CAP-PFM-NOT-009 | BR-CAP-PFM-NOT-009-03.origin | The cited approval establishes a broader outcome or selected examples, not every validation, calculation, presentation or later implementation clause in this compound rule. |
CAP-PFM-NOT-009 | BR-CAP-PFM-NOT-009-05.origin | The cited approval establishes a broader outcome or selected examples, not every validation, calculation, presentation or later implementation clause in this compound rule. |
CAP-PFM-NOT-009 | BR-CAP-PFM-NOT-009-06.origin | The cited approval establishes a broader outcome or selected examples, not every validation, calculation, presentation or later implementation clause in this compound rule. |
CAP-PFM-NOT-009 | BR-CAP-PFM-NOT-009-08.origin | The cited approval establishes a broader outcome or selected examples, not every validation, calculation, presentation or later implementation clause in this compound rule. |
CAP-PFM-NOT-010 | BR-CAP-PFM-NOT-010-01.origin | The cited approval establishes a broader outcome or selected examples, not every validation, calculation, presentation or later implementation clause in this compound rule. |
CAP-PFM-NOT-010 | BR-CAP-PFM-NOT-010-02.origin | The cited approval establishes a broader outcome or selected examples, not every validation, calculation, presentation or later implementation clause in this compound rule. |
CAP-PFM-NOT-010 | BR-CAP-PFM-NOT-010-04.origin | The cited approval establishes a broader outcome or selected examples, not every validation, calculation, presentation or later implementation clause in this compound rule. |
CAP-PFM-NOT-010 | BR-CAP-PFM-NOT-010-05.origin | The cited approval establishes a broader outcome or selected examples, not every validation, calculation, presentation or later implementation clause in this compound rule. |
CAP-PFM-NOT-011 | BR-CAP-PFM-NOT-011-02.origin | The cited approval establishes a broader outcome or selected examples, not every validation, calculation, presentation or later implementation clause in this compound rule. |
CAP-PFM-NOT-011 | BR-CAP-PFM-NOT-011-03.origin | The cited approval establishes a broader outcome or selected examples, not every validation, calculation, presentation or later implementation clause in this compound rule. |
CAP-PFM-NOT-011 | BR-CAP-PFM-NOT-011-04.origin | The cited approval establishes a broader outcome or selected examples, not every validation, calculation, presentation or later implementation clause in this compound rule. |
CAP-PFM-NOT-011 | BR-CAP-PFM-NOT-011-07.origin | The cited approval establishes a broader outcome or selected examples, not every validation, calculation, presentation or later implementation clause in this compound rule. |
CAP-PFM-NOT-013 | BR-CAP-PFM-NOT-013-03.origin | The cited approval establishes a broader outcome or selected examples, not every validation, calculation, presentation or later implementation clause in this compound rule. |
CAP-PFM-NOT-013 | BR-CAP-PFM-NOT-013-09.origin | The cited approval establishes a broader outcome or selected examples, not every validation, calculation, presentation or later implementation clause in this compound rule. |
CAP-PFM-NOT-014 | BR-CAP-PFM-NOT-014-01.origin | The cited approval establishes a broader outcome or selected examples, not every validation, calculation, presentation or later implementation clause in this compound rule. |
CAP-PFM-NOT-016 | BR-CAP-PFM-NOT-016-01.origin | The cited approval establishes a broader outcome or selected examples, not every validation, calculation, presentation or later implementation clause in this compound rule. |
CAP-PFM-NOT-016 | BR-CAP-PFM-NOT-016-03.origin | The cited approval establishes a broader outcome or selected examples, not every validation, calculation, presentation or later implementation clause in this compound rule. |
CAP-PFM-NOT-017 | BR-CAP-PFM-NOT-017-01.origin | Use the explicit Andrew-approved object-write exception dated 2026-10-10 rather than the preceding acceptance. |
CAP-PFM-NOT-017 | BR-CAP-PFM-NOT-017-06.origin | The cited approval establishes a broader outcome or selected examples, not every validation, calculation, presentation or later implementation clause in this compound rule. |
CAP-PFM-NOT-017 | BR-CAP-PFM-NOT-017-15.provenance | The record establishes the object-write ordering; rollback orphaning follows from independent object storage and database rollback. |
CAP-PFM-NOT-018 | BR-CAP-PFM-NOT-018-01.origin | The cited approval establishes a broader outcome or selected examples, not every validation, calculation, presentation or later implementation clause in this compound rule. |
CAP-PFM-NOT-019 | BR-CAP-PFM-NOT-019-01.origin | The cited approval establishes a broader outcome or selected examples, not every validation, calculation, presentation or later implementation clause in this compound rule. |
CAP-PFM-NOT-020 | BR-CAP-PFM-NOT-020-08.origin | The cited approval establishes a broader outcome or selected examples, not every validation, calculation, presentation or later implementation clause in this compound rule. |
ATS-PFM-NOT-004 | ATS-PFM-NOT-004-03.level | Following the console destination is browser evidence, beyond rendering unit tests. |
ATS-PFM-NOT-005 | ATS-PFM-NOT-005-04.bound_to | The unit lineage bindings did not prove latest rendered data; add the existing integration assertion. |
CAP-PFM-NOT-015 | BR-CAP-PFM-NOT-015-02.statement | The service applies its at-least-one check only to nonempty overrides and its digestibility check only to a supplied definition. |
CAP-PFM-NOT-015 | BR-CAP-PFM-NOT-015-02.provenance | The combined rule includes branches not asserted by its original console-disable test. |
CAP-PFM-NOT-015 | BR-CAP-PFM-NOT-015-02.source | Point directly to all validation branches rather than one negative assertion. |
CAP-PFM-NOT-014 | CAP-PFM-NOT-014.implementation_evidence | Producer transactions, delegation confirmation and refusal compensation are outside the registered code boundary. |
CAP-PFM-NOT-014 | BR-CAP-PFM-NOT-014-09.provenance | The acceptance journey records an optional quality observation rather than asserting that an ending item must exist. |
CAP-PFM-NOT-014 | BR-CAP-PFM-NOT-014-09.source | The execution/defect record explicitly states that the ending notice arrives. |
JNY-PFM-NOT-002 | JNY-PFM-NOT-002.provenance | Use the recorded ending-notice observation rather than a universal test assertion. |
JNY-PFM-NOT-002 | JNY-PFM-NOT-002.source | The defect record is the direct evidence for this unresolved product outcome. |
CAP-PFM-NOT-006 | SC-CAP-PFM-NOT-006-02.provenance | The illustration adds a state, surface or timing detail beyond the cited test fixture. |
CAP-PFM-NOT-006 | SC-CAP-PFM-NOT-006-02.note | State the reasoning required for inferred provenance. |
CAP-PFM-NOT-012 | SC-CAP-PFM-NOT-012-01.provenance | The illustration adds a state, surface or timing detail beyond the cited test fixture. |
CAP-PFM-NOT-012 | SC-CAP-PFM-NOT-012-01.note | State the reasoning required for inferred provenance. |
CAP-PFM-NOT-018 | SC-CAP-PFM-NOT-018-01.provenance | The illustration adds a state, surface or timing detail beyond the cited test fixture. |
CAP-PFM-NOT-018 | SC-CAP-PFM-NOT-018-01.note | State the reasoning required for inferred provenance. |
CAP-PFM-NOT-020 | SC-CAP-PFM-NOT-020-01.provenance | The illustration adds a state, surface or timing detail beyond the cited test fixture. |
CAP-PFM-NOT-020 | SC-CAP-PFM-NOT-020-01.note | State the reasoning required for inferred provenance. |
CAP-PFM-NOT-016 | SC-CAP-PFM-NOT-016-01.source | The composite illustration uses the invalid-save and corrected-publication assertions in the same lifecycle file. |
CAP-PFM-NOT-013 | BR-CAP-PFM-NOT-013-07.statement | Keep the general log-content restriction in its notification-recovery home; this rule covers retained Slack data. |
Added Rules and Acceptance Checks
| Artifact | Permanent additions |
|---|---|
CAP-PFM-NOT-001 | BR-CAP-PFM-NOT-001-14: Manifest validation accepts format one, no more than two hundred definitions and twenty locales per definition, and bounded labels, descriptions and templates; Extra fields, duplicate declaration values and invalid locale or duration values are rejected. |
CAP-PFM-NOT-005 | BR-CAP-PFM-NOT-005-08: When link data has been redacted or the recipient is no longer eligible, a collapsed notice retains its earlier wording rather than re-rendering after withdrawal. |
CAP-PFM-NOT-008 | BR-CAP-PFM-NOT-008-10: Deployment defines an operations-paging alarm when the notification dispatcher records no run in a fifteen-minute interval, treating missing metric data as a breach.; BR-CAP-PFM-NOT-008-11: Deployment defines an operations-paging alarm when nightly notification reconciliation records no scheduled run for two consecutive days, treating missing metric data as a breach. |
CAP-PFM-NOT-012 | BR-CAP-PFM-NOT-012-07: HQ dead-letter listing and retry responses include retained channel content without the customer access-grant check used by History, while HQ route permissions still restrict entry. |
CAP-PFM-NOT-017 | BR-CAP-PFM-NOT-017-15: Request-object storage precedes database commit; a rollback can therefore leave an object without a queue pointer until storage lifecycle cleanup.; BR-CAP-PFM-NOT-017-16: Message persistence accepts Platform or caller rendering only; Platform-rendered non-test messages require a template version; draft test messages may omit it; caller-rendered messages cannot name a template version. |
CAP-PFM-NOT-020 | BR-CAP-PFM-NOT-020-14: Verification refresh reads provider state and writes the resulting setting and latest check time, preserving the first verified instant.; BR-CAP-PFM-NOT-020-15: Purge removes both newly created and adopted provider identities and verifies absence before recording removal. |
ATS-PFM-NOT-001 | ATS-PFM-NOT-001-13: Reject declaration-envelope violations |
ATS-PFM-NOT-005 | ATS-PFM-NOT-005-09: Retain content when replacement rendering is unavailable |
ATS-PFM-NOT-007 | ATS-PFM-NOT-007-08: Select only reachable adapter destinations; ATS-PFM-NOT-007-09: Deduplicate and bound provider event history |
ATS-PFM-NOT-008 | ATS-PFM-NOT-008-09: Detect dispatcher silence; ATS-PFM-NOT-008-10: Detect absent nightly reconciliation |
ATS-PFM-NOT-012 | ATS-PFM-NOT-012-05: Expose the current operator content and grant boundary |
ATS-PFM-NOT-013 | ATS-PFM-NOT-013-09: Initialize the reserved workspace idempotently |
ATS-PFM-NOT-015 | ATS-PFM-NOT-015-11: Accept an empty override and a category digest choice |
ATS-PFM-NOT-017 | ATS-PFM-NOT-017-13: Retain rollback objects until lifecycle cleanup; ATS-PFM-NOT-017-14: Enforce rendering and version consistency |
ATS-PFM-NOT-020 | ATS-PFM-NOT-020-13: Persist verification refresh without rewriting first success; ATS-PFM-NOT-020-14: Remove adopted identities and verify provider absence |
Complete Protected-Field Reconciliation
This comparison against the supplied draft supplements the reasoned verification ledger. Removed origins reflect insufficient decision authority; changes to source and proof metadata reflect the inspected code or named tests. Superseded concept references point to their permanent broad-concept home.
| Artifact | Field | Draft value | Examined value |
|---|---|---|---|
FINDINGS.md | frontmatter.finding_evidence.13.source | "react-console:lib/authz/backend-aliases.ts (configuration e-mail settings aliases); no route under app/ reads /communications/{tenantId}/messages, /suppressions or the sender identity" | "services-platform:docs/communications/architecture.md#2026-10-09 — Final acceptance; react-console:app/(console)/console/[tenantId]/settings/notifications/page.tsx" |
ATS-PFM-NOT-004 | frontmatter.scenarios.2.level | "unit" | "browser" |
ATS-PFM-NOT-005 | frontmatter.scenarios.3.level | "unit" | "api" |
ATS-PFM-NOT-005 | frontmatter.scenarios.3.bound_to | ["services-platform:modules/notifications/tests/unit/collapsing.spec.js#remembers the requests an instance took in, oldest first","services-platform:modules/notifications/tests/unit/collapsing.spec.js#remembers a request once, however often it is folded in","services-platform:modules/notifications/tests/unit/collapsing.spec.js#keeps the newest fifty and drops the oldest"] | ["services-platform:modules/notifications/tests/unit/collapsing.spec.js#remembers the requests an instance took in, oldest first","services-platform:modules/notifications/tests/unit/collapsing.spec.js#remembers a request once, however often it is folded in","services-platform:modules/notifications/tests/unit/collapsing.spec.js#keeps the newest fifty and drops the oldest","services-platform:modules/notifications/tests/integration/services/orchestration/cancel-and-supersede.integration.spec.js#folds five requests into one notification carrying the latest data and the count"] |
ATS-PFM-NOT-008 | frontmatter.scenarios.6.level | "unit" | "api" |
CAP-PFM-NOT-001 | frontmatter.product_intent | "confirmed" | "proposed" |
CAP-PFM-NOT-001 | frontmatter.concepts | ["CON-PFM-NOT-001"] | ["CON-PFM-NOT-003"] |
CAP-PFM-NOT-001 | frontmatter.rules.0.origin | "services-platform:docs/milestones/plans/PLAT-M23-plan.humanized.md#PLAT-M23-S10" | "none" |
CAP-PFM-NOT-001 | frontmatter.rules.1.origin | "services-platform:docs/milestones/plans/PLAT-M23-plan.humanized.md#PLAT-M23-S10" | "none" |
CAP-PFM-NOT-001 | frontmatter.rules.2.enforced_at | ["service","database"] | ["service"] |
CAP-PFM-NOT-001 | frontmatter.rules.2.origin | "services-platform:docs/proposals/notifications/23-decisions.md#D-05" | "none" |
CAP-PFM-NOT-001 | frontmatter.rules.3.enforced_at | ["service","database"] | ["service"] |
CAP-PFM-NOT-001 | frontmatter.rules.3.origin | "services-platform:docs/milestones/plans/PLAT-M23-plan.humanized.md#PLAT-M23-S10" | "none" |
CAP-PFM-NOT-001 | frontmatter.rules.4.origin | "services-platform:docs/milestones/plans/PLAT-M23-plan.humanized.md#PLAT-M23-S10" | "none" |
CAP-PFM-NOT-001 | frontmatter.rules.9.origin | "services-platform:docs/proposals/notifications/23-decisions.md#D-03" | "none" |
CAP-PFM-NOT-001 | frontmatter.rules.10.provenance | "test" | "observed" |
CAP-PFM-NOT-001 | frontmatter.rules.10.source | "services-platform:modules/notifications/tests/integration/services/registration/register-service-notifications.integration.spec.js#cancels the tenant’s accepted request that had not settled" | "services-platform:modules/notifications/services/registration/register-service-notifications.ts:cancelRetiredRequests" |
CAP-PFM-NOT-001 | frontmatter.rules.11.origin | "services-platform:docs/milestones/plans/PLAT-M23-plan.humanized.md#7. Deliverables" | "none" |
CAP-PFM-NOT-001 | frontmatter.rules.12.origin | "services-platform:docs/milestones/plans/PLAT-M23-plan.humanized.md#PLAT-M23-S10" | "none" |
CAP-PFM-NOT-002 | frontmatter.product_intent | "confirmed" | "proposed" |
CAP-PFM-NOT-002 | frontmatter.concepts | ["CON-PFM-NOT-002"] | ["CON-PFM-NOT-003"] |
CAP-PFM-NOT-002 | frontmatter.rules.2.origin | "services-platform:docs/milestones/plans/PLAT-M23-plan.humanized.md#PLAT-M23-S06" | "none" |
CAP-PFM-NOT-002 | frontmatter.rules.8.provenance | "documented" | "observed" |
CAP-PFM-NOT-002 | frontmatter.rules.8.source | "services-platform:docs/notifications.md#6. The pipeline" | "services-platform:modules/notifications/services/dispatch/dispatch-notifications.ts:dispatchNotifications" |
CAP-PFM-NOT-003 | frontmatter.product_intent | "confirmed" | "proposed" |
CAP-PFM-NOT-003 | frontmatter.concepts | ["CON-PFM-NOT-002"] | ["CON-PFM-NOT-003"] |
CAP-PFM-NOT-003 | frontmatter.rules.0.origin | "services-platform:docs/proposals/notifications/23-decisions.md#D-04" | "none" |
CAP-PFM-NOT-003 | frontmatter.rules.3.origin | "services-platform:docs/proposals/notifications/23-decisions.md#D-04" | "none" |
CAP-PFM-NOT-003 | frontmatter.rules.4.origin | "services-platform:docs/milestones/PLAT-M23-notifications-core-and-in-app.md#D3" | "none" |
CAP-PFM-NOT-003 | frontmatter.rules.6.origin | "services-platform:docs/milestones/plans/PLAT-M23-plan.humanized.md#PLAT-M23-S08" | "none" |
CAP-PFM-NOT-004 | frontmatter.concepts | ["CON-PFM-NOT-003","CON-PFM-NOT-001"] | ["CON-PFM-NOT-003"] |
CAP-PFM-NOT-004 | frontmatter.rules.3.origin | "services-platform:docs/milestones/plans/PLAT-M23-plan.humanized.md#PLAT-M23-S01" | "none" |
CAP-PFM-NOT-004 | frontmatter.rules.5.origin | "services-platform:docs/milestones/plans/PLAT-M23-plan.humanized.md#PLAT-M23-S01" | "none" |
CAP-PFM-NOT-004 | frontmatter.scenarios.0.provenance | "test" | "inferred" |
CAP-PFM-NOT-004 | frontmatter.scenarios.0.source | "react-console:acceptance/notifications/playwright/journeys/inbox/NT-ACC-0001.spec.ts#NT-ACC-0001" | "services-platform:modules/notifications/services/orchestration/render-message.ts:renderNeutralMessage" |
CAP-PFM-NOT-005 | frontmatter.rules.0.origin | "services-platform:docs/milestones/plans/PLAT-M23-plan.humanized.md#PLAT-M23-S11" | "none" |
CAP-PFM-NOT-005 | frontmatter.rules.6.origin | "services-platform:docs/milestones/plans/PLAT-M23-plan.humanized.md#PLAT-M23-S06" | "none" |
CAP-PFM-NOT-006 | frontmatter.product_intent | "confirmed" | "proposed" |
CAP-PFM-NOT-006 | frontmatter.concepts | ["CON-PFM-NOT-002","CON-PFM-NOT-003"] | ["CON-PFM-NOT-003"] |
CAP-PFM-NOT-006 | frontmatter.rules.0.origin | "services-platform:docs/milestones/plans/PLAT-M23-plan.humanized.md#PLAT-M23-S05" | "none" |
CAP-PFM-NOT-006 | frontmatter.rules.1.origin | "services-platform:docs/milestones/plans/PLAT-M23-plan.humanized.md#PLAT-M23-S05" | "none" |
CAP-PFM-NOT-006 | frontmatter.rules.3.origin | "services-platform:docs/milestones/plans/PLAT-M23-plan.humanized.md#2. Scope" | "none" |
CAP-PFM-NOT-006 | frontmatter.rules.4.origin | "services-platform:docs/milestones/plans/PLAT-M23-plan.humanized.md#2. Scope" | "none" |
CAP-PFM-NOT-006 | frontmatter.scenarios.1.provenance | "test" | "inferred" |
CAP-PFM-NOT-007 | frontmatter.rules.1.origin | "services-platform:docs/milestones/plans/PLAT-M23-plan.humanized.md#PLAT-M23-S12" | "none" |
CAP-PFM-NOT-007 | frontmatter.rules.2.must_prove | false | true |
CAP-PFM-NOT-007 | frontmatter.rules.8.must_prove | false | true |
CAP-PFM-NOT-008 | frontmatter.product_intent | "confirmed" | "proposed" |
CAP-PFM-NOT-008 | frontmatter.concepts | ["CON-PFM-NOT-002","CON-PFM-NOT-003"] | ["CON-PFM-NOT-003"] |
CAP-PFM-NOT-008 | frontmatter.rules.0.origin | "services-platform:docs/milestones/plans/PLAT-M23-plan.humanized.md#PLAT-M23-S15" | "none" |
CAP-PFM-NOT-008 | frontmatter.rules.2.origin | "services-platform:docs/milestones/plans/PLAT-M23-plan.humanized.md#PLAT-M23-S15" | "none" |
CAP-PFM-NOT-008 | frontmatter.rules.5.origin | "services-platform:docs/milestones/plans/PLAT-M23-plan.humanized.md#2. Scope" | "none" |
CAP-PFM-NOT-008 | frontmatter.rules.6.origin | "services-platform:docs/milestones/plans/PLAT-M23-plan.humanized.md#PLAT-M23-S15" | "none" |
CAP-PFM-NOT-008 | frontmatter.rules.7.provenance | "test" | "documented" |
CAP-PFM-NOT-008 | frontmatter.rules.7.source | "services-platform:modules/notifications/tests/integration/services/orchestration/logging.integration.spec.js#writes ids, keys and outcomes and never a title, a body, a link, a data value or an e-mail address" | "services-platform:docs/milestones/plans/PLAT-M23-plan.humanized.md#PLAT-M23-S16" |
CAP-PFM-NOT-009 | frontmatter.product_intent | "confirmed" | "proposed" |
CAP-PFM-NOT-009 | frontmatter.rules.2.origin | "services-platform:docs/milestones/plans/PLAT-M23-plan.humanized.md#3. How it works for the user" | "none" |
CAP-PFM-NOT-009 | frontmatter.rules.4.origin | "services-platform:docs/milestones/plans/PLAT-M23-plan.humanized.md#PLAT-M23-S03" | "none" |
CAP-PFM-NOT-009 | frontmatter.rules.5.origin | "services-platform:docs/milestones/plans/PLAT-M23-plan.humanized.md#PLAT-M23-S03" | "none" |
CAP-PFM-NOT-009 | frontmatter.rules.7.origin | "services-platform:docs/milestones/plans/PLAT-M23-plan.humanized.md#3. How it works for the user" | "none" |
CAP-PFM-NOT-010 | frontmatter.product_intent | "confirmed" | "proposed" |
CAP-PFM-NOT-010 | frontmatter.rules.0.origin | "services-platform:docs/milestones/plans/PLAT-M23-plan.humanized.md#PLAT-M23-S12" | "none" |
CAP-PFM-NOT-010 | frontmatter.rules.1.origin | "services-platform:docs/milestones/plans/PLAT-M23-plan.humanized.md#PLAT-M23-S12" | "none" |
CAP-PFM-NOT-010 | frontmatter.rules.3.origin | "services-platform:docs/milestones/plans/PLAT-M23-plan.humanized.md#PLAT-M23-S12" | "none" |
CAP-PFM-NOT-010 | frontmatter.rules.4.origin | "services-platform:docs/milestones/plans/PLAT-M23-plan.humanized.md#3. How it works for the user" | "none" |
CAP-PFM-NOT-011 | frontmatter.product_intent | "confirmed" | "proposed" |
CAP-PFM-NOT-011 | frontmatter.concepts | ["CON-PFM-NOT-002","CON-PFM-NOT-003"] | ["CON-PFM-NOT-003"] |
CAP-PFM-NOT-011 | frontmatter.rules.1.origin | "services-platform:docs/milestones/plans/PLAT-M23-plan.humanized.md#3. How it works for the user" | "none" |
CAP-PFM-NOT-011 | frontmatter.rules.2.origin | "services-platform:docs/milestones/plans/PLAT-M23-plan.humanized.md#PLAT-M23-S09" | "none" |
CAP-PFM-NOT-011 | frontmatter.rules.3.origin | "services-platform:docs/milestones/plans/PLAT-M23-plan.humanized.md#PLAT-M23-S12" | "none" |
CAP-PFM-NOT-011 | frontmatter.rules.6.origin | "services-platform:docs/milestones/plans/PLAT-M23-plan.humanized.md#3. How it works for the user" | "none" |
CAP-PFM-NOT-012 | frontmatter.product_intent | "confirmed" | "proposed" |
CAP-PFM-NOT-012 | frontmatter.concepts | ["CON-PFM-NOT-002","CON-PFM-NOT-003"] | ["CON-PFM-NOT-003"] |
CAP-PFM-NOT-012 | frontmatter.rules.2.provenance | "test" | "observed" |
CAP-PFM-NOT-012 | frontmatter.rules.2.source | "services-platform:modules/notifications/tests/integration/services/centre/hq-notifications.integration.spec.js#lists the deliveries that ran out of receives, with their tenant, and not the ones refused for good" | "services-platform:modules/notifications/services/centre/hq-notifications.ts:listDeadLetters" |
CAP-PFM-NOT-012 | frontmatter.scenarios.0.provenance | "test" | "inferred" |
CAP-PFM-NOT-013 | frontmatter.product_intent | "confirmed" | "proposed" |
CAP-PFM-NOT-013 | frontmatter.concepts | ["CON-PFM-NOT-002","CON-PFM-NOT-001"] | ["CON-PFM-NOT-003"] |
CAP-PFM-NOT-013 | frontmatter.rules.0.origin | "services-platform:docs/milestones/PLAT-M23-notifications-core-and-in-app.md#D1" | "none" |
CAP-PFM-NOT-013 | frontmatter.rules.1.origin | "services-platform:docs/milestones/PLAT-M23-notifications-core-and-in-app.md#D1" | "none" |
CAP-PFM-NOT-013 | frontmatter.rules.2.origin | "services-platform:docs/milestones/PLAT-M23-notifications-core-and-in-app.md#D1" | "none" |
CAP-PFM-NOT-013 | frontmatter.rules.4.origin | "services-platform:docs/milestones/PLAT-M23-notifications-core-and-in-app.md#D1" | "none" |
CAP-PFM-NOT-013 | frontmatter.rules.8.origin | "services-platform:docs/milestones/plans/PLAT-M23-plan.humanized.md#2. Scope" | "none" |
CAP-PFM-NOT-013 | frontmatter.rules.10.must_prove | false | true |
CAP-PFM-NOT-014 | frontmatter.product_intent | "confirmed" | "proposed" |
CAP-PFM-NOT-014 | frontmatter.implementation_evidence | "observed" | "partially-observed" |
CAP-PFM-NOT-014 | frontmatter.concepts | ["CON-PFM-NOT-002","CON-PFM-NOT-003"] | ["CON-PFM-NOT-003"] |
CAP-PFM-NOT-014 | frontmatter.rules.0.provenance | "test" | "documented" |
CAP-PFM-NOT-014 | frontmatter.rules.0.source | "react-console:acceptance/notifications/playwright/journeys/inbox/NT-ACC-0001.spec.ts#NT-ACC-0001" | "services-platform:docs/notifications.md#9. Producers" |
CAP-PFM-NOT-014 | frontmatter.rules.0.origin | "services-platform:docs/milestones/PLAT-M23-notifications-core-and-in-app.md#D3" | "none" |
CAP-PFM-NOT-014 | frontmatter.rules.8.provenance | "test" | "documented" |
CAP-PFM-NOT-014 | frontmatter.rules.8.source | "react-console:acceptance/notifications/playwright/journeys/inbox/NT-ACC-0005.spec.ts#NT-ACC-0005" | "react-console:acceptance/notifications/reports/defects/notifications.md#DEF-NT-0009" |
CAP-PFM-NOT-015 | frontmatter.concepts | ["CON-PFM-NOT-001","CON-PFM-NOT-003"] | ["CON-PFM-NOT-003"] |
CAP-PFM-NOT-015 | frontmatter.rules.1.provenance | "test" | "observed" |
CAP-PFM-NOT-015 | frontmatter.rules.1.source | "services-platform:modules/notifications/tests/integration/services/persistence/preferences.integration.spec.js#refuses to turn the console off" | "services-platform:modules/notifications/services/persistence/preferences.ts:refuseInvalid" |
CAP-PFM-NOT-015 | frontmatter.rules.1.origin | "services-platform:docs/proposals/notifications/23-decisions.md#D-05" | "none" |
CAP-PFM-NOT-015 | frontmatter.rules.9.origin | "services-platform:docs/proposals/notifications/23-decisions.md#D-10" | "none" |
CAP-PFM-NOT-015 | frontmatter.rules.10.origin | "services-platform:docs/proposals/notifications/23-decisions.md#D-10" | "none" |
CAP-PFM-NOT-015 | frontmatter.scenarios.0.provenance | "documented" | "proposed" |
CAP-PFM-NOT-016 | frontmatter.product_intent | "confirmed" | "proposed" |
CAP-PFM-NOT-016 | frontmatter.intent_sources | ["services-platform:docs/communications/architecture.md#15. Decisions for Andrew","services-platform:docs/communications/architecture.md#2026-10-09 — Final acceptance","services-platform:docs/communications/architecture.md#16.5 CC and BCC (Andrew, 2026-10-09)"] | ["services-platform:docs/communications/architecture.md#15. Decisions for Andrew","services-platform:docs/communications/architecture.md#2026-10-09 — Final acceptance","services-platform:docs/communications/architecture.md#16.5 CC and BCC (Andrew, 2026-10-09)","services-platform:docs/communications/architecture.md#18. Rework 2026-10-10: queue pointers, S3 for request data and bodies, SQS owns retries"] |
CAP-PFM-NOT-016 | frontmatter.rules.0.origin | "services-platform:docs/communications/architecture.md#15. Decisions for Andrew" | "none" |
CAP-PFM-NOT-016 | frontmatter.rules.2.origin | "services-platform:docs/communications/architecture.md#16.5 CC and BCC (Andrew, 2026-10-09)" | "none" |
CAP-PFM-NOT-016 | frontmatter.scenarios.0.source | "services-platform:modules/communications/tests/integration/lifecycle/contact-role-compliance-communication.integration.spec.js#publishes the corrected content as version 1" | "services-platform:modules/communications/tests/integration/lifecycle/contact-role-compliance-communication.integration.spec.js" |
CAP-PFM-NOT-017 | frontmatter.product_intent | "confirmed" | "proposed" |
CAP-PFM-NOT-017 | frontmatter.intent_sources | ["services-platform:docs/communications/architecture.md#15. Decisions for Andrew","services-platform:docs/communications/architecture.md#2026-10-09 — Final acceptance","services-platform:docs/communications/architecture.md#18. Rework 2026-10-10: queue pointers, S3 for request data and bodies, SQS owns retries"] | ["services-platform:docs/communications/architecture.md#15. Decisions for Andrew","services-platform:docs/communications/architecture.md#2026-10-09 — Final acceptance","services-platform:docs/communications/architecture.md#18. Rework 2026-10-10: queue pointers, S3 for request data and bodies, SQS owns retries","services-platform:docs/communications/architecture.md#18. Rework 2026-10-10: queue pointers, S3 for request data and bodies, SQS owns retries"] |
CAP-PFM-NOT-017 | frontmatter.rules.0.origin | "services-platform:docs/communications/architecture.md#2026-10-09 — Final acceptance" | "services-platform:docs/communications/architecture.md#18.12 One S3 write inside the caller's transaction" |
CAP-PFM-NOT-017 | frontmatter.rules.5.origin | "services-platform:docs/communications/architecture.md#2026-10-09 — Final acceptance" | "none" |
CAP-PFM-NOT-018 | frontmatter.concepts | ["CON-PFM-NOT-005","CON-PFM-NOT-006"] | ["CON-PFM-NOT-005"] |
CAP-PFM-NOT-018 | frontmatter.rules.0.origin | "services-platform:docs/communications/architecture.md#2026-10-09 — Final acceptance" | "none" |
CAP-PFM-NOT-018 | frontmatter.scenarios.0.provenance | "test" | "inferred" |
CAP-PFM-NOT-019 | frontmatter.product_intent | "confirmed" | "proposed" |
CAP-PFM-NOT-019 | frontmatter.intent_sources | ["services-platform:docs/communications/architecture.md#15. Decisions for Andrew","services-platform:docs/communications/architecture.md#2026-10-09 — Final acceptance","services-platform:docs/communications/architecture.md#16.5 CC and BCC (Andrew, 2026-10-09)"] | ["services-platform:docs/communications/architecture.md#15. Decisions for Andrew","services-platform:docs/communications/architecture.md#2026-10-09 — Final acceptance","services-platform:docs/communications/architecture.md#16.5 CC and BCC (Andrew, 2026-10-09)","services-platform:docs/communications/architecture.md#18. Rework 2026-10-10: queue pointers, S3 for request data and bodies, SQS owns retries"] |
CAP-PFM-NOT-019 | frontmatter.rules.0.origin | "services-platform:docs/communications/architecture.md#2026-10-09 — Final acceptance" | "none" |
CAP-PFM-NOT-020 | frontmatter.concepts | ["CON-PFM-NOT-006"] | ["CON-PFM-NOT-005"] |
CAP-PFM-NOT-020 | frontmatter.rules.7.origin | "services-platform:docs/communications/architecture.md#15. Decisions for Andrew" | "none" |
CAP-PFM-NOT-020 | frontmatter.scenarios.0.provenance | "test" | "inferred" |
CON-PFM-NOT-001 | frontmatter.status | "draft" | "superseded" |
CON-PFM-NOT-001 | frontmatter.intent_sources | absent | ["services-platform:docs/milestones/plans/PLAT-M23-plan.humanized.md#2. Scope"] |
CON-PFM-NOT-002 | frontmatter.status | "draft" | "superseded" |
CON-PFM-NOT-002 | frontmatter.intent_sources | absent | ["services-platform:docs/milestones/plans/PLAT-M23-plan.humanized.md#2. Scope"] |
CON-PFM-NOT-003 | frontmatter.relationships.0.provenance | "test" | "documented" |
CON-PFM-NOT-003 | frontmatter.relationships.0.source | "services-platform:modules/notifications/tests/integration/services/orchestration/cancel-and-supersede.integration.spec.js#folds five requests into one notification carrying the latest data and the count" | "services-platform:docs/communications/architecture.md#22. Staff notifications: designed in the Platform Notifications architecture (2026-10-21)" |
CON-PFM-NOT-003 | frontmatter.relationships.1.provenance | "test" | "documented" |
CON-PFM-NOT-003 | frontmatter.relationships.1.source | "services-platform:modules/notifications/tests/integration/services/persistence/preferences.integration.spec.js#refuses to turn e-mail off for a mandatory definition" | "services-platform:docs/notifications.md#2. The producer’s door: the queue row" |
CON-PFM-NOT-003 | frontmatter.acted_on_by | ["CAP-PFM-NOT-004","CAP-PFM-NOT-005","CAP-PFM-NOT-006","CAP-PFM-NOT-007","CAP-PFM-NOT-008","CAP-PFM-NOT-009","CAP-PFM-NOT-010","CAP-PFM-NOT-011","CAP-PFM-NOT-012","CAP-PFM-NOT-014","CAP-PFM-NOT-015"] | ["CAP-PFM-NOT-004","CAP-PFM-NOT-005","CAP-PFM-NOT-006","CAP-PFM-NOT-007","CAP-PFM-NOT-008","CAP-PFM-NOT-009","CAP-PFM-NOT-010","CAP-PFM-NOT-011","CAP-PFM-NOT-012","CAP-PFM-NOT-014","CAP-PFM-NOT-015","CAP-PFM-NOT-001","CAP-PFM-NOT-013","CAP-PFM-NOT-002","CAP-PFM-NOT-003"] |
CON-PFM-NOT-003 | frontmatter.supersedes | [] | ["CON-PFM-NOT-001","CON-PFM-NOT-002"] |
CON-PFM-NOT-003 | frontmatter.intent_sources | absent | ["services-platform:docs/milestones/plans/PLAT-M23-plan.humanized.md#2. Scope"] |
CON-PFM-NOT-004 | frontmatter.product_intent | "confirmed" | "proposed" |
CON-PFM-NOT-004 | frontmatter.intent_sources | absent | ["services-platform:docs/communications/architecture.md#2026-10-09 — Final acceptance"] |
CON-PFM-NOT-005 | frontmatter.product_intent | "confirmed" | "proposed" |
CON-PFM-NOT-005 | frontmatter.relationships.1.provenance | "test" | "documented" |
CON-PFM-NOT-005 | frontmatter.relationships.1.source | "services-platform:modules/communications/tests/integration/services/persistence/messages.integration.spec.js#withholds a message whose recipient was suppressed since acceptance, state and reason written together" | "services-platform:docs/communications/architecture.md#18. Rework 2026-10-10: queue pointers, S3 for request data and bodies, SQS owns retries" |
CON-PFM-NOT-005 | frontmatter.acted_on_by | ["CAP-PFM-NOT-017","CAP-PFM-NOT-018","CAP-PFM-NOT-019"] | ["CAP-PFM-NOT-017","CAP-PFM-NOT-018","CAP-PFM-NOT-019","CAP-PFM-NOT-020"] |
CON-PFM-NOT-005 | frontmatter.supersedes | [] | ["CON-PFM-NOT-006"] |
CON-PFM-NOT-005 | frontmatter.intent_sources | absent | ["services-platform:docs/communications/architecture.md#2026-10-09 — Final acceptance"] |
CON-PFM-NOT-006 | frontmatter.status | "draft" | "superseded" |
FEAT-PFM-NOT-01 | frontmatter.concepts | ["CON-PFM-NOT-001"] | [] |
FEAT-PFM-NOT-01 | frontmatter.intent_sources | absent | ["services-platform:docs/milestones/plans/PLAT-M23-plan.humanized.md#2. Scope"] |
FEAT-PFM-NOT-02 | frontmatter.concepts | ["CON-PFM-NOT-002"] | [] |
FEAT-PFM-NOT-02 | frontmatter.intent_sources | absent | ["services-platform:docs/milestones/plans/PLAT-M23-plan.humanized.md#2. Scope"] |
FEAT-PFM-NOT-03 | frontmatter.intent_sources | absent | ["services-platform:docs/milestones/plans/PLAT-M23-plan.humanized.md#2. Scope"] |
FEAT-PFM-NOT-04 | frontmatter.intent_sources | absent | ["services-platform:docs/milestones/plans/PLAT-M23-plan.humanized.md#2. Scope"] |
FEAT-PFM-NOT-05 | frontmatter.intent_sources | absent | ["services-platform:docs/milestones/plans/PLAT-M23-plan.humanized.md#2. Scope"] |
FEAT-PFM-NOT-07 | frontmatter.concepts | ["CON-PFM-NOT-004","CON-PFM-NOT-005","CON-PFM-NOT-006"] | ["CON-PFM-NOT-004","CON-PFM-NOT-005"] |
FEAT-PFM-NOT-07 | frontmatter.intent_sources | absent | ["services-platform:docs/communications/architecture.md#2026-10-09 — Final acceptance"] |
JNY-PFM-NOT-001 | frontmatter.intent_sources | absent | ["services-platform:docs/milestones/plans/PLAT-M23-plan.humanized.md#2. Scope"] |
JNY-PFM-NOT-002 | frontmatter.alternates.0.provenance | "test" | "documented" |
JNY-PFM-NOT-002 | frontmatter.alternates.0.source | "react-console:acceptance/notifications/playwright/journeys/inbox/NT-ACC-0005.spec.ts#NT-ACC-0005" | "react-console:acceptance/notifications/reports/defects/notifications.md#DEF-NT-0009" |
JNY-PFM-NOT-002 | frontmatter.intent_sources | absent | ["services-platform:docs/milestones/plans/PLAT-M23-plan.humanized.md#2. Scope"] |
JNY-PFM-NOT-003 | frontmatter.intent_sources | absent | ["services-platform:docs/milestones/plans/PLAT-M23-plan.humanized.md#2. Scope"] |
JNY-PFM-NOT-004 | frontmatter.intent_sources | absent | ["services-platform:docs/milestones/plans/PLAT-M23-plan.humanized.md#2. Scope"] |
JNY-PFM-NOT-005 | frontmatter.intent_sources | absent | ["services-platform:docs/milestones/plans/PLAT-M23-plan.humanized.md#2. Scope"] |
JNY-PFM-NOT-006 | frontmatter.assertions.1.source | "services-platform:modules/communications/tests/integration/lifecycle/contact-role-compliance-communication.integration.spec.js#publishes the request once, whatever its recipients turn out to be" | "services-platform:modules/communications/tests/integration/lifecycle/contact-role-compliance-communication.integration.spec.js#never sends again when the run is repeated" |
JNY-PFM-NOT-006 | frontmatter.intent_sources | absent | ["services-platform:docs/communications/architecture.md#2026-10-09 — Final acceptance"] |
Disagreements Left Open
Every finding remains visible for product review. A mapped behavior with a finding is described with its limitation rather than silently treated as accepted.
| Finding | Severity | Disagreement and recommendation | Affected artifacts | Evidence | Kind |
|---|---|---|---|---|---|
FND-PFM-NOT-001 | medium | The approved HQ decision excludes a reserved workspace, while implementation creates a demonstration support workspace for system alerts. The handoff treats that choice as an assumption. The product should resolve whether this workspace is permitted and whether ordinary HQ lists and nightly processing should include it. | CAP-PFM-NOT-013, CON-PFM-NOT-002 | See finding_evidence | inconsistency |
FND-PFM-NOT-002 | low | Several records reference a plan filename absent from the pinned tree. The humanized plan is available and supplies this corpus's milestone authority. The product should correct the stale plan references. | MOD-PFM-NOT | See finding_evidence | inconsistency |
FND-PFM-NOT-003 | medium | The approved combined bell is incomplete: its popover does not contain a Notifications section. The associated intended rule lacks passing implementation proof, pending the attention milestone dependency. | CAP-PFM-NOT-009, BR-CAP-PFM-NOT-009-09, JNY-PFM-NOT-001 | See finding_evidence | defect |
FND-PFM-NOT-004 | medium | The milestone remains in progress. Its recorded fourth acceptance run passes eighteen of nineteen journeys, with the delivery-explanation defect, partial bell integration and unconfigured Slack token still limiting verification. The product should complete those proofs before treating the release as verified. | CAP-PFM-NOT-009, CAP-PFM-NOT-010, CAP-PFM-NOT-011, CAP-PFM-NOT-013, JNY-PFM-NOT-004 | See finding_evidence | debt |
FND-PFM-NOT-005 | medium | Preference, wording, identity, digest and text-accounting persistence exists outside the approved core release. Current routes and orchestration do not expose or consult it. The product should approve a future milestone plan before activating those primitives. | CAP-PFM-NOT-015, BR-CAP-PFM-NOT-015-13, FEAT-PFM-NOT-06 | See finding_evidence | inconsistency |
FND-PFM-NOT-006 | low | The request-outcome enumeration includes definition-disabled, but current processing never writes it because workspace enablement settings are not applied. | CON-PFM-NOT-002, CAP-PFM-NOT-015 | See finding_evidence | debt |
FND-PFM-NOT-007 | low | The History delivery table omits the future milestone from unused-channel explanations. The recorded defect leaves the intended explanation rule without passing proof. | CAP-PFM-NOT-011, BR-CAP-PFM-NOT-011-08, JNY-PFM-NOT-003 | See finding_evidence | defect |
FND-PFM-NOT-008 | low | Ending an undispatched assignment prevents its assignment announcement but still sends the ending announcement. Whether recipients should hear about an assignment they never received remains an open product decision. | CAP-PFM-NOT-014, BR-CAP-PFM-NOT-014-09, JNY-PFM-NOT-002 | See finding_evidence | inconsistency |
FND-PFM-NOT-009 | high | The handoff reports that the notification submission role still needs adoption in the shared capability-role catalog. This examination does not inspect that external catalog. The product should obtain owning-infrastructure proof before relying on other services to publish. | CAP-PFM-NOT-002 | See finding_evidence | debt |
FND-PFM-NOT-010 | low | The shared producer library excludes system audiences, so Platform uses a separate HQ publication path with repeated envelope validation. The recorded debt identifies the duplication that future library adoption should resolve. | CAP-PFM-NOT-013 | See finding_evidence | debt |
FND-PFM-NOT-011 | medium | The registered scope includes notification Settings, HQ History, shared notification components and libraries. The legacy alerts route redirects to attention and is outside notification rule ownership. The module inventory preserves that boundary. | MOD-PFM-NOT | See finding_evidence | inconsistency |
FND-PFM-NOT-012 | medium | The examined communications records confirm the original architecture and acceptance, but provide no matching Andrew decision for later caller-rendered, Marketing-lane and version-owned extensions. Their observed implementation remains proposed. | CAP-PFM-NOT-017, CAP-PFM-NOT-018, CAP-PFM-NOT-020 | See finding_evidence | undocumented |
FND-PFM-NOT-013 | low | The communications architecture repeats a section number for two different subjects, making numeric citations ambiguous. The product should use descriptive heading references until the record is corrected. | MOD-PFM-NOT | See finding_evidence | inconsistency |
FND-PFM-NOT-014 | medium | The communications acceptance excludes console delivery work. Permitted notification screens contain no communication-history or suppression interface, but this limited scope cannot establish repository-wide screen absence. | CAP-PFM-NOT-019, CAP-PFM-NOT-020 | See finding_evidence | undocumented |
FND-PFM-NOT-015 | medium | Lane capacity has no implemented workspace-fairness guarantee. The product should decide how simultaneous senders share a lane before assuming campaigns receive fair service. | CAP-PFM-NOT-018 | See finding_evidence | debt |
FND-PFM-NOT-016 | medium | Owned-template requests lack independently trusted submitting-service identity at acceptance. A service permitted to invoke the primitive can name a Marketing version. The product should establish authenticated service ownership before enforcing producer-specific contracts. | CAP-PFM-NOT-017 | See finding_evidence | debt |
FND-PFM-NOT-017 | low | The approved audience list names five personal selection forms, while code also accepts a system audience for HQ. The product should explicitly confirm that additional audience form. | CAP-PFM-NOT-003, CAP-PFM-NOT-013 | See finding_evidence | undocumented |
FND-PFM-NOT-018 | medium | The plan's scope describes an HQ bell experience, while its later decision directs HQ alerts to Slack only. The product should resolve the remaining inbox question and reconcile the scope wording. | CAP-PFM-NOT-013 | See finding_evidence | inconsistency |
FND-PFM-NOT-019 | low | Only Rhythm Administrator currently grants the HQ notification keys. Support staff lack those powers until Andrew decides the HQ access policy. | CAP-PFM-NOT-012 | See finding_evidence | undocumented |
FND-PFM-NOT-020 | medium | Platform does not own resource display names. The console supplies them for responsibility scope, but future external channels lack that lookup. The product should decide how resource labels enter those messages. | CAP-PFM-NOT-004, CAP-PFM-NOT-014 | See finding_evidence | debt |
FND-PFM-NOT-021 | low | The plan's assumption describes an earlier console milestone number, whereas the cited decision uses the current notification milestone. The product should reconcile that historical reference. | CAP-PFM-NOT-009 | See finding_evidence | inconsistency |
FND-PFM-NOT-022 | medium | Responsibility producer internals lie outside the registered code scope. Documentation and acceptance journeys support the integration contract, but delegation confirmation, transaction rollback and refusal compensation remain without bound owning-module proof. | CAP-PFM-NOT-014 | See finding_evidence | debt |
FND-PFM-NOT-023 | low | Nonproduction responsibility routes support a test delay header guarded by environment. The product should decide whether that route-level seam remains appropriate before broader adoption. | CAP-PFM-NOT-014 | See finding_evidence | undocumented |
FND-PFM-NOT-024 | low | Communication event partitions exist, but the examined as-built record reports retention and partition maintenance as unimplemented. The product should establish a retention policy and maintenance proof. | CAP-PFM-NOT-019 | See finding_evidence | debt |
FND-PFM-NOT-025 | medium | The requested planning brief is missing from the supplied specification checkout. This review relies on the authoring contract, draft and pinned evidence and cannot verify requirements unique to the absent brief. | MOD-PFM-NOT | See finding_evidence | undocumented |
FND-PFM-NOT-026 | medium | Some acceptance scenarios combine checks beyond their bound assertions. Existing bindings identify inspected evidence rather than complete execution proof. The product should strengthen composite and unbound scenarios before using them as design-entry proof. | MOD-PFM-NOT | See finding_evidence | debt |
FND-PFM-NOT-027 | medium | Definition retirement commits before workspace cancellation attempts. A cancellation error is logged without undoing retirement, so some unsettled requests can remain. The product should define recovery for partial retirement sweeps. | CAP-PFM-NOT-001 | See finding_evidence | defect |
FND-PFM-NOT-028 | high | Unexpected adapter exceptions are logged using their raw message. Content or credentials embedded in that message can violate the approved logging restriction despite passing normal-path log checks. The product should require redaction on the exception path. | CAP-PFM-NOT-008 | See finding_evidence | defect |
FND-PFM-NOT-029 | medium | Collapsed-item withdrawal cannot refresh wording when declared links have been redacted or the recipient is no longer eligible. Ownership and counts change while previous content remains. The product should decide how to present that stale-content boundary. | CAP-PFM-NOT-005 | See finding_evidence | debt |
FND-PFM-NOT-030 | medium | Communication recovery can resubmit after the ambiguity interval. A first submission that reached the provider but was not recorded can therefore duplicate delivery. The product should define its acceptable ambiguity policy before promising exactly-once sending. | CAP-PFM-NOT-018 | See finding_evidence | undocumented |
FND-PFM-NOT-031 | high | Sender provisioning adopts existing provider identities, and purge deletes adopted identities too. The examined sources do not establish exclusive cross-workspace ownership. The product should resolve reference ownership before deleting shared identities. | CAP-PFM-NOT-020 | See finding_evidence | debt |
FND-PFM-NOT-032 | medium | Allowed notification paths prove their own screens and behavior only. They do not establish repository-wide absence of communication interfaces or aliases, nor the internals of responsibility and provisioning producers. Those areas need their owning examination. | CAP-PFM-NOT-014, CAP-PFM-NOT-019, CAP-PFM-NOT-020 | See finding_evidence | undocumented |
FND-PFM-NOT-033 | medium | Caller-rendered purposes, Marketing-version content and changed-message behavior have code evidence without corresponding Andrew approval in the examined records. The product should record authority for these extensions before design relies on them. | CAP-PFM-NOT-016, CAP-PFM-NOT-017, CAP-PFM-NOT-019 | See finding_evidence | undocumented |
FND-PFM-NOT-034 | medium | Deployment defines a text-message queue but no text-message consumer. Queue and persistence checks therefore establish preparation rather than deployed text delivery. The product should plan and verify that consumer in the text milestone. | CAP-PFM-NOT-007 | See finding_evidence | debt |
FND-PFM-NOT-035 | medium | The changed-message operation accepts a service filter from its invocation and does not independently authenticate that service name. Filtering excludes different labels without establishing caller-exclusive ownership. The product should supply trusted caller identity before relying on that restriction. | CAP-PFM-NOT-019 | See finding_evidence | debt |
FND-PFM-NOT-036 | high | HQ dead-letter and retry responses include retained channel content without checking the active customer access grant required for History. Route permissions restrict entry, but the examined records do not resolve whether this operational content is exempt from customer access policy. The product should require a grant or redact operator responses before customer channels are adopted. | CAP-PFM-NOT-012, BR-CAP-PFM-NOT-012-07, OQ-PFM-NOT-007 | See finding_evidence | undocumented |
| Question | Decision needed | Concern | Options | Recommendation | Affected artifacts |
|---|---|---|---|---|---|
OQ-PFM-NOT-001 | Should assignment ending be announced when the assignment notice never arrived? | The current sequence can present an ending without a preceding announcement. | Withhold the ending when assignment delivery never occurred; or preserve unconditional ending notices. | The product should withhold that ending until the assignee has received an assignment announcement. | CAP-PFM-NOT-014, JNY-PFM-NOT-002 |
OQ-PFM-NOT-002 | Which HQ roles should read and retry notifications? | Current keys belong only to Rhythm Administrator, leaving support access undecided. | Allow support History with grants and administrator retry; or retain administrator-only access. | The product should grant support history reads with active customer access and keep retry restricted to administrators. | CAP-PFM-NOT-012 |
OQ-PFM-NOT-003 | Should HQ also have a console inbox for operational alerts? | The approved scope and later Slack-only decision describe different experiences. | Retain Slack-only delivery; or add a console inbox for HQ recipients. | The product should retain Slack-only routing unless Andrew approves an additional inbox. | CAP-PFM-NOT-013, FEAT-PFM-NOT-05 |
OQ-PFM-NOT-004 | How should external channels name a responsibility resource? | Platform lacks resource display names that the console can resolve. | Include producer-supplied display labels; resolve labels from owning modules during rendering; or omit external resource names. | The product should include the resource display label in producer data before external notification channels begin. | CAP-PFM-NOT-004, CAP-PFM-NOT-014 |
OQ-PFM-NOT-005 | How should concurrent workspaces share a sending lane? | A large campaign can consume capacity ahead of other active senders. | Allocate equal active-workspace shares; weight shares by plan or volume; or retain arrival-order processing. | The product should allocate equal shares among active workspaces and lend unused capacity to other senders. | CAP-PFM-NOT-018 |
OQ-PFM-NOT-006 | Should ending delegated cover notify the delegate? | A delegate can otherwise miss the removal of responsibilities they were covering. | Send an ending announcement; or retain the current silent ending. | The product should announce delegation ending as part of the planned producer adoption. | CAP-PFM-NOT-014 |
OQ-PFM-NOT-007 | Should operator delivery responses expose customer content without an access grant? | Dead-letter and retry operations return channel content outside the History grant boundary. | Require an active workspace grant for content; redact operator responses to status and identity only; or approve global HQ content access. | The product should redact global operator lists and require an active grant for customer content. | CAP-PFM-NOT-012 |
Validation and Limits
The final acceptance commands are npm ci && npm run check and npm test. The corpus check completes with zero errors, and all four conformance tests pass. Source-reference existence, bound test names, rule coverage, concept grain and source pins are inspected separately. The final structured-reference audit checks all structured rule, scenario, journey and intent citations against the pinned files and anchors; compound finding citations are reviewed separately, with the absent brief explicitly recorded. Platform integration, provider, browser and console suites are not executed during this documentation examination; cited historical runs keep their recorded limitations. The missing brief, ownership boundaries and unsupported product decisions remain findings.
Verdict for Andrew
The layer faithfully describes the inspected module at the pinned commits, with unresolved behavior and source limits stated explicitly rather than approved by observation. Its weakest areas are producer adoption outside the source boundary, incomplete browser and provider proof, and unsettled access, ambiguity and sender-ownership policies. Before design begins, the product should resolve those policies, review the open questions and commission the missing producer and delivery acceptance proof.