---
source_sha:
  services-platform: ad3f6a6582843008ed0f5a17b131878d15829af1
  macroservice-libraries: 54536a441935c6e09fdb7f96f0bec71c52ba4e03
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
---

# Identifier Registry: Operational Records

This ledger reserves identifiers before their first use, for the planning layer and the design layer alike. Allocated identifiers remain permanent, including retired artifacts and absorbed earlier-corpus entries. Operations contributes the Commercial Source actor after the previously allocated Platform actors.

## Series

| Series | Allocated | Next free |
|---|---|---|
| `MOD-PFM-OPS` | the module charter | — |
| `FEAT-PFM-OPS-` | 01 to 04 | 05 |
| `CON-PFM-OPS-` | 001 to 004 | 005 |
| `ACT-PFM-` | 035 (operations actor; earlier actors belong to other modules) | 036 |
| `CAP-PFM-OPS-` | 001 to 016 | 017 |
| `JNY-PFM-OPS-` | 001 to 005 | 006 |
| `ATS-PFM-OPS-` | 001 to 016 (one per capability, same number) | 017 |
| `FND-PFM-OPS-` | 001 to 068 (048 to 052 are control findings; 053 to 068 are testing coverage findings) | 069 |
| `OQ-PFM-OPS-` | 001 to 005 (004 and 005 are design questions) | 006 |
| `DOM-PFM-OPS-` | 001 to 004 (one per Key Concept, same number) | 005 |
| `STATE-PFM-OPS-` | 001 to 006 | 007 |
| `WF-PFM-OPS-` | 001 to 017 | 018 |
| `SCR-PFM-OPS-` | 001 to 005 | 006 |
| `ADR-PFM-OPS-` | 001 to 017 | 018 |
| `SVC-PFM-OPS-` | `jobs`, `audit`, `licensing` (one per source module) | — |
| `FAS-PFM-OPS-` | 01 to 04 (one per feature) | 05 |
| `TST-PFM-OPS-` | 001 to 120 | 121 |
| `IOP-PFM-OPS-` | none: the module asks no model a question | 001 |

## Rows Inside Artifacts

| Artifact | Title | Rules (`BR-…-NN`) | Scenarios and edge cases (`SC-…-NN`) | Next free BR | Next free SC |
|---|---|---|---|---|---|
| `CAP-PFM-OPS-001` | Complete background work with a durable record | 01 to 12 | 01 to 03 | 13 | 04 |
| `CAP-PFM-OPS-002` | Resolve interrupted background work | 01 to 12 | 01 to 02 | 13 | 03 |
| `CAP-PFM-OPS-003` | Notify a job’s requester of its outcome | 01 to 11 | 01 to 02 | 12 | 03 |
| `CAP-PFM-OPS-004` | Recover or deliberately stop background work | 01 to 08 | 01 to 02 | 09 | 03 |
| `CAP-PFM-OPS-005` | Inspect background runs within customer reach | 01 to 10 | 01 to 02 | 11 | 03 |
| `CAP-PFM-OPS-006` | Investigate platform jobs in Rhythm HQ | 01 to 09 | 01 to 02 | 10 | 03 |
| `CAP-PFM-OPS-007` | Inspect jobs across Rhythm services | 01 to 07 | 01 to 02 | 08 | 03 |
| `CAP-PFM-OPS-008` | Remember a person’s visits to records | 01 to 10 | 01 to 03 | 11 | 04 |
| `CAP-PFM-OPS-009` | Review a person’s record-view history | 01 to 08 | 01 to 02 | 09 | 03 |
| `CAP-PFM-OPS-010` | Preserve a shared record-activity trail | 01 to 10 | 01 to 02 | 11 | 03 |
| `CAP-PFM-OPS-011` | Make a reasoned exception to application licensing | 01 to 10 | 01 to 02 | 11 | 03 |
| `CAP-PFM-OPS-012` | Derive application licences from commercial contracts | 01 to 19 | 01 to 02 | 20 | 03 |
| `CAP-PFM-OPS-013` | Explain workspace licensing to Rhythm staff | 01 to 08 | 01 to 02 | 09 | 03 |
| `CAP-PFM-OPS-014` | Resolve a workspace’s application availability | 01 to 10 | 01 to 02 | 11 | 03 |
| `CAP-PFM-OPS-015` | Prepare and operate workspace applications | 01 to 10 | 01 to 02 | 11 | 03 |
| `CAP-PFM-OPS-016` | Explain application availability to a customer administrator | 01 to 06 | 01 to 01 | 07 | 02 |

