---
source_sha:
  services-platform: ad3f6a6582843008ed0f5a17b131878d15829af1
  services-crm: a8d1364f1dd44b723bb5f9acba12f983e9ec8d69
  services-commerce: c8b66a98e2490617aec38ba5c8165dd9bd0a8f9b
  services-committees: 36129c24daeaadcdb339218c38cdeaff9861359d
  services-membership: 5994c270e8a37a30f848e99ba5b5ee6b87c08893
  services-submissions: 64236c19be89579ef5897aad7de3925ed3ce03bf
  services-websites: 5fc6823c69d5e6f208c21dba8c0eb3132f8bdc4c
  services-marketing: d071a159fe9782bb71ff246d5c67d5bbfe07fbfa
---

# ID Registry: Platform → Workspace Lifecycle

This ledger retains module and row allocations with the next available number for each series. Existing identities remain reserved permanently. Platform actors use the shared product-area series, and this module’s added actors follow its earlier allocations.

## Series

| Series | Allocated | Next free |
|---|---|---|
| `FEAT-PFM-TNL-` | 01 to 06 | 07 |
| `CON-PFM-TNL-` | 001 to 005 | 006 |
| `ACT-PFM-` | 001 to 038 (product-area wide; this module adds 035 to 038) | 039 |
| `MOD-PFM-TNL` | the module charter | — |
| `CAP-PFM-TNL-` | 001 to 018 | 019 |
| `JNY-PFM-TNL-` | 001 to 005 | 006 |
| `ATS-PFM-TNL-` | 001 to 018 (one per capability, same number) | 019 |
| `FND-PFM-TNL-` | 001 to 065 (retained); 066 to 086 (testing continuation) | 087 |
| `OQ-PFM-TNL-` | 001 to 004 (planning); 005 (design, 2026-10-23) | 006 |
| `DOM-PFM-TNL-` | 001 to 005 (one per Key Concept, same number) | 006 |
| `STATE-PFM-TNL-` | 001 to 006 | 007 |
| `WF-PFM-TNL-` | 001 to 017 | 018 |
| `SVC-PFM-TNL-` | `tenants`, `crm-tenant-lifecycle`, `commerce-tenant-lifecycle`, `committees-tenant-lifecycle`, `membership-tenant-lifecycle`, `submissions-tenant-lifecycle`, `websites-tenant-lifecycle`, `marketing-tenant-lifecycle` | — |
| `SCR-PFM-TNL-` | 001 to 004 | 005 |
| `ADR-PFM-TNL-` | 001 to 018 | 019 |
| `IOP-PFM-TNL-` | none: no path of this module asks a model anything | 001 |
| `FAS-PFM-TNL-` | 01 to 06 (one per feature) | 07 |
| `TST-PFM-TNL-` | 001 to 120 (one per executable test file) | 121 |

## Rows Inside Artifacts

| Artifact | Title | Rules (`BR-…-NN`) | Scenarios (`SC-…-NN`) | Next free BR | Next free SC |
|---|---|---|---|---|---|
| `CAP-PFM-TNL-001` | Request a complete customer workspace | 01 to 10 | 01 to 02 | 11 | 03 |
| `CAP-PFM-TNL-002` | Open a workspace after its applications are ready | 01 to 09 | 01 to 02 | 10 | 03 |
| `CAP-PFM-TNL-003` | Understand and recover a workspace build | 01 to 08 | 01 to 02 | 09 | 03 |
| `CAP-PFM-TNL-004` | Prepare the customer’s first access and sender | 01 to 09 | 01 to 01 | 10 | 02 |
| `CAP-PFM-TNL-005` | Apply workspace availability consistently | 01 to 09 | 01 to 02 | 10 | 03 |
| `CAP-PFM-TNL-006` | Preserve valid workspace lifecycle states | 01 to 07 | 01 to 01 | 08 | 02 |
| `CAP-PFM-TNL-007` | Account for each application’s lifecycle responsibilities | 01 to 09 | 01 to 02 | 10 | 03 |
| `CAP-PFM-TNL-008` | Apply defaults without undoing customer choices | 01 to 08 | 01 to 02 | 09 | 03 |
| `CAP-PFM-TNL-009` | Maintain the baseline of existing workspaces | 01 to 08 | 01 to 01 | 09 | 02 |
| `CAP-PFM-TNL-010` | Supply application data for workspace exports | 01 to 06 | 01 to 01 | 07 | 02 |
| `CAP-PFM-TNL-011` | Control the initial import and subsequent opening | 01 to 06 | 01 to 01 | 07 | 02 |
| `CAP-PFM-TNL-012` | Recover an incorrect initial import | 01 to 11 | 01 to 01 | 12 | 02 |
| `CAP-PFM-TNL-013` | Schedule deliberate workspace deletion | 01 to 12 | 01 to 02 | 13 | 03 |
| `CAP-PFM-TNL-014` | Pause or cancel deletion while preservation remains possible | 01 to 08 | 01 to 02 | 09 | 03 |
| `CAP-PFM-TNL-015` | Keep deletion decisions visible to staff | 01 to 08 | 01 to 01 | 09 | 02 |
| `CAP-PFM-TNL-016` | Revalidate the irreversible deletion decision | 01 to 08 | 01 to 01 | 09 | 02 |
| `CAP-PFM-TNL-017` | Remove declared workspace resources and verify the result | 01 to 14 | 01 to 01 | 15 | 02 |
| `CAP-PFM-TNL-018` | Retain deletion evidence and prevent identifier reuse | 01 to 09 | 01 to 02 | 10 | 03 |

