---
source_sha:
  services-platform: ad3f6a6582843008ed0f5a17b131878d15829af1
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
---

# ID Registry: Platform → Metadata, Custom Fields, Layouts and Custom Objects

Reserve identifiers before creating artifacts. Reservations remain permanent, including superseded entries. Legacy identities appear only as supersession references, and actor identities belong to the Platform area.

## Series

| Series | Allocated | Next free |
|---|---|---|
| `MOD-PFM-MTD` | Metadata, Custom Fields, Layouts and Custom Objects | — |
| `FEAT-PFM-MTD-` | 01 to 06 | 07 |
| `CON-PFM-MTD-` | 001 to 006 | 007 |
| `ACT-PFM-` | 001 to 006 (product-area wide, first allocation) | 007 |
| `CAP-PFM-MTD-` | 001 to 019 | 020 |
| `JNY-PFM-MTD-` | 001 to 006 | 007 |
| `ATS-PFM-MTD-` | 001 to 019 (one per capability, same number) | 020 |
| `FAS-PFM-MTD-` | 01 to 06 (one per feature) | 07 |
| `TST-PFM-MTD-` | 001 to 140 | 141 |
| `FND-PFM-MTD-` | 001 to 084; 085 (continuation registry conflict) | 086 |
| `OQ-PFM-MTD-` | 001 to 006 | 007 |
| `DOM-PFM-MTD-` | 001 to 006 (the numbers of their concepts) | — |
| `INV-DOM-PFM-MTD-` | per object: 001 rows 01 to 08, 002 rows 01 to 09, 003 rows 01 to 07, 004 rows 01 to 09, 005 rows 01 to 12, 006 rows 01 to 10 | 09, 10, 08, 10, 13, 11 |
| `STATE-PFM-MTD-` | 001 to 010 | 011 |
| `WF-PFM-MTD-` | 001 to 015 | 016 |
| `SVC-PFM-MTD-` | `metadata`, `layouts`, `custom-objects`, `associations`, `files` | — |
| `SCR-PFM-MTD-` | 001 to 018 | 019 |
| `ADR-PFM-MTD-` | 001 to 016 | 017 |
| `IOP-PFM-MTD-` | 001 (query generation consumed by the record list) | 002 |
| `RESP-PFM` | Product-area responsibilities, this module's row | — |

## Allocation

| Id | Title |
|---|---|
| `FEAT-PFM-MTD-01` | Record Type Catalogue |
| `FEAT-PFM-MTD-02` | Additional Fields and Attachments |
| `FEAT-PFM-MTD-03` | Record Presentations |
| `FEAT-PFM-MTD-04` | Organization-defined Record Categories |
| `FEAT-PFM-MTD-05` | Keeping Custom Records |
| `FEAT-PFM-MTD-06` | Linked Records |
| `CON-PFM-MTD-001` | Record Type |
| `CON-PFM-MTD-002` | Custom Field |
| `CON-PFM-MTD-003` | Form and Page Layout |
| `CON-PFM-MTD-004` | Custom Object |
| `CON-PFM-MTD-005` | Custom Record |
| `CON-PFM-MTD-006` | Relationship |
| `ACT-PFM-007` | Workspace Administrator |
| `ACT-PFM-008` | Record Keeper |
| `ACT-PFM-009` | Records Reader |
| `ACT-PFM-010` | Records Administrator |
| `ACT-PFM-011` | Owning Service |
| `ACT-PFM-012` | Rhythm Platform |
| `CAP-PFM-MTD-001` | Keep the Record Catalogue Current |
| `CAP-PFM-MTD-002` | Describe Records for Shared Clients |
| `CAP-PFM-MTD-003` | Keep Configurability Within Product Scope |
| `CAP-PFM-MTD-004` | Use Workspace Labels for Standard Fields |
| `CAP-PFM-MTD-005` | Extend Records With Durable Custom Fields |
| `CAP-PFM-MTD-006` | Configure Field Requirements and Exposure |
| `CAP-PFM-MTD-007` | Prepare Image and File Uploads |
| `CAP-PFM-MTD-008` | Manage Shared Forms and Record Layouts |
| `CAP-PFM-MTD-009` | Bring a Custom Record Type Into Use |
| `CAP-PFM-MTD-010` | Make Custom Records Discoverable |
| `CAP-PFM-MTD-011` | Control Custom Record Audiences |
| `CAP-PFM-MTD-012` | Maintain Valid Custom Records |
| `CAP-PFM-MTD-013` | Retire or Publish Custom Records |
| `CAP-PFM-MTD-014` | Explain Custom Record Changes |
| `CAP-PFM-MTD-015` | Deliver Committed Record and Link Events |
| `CAP-PFM-MTD-016` | Load and Reconcile Record Files |
| `CAP-PFM-MTD-017` | Define Meaningful Record Relationships |
| `CAP-PFM-MTD-018` | Maintain Dated Links Between Records |
| `CAP-PFM-MTD-019` | Preserve Relationships Through Deletion and Merge |
| `JNY-PFM-MTD-001` | Create a club register and its first boat |
| `JNY-PFM-MTD-002` | Maintain a boat and inspect its changes |
| `JNY-PFM-MTD-003` | Limit a sensitive register to its assigned role |
| `JNY-PFM-MTD-004` | Define connections and maintain dated links |
| `JNY-PFM-MTD-005` | Apply deletion policies and consolidate duplicate endpoints |
| `JNY-PFM-MTD-006` | Add a contact field and inspect its description |

## Rows Inside Artifacts