| Journey | Title | Assertions (`AS-…-NN`) | Next free AS |
|---|---|---|---|
| `JNY-PFM-OPS-001` | A customer administrator investigates workspace runs | 01 to 03 | 04 |
| `JNY-PFM-OPS-002` | Rhythm staff recover failed workspace provisioning | 01 to 03 | 04 |
| `JNY-PFM-OPS-003` | A console user returns to recently opened records | 01 to 02 | 03 |
| `JNY-PFM-OPS-004` | Rhythm staff withdraw and restore application access | 01 to 03 | 04 |
| `JNY-PFM-OPS-005` | Commercial contract changes update stored application coverage | 01 to 02 | 03 |

| Acceptance Test Set | Scope | Scenarios (`ATS-…-NN`) | Next free |
|---|---|---|---|
| `ATS-PFM-OPS-001` | `CAP-PFM-OPS-001` | 01 to 17 | 18 |
| `ATS-PFM-OPS-002` | `CAP-PFM-OPS-002` | 01 to 12 | 13 |
| `ATS-PFM-OPS-003` | `CAP-PFM-OPS-003` | 01 to 13 | 14 |
| `ATS-PFM-OPS-004` | `CAP-PFM-OPS-004` | 01 to 11 | 12 |
| `ATS-PFM-OPS-005` | `CAP-PFM-OPS-005` | 01 to 10 | 11 |
| `ATS-PFM-OPS-006` | `CAP-PFM-OPS-006` | 01 to 06 | 07 |
| `ATS-PFM-OPS-007` | `CAP-PFM-OPS-007` | 01 to 08 | 09 |
| `ATS-PFM-OPS-008` | `CAP-PFM-OPS-008` | 01 to 13 | 14 |
| `ATS-PFM-OPS-009` | `CAP-PFM-OPS-009` | 01 to 07 | 08 |
| `ATS-PFM-OPS-010` | `CAP-PFM-OPS-010` | 01 to 13 | 14 |
| `ATS-PFM-OPS-011` | `CAP-PFM-OPS-011` | 01 to 17 | 18 |
| `ATS-PFM-OPS-012` | `CAP-PFM-OPS-012` | 01 to 19 | 20 |
| `ATS-PFM-OPS-013` | `CAP-PFM-OPS-013` | 01 to 09 | 10 |
| `ATS-PFM-OPS-014` | `CAP-PFM-OPS-014` | 01 to 15 | 16 |
| `ATS-PFM-OPS-015` | `CAP-PFM-OPS-015` | 01 to 15 | 16 |
| `ATS-PFM-OPS-016` | `CAP-PFM-OPS-016` | 01 to 06 | 07 |

| Domain Object | Title | Invariants (`INV-…-NN`) | Next free INV |
|---|---|---|---|
| `DOM-PFM-OPS-001` | Background Job | 01 to 12 | 13 |
| `DOM-PFM-OPS-002` | Record Activity Event | 01 to 09 | 10 |
| `DOM-PFM-OPS-003` | Licence | 01 to 11 | 12 |
| `DOM-PFM-OPS-004` | Workspace Application | 01 to 08 | 09 |