| Journey | Title | Assertions (`AS-…-NN`) | Next free AS |
|---|---|---|---|
| `JNY-PFM-TNL-001` | Staff establish the customer’s first workspace | 01 to 04 | 05 |
| `JNY-PFM-TNL-002` | Staff finish an interrupted workspace build | 01 to 03 | 04 |
| `JNY-PFM-TNL-003` | Staff correct an import and approve opening | 01 to 03 | 04 |
| `JNY-PFM-TNL-004` | Staff complete a departed customer’s deletion | 01 to 04 | 05 |
| `JNY-PFM-TNL-005` | CRM delivers new defaults to existing workspaces | 01 to 03 | 04 |

| Capability Test Specification | Scope | Scenarios (`ATS-…-NN`) | Next free |
|---|---|---|---|
| `ATS-PFM-TNL-001` | `CAP-PFM-TNL-001` | 01 to 09 | 10 |
| `ATS-PFM-TNL-002` | `CAP-PFM-TNL-002` | 01 to 08 | 09 |
| `ATS-PFM-TNL-003` | `CAP-PFM-TNL-003` | 01 to 10 | 11 |
| `ATS-PFM-TNL-004` | `CAP-PFM-TNL-004` | 01 to 10 | 11 |
| `ATS-PFM-TNL-005` | `CAP-PFM-TNL-005` | 01 to 10 | 11 |
| `ATS-PFM-TNL-006` | `CAP-PFM-TNL-006` | 01 to 07 | 08 |
| `ATS-PFM-TNL-007` | `CAP-PFM-TNL-007` | 01 to 08 | 09 |
| `ATS-PFM-TNL-008` | `CAP-PFM-TNL-008` | 01 to 08 | 09 |
| `ATS-PFM-TNL-009` | `CAP-PFM-TNL-009` | 01 to 08 | 09 |
| `ATS-PFM-TNL-010` | `CAP-PFM-TNL-010` | 01 to 05 | 06 |
| `ATS-PFM-TNL-011` | `CAP-PFM-TNL-011` | 01 to 07 | 08 |
| `ATS-PFM-TNL-012` | `CAP-PFM-TNL-012` | 01 to 11 | 12 |
| `ATS-PFM-TNL-013` | `CAP-PFM-TNL-013` | 01 to 11 | 12 |
| `ATS-PFM-TNL-014` | `CAP-PFM-TNL-014` | 01 to 07 | 08 |
| `ATS-PFM-TNL-015` | `CAP-PFM-TNL-015` | 01 to 06 | 07 |
| `ATS-PFM-TNL-016` | `CAP-PFM-TNL-016` | 01 to 09 | 10 |
| `ATS-PFM-TNL-017` | `CAP-PFM-TNL-017` | 01 to 16 | 17 |
| `ATS-PFM-TNL-018` | `CAP-PFM-TNL-018` | 01 to 07 | 08 |

## Design Rows Inside Artifacts

