---
id: FAS-PFM-MTD-04
title: Organization-defined Record Categories Acceptance
feature: FEAT-PFM-MTD-04
product_area: platform
module: metadata
revision: 1
status: proposed
product_intent: proposed
source_sha:
  services-platform: ad3f6a6582843008ed0f5a17b131878d15829af1
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
capabilities:
  - CAP-PFM-MTD-009
  - CAP-PFM-MTD-010
  - CAP-PFM-MTD-011
scenarios:
  - id: FAS-PFM-MTD-04-01
    title: An administrator brings an owned register into navigation
    kind: behaviour
    exercises:
      - CAP-PFM-MTD-009
      - CAP-PFM-MTD-010
    relies_on:
      - ATS-PFM-MTD-009-04
      - ATS-PFM-MTD-009-05
      - ATS-PFM-MTD-010-01
    preconditions: An administrator starts a new Boat definition.
    steps:
      - do: 'Create its naming property and custom app, activate Boat and complete contact ownership setup.'
        provenance: test
        source: >-
          react-console:acceptance/custom-objects/playwright/journeys/PLAT-M5-S01.spec.ts#PLAT-M5-S01: an
          administrator creates Boat in a new app, owned by Contact, and Marina > Boats appears
    expected: The active register appears beneath its app with the selected owner.
    negative: false
    data_needs: An administrator starts a new Boat definition.
    bound_to:
      - TST-PFM-MTD-001
    provenance: test
    source: >-
      react-console:acceptance/custom-objects/playwright/journeys/PLAT-M5-S01.spec.ts#PLAT-M5-S01: an
      administrator creates Boat in a new app, owned by Contact, and Marina > Boats appears
    assertions:
      - expect: The active register appears beneath its app with the selected owner.
        provenance: test
        source: >-
          react-console:acceptance/custom-objects/playwright/journeys/PLAT-M5-S01.spec.ts#PLAT-M5-S01: an
          administrator creates Boat in a new app, owned by Contact, and Marina > Boats appears
  - id: FAS-PFM-MTD-04-02
    title: Object-scoped reach changes navigation and record actions together
    kind: interaction
    exercises:
      - CAP-PFM-MTD-009
      - CAP-PFM-MTD-010
      - CAP-PFM-MTD-011
    relies_on:
      - ATS-PFM-MTD-010-06
      - ATS-PFM-MTD-011-02
    preconditions: Enforcement Actions is restricted to Investigators with a scoped assignment.
    steps:
      - do: 'Open its navigation, records and editing surfaces as a broad user and as an investigator.'
        provenance: test
        source: >-
          react-console:acceptance/custom-objects/playwright/journeys/PLAT-M5-S14.spec.ts#PLAT-M5-S14:
          restricted to the Investigators role and granted in Security: only investigators see and edit
    expected: Only the assigned investigator reaches the register and can edit its records.
    negative: false
    data_needs: Enforcement Actions is restricted to Investigators with a scoped assignment.
    bound_to:
      - TST-PFM-MTD-014
    provenance: test
    source: >-
      react-console:acceptance/custom-objects/playwright/journeys/PLAT-M5-S14.spec.ts#PLAT-M5-S14: restricted
      to the Investigators role and granted in Security: only investigators see and edit
    assertions:
      - expect: Only the assigned investigator reaches the register and can edit its records.
        provenance: test
        source: >-
          react-console:acceptance/custom-objects/playwright/journeys/PLAT-M5-S14.spec.ts#PLAT-M5-S14:
          restricted to the Investigators role and granted in Security: only investigators see and edit
  - id: FAS-PFM-MTD-04-03
    title: Archiving a register hides its menu and retains old links
    kind: lifecycle
    exercises:
      - CAP-PFM-MTD-009
      - CAP-PFM-MTD-010
    relies_on:
      - ATS-PFM-MTD-009-08
      - ATS-PFM-MTD-010-06
    preconditions: Boat is active in Marina and contains a saved boat.
    steps:
      - do: 'Archive Boat, inspect the menu and open the saved boat through its old link.'
        provenance: test
        source: >-
          react-console:acceptance/custom-objects/playwright/journeys/PLAT-M5-S10.spec.ts#PLAT-M5-S10:
          archiving Boat hides it from Marina; an old link still opens the boat, read-only
    expected: The menu no longer lists Boat and the retained boat opens read-only.
    negative: false
    data_needs: Boat is active in Marina and contains a saved boat.
    bound_to:
      - TST-PFM-MTD-010
    provenance: test
    source: >-
      react-console:acceptance/custom-objects/playwright/journeys/PLAT-M5-S10.spec.ts#PLAT-M5-S10: archiving
      Boat hides it from Marina; an old link still opens the boat, read-only
    assertions:
      - expect: The menu no longer lists Boat and the retained boat opens read-only.
        provenance: test
        source: >-
          react-console:acceptance/custom-objects/playwright/journeys/PLAT-M5-S10.spec.ts#PLAT-M5-S10:
          archiving Boat hides it from Marina; an old link still opens the boat, read-only
  - id: FAS-PFM-MTD-04-04
    title: Read-only staff receive no record administration controls
    kind: permission
    exercises:
      - CAP-PFM-MTD-010
      - CAP-PFM-MTD-011
    relies_on:
      - ATS-PFM-MTD-011-07
      - ATS-PFM-MTD-010-06
    preconditions: A volunteer can read boats and another user has no custom-record reach.
    steps:
      - do: 'Open the menu, list, record and owned-record card as both users.'
        provenance: test
        source: >-
          react-console:acceptance/custom-objects/playwright/journeys/PLAT-M5-S08.spec.ts#PLAT-M5-S08: a
          read-only volunteer is offered no edit actions; a person without access sees no menu and no card
    expected: The volunteer receives no edit actions and the user without reach receives no menu or card.
    negative: true
    data_needs: A volunteer can read boats and another user has no custom-record reach.
    bound_to:
      - TST-PFM-MTD-008
    provenance: test
    source: >-
      react-console:acceptance/custom-objects/playwright/journeys/PLAT-M5-S08.spec.ts#PLAT-M5-S08: a read-only
      volunteer is offered no edit actions; a person without access sees no menu and no card
    assertions:
      - expect: The volunteer receives no edit actions and the user without reach receives no menu or card.
        provenance: test
        source: >-
          react-console:acceptance/custom-objects/playwright/journeys/PLAT-M5-S08.spec.ts#PLAT-M5-S08: a
          read-only volunteer is offered no edit actions; a person without access sees no menu and no card
  - id: FAS-PFM-MTD-04-05
    title: A register without placement remains reachable through its owner
    kind: regression
    exercises:
      - CAP-PFM-MTD-009
      - CAP-PFM-MTD-010
    relies_on:
      - ATS-PFM-MTD-010-02
      - ATS-PFM-MTD-009-05
    preconditions: Boat has a contact owner and no app placement.
    steps:
      - do: Open navigation and the owning contact’s page and follow a saved boat.
        provenance: test
        source: >-
          react-console:acceptance/custom-objects/playwright/journeys/PLAT-M5-S13.spec.ts#PLAT-M5-S13: a boat
          placed only on contacts has no menu entry and is reached from the contact's page
    expected: No menu entry is added and the boat remains reachable from the contact.
    negative: true
    data_needs: Boat has a contact owner and no app placement.
    bound_to:
      - TST-PFM-MTD-013
    provenance: test
    source: >-
      react-console:acceptance/custom-objects/playwright/journeys/PLAT-M5-S13.spec.ts#PLAT-M5-S13: a boat
      placed only on contacts has no menu entry and is reached from the contact's page
    assertions:
      - expect: No menu entry is added and the boat remains reachable from the contact.
        provenance: test
        source: >-
          react-console:acceptance/custom-objects/playwright/journeys/PLAT-M5-S13.spec.ts#PLAT-M5-S13: a boat
          placed only on contacts has no menu entry and is reached from the contact's page