| Design artifact | Title |
|---|---|
| `STATE-PFM-OPS-001` | Background job lifecycle |
| `STATE-PFM-OPS-002` | Job step lifecycle |
| `STATE-PFM-OPS-003` | Requester notice delivery |
| `STATE-PFM-OPS-004` | Licence override lifecycle |
| `STATE-PFM-OPS-005` | Contract licence window standing |
| `STATE-PFM-OPS-006` | Workspace application operational state |
| `WF-PFM-OPS-001` | Submit a background job and start its execution |
| `WF-PFM-OPS-002` | Run a job's steps through to its outcome |
| `WF-PFM-OPS-003` | Settle stalled jobs on the five-minute pass |
| `WF-PFM-OPS-004` | Tell a job's requester how it ended |
| `WF-PFM-OPS-005` | Retry a failed job without repeating finished steps |
| `WF-PFM-OPS-006` | Stop a running job on request |
| `WF-PFM-OPS-007` | Answer job reads across every service |
| `WF-PFM-OPS-008` | Record that a person opened a record |
| `WF-PFM-OPS-009` | Remove a deleted workspace's operational records |
| `WF-PFM-OPS-010` | Make or withdraw a staff licence override |
| `WF-PFM-OPS-011` | Bring an application into operation for a workspace |
| `WF-PFM-OPS-012` | Suspend or resume a workspace application |
| `WF-PFM-OPS-013` | Read one commercial company into licence windows |
| `WF-PFM-OPS-014` | Turn a HubSpot notification into queued company reads |
| `WF-PFM-OPS-015` | Re-read every linked company each night |
| `WF-PFM-OPS-016` | Carry a licensing change into access decisions |
| `WF-PFM-OPS-017` | Seed development licences for development workspaces |
| `SCR-PFM-OPS-001` | Scheduled Jobs |
| `SCR-PFM-OPS-002` | Rhythm HQ Jobs list |
| `SCR-PFM-OPS-003` | Rhythm HQ job page |
| `SCR-PFM-OPS-004` | Rhythm HQ workspace licensing section |
| `SCR-PFM-OPS-005` | Rhythm HQ recent jobs card |
| `ADR-PFM-OPS-001` to `ADR-PFM-OPS-017` | Decision Records (titles in their files) |
| `SVC-PFM-OPS-jobs` | Background Jobs service contract |
| `SVC-PFM-OPS-audit` | Record Activity service contract |
| `SVC-PFM-OPS-licensing` | Licensing and Application Standing service contract |

## Testing Back-fill Reservations

Feature suites reserve scenario numbers 01 to 05 each; their next free scenario number is 06. Capability scenario allocations below preserve the earlier rows and add related-capability interaction proof.

| Artifact | New scenario allocation |
|---|---|
| `ATS-PFM-OPS-001` | 09 to 12 |
| `ATS-PFM-OPS-002` | 09 to 10 |
| `ATS-PFM-OPS-003` | 08 to 09 |
| `ATS-PFM-OPS-004` | 08 to 10 |
| `ATS-PFM-OPS-005` | 10 to 10 |
| `ATS-PFM-OPS-006` | 05 to 06 |
| `ATS-PFM-OPS-007` | 07 to 08 |
| `ATS-PFM-OPS-008` | 12 to 13 |
| `ATS-PFM-OPS-009` | 07 to 07 |
| `ATS-PFM-OPS-010` | 10 to 12 |
| `ATS-PFM-OPS-011` | 12 to 15 |
| `ATS-PFM-OPS-012` | 14 to 16 |
| `ATS-PFM-OPS-013` | 07 to 09 |
| `ATS-PFM-OPS-014` | 08 to 12 |
| `ATS-PFM-OPS-015` | 09 to 12 |
| `ATS-PFM-OPS-016` | 04 to 06 |