| Artifact | Title | Invariants (`INV-…-NN`) | Next free |
|---|---|---|---|
| `DOM-PFM-TNL-001` | Workspace Lifecycle | 01 to 08 | 09 |
| `DOM-PFM-TNL-002` | Provisioning | 01 to 07 | 08 |
| `DOM-PFM-TNL-003` | Lifecycle Participant | 01 to 08 | 09 |
| `DOM-PFM-TNL-004` | Initial Data Load | 01 to 06 | 07 |
| `DOM-PFM-TNL-005` | Deletion Request | 01 to 10 | 11 |

| Artifact | Title |
|---|---|
| `STATE-PFM-TNL-001` | Workspace lifecycle |
| `STATE-PFM-TNL-002` | Provisioning attempt |
| `STATE-PFM-TNL-003` | Initial load and its resets |
| `STATE-PFM-TNL-004` | Deletion request |
| `STATE-PFM-TNL-005` | Deletion notice delivery |
| `STATE-PFM-TNL-006` | Registered external resource |
| `WF-PFM-TNL-001` | Submit a request for a new workspace |
| `WF-PFM-TNL-002` | Build a workspace and open it |
| `WF-PFM-TNL-003` | Settle a failed build and tell staff |
| `WF-PFM-TNL-004` | Retry a failed build |
| `WF-PFM-TNL-005` | Give one existing workspace a participant's missing defaults |
| `WF-PFM-TNL-006` | Reconcile the baseline on every CRM deployment |
| `WF-PFM-TNL-007` | Open an initial load and activate it |
| `WF-PFM-TNL-008` | Empty a loading workspace with a reset |
| `WF-PFM-TNL-009` | Request a workspace's deletion |
| `WF-PFM-TNL-010` | Hold, release or cancel a deletion |
| `WF-PFM-TNL-011` | Watch a deletion through its waiting period |
| `WF-PFM-TNL-012` | Cross the point of no return |
| `WF-PFM-TNL-013` | Purge a workspace and prove it is gone |
| `WF-PFM-TNL-014` | Recover a stalled deletion |
| `WF-PFM-TNL-015` | Reapply recorded deletions after a restore |
| `WF-PFM-TNL-016` | Report leftovers and long-disabled workspaces |
| `WF-PFM-TNL-017` | Contribute an application's records to a workspace export |
| `SCR-PFM-TNL-001` | Request deletion dialog |
| `SCR-PFM-TNL-002` | Deletion requests list |
| `SCR-PFM-TNL-003` | Deletion request detail |
| `SCR-PFM-TNL-004` | Workspace unavailable page |
| `ADR-PFM-TNL-001` | Lifecycle orchestration owns the lifecycle; workspace administration owns the record |
| `ADR-PFM-TNL-002` | Only lifecycle workflows write lifecycle state, through one transition table |
| `ADR-PFM-TNL-003` | Availability is derived per request from shared facts, cached thirty seconds |
| `ADR-PFM-TNL-004` | Long lifecycle work is a durable job created with its record and started after commit |
| `ADR-PFM-TNL-005` | Participants are declared, Platform plans from its copies, and its switch wins |
| `ADR-PFM-TNL-006` | A failed build keeps what it built; disposal is a deletion request |
| `ADR-PFM-TNL-007` | Defaults are applied once through a seed ledger and reconciled on deployment |
| `ADR-PFM-TNL-008` | Deletion is deliberate, waits, and is rechecked at a locked point of no return |
| `ADR-PFM-TNL-009` | Deletion notices go to Rhythm staff only, gate destruction, and are delivered at least once |
| `ADR-PFM-TNL-010` | The purge removes in batches, is guarded per batch, verified by inventory, and never reverses |
| `ADR-PFM-TNL-011` | The deletion record outlives the workspace and a ledger outside the database retires it |
| `ADR-PFM-TNL-012` | A reset reuses the purge participants under a classification and only while loading |
| `ADR-PFM-TNL-013` | Lifecycle authority is staff-only and split by consequence |
| `ADR-PFM-TNL-014` | Lifecycle records carry no custom fields |
| `ADR-PFM-TNL-015` | No lifecycle operation is published to Submissions |
| `ADR-PFM-TNL-016` | Lifecycle changes are commands with a reason and the reviewed version |
| `ADR-PFM-TNL-017` | Lifecycle history lives in its own records; purges suppress change capture |
| `ADR-PFM-TNL-018` | Applications stream their own export datasets; the export coordinator owns the package |

## Control Gap Allocations