| Artifact | Rules (`BR-…-NN`) | Scenarios and edge cases (`SC-…-NN`) | Next free BR | Next free SC |
|---|---|---|---|---|
| `CAP-PFM-MTD-001` | 01 to 10 | 01 to 02 | 11 | 03 |
| `CAP-PFM-MTD-002` | 01 to 08 | 01 to 02 | 09 | 03 |
| `CAP-PFM-MTD-003` | 01 to 08 | 01 to 02 | 09 | 03 |
| `CAP-PFM-MTD-004` | 01 to 06 | 01 to 01 | 07 | 02 |
| `CAP-PFM-MTD-005` | 01 to 13 | 01 to 02 | 14 | 03 |
| `CAP-PFM-MTD-006` | 01 to 09 | 01 to 02 | 10 | 03 |
| `CAP-PFM-MTD-007` | 01 to 08 | 01 to 02 | 09 | 03 |
| `CAP-PFM-MTD-008` | 01 to 13 | 01 to 02 | 14 | 03 |
| `CAP-PFM-MTD-009` | 01 to 12 | 01 to 02 | 13 | 03 |
| `CAP-PFM-MTD-010` | 01 to 09 | 01 to 02 | 10 | 03 |
| `CAP-PFM-MTD-011` | 01 to 09 | 01 to 02 | 10 | 03 |
| `CAP-PFM-MTD-012` | 01 to 15 | 01 to 03 | 16 | 04 |
| `CAP-PFM-MTD-013` | 01 to 10 | 01 to 02 | 11 | 03 |
| `CAP-PFM-MTD-014` | 01 to 08 | 01 to 01 | 09 | 02 |
| `CAP-PFM-MTD-015` | 01 to 09 | 01 to 02 | 10 | 03 |
| `CAP-PFM-MTD-016` | 01 to 08 | 01 to 01 | 09 | 02 |
| `CAP-PFM-MTD-017` | 01 to 10 | 01 to 02 | 11 | 03 |
| `CAP-PFM-MTD-018` | 01 to 13 | 01 to 02 | 14 | 03 |
| `CAP-PFM-MTD-019` | 01 to 10 | 01 to 02 | 11 | 03 |

| Journey | Assertions (`AS-…-NN`) | Next free AS |
|---|---|---|
| `JNY-PFM-MTD-001` | 01 to 03 | 04 |
| `JNY-PFM-MTD-002` | 01 to 03 | 04 |
| `JNY-PFM-MTD-003` | 01 to 02 | 03 |
| `JNY-PFM-MTD-004` | 01 to 03 | 04 |
| `JNY-PFM-MTD-005` | 01 to 03 | 04 |
| `JNY-PFM-MTD-006` | 01 to 02 | 03 |

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

## Examination Allocations

| Id | Purpose |
|---|---|
| `FND-PFM-MTD-031` | Independent examination finding 1 |
| `FND-PFM-MTD-032` | Independent examination finding 2 |
| `FND-PFM-MTD-033` | Independent examination finding 3 |
| `FND-PFM-MTD-034` | Independent examination finding 4 |
| `FND-PFM-MTD-035` | Independent examination finding 5 |
| `FND-PFM-MTD-036` | Independent examination finding 6 |
| `FND-PFM-MTD-037` | Independent examination finding 7 |
| `FND-PFM-MTD-038` | Independent examination finding 8 |
| `FND-PFM-MTD-039` | Independent examination finding 9 |
| `FND-PFM-MTD-040` | Independent examination finding 10 |

## Additional Examination Reservation

The examination reserves the next history rule for presentation filtering and the next finding for its missing focused proof.

| Identifier | Purpose |
|---|---|
| `BR-CAP-PFM-MTD-014-08` | Current-description filtering of retained revision values |
| `FND-PFM-MTD-041` | Archived-property history presentation needs focused acceptance |

## Design Allocations

Allocated 2026-10-23 by the design draft (job platform-metadata-desi-draft-1) before any design file was written.