| Executable suite | Source file |
|---|---|
| `TST-PFM-OPS-001` | `macroservice-libraries:packages/jobs/src/architecture.spec.ts` |
| `TST-PFM-OPS-002` | `macroservice-libraries:packages/jobs/src/aws/job-state-machine.spec.ts` |
| `TST-PFM-OPS-003` | `macroservice-libraries:packages/jobs/src/engine/job-cancellation.spec.ts` |
| `TST-PFM-OPS-004` | `macroservice-libraries:packages/jobs/src/engine/job-continuation.spec.ts` |
| `TST-PFM-OPS-005` | `macroservice-libraries:packages/jobs/src/engine/job-engine.spec.ts` |
| `TST-PFM-OPS-006` | `macroservice-libraries:packages/jobs/src/engine/job-root-status-model.spec.ts` |
| `TST-PFM-OPS-007` | `macroservice-libraries:packages/jobs/src/engine/job-step-status-model.spec.ts` |
| `TST-PFM-OPS-008` | `macroservice-libraries:packages/jobs/src/engine/local-job-runner.spec.ts` |
| `TST-PFM-OPS-009` | `macroservice-libraries:packages/jobs/src/engine/start-job-execution.spec.ts` |
| `TST-PFM-OPS-010` | `macroservice-libraries:packages/jobs/src/persistence/cross-job-history.views.spec.ts` |
| `TST-PFM-OPS-011` | `macroservice-libraries:packages/jobs/src/persistence/cross-job-query.view.spec.ts` |
| `TST-PFM-OPS-012` | `macroservice-libraries:packages/jobs/src/reconciler/job-reconciler-handler.spec.ts` |
| `TST-PFM-OPS-013` | `macroservice-libraries:packages/jobs/src/reconciler/job-reconciler.spec.ts` |
| `TST-PFM-OPS-014` | `macroservice-libraries:packages/jobs/src/testing/in-memory-job-repository.spec.ts` |
| `TST-PFM-OPS-015` | `macroservice-libraries:packages/jobs/src/tests/integration/cross-job-query.integration.spec.ts` |
| `TST-PFM-OPS-016` | `macroservice-libraries:packages/jobs/src/tests/integration/cross-job-schemas.integration.spec.ts` |
| `TST-PFM-OPS-017` | `macroservice-libraries:packages/jobs/src/tests/integration/job-family-repository.integration.spec.ts` |
| `TST-PFM-OPS-018` | `macroservice-libraries:packages/jobs/src/workflow/job-workflow-continuation.spec.ts` |
| `TST-PFM-OPS-019` | `macroservice-libraries:packages/jobs/src/workflow/job-workflow.spec.ts` |
| `TST-PFM-OPS-020` | `react-console:acceptance/committees/playwright/journeys/committees/CMT-ACC-0034.spec.ts` |
| `TST-PFM-OPS-021` | `react-console:acceptance/committees/playwright/journeys/platform-integration/CMT-ACC-0472.spec.ts` |
| `TST-PFM-OPS-022` | `react-console:acceptance/committees/playwright/journeys/seats-and-appointments/CMT-ACC-0125.spec.ts` |
| `TST-PFM-OPS-023` | `react-console:acceptance/crm/playwright/journeys/auditing/CRM-ACC-0612.spec.ts` |
| `TST-PFM-OPS-024` | `react-console:acceptance/crm/playwright/journeys/auditing/CRM-ACC-0613.spec.ts` |
| `TST-PFM-OPS-025` | `react-console:acceptance/crm/playwright/journeys/auditing/CRM-ACC-0614.spec.ts` |
| `TST-PFM-OPS-026` | `react-console:acceptance/crm/playwright/journeys/auditing/CRM-ACC-0615.spec.ts` |
| `TST-PFM-OPS-027` | `react-console:acceptance/crm/playwright/journeys/auditing/CRM-ACC-0616.spec.ts` |
| `TST-PFM-OPS-028` | `react-console:acceptance/crm/playwright/journeys/contacts/CRM-ACC-0029.spec.ts` |
| `TST-PFM-OPS-029` | `react-console:acceptance/crm/playwright/journeys/contacts/CRM-ACC-0047.spec.ts` |
| `TST-PFM-OPS-030` | `react-console:acceptance/crm/playwright/journeys/contacts/CRM-ACC-0050.spec.ts` |
| `TST-PFM-OPS-031` | `react-console:acceptance/crm/playwright/journeys/cross-application/CRM-ACC-0722.spec.ts` |
| `TST-PFM-OPS-032` | `react-console:acceptance/crm/playwright/journeys/explorer/CRM-ACC-0390.spec.ts` |
| `TST-PFM-OPS-033` | `react-console:acceptance/crm/playwright/journeys/explorer/CRM-ACC-0405.spec.ts` |
| `TST-PFM-OPS-034` | `react-console:acceptance/crm/playwright/journeys/explorer/CRM-ACC-0412.spec.ts` |
| `TST-PFM-OPS-035` | `react-console:acceptance/crm/playwright/journeys/explorer/CRM-ACC-0414.spec.ts` |
| `TST-PFM-OPS-036` | `react-console:acceptance/crm/playwright/journeys/explorer/CRM-ACC-0415.spec.ts` |
| `TST-PFM-OPS-037` | `react-console:acceptance/crm/playwright/journeys/explorer/CRM-ACC-0432.spec.ts` |
| `TST-PFM-OPS-038` | `react-console:acceptance/crm/playwright/journeys/explorer/CRM-ACC-0434.spec.ts` |
| `TST-PFM-OPS-039` | `react-console:acceptance/crm/playwright/journeys/explorer/CRM-ACC-0435.spec.ts` |
| `TST-PFM-OPS-040` | `react-console:acceptance/crm/playwright/journeys/merging/CRM-ACC-0267.spec.ts` |
| `TST-PFM-OPS-041` | `react-console:acceptance/crm/playwright/journeys/queries/CRM-ACC-0500.spec.ts` |
| `TST-PFM-OPS-042` | `react-console:acceptance/crm/playwright/journeys/security/CRM-ACC-0547.spec.ts` |
| `TST-PFM-OPS-043` | `react-console:acceptance/crm/playwright/journeys/security/CRM-ACC-0550.spec.ts` |
| `TST-PFM-OPS-044` | `react-console:acceptance/crm/playwright/journeys/security/CRM-ACC-0551.spec.ts` |
| `TST-PFM-OPS-045` | `react-console:acceptance/crm/playwright/journeys/security/CRM-ACC-0553.spec.ts` |
| `TST-PFM-OPS-046` | `react-console:acceptance/crm/playwright/journeys/security/CRM-ACC-0574.spec.ts` |
| `TST-PFM-OPS-047` | `react-console:acceptance/eligibility/playwright/journeys/governance/ELIG-ACC-0145.spec.ts` |
| `TST-PFM-OPS-048` | `react-console:e2e/controlled/record-views.controlled.spec.ts` |
| `TST-PFM-OPS-049` | `react-console:e2e/dev/hq-home.dev.spec.ts` |
| `TST-PFM-OPS-050` | `react-console:e2e/dev/hq-licensing.dev.spec.ts` |
| `TST-PFM-OPS-051` | `react-console:e2e/dev/hq-ops.dev.spec.ts` |
| `TST-PFM-OPS-052` | `react-console:e2e/dev/record-views.dev.spec.ts` |
| `TST-PFM-OPS-053` | `react-console:e2e/mock/application-access.mock.spec.ts` |
| `TST-PFM-OPS-054` | `react-console:e2e/mock/hq-ops.mock.spec.ts` |
| `TST-PFM-OPS-055` | `react-console:e2e/mock/maintenance-job-runs.mock.spec.ts` |
| `TST-PFM-OPS-056` | `services-platform:modules/audit/tests/e2e/record-views.e2e.spec.js` |
| `TST-PFM-OPS-057` | `services-platform:modules/audit/tests/integration/db/audit-events.table.integration.spec.js` |
| `TST-PFM-OPS-058` | `services-platform:modules/audit/tests/integration/services/persistence/audit-events.integration.spec.js` |
| `TST-PFM-OPS-059` | `services-platform:modules/audit/tests/integration/services/persistence/audit-events.queries.integration.spec.js` |
| `TST-PFM-OPS-060` | `services-platform:modules/audit/tests/integration/services/record-views/record-view.integration.spec.js` |
| `TST-PFM-OPS-061` | `services-platform:modules/audit/tests/integration/services/record-views/view-history.integration.spec.js` |
| `TST-PFM-OPS-062` | `services-platform:modules/audit/tests/unit/aws/api/audit-api-mapper.spec.ts` |
| `TST-PFM-OPS-063` | `services-platform:modules/audit/tests/unit/aws/api/audit-evaluated-keys.spec.ts` |
| `TST-PFM-OPS-064` | `services-platform:modules/audit/tests/unit/aws/api/audit-permissions.spec.ts` |
| `TST-PFM-OPS-065` | `services-platform:modules/audit/tests/unit/registry/viewable-record-types.spec.ts` |
| `TST-PFM-OPS-066` | `services-platform:modules/jobs/tests/e2e/jobs-tenant-runs.e2e.spec.js` |
| `TST-PFM-OPS-067` | `services-platform:modules/jobs/tests/e2e/jobs.e2e.spec.js` |
| `TST-PFM-OPS-068` | `services-platform:modules/jobs/tests/integration/db/cross-job-query.integration.spec.js` |
| `TST-PFM-OPS-069` | `services-platform:modules/jobs/tests/integration/lifecycle/job-reconciliation/job-reconciliation.integration.spec.js` |
| `TST-PFM-OPS-070` | `services-platform:modules/jobs/tests/integration/services/job-snapshot/job-snapshot.integration.spec.js` |
| `TST-PFM-OPS-071` | `services-platform:modules/jobs/tests/integration/services/persistence/job-notices.integration.spec.js` |
| `TST-PFM-OPS-072` | `services-platform:modules/jobs/tests/integration/services/persistence/jobs.integration.spec.js` |
| `TST-PFM-OPS-073` | `services-platform:modules/jobs/tests/integration/services/persistence/jobs.queries.integration.spec.js` |
| `TST-PFM-OPS-074` | `services-platform:modules/jobs/tests/integration/services/snapshots/cross-service-jobs.integration.spec.js` |
| `TST-PFM-OPS-075` | `services-platform:modules/jobs/tests/integration/services/subjects/job-subject.integration.spec.js` |
| `TST-PFM-OPS-076` | `services-platform:modules/jobs/tests/unit/cross-job-query.view.spec.js` |
| `TST-PFM-OPS-077` | `services-platform:modules/jobs/tests/unit/job-failure-consequences.spec.js` |
| `TST-PFM-OPS-078` | `services-platform:modules/jobs/tests/unit/job-kind-labels.spec.js` |
| `TST-PFM-OPS-079` | `services-platform:modules/jobs/tests/unit/services/notices/job-notice-email.spec.js` |
| `TST-PFM-OPS-080` | `services-platform:modules/licensing/tests/e2e/hubspot-licensing.e2e.spec.js` |
| `TST-PFM-OPS-081` | `services-platform:modules/licensing/tests/e2e/licensing.e2e.spec.js` |
| `TST-PFM-OPS-082` | `services-platform:modules/licensing/tests/integration/db/applications.table.integration.spec.js` |
| `TST-PFM-OPS-083` | `services-platform:modules/licensing/tests/integration/db/data-export-entitlements.table.integration.spec.js` |
| `TST-PFM-OPS-084` | `services-platform:modules/licensing/tests/integration/db/hubspot-licence-source.table.integration.spec.js` |
| `TST-PFM-OPS-085` | `services-platform:modules/licensing/tests/integration/db/licence-overrides.table.integration.spec.js` |
| `TST-PFM-OPS-086` | `services-platform:modules/licensing/tests/integration/db/tenant-applications.table.integration.spec.js` |
| `TST-PFM-OPS-087` | `services-platform:modules/licensing/tests/integration/services/enablement/provision-tenant-application.integration.spec.js` |
| `TST-PFM-OPS-088` | `services-platform:modules/licensing/tests/integration/services/enablement/seed-development-licences.deletion.integration.spec.js` |
| `TST-PFM-OPS-089` | `services-platform:modules/licensing/tests/integration/services/enablement/seed-development-licences.integration.spec.js` |
| `TST-PFM-OPS-090` | `services-platform:modules/licensing/tests/integration/services/enablement/seed-development-licences.revoked.integration.spec.js` |
| `TST-PFM-OPS-091` | `services-platform:modules/licensing/tests/integration/services/persistence/applications.integration.spec.js` |
| `TST-PFM-OPS-092` | `services-platform:modules/licensing/tests/integration/services/persistence/applications.queries.integration.spec.js` |
| `TST-PFM-OPS-093` | `services-platform:modules/licensing/tests/integration/services/persistence/commercial-products.integration.spec.js` |
| `TST-PFM-OPS-094` | `services-platform:modules/licensing/tests/integration/services/persistence/commercial-products.queries.integration.spec.js` |
| `TST-PFM-OPS-095` | `services-platform:modules/licensing/tests/integration/services/persistence/data-export-entitlements.integration.spec.js` |
| `TST-PFM-OPS-096` | `services-platform:modules/licensing/tests/integration/services/persistence/hubspot-company-syncs.integration.spec.js` |
| `TST-PFM-OPS-097` | `services-platform:modules/licensing/tests/integration/services/persistence/hubspot-company-syncs.queries.integration.spec.js` |
| `TST-PFM-OPS-098` | `services-platform:modules/licensing/tests/integration/services/persistence/hubspot-contracts.integration.spec.js` |
| `TST-PFM-OPS-099` | `services-platform:modules/licensing/tests/integration/services/persistence/hubspot-contracts.queries.integration.spec.js` |
| `TST-PFM-OPS-100` | `services-platform:modules/licensing/tests/integration/services/persistence/licence-overrides.integration.spec.js` |
| `TST-PFM-OPS-101` | `services-platform:modules/licensing/tests/integration/services/persistence/licence-windows.integration.spec.js` |
| `TST-PFM-OPS-102` | `services-platform:modules/licensing/tests/integration/services/persistence/licence-windows.queries.integration.spec.js` |
| `TST-PFM-OPS-103` | `services-platform:modules/licensing/tests/integration/services/persistence/tenant-applications.availability.integration.spec.js` |
| `TST-PFM-OPS-104` | `services-platform:modules/licensing/tests/integration/services/persistence/tenant-applications.integration.spec.js` |
| `TST-PFM-OPS-105` | `services-platform:modules/licensing/tests/integration/services/persistence/tenant-applications.queries.integration.spec.js` |
| `TST-PFM-OPS-106` | `services-platform:modules/licensing/tests/integration/services/sync/accept-webhook-delivery.integration.spec.js` |
| `TST-PFM-OPS-107` | `services-platform:modules/licensing/tests/integration/services/sync/reconcile-licences.integration.spec.js` |
| `TST-PFM-OPS-108` | `services-platform:modules/licensing/tests/integration/services/sync/sync-company-licences.integration.spec.js` |
| `TST-PFM-OPS-109` | `services-platform:modules/licensing/tests/unit/application-access-permission.spec.ts` |
| `TST-PFM-OPS-110` | `services-platform:modules/licensing/tests/unit/availability/application-availability.spec.ts` |
| `TST-PFM-OPS-111` | `services-platform:modules/licensing/tests/unit/catalog/applications.spec.ts` |
| `TST-PFM-OPS-112` | `services-platform:modules/licensing/tests/unit/catalog/product-grants.spec.ts` |
| `TST-PFM-OPS-113` | `services-platform:modules/licensing/tests/unit/hubspot/webhook-events.spec.ts` |
| `TST-PFM-OPS-114` | `services-platform:modules/licensing/tests/unit/hubspot/webhook-signature.spec.ts` |
| `TST-PFM-OPS-115` | `services-platform:modules/licensing/tests/unit/licences/development-grant-is-needed.spec.ts` |
| `TST-PFM-OPS-116` | `services-platform:modules/licensing/tests/unit/licences/resolve-licence-windows.spec.ts` |
| `TST-PFM-OPS-117` | `services-platform:modules/licensing/tests/unit/licences/seed-development-licences-for-tenant.spec.ts` |
| `TST-PFM-OPS-118` | `services-platform:modules/licensing/tests/unit/sync/sync-queue.spec.ts` |
| `TST-PFM-OPS-119` | `services-platform:modules/tenants/tests/integration/lifecycle/reconciled-job-failure.integration.spec.js` |
| `TST-PFM-OPS-120` | `services-platform:tests/integration/db/merge-participant.integration.spec.ts` |