| Id | Controls | Existing Evidence |
|---|---|---|
| `FND-PFM-TNL-057` | `TC-DAT-004`, `TC-PI-004` | `FND-PFM-TNL-040` |
| `FND-PFM-TNL-058` | `TC-MON-002` | `FND-PFM-TNL-041` |
| `FND-PFM-TNL-059` | `TC-LOG-001`, `TC-DAT-004`, `TC-PI-004`, `TC-AVL-004` | `FND-PFM-TNL-043` |
| `FND-PFM-TNL-060` | `TC-PI-002` | `FND-PFM-TNL-044` |
| `FND-PFM-TNL-061` | `TC-PI-005` | `FND-PFM-TNL-045` |
| `FND-PFM-TNL-062` | `TC-PI-005` | `FND-PFM-TNL-046` |
| `FND-PFM-TNL-063` | `TC-AVL-004`, `TC-PI-004`, `TC-DAT-004` | `FND-PFM-TNL-051` |
| `FND-PFM-TNL-064` | `TC-AVL-004`, `TC-PI-004` | `FND-PFM-TNL-052` |
| `FND-PFM-TNL-065` | `TC-MON-002`, `TC-PI-004` | `FND-PFM-TNL-053` |

## Testing Continuation Allocations

| Series or id | Allocation |
|---|---|
| `FAS-PFM-TNL-01` scenarios | 01 to 05; next free 06 |
| `FAS-PFM-TNL-02` scenarios | 01 to 05; next free 06 |
| `FAS-PFM-TNL-03` scenarios | 01 to 05; next free 06 |
| `FAS-PFM-TNL-04` scenarios | 01 to 05; next free 06 |
| `FAS-PFM-TNL-05` scenarios | 01 to 05; next free 06 |
| `FAS-PFM-TNL-06` scenarios | 01 to 05; next free 06 |
| `FND-PFM-TNL-066` | Category, transition, permission and related-capability coverage gaps for `CAP-PFM-TNL-001`. |
| `FND-PFM-TNL-067` | Category, transition, permission and related-capability coverage gaps for `CAP-PFM-TNL-002`. |
| `FND-PFM-TNL-068` | Category, transition, permission and related-capability coverage gaps for `CAP-PFM-TNL-003`. |
| `FND-PFM-TNL-069` | Category, transition, permission and related-capability coverage gaps for `CAP-PFM-TNL-004`. |
| `FND-PFM-TNL-070` | Category, transition, permission and related-capability coverage gaps for `CAP-PFM-TNL-005`. |
| `FND-PFM-TNL-071` | Category, transition, permission and related-capability coverage gaps for `CAP-PFM-TNL-006`. |
| `FND-PFM-TNL-072` | Category, transition, permission and related-capability coverage gaps for `CAP-PFM-TNL-007`. |
| `FND-PFM-TNL-073` | Category, transition, permission and related-capability coverage gaps for `CAP-PFM-TNL-008`. |
| `FND-PFM-TNL-074` | Category, transition, permission and related-capability coverage gaps for `CAP-PFM-TNL-009`. |
| `FND-PFM-TNL-075` | Category, transition, permission and related-capability coverage gaps for `CAP-PFM-TNL-010`. |
| `FND-PFM-TNL-076` | Category, transition, permission and related-capability coverage gaps for `CAP-PFM-TNL-011`. |
| `FND-PFM-TNL-077` | Category, transition, permission and related-capability coverage gaps for `CAP-PFM-TNL-012`. |
| `FND-PFM-TNL-078` | Category, transition, permission and related-capability coverage gaps for `CAP-PFM-TNL-013`. |
| `FND-PFM-TNL-079` | Category, transition, permission and related-capability coverage gaps for `CAP-PFM-TNL-014`. |
| `FND-PFM-TNL-080` | Category, transition, permission and related-capability coverage gaps for `CAP-PFM-TNL-015`. |
| `FND-PFM-TNL-081` | Category, transition, permission and related-capability coverage gaps for `CAP-PFM-TNL-016`. |
| `FND-PFM-TNL-082` | Category, transition, permission and related-capability coverage gaps for `CAP-PFM-TNL-017`. |
| `FND-PFM-TNL-083` | Category, transition, permission and related-capability coverage gaps for `CAP-PFM-TNL-018`. |
| `FND-PFM-TNL-084` | Unbound executable assertions and delegated test classification. |
| `FND-PFM-TNL-085` | Missing Platform architecture record and missing previous testing report. |
| `FND-PFM-TNL-086` | Proposed feature suites and cross-application execution remain unqualified. |