evidence:
  - specs/platform/metadata/planning/features/FEAT-PFM-MTD-04-custom-object-design.md
  - >-
    specs/platform/metadata/planning/capabilities/CAP-PFM-MTD-009-design-a-record-type-of-the-organization-s-own-and-bring-it.md
  - >-
    specs/platform/metadata/planning/capabilities/CAP-PFM-MTD-010-put-custom-objects-where-staff-look-for-them.md
  - >-
    specs/platform/metadata/planning/capabilities/CAP-PFM-MTD-011-decide-which-staff-reach-a-custom-object-s-records-and-which.md
---

# Organization-defined Record Categories: Feature Acceptance Suite

## What the Feature Must Do as a Whole

The suite follows organization-defined record categories through its customer outcomes, lifecycle actions, permission refusals and retained regression cases. Each scenario names the capabilities it exercises and the detailed outcomes it relies on. Existing executable bindings identify specific assertions, while unbound scenarios remain proposed acceptance work.

## Interactions Between Capabilities

Object-scoped reach changes navigation and record actions together. The interaction case checks the joint outcome after configuration or record state changes, so separate capability checks cannot stand in for the complete feature result.

## Regression Record

| Revision | Change | Scenario | Why |
|---|---|---|---|
| 1 | initial | all | Establish cumulative feature acceptance from the landed capability and design obligations. |