| Id | Name |
|---|---|
| `DOM-PFM-MTD-001` | Record Type |
| `DOM-PFM-MTD-002` | Custom Field |
| `DOM-PFM-MTD-003` | Form and Page Layout |
| `DOM-PFM-MTD-004` | Custom Object |
| `DOM-PFM-MTD-005` | Custom Record |
| `DOM-PFM-MTD-006` | Relationship |
| `STATE-PFM-MTD-001` | Registered declaration lifecycle |
| `STATE-PFM-MTD-002` | Custom field definition lifecycle |
| `STATE-PFM-MTD-003` | Custom object definition lifecycle |
| `STATE-PFM-MTD-004` | Custom app lifecycle |
| `STATE-PFM-MTD-005` | Custom record retention lifecycle |
| `STATE-PFM-MTD-006` | Custom record publication |
| `STATE-PFM-MTD-007` | Custom record file lifecycle |
| `STATE-PFM-MTD-008` | Business event delivery |
| `STATE-PFM-MTD-009` | Relationship type lifecycle |
| `STATE-PFM-MTD-010` | Link lifecycle |
| `WF-PFM-MTD-001` | Register an application's record types at deploy |
| `WF-PFM-MTD-002` | Archive a custom field and bring search into line |
| `WF-PFM-MTD-003` | Save a field definition and its rules |
| `WF-PFM-MTD-004` | Design, activate and own a custom object |
| `WF-PFM-MTD-005` | Save a custom record with its files |
| `WF-PFM-MTD-006` | Change a custom record's owner after its save |
| `WF-PFM-MTD-007` | Delete a custom record under its relationship rules |
| `WF-PFM-MTD-008` | Apply relationship rules when CRM deletes a contact or organization |
| `WF-PFM-MTD-009` | Move links and references when CRM merges duplicates |
| `WF-PFM-MTD-010` | Deliver committed business events |
| `WF-PFM-MTD-011` | Sweep the business event ledger nightly |
| `WF-PFM-MTD-012` | Load custom records and links from a file |
| `WF-PFM-MTD-013` | Stage an upload and hand it to the save |
| `WF-PFM-MTD-014` | Capture a custom record's change history at commit |
| `WF-PFM-MTD-015` | Reset or delete a workspace's metadata and custom records |
| `SVC-PFM-MTD-metadata` | Metadata (services-platform modules/metadata) |
| `SVC-PFM-MTD-layouts` | Layouts (services-platform modules/layouts) |
| `SVC-PFM-MTD-custom-objects` | Custom objects and records (services-platform modules/custom-objects) |
| `SVC-PFM-MTD-associations` | Associations (services-platform modules/associations) |
| `SVC-PFM-MTD-files` | Files (services-platform modules/files) |
| `SCR-PFM-MTD-001` | Fields: choose a record type |
| `SCR-PFM-MTD-002` | Fields of a record type |
| `SCR-PFM-MTD-003` | Field editor |
| `SCR-PFM-MTD-004` | Forms: choose a record type |
| `SCR-PFM-MTD-005` | Contact console forms |
| `SCR-PFM-MTD-006` | Contact console form designer |
| `SCR-PFM-MTD-007` | Contact portal forms |
| `SCR-PFM-MTD-008` | Record layouts |
| `SCR-PFM-MTD-009` | Contact record page designer |
| `SCR-PFM-MTD-010` | Custom objects |
| `SCR-PFM-MTD-011` | Custom object designer |
| `SCR-PFM-MTD-012` | Custom apps |
| `SCR-PFM-MTD-013` | Relationship types |
| `SCR-PFM-MTD-014` | Custom record list |
| `SCR-PFM-MTD-015` | New custom record |
| `SCR-PFM-MTD-016` | Custom record page |
| `SCR-PFM-MTD-017` | Edit custom record |
| `SCR-PFM-MTD-018` | Related and owned records cards |
| `ADR-PFM-MTD-001` | Owners register their record types on every deploy, and nothing registered is deleted |
| `ADR-PFM-MTD-002` | Custom fields, forms and layouts follow the registry's capability flags |
| `ADR-PFM-MTD-003` | A field definition only widens; its key and type are permanent |
| `ADR-PFM-MTD-004` | Layout definitions are opaque documents governed by their purpose |
| `ADR-PFM-MTD-005` | Custom objects and records live in Platform's shared typed store |
| `ADR-PFM-MTD-006` | Records of a draft or archived object stay readable and read-only |
| `ADR-PFM-MTD-007` | One set of record keys, scoped per object |
| `ADR-PFM-MTD-008` | Each write commits its audit, history and event together; delivery is eventual |
| `ADR-PFM-MTD-009` | Deletion applies relationship rules all or nothing and announces dependants first |
| `ADR-PFM-MTD-010` | Relationships are Platform's own, beside CRM affiliations, and in force until they end |
| `ADR-PFM-MTD-011` | A replacement states the complete record at the version read |
| `ADR-PFM-MTD-012` | Partial failures are reported, not compensated |
| `ADR-PFM-MTD-013` | Files are staged, bound to the uploader and prepared before the record commits |
| `ADR-PFM-MTD-014` | No operation of this module is published to Submissions |
| `ADR-PFM-MTD-015` | Change history is written by the database at commit and fails closed |
| `ADR-PFM-MTD-016` | Loads use the Data Job Engine and the ordinary writes, with no rollback |
| `FND-PFM-MTD-042` | Custom record file cleanup is not deployed |
| `FND-PFM-MTD-043` | Field archival can answer a failure after it committed |
| `FND-PFM-MTD-044` | Registration's search fan-out stops at a limit and only logs |
| `FND-PFM-MTD-045` | Planning says reset empties relationship types; the code keeps them |
| `FND-PFM-MTD-046` | A draft object's owner choice lives only in one browser |
| `FND-PFM-MTD-047` | A record and its owner are saved by separate calls |
| `FND-PFM-MTD-048` | A field and its rules are saved by separate calls |
| `FND-PFM-MTD-049` | Record Layouts lists sample rows, not stored definitions |
| `FND-PFM-MTD-050` | The Fields chooser does not ask the registry which record types qualify |
| `FND-PFM-MTD-051` | The record list's Ask box reaches a model through Queries; the charter lacks the no-inference sentence |
| `FND-PFM-MTD-052` | Events with no destination leave delivery and are kept only ninety days |
| `FND-PFM-MTD-053` | The upload ledger is never pruned |
| `FND-PFM-MTD-054` | The layout assignment role may be unreachable in deployed environments |
| `FND-PFM-MTD-055` | The charter names the operations module as owner of data jobs |
| `OQ-PFM-MTD-004` | Should multi-call console saves become single service operations? |
| `OQ-PFM-MTD-005` | Where is a draft object's intended owner kept? |
| `OQ-PFM-MTD-006` | Should events published before a destination existed be replayed to it? |

## Design Examination Allocations

Reserved by Codex on 2026-10-23 before writing the corresponding artifacts.