## Control Gap Allocations

| Id | Controls | Existing Evidence |
|---|---|---|
| `FND-PFM-OPS-048` | `TC-AVL-004`, `TC-PI-004` | `FND-PFM-OPS-033` |
| `FND-PFM-OPS-049` | `TC-LOG-001`, `TC-AZ-006`, `TC-PI-004` | `FND-PFM-OPS-037` |
| `FND-PFM-OPS-050` | `TC-AVL-004`, `TC-PI-002`, `TC-PI-003`, `TC-PI-004` | `FND-PFM-OPS-041` |
| `FND-PFM-OPS-051` | `TC-AVL-004`, `TC-PI-004` | `FND-PFM-OPS-042` |
| `FND-PFM-OPS-052` | `TC-PI-003` | `FND-PFM-OPS-043` |

Additional review reserves `ATS-PFM-OPS-001` scenario numbers 13 to 15 before authoring their proof.

Additional review reserves `ATS-PFM-OPS-002` scenario numbers 11 to 12 before authoring their proof.

Additional review reserves `ATS-PFM-OPS-003` scenario numbers 10 to 12 before authoring their proof.

Additional review reserves `ATS-PFM-OPS-011` scenario numbers 16 to 17 before authoring their proof.

Additional review reserves `ATS-PFM-OPS-012` scenario numbers 17 to 18 before authoring their proof.

Additional review reserves `ATS-PFM-OPS-014` scenario numbers 13 to 15 before authoring their proof.

Additional review reserves `ATS-PFM-OPS-015` scenario numbers 13 to 14 before authoring their proof.

Workflow review reserves `ATS-PFM-OPS-001` scenario numbers 16 to 17 for cross-capability outcome and retirement cases.

Workflow review reserves `ATS-PFM-OPS-003` scenario numbers 13 to 13 for cross-capability outcome and retirement cases.

Workflow review reserves `ATS-PFM-OPS-004` scenario numbers 11 to 11 for cross-capability outcome and retirement cases.

Workflow review reserves `ATS-PFM-OPS-010` scenario numbers 13 to 13 for cross-capability outcome and retirement cases.

Workflow review reserves `ATS-PFM-OPS-012` scenario numbers 19 to 19 for cross-capability outcome and retirement cases.

Workflow review reserves `ATS-PFM-OPS-015` scenario numbers 15 to 15 for cross-capability outcome and retirement cases.