| Id | Purpose |
|---|---|
| `FND-PFM-MTD-056` | Concurrent registrations lack application-wide serialization |
| `FND-PFM-MTD-057` | Lifecycle refusals and guards overstated in the draft; corrected |
| `FND-PFM-MTD-058` | Record Explorer inference omitted from its screen contract; corrected |
| `FND-PFM-MTD-059` | Screen approval and redesign obligations lack a decision record |
| `FND-PFM-MTD-060` | Missing design brief and planning approval not established in this checkout |
| `FND-PFM-MTD-061` | Workflow test provenance and cross-service anchors need correction |
| `FND-PFM-MTD-062` | Runtime event routing and delivery deadlines cannot be established from the pinned tree |
| `IOP-PFM-MTD-001` | Generate filters from a record-list question; consumed Queries operation |
| `IOS-PFM-MTD-001-01` | Generate a simple filter |
| `IOS-PFM-MTD-001-02` | Preserve registered default columns |
| `IOS-PFM-MTD-001-03` | Generate a permitted relationship join |
| `IOS-PFM-MTD-001-04` | Generate a missing-collection condition |

## Testing Back-fill Allocations

Reserved by Codex on 2026-10-23 before writing the test artifacts.

| Id | Controls | Existing Evidence |
|---|---|---|
| `ATS-PFM-MTD-001-08` | A replacement declaration changes the shared description |
| `FND-PFM-MTD-063` | `TC-DAT-003`, `TC-DAT-004`, `TC-AVL-004`, `TC-PI-004` | `FND-PFM-MTD-042` |
| `ATS-PFM-MTD-002-07` | Local presentation follows field lifecycle |
| `FND-PFM-MTD-064` | `TC-PI-004`, `TC-AVL-004` | `FND-PFM-MTD-044` |
| `ATS-PFM-MTD-003-07` | Capability removal closes configuration entry points |
| `FND-PFM-MTD-065` | `TC-AVL-004`, `TC-PI-004` | `FND-PFM-MTD-047` |
| `ATS-PFM-MTD-004-07` | Clearing a local label updates the description |
| `FND-PFM-MTD-066` | `TC-PI-003`, `TC-CHG-007` | `FND-PFM-MTD-056` |
| `ATS-PFM-MTD-005-13` | Archiving a naming property crosses dependency and activation checks |
| `ATS-PFM-MTD-005-14` | Failure after an earlier successful save |
| `FND-PFM-MTD-067` | Remaining specification and executable proof obligations for Extend Records With Durable Custom Fields |
| `ATS-PFM-MTD-006-10` | Uniqueness and exposure affect different record outcomes |
| `ATS-PFM-MTD-006-11` | Failure after an earlier successful save |
| `FND-PFM-MTD-068` | Remaining specification and executable proof obligations for Configure Field Requirements and Exposure |
| `ATS-PFM-MTD-007-08` | A staged file is checked by the owning save |
| `FND-PFM-MTD-069` | Remaining specification and executable proof obligations for Prepare Image and File Uploads |
| `ATS-PFM-MTD-008-12` | Object archival closes form consumption but preserves the record |
| `FND-PFM-MTD-070` | Remaining specification and executable proof obligations for Manage Shared Forms and Record Layouts |
| `ATS-PFM-MTD-009-13` | Activation enables owner setup and navigation |
| `ATS-PFM-MTD-009-14` | Failure after an earlier successful save |
| `FND-PFM-MTD-071` | Remaining specification and executable proof obligations for Bring a Custom Record Type Into Use |
| `ATS-PFM-MTD-010-07` | Reach and lifecycle jointly select navigation |
| `FND-PFM-MTD-072` | Remaining specification and executable proof obligations for Make Custom Records Discoverable |
| `ATS-PFM-MTD-011-08` | An object-specific grant controls independent action permissions |
| `FND-PFM-MTD-073` | Remaining specification and executable proof obligations for Control Custom Record Audiences |
| `ATS-PFM-MTD-012-18` | Saving a prepared record precedes owner-link effects |
| `ATS-PFM-MTD-012-19` | Failure after an earlier successful save |
| `FND-PFM-MTD-074` | Remaining specification and executable proof obligations for Maintain Valid Custom Records |
| `ATS-PFM-MTD-013-10` | A refused cascade preserves records and their evidence |
| `ATS-PFM-MTD-013-11` | All publication state selections |
| `FND-PFM-MTD-075` | Remaining specification and executable proof obligations for Retire or Publish Custom Records |
| `ATS-PFM-MTD-014-07` | A merge updates references and retained history under history reach |
| `FND-PFM-MTD-076` | Remaining specification and executable proof obligations for Explain Custom Record Changes |
| `ATS-PFM-MTD-015-08` | A committed cascade leaves ordered delivery facts |
| `FND-PFM-MTD-077` | Remaining specification and executable proof obligations for Deliver Committed Record and Link Events |
| `ATS-PFM-MTD-016-08` | Object lifecycle changes the outcome of record and link loads |
| `FND-PFM-MTD-078` | Remaining specification and executable proof obligations for Load and Reconcile Record Files |
| `ATS-PFM-MTD-017-09` | A relationship policy controls link creation and deletion |
| `FND-PFM-MTD-079` | Remaining specification and executable proof obligations for Define Meaningful Record Relationships |
| `ATS-PFM-MTD-018-13` | Ending a link changes deletion protection and evidence |
| `FND-PFM-MTD-080` | Remaining specification and executable proof obligations for Maintain Dated Links Between Records |
| `ATS-PFM-MTD-019-10` | Owner deletion preserves the direct-delete evidence contract |
| `FND-PFM-MTD-081` | Remaining specification and executable proof obligations for Preserve Relationships Through Deletion and Merge |
| `FAS-PFM-MTD-01` | Record Type Catalogue acceptance |
| `FAS-PFM-MTD-01-01` | Shared clients receive a configured description |
| `FAS-PFM-MTD-01-02` | Losing a capability changes configuration and description together |
| `FAS-PFM-MTD-01-03` | A retired declaration returns with local configuration |
| `FAS-PFM-MTD-01-04` | Description reads require workspace reach |
| `FAS-PFM-MTD-01-05` | Invalid manifests preserve the previous release |
| `FAS-PFM-MTD-02` | Additional Fields and Attachments acceptance |
| `FAS-PFM-MTD-02-01` | Staff add and recover a custom property |
| `FAS-PFM-MTD-02-02` | A condition dependency blocks archival until corrected |
| `FAS-PFM-MTD-02-03` | Field lifecycle controls later file-valued inputs |
| `FAS-PFM-MTD-02-04` | Upload reach does not confer field administration |
| `FAS-PFM-MTD-02-05` | Widening preserves definitions while invalid rules preserve the preceding set |
| `FAS-PFM-MTD-03` | Record Presentations acceptance |
| `FAS-PFM-MTD-03-01` | An administrator keeps a reusable contact form |
| `FAS-PFM-MTD-03-02` | Object archival changes form consumption and record availability |
| `FAS-PFM-MTD-03-03` | Removing an assignment permits later definition removal |
| `FAS-PFM-MTD-03-04` | Purpose readership does not authorize form administration |
| `FAS-PFM-MTD-03-05` | A stale form save preserves the current version |
| `FAS-PFM-MTD-04` | Organization-defined Record Categories acceptance |
| `FAS-PFM-MTD-04-01` | An administrator brings an owned register into navigation |
| `FAS-PFM-MTD-04-02` | Object-scoped reach changes navigation and record actions together |
| `FAS-PFM-MTD-04-03` | Archiving a register hides its menu and retains old links |
| `FAS-PFM-MTD-04-04` | Read-only staff receive no record administration controls |
| `FAS-PFM-MTD-04-05` | A register without placement remains reachable through its owner |
| `FAS-PFM-MTD-05` | Keeping Custom Records acceptance |
| `FAS-PFM-MTD-05-01` | A registrar saves a numbered boat and reaches it from its owner |
| `FAS-PFM-MTD-05-02` | A deletion cascade publishes dependent changes in order |
| `FAS-PFM-MTD-05-03` | Record lifecycle remains visible in its history |
| `FAS-PFM-MTD-05-04` | History access remains separate after deletion |
| `FAS-PFM-MTD-05-05` | A repeated load preserves a manual correction |
| `FAS-PFM-MTD-06` | Linked Records acceptance |
| `FAS-PFM-MTD-06-01` | Staff maintain a crew connection from either endpoint |
| `FAS-PFM-MTD-06-02` | Merge changes links and reference values to the same survivor |
| `FAS-PFM-MTD-06-03` | A used relationship type retires and returns without losing links |
| `FAS-PFM-MTD-06-04` | Link maintenance and type administration use different grants |
| `FAS-PFM-MTD-06-05` | A future end date still protects a booked place |
| `TST-PFM-MTD-001` | react-console:acceptance/custom-objects/playwright/journeys/PLAT-M5-S01.spec.ts |
| `TST-PFM-MTD-002` | react-console:acceptance/custom-objects/playwright/journeys/PLAT-M5-S02.spec.ts |
| `TST-PFM-MTD-003` | react-console:acceptance/custom-objects/playwright/journeys/PLAT-M5-S03.spec.ts |
| `TST-PFM-MTD-004` | react-console:acceptance/custom-objects/playwright/journeys/PLAT-M5-S04.spec.ts |
| `TST-PFM-MTD-005` | react-console:acceptance/custom-objects/playwright/journeys/PLAT-M5-S05.spec.ts |
| `TST-PFM-MTD-006` | react-console:acceptance/custom-objects/playwright/journeys/PLAT-M5-S06.spec.ts |
| `TST-PFM-MTD-007` | react-console:acceptance/custom-objects/playwright/journeys/PLAT-M5-S07.spec.ts |
| `TST-PFM-MTD-008` | react-console:acceptance/custom-objects/playwright/journeys/PLAT-M5-S08.spec.ts |
| `TST-PFM-MTD-009` | react-console:acceptance/custom-objects/playwright/journeys/PLAT-M5-S09.spec.ts |
| `TST-PFM-MTD-010` | react-console:acceptance/custom-objects/playwright/journeys/PLAT-M5-S10.spec.ts |
| `TST-PFM-MTD-011` | react-console:acceptance/custom-objects/playwright/journeys/PLAT-M5-S11.spec.ts |
| `TST-PFM-MTD-012` | react-console:acceptance/custom-objects/playwright/journeys/PLAT-M5-S12.spec.ts |
| `TST-PFM-MTD-013` | react-console:acceptance/custom-objects/playwright/journeys/PLAT-M5-S13.spec.ts |
| `TST-PFM-MTD-014` | react-console:acceptance/custom-objects/playwright/journeys/PLAT-M5-S14.spec.ts |
| `TST-PFM-MTD-015` | react-console:acceptance/custom-objects/playwright/journeys/PLAT-M6-S01.spec.ts |
| `TST-PFM-MTD-016` | react-console:acceptance/custom-objects/playwright/journeys/PLAT-M6-S02.spec.ts |
| `TST-PFM-MTD-017` | react-console:acceptance/custom-objects/playwright/journeys/PLAT-M6-S03.spec.ts |
| `TST-PFM-MTD-018` | react-console:acceptance/custom-objects/playwright/journeys/PLAT-M6-S04.spec.ts |
| `TST-PFM-MTD-019` | react-console:acceptance/custom-objects/playwright/journeys/PLAT-M6-S05.spec.ts |
| `TST-PFM-MTD-020` | react-console:acceptance/custom-objects/playwright/journeys/PLAT-M6-S06.spec.ts |
| `TST-PFM-MTD-021` | react-console:acceptance/custom-objects/playwright/journeys/PLAT-M6-S07.spec.ts |
| `TST-PFM-MTD-022` | react-console:acceptance/custom-objects/playwright/journeys/PLAT-M6-S08.spec.ts |
| `TST-PFM-MTD-023` | react-console:acceptance/custom-objects/playwright/journeys/PLAT-M6-S09.spec.ts |
| `TST-PFM-MTD-024` | react-console:acceptance/custom-objects/playwright/journeys/PLAT-M6-S10.spec.ts |
| `TST-PFM-MTD-025` | react-console:acceptance/custom-objects/playwright/journeys/PLAT-M6-S11.spec.ts |
| `TST-PFM-MTD-026` | react-console:acceptance/custom-objects/playwright/journeys/PLAT-M6-S12.spec.ts |
| `TST-PFM-MTD-027` | react-console:e2e/dev/contact-forms.dev.spec.ts |
| `TST-PFM-MTD-028` | react-console:e2e/mock/contact-forms.mock.spec.ts |
| `TST-PFM-MTD-029` | react-console:e2e/mock/custom-object-designer.mock.spec.ts |
| `TST-PFM-MTD-030` | react-console:e2e/mock/custom-object-navigation.mock.spec.ts |
| `TST-PFM-MTD-031` | react-console:e2e/mock/custom-object-properties.mock.spec.ts |
| `TST-PFM-MTD-032` | react-console:e2e/mock/custom-objects-owner-card.mock.spec.ts |
| `TST-PFM-MTD-033` | react-console:e2e/mock/custom-objects.mock.spec.ts |
| `TST-PFM-MTD-034` | react-console:e2e/mock/fields-custom-object.mock.spec.ts |
| `TST-PFM-MTD-035` | react-console:e2e/mock/relationship-types.mock.spec.ts |
| `TST-PFM-MTD-036` | services-platform:modules/associations/tests/e2e/associations.e2e.spec.js |
| `TST-PFM-MTD-037` | services-platform:modules/associations/tests/integration/db/apply-endpoint-deletion.integration.spec.js |
| `TST-PFM-MTD-038` | services-platform:modules/associations/tests/integration/db/association-types.table.integration.spec.js |
| `TST-PFM-MTD-039` | services-platform:modules/associations/tests/integration/db/associations-merge.integration.spec.js |
| `TST-PFM-MTD-040` | services-platform:modules/associations/tests/integration/db/associations.table.integration.spec.js |
| `TST-PFM-MTD-041` | services-platform:modules/associations/tests/integration/services/persistence/association-types.integration.spec.js |
| `TST-PFM-MTD-042` | services-platform:modules/associations/tests/integration/services/persistence/association-types.queries.integration.spec.js |
| `TST-PFM-MTD-043` | services-platform:modules/associations/tests/integration/services/persistence/associations.events.integration.spec.js |
| `TST-PFM-MTD-044` | services-platform:modules/associations/tests/integration/services/persistence/associations.in-force.integration.spec.js |
| `TST-PFM-MTD-045` | services-platform:modules/associations/tests/integration/services/persistence/associations.integration.spec.js |
| `TST-PFM-MTD-046` | services-platform:modules/associations/tests/integration/services/persistence/associations.queries.integration.spec.js |
| `TST-PFM-MTD-047` | services-platform:modules/associations/tests/integration/services/persistence/endpoints.integration.spec.js |
| `TST-PFM-MTD-048` | services-platform:modules/custom-objects/tests/e2e/business-events.e2e.spec.js |
| `TST-PFM-MTD-049` | services-platform:modules/custom-objects/tests/e2e/custom-apps.e2e.spec.js |
| `TST-PFM-MTD-050` | services-platform:modules/custom-objects/tests/e2e/custom-object-record-history.e2e.spec.js |
| `TST-PFM-MTD-051` | services-platform:modules/custom-objects/tests/e2e/custom-object-records.e2e.spec.js |
| `TST-PFM-MTD-052` | services-platform:modules/custom-objects/tests/e2e/custom-objects.e2e.spec.js |
| `TST-PFM-MTD-053` | services-platform:modules/custom-objects/tests/integration/db/custom-object-records-merge.integration.spec.js |
| `TST-PFM-MTD-054` | services-platform:modules/custom-objects/tests/integration/db/custom-object-records.table.integration.spec.js |
| `TST-PFM-MTD-055` | services-platform:modules/custom-objects/tests/integration/db/custom-objects.table.integration.spec.js |
| `TST-PFM-MTD-056` | services-platform:modules/custom-objects/tests/integration/services/dispatch/business-events.integration.spec.js |
| `TST-PFM-MTD-057` | services-platform:modules/custom-objects/tests/integration/services/history/custom-object-record-history.integration.spec.js |
| `TST-PFM-MTD-058` | services-platform:modules/custom-objects/tests/integration/services/persistence/business-events.integration.spec.js |
| `TST-PFM-MTD-059` | services-platform:modules/custom-objects/tests/integration/services/persistence/business-events.queries.integration.spec.js |
| `TST-PFM-MTD-060` | services-platform:modules/custom-objects/tests/integration/services/persistence/custom-apps.integration.spec.js |
| `TST-PFM-MTD-061` | services-platform:modules/custom-objects/tests/integration/services/persistence/custom-apps.queries.integration.spec.js |
| `TST-PFM-MTD-062` | services-platform:modules/custom-objects/tests/integration/services/persistence/custom-object-endpoints.integration.spec.js |
| `TST-PFM-MTD-063` | services-platform:modules/custom-objects/tests/integration/services/persistence/custom-object-recipes.integration.spec.js |
| `TST-PFM-MTD-064` | services-platform:modules/custom-objects/tests/integration/services/persistence/custom-object-records.events.integration.spec.js |
| `TST-PFM-MTD-065` | services-platform:modules/custom-objects/tests/integration/services/persistence/custom-object-records.integration.spec.js |
| `TST-PFM-MTD-066` | services-platform:modules/custom-objects/tests/integration/services/persistence/custom-object-records.queries.integration.spec.js |
| `TST-PFM-MTD-067` | services-platform:modules/custom-objects/tests/integration/services/persistence/custom-objects.integration.spec.js |
| `TST-PFM-MTD-068` | services-platform:modules/custom-objects/tests/integration/services/persistence/custom-objects.queries.integration.spec.js |
| `TST-PFM-MTD-069` | services-platform:modules/custom-objects/tests/integration/services/persistence/portal-ownership-predicates.integration.spec.js |
| `TST-PFM-MTD-070` | services-platform:modules/custom-objects/tests/integration/services/persistence/record-revisions.integration.spec.js |
| `TST-PFM-MTD-071` | services-platform:modules/custom-objects/tests/integration/services/persistence/record-revisions.queries.integration.spec.js |
| `TST-PFM-MTD-072` | services-platform:modules/custom-objects/tests/unit/custom-object-permission-keys.spec.ts |
| `TST-PFM-MTD-073` | services-platform:modules/custom-objects/tests/unit/exposure.spec.ts |
| `TST-PFM-MTD-074` | services-platform:modules/custom-objects/tests/unit/placement-apps.spec.ts |
| `TST-PFM-MTD-075` | services-platform:modules/custom-objects/tests/unit/portal-access-rules.spec.ts |
| `TST-PFM-MTD-076` | services-platform:modules/custom-objects/tests/unit/record-rules.spec.ts |
| `TST-PFM-MTD-077` | services-platform:modules/custom-objects/tests/unit/rules.spec.ts |
| `TST-PFM-MTD-078` | services-platform:modules/files/tests/e2e/files.e2e.spec.js |
| `TST-PFM-MTD-079` | services-platform:modules/files/tests/integration/db/file-uploads.table.integration.spec.js |
| `TST-PFM-MTD-080` | services-platform:modules/files/tests/integration/services/persistence/file-uploads.integration.spec.js |
| `TST-PFM-MTD-081` | services-platform:modules/files/tests/integration/services/persistence/file-uploads.queries.integration.spec.js |
| `TST-PFM-MTD-082` | services-platform:modules/files/tests/integration/services/uploads/issue-upload.integration.spec.js |
| `TST-PFM-MTD-083` | services-platform:modules/files/tests/unit/upload-keys.spec.ts |
| `TST-PFM-MTD-084` | services-platform:modules/files/tests/unit/upload-permission.spec.ts |
| `TST-PFM-MTD-085` | services-platform:modules/files/tests/unit/upload-presign.spec.ts |
| `TST-PFM-MTD-086` | services-platform:modules/layouts/tests/e2e/console-forms-api.e2e.spec.js |
| `TST-PFM-MTD-087` | services-platform:modules/layouts/tests/e2e/console-page-layouts-api.e2e.spec.js |
| `TST-PFM-MTD-088` | services-platform:modules/layouts/tests/e2e/custom-object-forms.e2e.spec.js |
| `TST-PFM-MTD-089` | services-platform:modules/layouts/tests/e2e/portal-forms-api.e2e.spec.js |
| `TST-PFM-MTD-090` | services-platform:modules/layouts/tests/e2e/portal-page-layouts-api.e2e.spec.js |
| `TST-PFM-MTD-091` | services-platform:modules/layouts/tests/integration/db/console-forms.table.integration.spec.js |
| `TST-PFM-MTD-092` | services-platform:modules/layouts/tests/integration/db/console-page-layouts.table.integration.spec.js |
| `TST-PFM-MTD-093` | services-platform:modules/layouts/tests/integration/db/layout-assignments.table.integration.spec.js |
| `TST-PFM-MTD-094` | services-platform:modules/layouts/tests/integration/db/portal-forms.table.integration.spec.js |
| `TST-PFM-MTD-095` | services-platform:modules/layouts/tests/integration/db/portal-page-layouts.table.integration.spec.js |
| `TST-PFM-MTD-096` | services-platform:modules/layouts/tests/integration/services/persistence/console-forms.integration.spec.js |
| `TST-PFM-MTD-097` | services-platform:modules/layouts/tests/integration/services/persistence/console-forms.queries.integration.spec.js |
| `TST-PFM-MTD-098` | services-platform:modules/layouts/tests/integration/services/persistence/console-page-layouts.integration.spec.js |
| `TST-PFM-MTD-099` | services-platform:modules/layouts/tests/integration/services/persistence/console-page-layouts.queries.integration.spec.js |
| `TST-PFM-MTD-100` | services-platform:modules/layouts/tests/integration/services/persistence/portal-forms.integration.spec.js |
| `TST-PFM-MTD-101` | services-platform:modules/layouts/tests/integration/services/persistence/portal-forms.queries.integration.spec.js |
| `TST-PFM-MTD-102` | services-platform:modules/layouts/tests/integration/services/persistence/portal-page-layouts.integration.spec.js |
| `TST-PFM-MTD-103` | services-platform:modules/layouts/tests/integration/services/persistence/portal-page-layouts.queries.integration.spec.js |
| `TST-PFM-MTD-104` | services-platform:modules/layouts/tests/integration/services/persistence/purpose-capabilities.integration.spec.js |
| `TST-PFM-MTD-105` | services-platform:modules/metadata/tests/e2e/custom-fields.e2e.spec.js |
| `TST-PFM-MTD-106` | services-platform:modules/metadata/tests/e2e/metadata-api-observability.e2e.spec.js |
| `TST-PFM-MTD-107` | services-platform:modules/metadata/tests/e2e/registered-objects.e2e.spec.js |
| `TST-PFM-MTD-108` | services-platform:modules/metadata/tests/e2e/standard-field-label-overrides.e2e.spec.js |
| `TST-PFM-MTD-109` | services-platform:modules/metadata/tests/integration/db/custom-field-rules.table.integration.spec.js |
| `TST-PFM-MTD-110` | services-platform:modules/metadata/tests/integration/db/custom-fields.table.integration.spec.js |
| `TST-PFM-MTD-111` | services-platform:modules/metadata/tests/integration/db/registered-collections.table.integration.spec.js |
| `TST-PFM-MTD-112` | services-platform:modules/metadata/tests/integration/db/registered-fields.table.integration.spec.js |
| `TST-PFM-MTD-113` | services-platform:modules/metadata/tests/integration/db/registered-objects.table.integration.spec.js |
| `TST-PFM-MTD-114` | services-platform:modules/metadata/tests/integration/db/standard-field-label-overrides.table.integration.spec.js |
| `TST-PFM-MTD-115` | services-platform:modules/metadata/tests/integration/services/describe/describe-custom-object.integration.spec.js |
| `TST-PFM-MTD-116` | services-platform:modules/metadata/tests/integration/services/describe/describe-object.integration.spec.js |
| `TST-PFM-MTD-117` | services-platform:modules/metadata/tests/integration/services/persistence/custom-fields.custom-objects.integration.spec.js |
| `TST-PFM-MTD-118` | services-platform:modules/metadata/tests/integration/services/persistence/custom-fields.integration.spec.js |
| `TST-PFM-MTD-119` | services-platform:modules/metadata/tests/integration/services/persistence/custom-fields.queries.integration.spec.js |
| `TST-PFM-MTD-120` | services-platform:modules/metadata/tests/integration/services/persistence/custom-fields.rules.integration.spec.js |
| `TST-PFM-MTD-121` | services-platform:modules/metadata/tests/integration/services/persistence/registered-objects.integration.spec.js |
| `TST-PFM-MTD-122` | services-platform:modules/metadata/tests/integration/services/persistence/registered-objects.queries.integration.spec.js |
| `TST-PFM-MTD-123` | services-platform:modules/metadata/tests/integration/services/persistence/registered-objects.union.queries.integration.spec.js |
| `TST-PFM-MTD-124` | services-platform:modules/metadata/tests/integration/services/persistence/standard-field-label-overrides.integration.spec.js |
| `TST-PFM-MTD-125` | services-platform:modules/metadata/tests/integration/services/persistence/standard-field-label-overrides.queries.integration.spec.js |
| `TST-PFM-MTD-126` | services-platform:modules/metadata/tests/integration/services/registration/entity-capabilities.integration.spec.js |
| `TST-PFM-MTD-127` | services-platform:modules/metadata/tests/integration/services/registration/register-application.integration.spec.js |
| `TST-PFM-MTD-128` | services-platform:modules/metadata/tests/unit/approved-custom-field-objects.spec.js |
| `TST-PFM-MTD-129` | services-platform:modules/metadata/tests/unit/custom-object-properties.spec.ts |
| `TST-PFM-MTD-130` | services-platform:modules/metadata/tests/unit/effective-capabilities.spec.js |
| `TST-PFM-MTD-131` | services-platform:modules/metadata/tests/unit/write-vocabulary.spec.js |
| `TST-PFM-MTD-132` | services-platform:modules/quick-search/tests/integration/lifecycle/rebuild/quick-search-archived-field.integration.spec.js |
| `TST-PFM-MTD-133` | services-platform:tests/acceptance/custom-objects/deployed/associations/CO-ACC-0256.spec.js |
| `TST-PFM-MTD-134` | services-platform:tests/acceptance/custom-objects/journeys/data-operations/CO-ACC-0400.spec.js |
| `TST-PFM-MTD-135` | services-platform:tests/acceptance/custom-objects/journeys/data-operations/CO-ACC-0401.spec.js |
| `TST-PFM-MTD-136` | services-platform:tests/acceptance/custom-objects/journeys/data-operations/CO-ACC-0402.spec.js |
| `TST-PFM-MTD-137` | services-platform:tests/acceptance/custom-objects/journeys/data-operations/CO-ACC-0404.spec.js |
| `TST-PFM-MTD-138` | services-platform:tests/acceptance/custom-objects/journeys/definitions/CO-ACC-0014.spec.js |
| `TST-PFM-MTD-139` | services-platform:tests/acceptance/custom-objects/journeys/definitions/CO-ACC-0015.spec.js |
| `FND-PFM-MTD-082` | Deployed deletion proof does not exercise a restricting CRM deletion |
| `FND-PFM-MTD-083` | Existing executable suites without matching specification scenarios |
| `FND-PFM-MTD-084` | Feature acceptance scenarios awaiting executable coverage |
| `TST-PFM-MTD-140` | Contact form and record-layout editor measurements within the shared layout suite |
## Continuation (pass 2) Allocations

Reserved by Codex on 2026-10-23 before writing the continuation finding.

| Id | Purpose |
|---|---|
| `FND-PFM-MTD-085` | Conflicting control-gap and testing-gap descriptions share four permanent identifiers |

## Historical Control Gap Allocations

The earlier control-gap reservations and the testing coverage findings use the same four identifiers. Both records remain visible; the continuation finding records the conflict for an explicit identity decision. The next-free value accounts for every existing testing allocation.

